Я оставил только requires. Ибо судя по статье только он каноничен.
Офигительный вывод. В статье даже слова "каноничный" нет. Не смотря на то, что это вольный перед GetLocalPlayer, который даже не все фичи языка перечислил в некоторых разделах. Рекомендую ссылаться на оригинал.
Смысл заявлять о поддержке vJass, когда на самом деле её нет?
Формат примитивный, проблема в том, что эти строки меняются как черти, например если создать апгрейд с 10-ю уровнями, порядок строк и описаний будут тасоваться в зависимости от того в каком порядке их править.
Создаём улучшение/способность.
Заполняем уровень 1.
Просим автоматически заполнить остальные уровни.
Все дальнейшие правки делаем только в .wts посредством карты-папки или через экспорт и импорт строк.
EugeAl, твой вариант тоже будет перебирать всех подряд, только ещё и группу очищать нужно. В моём варианте как раз наоборот нет лишней работы в виде чистки группы. А всё остальное идентично.
Твой вариант через очистку:
call GroupEnumUnitsOfPlayer(TempGroup, Player(0), null)
call ForGroup(TempGroup, function Actions)
call GroupClear(TempGroup)
EugeAl, если не нужно хранить коллекцию юнитов, можно вообще их даже в саму группу не добавлять. Просто в Enum передавать фильтр с нужными дейтсвиями, а самом фильтре либо возвращать false, либо ничего. Я такой способ уже давно практикую.
SсRealm, первый вариант есть, надо включить Colorizer. Но в моих настройках он офается, были с ним какие-то проблемы + я описания держал в таблице и раскрашивал скриптом по ключевым словам.
Что касается остального - моя сборка носит чисто косметический характер: дополнить Rebuild недостающими файлами и обновлениями. Есть, например, сборка от moyack, там куча дополнительных утилит. Или вот от Enobraed.
Пример квадратичной Безье. xgm.guru/files/100/319649/comments/525358/Bezier_example_2.w3m
Тут рабочий движется к пехотинцу по воздуху. Из опорных точек можно установить только ту, что в воздухе, указав её высоту и расположение на линии между пехотинцем и рабочим.
Давай так попробуем.
В Warcraft III\_retail_\fonts расположи файл. Папку fonts нужно будет создать.
Далее нужно будет активировать этот .reg файл (включает локальные файлы для игры).
без нового потока смысл был бы нулевой в этой функции.
Абсолютно нет, это всё ещё вызов условий триггера и всё ещё вызов функции из любого места кода (о чём и говорится в цитате из этой статьи).
Я всегда считал, что TriggerEvaluate не создаёт свой поток, поэтому эта функция и быстрее TriggerExecute. И поэтому для создания потоков я использовал .execute(). А оно вон как на самом деле: TriggerExecute медленный из-за поддержки вейтов.
Функция, как объект, имеет некоторые преимущества - метод evaluate позволяет совершать вызов функции из любого участка кода, даже если место вызова находится выше места объявления функции. Метод execute делает то же самое, но при этом порождает новый поток, однако, выполняется быстрее старого доброго ExecuteFunc.
И может так и было, когда JassHelper только создавался, но я сейчас сам протестировал на 1.26, TriggerEvaluate действительно создаёт свой поток. Тогда в execute() нет смысла кроме вейтов.
Забавный факт: execute() не возвращает значение, даже если оригинальная функция это делает. Почему? Vexorian решил, что это не нужно. 🤣
Не удивлюсь, если TriggerExecute на самом деле нифига не быстрее ExecuteFunc.
Отредактирован PT153
» IntelliJASS / IntelliJASS
Смысл заявлять о поддержке vJass, когда на самом деле её нет?
» WarCraft 3 / JNGP: ReBuild by Enobraed
Отредактирован PT153
» WarCraft 3 / Утечки группы.
» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?
» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?
Отредактирован PT153
» WarCraft 3 / Утечки группы.
Отредактирован PT153
» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?
Отредактирован PT153
» WarCraft 3 / Чем можно заменить "TriggerRegisterTimerEventSingle"?
» WarCraft 3 / JNGP: ReBuild by Enobraed
» WarCraft 3 / JNGP: Rebuild от PT153
» WarCraft 3 / Кривая Безье
Пример кубической Безье. xgm.guru/files/100/319649/comments/525358/Bezier_example_1.w3m
Тут рабочий просто "бежит" по кривой построенной на основе 4-х точек.
Тут рабочий движется к пехотинцу по воздуху. Из опорных точек можно установить только ту, что в воздухе, указав её высоту и расположение на линии между пехотинцем и рабочим.
Отредактирован PT153
» Администрация XGM / Плитки
Отредактирован PT153
» WarCraft 3 / Не отображается текст в WarCraft reforged
Отредактирован PT153
» WarCraft 3 / Не отображается текст в WarCraft reforged
В Warcraft III\_retail_\fonts расположи файл. Папку fonts нужно будет создать.
Далее нужно будет активировать этот .reg файл (включает локальные файлы для игры).
Отредактирован PT153
» Wisp TD / Скачать карту
» Администрация XGM / Иконки
» Администрация XGM / Плитки
» Администрация XGM / Плитки
» WarCraft 3 / Не отображается текст в WarCraft reforged
» WarCraft 3 / Не отображается текст в WarCraft reforged
Отредактирован PT153
» WarCraft 3 / 16. Функция как объект
Я всегда считал, что TriggerEvaluate не создаёт свой поток, поэтому эта функция и быстрее TriggerExecute. И поэтому для создания потоков я использовал .execute(). А оно вон как на самом деле: TriggerExecute медленный из-за поддержки вейтов.
Отредактирован PT153
» WarCraft 3 / 16. Функция как объект
» WarCraft 3 / Полярное смещение (скорость тригонометрических операций)