28

» WarCraft 3 / как изменить время внутри таймерного периодического триггера?

Как вариант, можно периодический таймер запускать в такой колбек, который проверяет привязанный период. Если TimerGetTimeout совпадает с этим числом, то просто вызывается другой колбек. Если же числа различаются, то тогда после вызова другого колбека таймер перезапускается с новым периодом.
28

» WarCraft 3 / как изменить время внутри таймерного периодического триггера?

а если мы используем DisableTrigger(t) + TriggerRemoveAction(t) + DestroyTrigger(t) - то будет правильно и без утечек?
Можно просто TriggerRemoveAction, потом DestroyTrigger. Если нет действий, а только условия, то тогда сразу DestroyTrigger.
28

» WarCraft 3 / как изменить время внутри таймерного периодического триггера?

host_pi, просто запускаешь периодический таймер на Х, в какой-то момент запускаешь тот же таймер на TimerGetRemaining время в функцию, которая запустит оригинальный колбек, затем перезапустит таймер с новым периодом. Либо сразу перезапускаешь таймер с новым периодом.
28

» WarCraft 3 / как изменить время внутри таймерного периодического триггера?

даже если DisableTrigger() + TriggerRemoveAction() ?
Так это ивент-таймер не удалит. Чтобы удалить ивенты у триггера, нужно триггер удалить.
а какая есть альтернатива то?
Обычный таймер и есть альтернатива. Как я уже сказал, ты его всегда можешь перезапустить с нужным тебе временем.
28

» WarCraft 3 / как изменить время внутри таймерного периодического триггера?

host_pi, таймер ты можешь всегда перезапустить с нужным временем, а триггер только пересоздать.
Причём я думаю, что отключение триггера не останавливает ивент-таймер, он дальше тикает, просто не запускает условия и действия. Это легко проверить: стартануть триггер в периодом в 5с, отключить его за 1с до тика, включить после 1с от тика. Триггер должен сработать после 4с, а не через 1с.
28

» WarCraft 3 / Утекают ли не обнулённые переменные типа handle

Koladik, в статье говорится про утечку локальных переменных: о баге, свойственному только JASS2. Если нет локальных переменных, то утекать нечему. Ну а если создать объект и потом его не удалить, то это уже утечка объекта, что к теме данной статьи не имеет никакого отношения.
В твоём примере объект создаётся и сразу возвращается. Никакой переменной он присваивается. Поэтому и никаких проблем с локальными переменными тут не может быть.
28

» StarCraft 2 / Azeroth Reborn

Полное прохождение кампании "Конец Вечности" от GiantGrantGames.
28

» StarCraft 2 / Azeroth Reborn

Последние новости!
Стала доступна кампания за ночных эльфов "Конец Вечности".
28

» WarRaft / IntelliJASS

EugeAl:
Брандмауэр защитника виндовс таме
Брандмауэр может работать и с выключенным защитником. Тем не менее, это дефолтное окно, которое ни о каких вирусах не говорит. С вирусами другое окошко.
28

» WarRaft / IntelliJASS

EugeAl, на скрине именно брандмауэр, а не Windows Defender. Такое же окошко для любой игры с интернетом будет появляться.
А если мне нужно скопировать файлы на другой диск или удалить файл, то где мне их искать?
Опять же, читаем гайд, что я скинул:
If you installed IntelliJ IDEA via the Toolbox App, you can find the installation directory in the app: open the settings of the IDE instance in the Toolbox App, expand Configuration, and look for the Install location field.
Там же, полагаю, меняется и папка установки. А ниже в гайде сказано про отельный установщик именно IntelliJ, в котором ты сразу можешь выбрать, куда ставить. В AppData всё равно будут хранится настройки для юзера, но это не критично.
Как сам думаешь, это всё удобно или нет?
Мне удобно в редакторе с тешем писать. А любой новый проект (если у меня будет интерес) я писать либо на Lua, либо на языке, что который можно конвертировать в Lua.
Что касается IDE - нужна практика. У меня стоит и IntelliJ для Scala, и PyCharm для Python. Я использую продукты JetBrains с 2017 года, поэтому у меня с ними проблем нет.
Основная причина, почему IntelliJ так много жрёт - написано на Java. Но в общем и целом ты обмениваешь скорость разработки на потребление ОЗУ. Нужно ли это для JASS, не знаю.
28

