Лучшие проекты:

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Страница 1 из 1
  • 1
Модератор форума: farfacer, SaMuRa][  
Первый спелл (cJass)
MiniCoreДата: Воскресенье, 06.10.2013, 10:04 | Сообщение # 1
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
загрузка наград ...
Всем привет! Я тут новичок, и хотелось бы вашего мнения. Начал изучать Jass, и перешел на cJass (он мне ближе, т.к. имел дело с С-подобными языками).
Теперь к сути: сделал спелл, обычный, ничем не выделяющийся. Просто движение дамми юнита, просто наносит урон. Весь сок в коде: правильные ли выбраны структуры для реализации данной задачи? Что можно было бы не писать, что можно улучшить (в плане алгоритма)? Интересно ваше мнение, файлик с картой прицепляю (сорри за некликабельность, тегами url мне пользоваться нельзя, и прицепить к сообщению тоже нельзя)
Ссылка на Яндекс.Диск: http://yadi.sk/d/-HUjVIMIASxHY

P.S. - оценивайте строго, мне сразу надо знать, что и как делается


Сообщение отредактировал MiniCore - Воскресенье, 06.10.2013, 10:08
 
War3I4iДата: Воскресенье, 06.10.2013, 17:04 | Сообщение # 2
Группа: Творец
Сообщений: 849
Награды: 19
Репутация: 1058
Статус: Offline
загрузка наград ...
1. AngleBetweenPoints желательно раскрыть : bj_RADTODEG*Atan2(Y точки 2 - Y точки 1, Х точки 2 - Х точки 1)
2. Зачем заносить в макрос числа для хэша? Это тупо и безсмысленно
3. DestroyEffect(AddSpecialEffectLoc(eff, GetUnitLoc(dummy))) - Лучше юзать виджеты(координаты), получится DestroyEffect(AddSpecialEffect(eff, GetWidgetX(dummy),GetWidgetY(dummy))))
4. Функцию GetUnitsInRangeOfLocAll нужно раскрыть :
    local group g = CreateGroup()
    call GroupEnumUnitsInRange(g, GetWidgetX(dummy), GetWidgetY(dummy), 200, null)
    а затем call ForGroup(g, function твоя функция)
    потом в функции группы добавляй юнитов в свою группу для проверки дамага (как всегда)
    после ForGroup можешь делать call DestroyGroup(g)

Ну в основном это всё касается раскрытия BJ функций и исключить использование location (нужно юзать Widget), а так неплохо) Красава =) Надеюсь мои "советы" тебе помогут)


 
MiniCoreДата: Воскресенье, 06.10.2013, 17:22 | Сообщение # 3
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
загрузка наград ...
Цитата
2. Зачем заносить в макрос числа для хэша? Это тупо и безсмысленно
Не согласен. Мне, например, легче запомнить слова чем числа. Осталась привычка с программирования такая) (Я так понимаю, макросы - это расширенные аналоги констант)

А насчет остального - я так понимаю, это связано с различного рода "тормознутостями" w3 и утечками. Но в народе ходят слухи, что если в корне прописать
Код
#include "ALL.j"
большая часть утечек будет пофикшена (по крайней мере в GUI). Почему бы и здесь не использовать данный фикс? И как в таком случае вообще проверить наличие утечек?
 
War3I4iДата: Воскресенье, 06.10.2013, 17:32 | Сообщение # 4
Группа: Творец
Сообщений: 849
Награды: 19
Репутация: 1058
Статус: Offline
загрузка наград ...
#include "ALL.j" я бы не советовал тебе юзать, я сам не до конца понимаю все её функции но лучше самому раскрывать BJ. Кол-во утечек можно проверить в диспетчере задач в "Быстродействие", там увидишь нагрузку на ОЗ, проверь её до скила и после



Сообщение отредактировал War3I4i - Воскресенье, 06.10.2013, 17:32
 
War3I4iДата: Воскресенье, 06.10.2013, 17:37 | Сообщение # 5
Группа: Творец
Сообщений: 849
Награды: 19
Репутация: 1058
Статус: Offline
загрузка наград ...
Почитав инклуду ALL даже насчёт функции GetUnitsInRangeOfLocAll могу сказать что она вовсе не раскрывает BJ и не удаляет утечки, а лишь малость помогает, можешь открыть папку jass new gen pack / AdicHelper / lib / и тут файл All.j (как-то так) открой его в блокноте, потом Alt+ F и введи GetUnitsInRangeOfLocAll и узнаешь что эта инклуда меняет насчёт этой функции, удачи

 
WolfkillДата: Воскресенье, 06.10.2013, 18:53 | Сообщение # 6
Saiyan
Группа: Творец
Сообщений: 792
Награды: 13
Репутация: 206
Статус: Offline
загрузка наград ...
MiniCore, добавь в скайп wolfkill3.



Сообщение отредактировал wolfkill3 - Воскресенье, 06.10.2013, 18:53
 
  • Страница 1 из 1
  • 1
Поиск: