Добавлен Гуванч
Всем привет, после того как я поделился своей картой мне показали кучи ошибок и недочетов по этому прошу вас поделится своими мыслями, идеями, фишками которыми вы пользуетесь говорю за ранее я пишу чистый джасс
Пример, если хочу проверить логическое условие в "if" делаю так
If boolean == true then
Пример, если хочу проверить логическое условие в "if" делаю так
If boolean == true then
Endif
А можно было без "== true= и узнал для того что бы сохранить группу в хеш таблицу не нужно переменная в место этого при сохранении создать группу "CreateGroup()"
А можно было без "== true= и узнал для того что бы сохранить группу в хеш таблицу не нужно переменная в место этого при сохранении создать группу "CreateGroup()"
Принятый ответ
Ты пишешь не на чистом джассе, у тебя юзался сджасс и даже вджасс
globals
endglobals
это фишки вджасса, а сджасс позволял тебе объявлять локальные переменные не в начале функции
globals
endglobals
это фишки вджасса, а сджасс позволял тебе объявлять локальные переменные не в начале функции
вместо == false можно писать not перед функцией
например у нас умер юнит, мы пишем IsUnitType(u,UNIT_TYPE_DEAD) == false, то бишь нам нужен был живой юнит, его тип не равно мёртвый, можно написать not IsUnitType(u,UNIT_TYPE_DEAD)
например у нас умер юнит, мы пишем IsUnitType(u,UNIT_TYPE_DEAD) == false, то бишь нам нужен был живой юнит, его тип не равно мёртвый, можно написать not IsUnitType(u,UNIT_TYPE_DEAD)
насчёт работы с группами, ты можешь заносить основные данные в глобалки, а уже в группе и кондишене их юзать, ForGroup быстрее цикла работает
Остальные ништячки по быстроте написания кода тебе может предоставить cджасс, но это кривая фигня и не советую им пользоваться
Сджасс позволяет тебе не писать каждый раз call при вызове фукнции и не писать local при объявлении переменных, не писать после каждого if - then в конце, объявлять переменные через запятую, закидывать в одну строку несколько функций разделяя их точкой с запятой (это перенос строки), цикл там выглядит покрасивее, например
Сджасс позволяет тебе не писать каждый раз call при вызове фукнции и не писать local при объявлении переменных, не писать после каждого if - then в конце, объявлять переменные через запятую, закидывать в одну строку несколько функций разделяя их точкой с запятой (это перенос строки), цикл там выглядит покрасивее, например
loop
exitwhen i == 10
set i = i+1
endloop
на сджассе можно так написать
while (i < 10){ i++ }
сджасс после компиляции становится обычным джассом само собой, это не оптимизация
кстати, по поводу ForGroup, намного лучше будет, если ты создашь темповую глобальную группу, это избавит от необходимости каждый раз создавать и уничтожать её
проверка IsTerrainPathable(x,y,PATHING_TYPE_WALKABILITY) дороговатая в плане ресурсов, можно создать глобальную переменную типа предмет, создать его при инициализации и скрыть. А когда нужно проверить проходимость точки, перемещать этот предмет туда и скрыть, а потом проверить координаты между точкой и предметом, если больше 10 к примеру, значит местность непроходима
Порой, можно не объявлять какие-то переменные, а юзать те, что уже есть в варе, например bj_lastCreatedUnit
Ах да, вджасс всё-таки стоит изучить, если планируешь делать хорошие абилки. Работа со структурами быстрее и удобнее, чем работа с хэшем
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. rsfghd
globals
endglobals
это фишки вджасса, а сджасс позволял тебе объявлять локальные переменные не в начале функции
например у нас умер юнит, мы пишем IsUnitType(u,UNIT_TYPE_DEAD) == false, то бишь нам нужен был живой юнит, его тип не равно мёртвый, можно написать not IsUnitType(u,UNIT_TYPE_DEAD)
Сджасс позволяет тебе не писать каждый раз call при вызове фукнции и не писать local при объявлении переменных, не писать после каждого if - then в конце, объявлять переменные через запятую, закидывать в одну строку несколько функций разделяя их точкой с запятой (это перенос строки), цикл там выглядит покрасивее, например
private лишь даёт глобалкам и функциям приставку с названием твоей библиотеки, то есть ты можешь дать 2 одинаковых названия разным функциям в разных библиотеках и оно будет работать, при вызове такой функции, будет вызываться та функция, что находится у тебя в библиотеке
например
Ред. rsfghd
с берги что-ли
Инициализация карты
Сделать
Ред. goodlyhero
А для загрузки своих библиотек используется мемхак.