» WarRaft / IntelliJASS

EugeAl:
В ней вирусы, что ли? Такого не должно быть.
Ты в первый раз программу с требованием Интернет-соединения запускаешь? Это вообще-то окошко брандмауэра, которое всплывает для любого приложения, что использует Интернет.
Далее, у тебя 4 ГБ ОЗУ, интересно, как у тебя вообще что-то работает. У меня Win10 чуть старее, но с включённым хромом, дискордом и слаком потребляется 6 ГБ ОЗУ. IntelliJ сама по себе потребляет 1.5-2 ГБ ОЗУ, поэтому лаги на пк с 4 ГБ ОЗУ закономерны.
Ты также поставил Ultimate Edition, которая платная. Если нет лицензии, нужно ставить Community Edition. И Назар тебе сразу сказал ставить Community Edition. Я не использую Toolbox, без Toolbox можно установить куда хочешь, но часть данных всё равно будет на системном диске в AppData юзера.
Вишенкой на торте является тот факт, что ты даже плагин, который представлен в этой теме, не поставил, а просто поставил IDE. Неудивительно, что у тебя никакой подсветки нет.
Пытаемся сохранить файл. Папка для сохранения отсутствует. Файл сохранить не удалось
Файлы сохраняются автоматически, а ты пытаешься вообще какую-то ерунду сделать, а именно сохранить файл как шаблон.

Открываем Installation Guide и читаем. Там написано и про платные/бесплатные версии, и про минимальные системные требования (а именно 2 ГБ свободной ОЗУ), и про смену расположения приложения в Toolbox.
На следующей странице гайда рассказано про первый запуск приложения и настройку.
Вывод: чукча не читатель, чукча писатель.
28

» WarCraft 3 / Too many nested ifs

Если вся карта на гуи, то просто отключи JassHelper, сохрани и запуски карту. Если запустится нормально, то где-то в JassHepler баг. Иначе ищи ошибку в гуи
28

» Unryze Jass API / UjAPI

Unryze, ну индексация если что легко правится и юзером, но почему для 0 и ниже возвращается первое значение?
28

» Unryze Jass API / UjAPI

То, я что ожидаю от функции GetHeroExperienceNeeded:
Значение level <= 1 - возвращает 0.
level = 2 - возвращает 200 или другое значение из таблицы в константах.
level = 3 - 500 или другое значение по формуле/из таблицы.
level = 4 - 900 или другое значение по формуле/из таблицы.
И так далее.
28

» Unryze Jass API / UjAPI

Тесты показали, что возвращает exp_required, тогда передачу юнита можно убрать, от героя к герою эти значения не меняются.
Также, GetHeroExperienceNeeded возвращает неверные значения. Так, для уровня 1 будет возвращено 200, хотя все герои изначально имеют уровень 1, то есть верный ответ 0. Для уровня 0 и негативных значений также возвращается 200. Для уровня 2 вернётся 500, хотя для достижения второго уровня нужно 200. И так далее, как будто внутри функция увеличивает переданный уровень на единицу.
28

» Unryze Jass API / UjAPI

Unryze, то, что Blizzard не создавала доку по жассу, не оправдывает отсутствие документации в этом проекте. Тем более, что jass изначально и не создавался для широкой публики (хотя и в этом случае отсутствие документации осуждаю). А вот в гуи документация +/- имеется.
Я могу посоветовать следующее: при создании новых функций сразу писать документацию к ним, а к старым постепенно добавлять.
28

» Unryze Jass API / UjAPI

native GetHeroMaxLevelExperienceNeeded takes unit whichUnit returns integer
native GetHeroExperienceNeeded takes unit whichUnit, integer forLevel returns integer
Эти функции возвращают exp_required - exp_present или только exp_required? Если второе, то зачем тогда передаётся юнит?
28

» WarRaft / VJASS - Vexorian JASS

nazarpunk, возможно, я сурс код не смотрел. Но юзать алфавит вместо зависимостей прохладная история.
28

» WarRaft / VJASS - Vexorian JASS

nazarpunk, ну так зависимости и нужно указывать, иначе порядок не гарантирован. Тут ничего удивительного нет.
28

» WarRaft / VJASS - Vexorian JASS

nazarpunk, неявная сортировка? Либы сортируются в порядке зависимости друг от друга, что тут неявного?