Как вариант, можно периодический таймер запускать в такой колбек, который проверяет привязанный период. Если TimerGetTimeout совпадает с этим числом, то просто вызывается другой колбек. Если же числа различаются, то тогда после вызова другого колбека таймер перезапускается с новым периодом.
host_pi, просто запускаешь периодический таймер на Х, в какой-то момент запускаешь тот же таймер на TimerGetRemaining время в функцию, которая запустит оригинальный колбек, затем перезапустит таймер с новым периодом. Либо сразу перезапускаешь таймер с новым периодом.
host_pi, таймер ты можешь всегда перезапустить с нужным временем, а триггер только пересоздать.
Причём я думаю, что отключение триггера не останавливает ивент-таймер, он дальше тикает, просто не запускает условия и действия. Это легко проверить: стартануть триггер в периодом в 5с, отключить его за 1с до тика, включить после 1с от тика. Триггер должен сработать после 4с, а не через 1с.
Koladik, в статье говорится про утечку локальных переменных: о баге, свойственному только JASS2. Если нет локальных переменных, то утекать нечему. Ну а если создать объект и потом его не удалить, то это уже утечка объекта, что к теме данной статьи не имеет никакого отношения.
В твоём примере объект создаётся и сразу возвращается. Никакой переменной он присваивается. Поэтому и никаких проблем с локальными переменными тут не может быть.
Брандмауэр может работать и с выключенным защитником. Тем не менее, это дефолтное окно, которое ни о каких вирусах не говорит. С вирусами другое окошко.
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, не знаю.
Ты в первый раз программу с требованием Интернет-соединения запускаешь? Это вообще-то окошко брандмауэра, которое всплывает для любого приложения, что использует Интернет.
Далее, у тебя 4 ГБ ОЗУ, интересно, как у тебя вообще что-то работает. У меня Win10 чуть старее, но с включённым хромом, дискордом и слаком потребляется 6 ГБ ОЗУ. IntelliJ сама по себе потребляет 1.5-2 ГБ ОЗУ, поэтому лаги на пк с 4 ГБ ОЗУ закономерны.
Ты также поставил Ultimate Edition, которая платная. Если нет лицензии, нужно ставить Community Edition. И Назар тебе сразу сказал ставить Community Edition. Я не использую Toolbox, без Toolbox можно установить куда хочешь, но часть данных всё равно будет на системном диске в AppData юзера.
Вишенкой на торте является тот факт, что ты даже плагин, который представлен в этой теме, не поставил, а просто поставил IDE. Неудивительно, что у тебя никакой подсветки нет.
Пытаемся сохранить файл. Папка для сохранения отсутствует. Файл сохранить не удалось
Файлы сохраняются автоматически, а ты пытаешься вообще какую-то ерунду сделать, а именно сохранить файл как шаблон.
Открываем Installation Guide и читаем. Там написано и про платные/бесплатные версии, и про минимальные системные требования (а именно 2 ГБ свободной ОЗУ), и про смену расположения приложения в Toolbox.
На следующей странице гайда рассказано про первый запуск приложения и настройку.
Если вся карта на гуи, то просто отключи JassHelper, сохрани и запуски карту. Если запустится нормально, то где-то в JassHepler баг. Иначе ищи ошибку в гуи
То, я что ожидаю от функции GetHeroExperienceNeeded:
Значение level <= 1 - возвращает 0.
level = 2 - возвращает 200 или другое значение из таблицы в константах.
level = 3 - 500 или другое значение по формуле/из таблицы.
level = 4 - 900 или другое значение по формуле/из таблицы.
И так далее.
Тесты показали, что возвращает exp_required, тогда передачу юнита можно убрать, от героя к герою эти значения не меняются.
Также, GetHeroExperienceNeeded возвращает неверные значения. Так, для уровня 1 будет возвращено 200, хотя все герои изначально имеют уровень 1, то есть верный ответ 0. Для уровня 0 и негативных значений также возвращается 200. Для уровня 2 вернётся 500, хотя для достижения второго уровня нужно 200. И так далее, как будто внутри функция увеличивает переданный уровень на единицу.
Unryze, то, что Blizzard не создавала доку по жассу, не оправдывает отсутствие документации в этом проекте. Тем более, что jass изначально и не создавался для широкой публики (хотя и в этом случае отсутствие документации осуждаю). А вот в гуи документация +/- имеется.
Я могу посоветовать следующее: при создании новых функций сразу писать документацию к ним, а к старым постепенно добавлять.
» WarCraft 3 / как изменить время внутри таймерного периодического триггера?
Ред. PT153
» WarCraft 3 / как изменить время внутри таймерного периодического триггера?
» WarCraft 3 / как изменить время внутри таймерного периодического триггера?
» WarCraft 3 / как изменить время внутри таймерного периодического триггера?
» WarCraft 3 / как изменить время внутри таймерного периодического триггера?
Ред. PT153
» WarCraft 3 / как изменить время внутри таймерного периодического триггера?
Причём я думаю, что отключение триггера не останавливает ивент-таймер, он дальше тикает, просто не запускает условия и действия. Это легко проверить: стартануть триггер в периодом в 5с, отключить его за 1с до тика, включить после 1с от тика. Триггер должен сработать после 4с, а не через 1с.
Ред. PT153
» WarCraft 3 / Утекают ли не обнулённые переменные типа handle
В твоём примере объект создаётся и сразу возвращается. Никакой переменной он присваивается. Поэтому и никаких проблем с локальными переменными тут не может быть.
» WarCraft 3 / Утекают ли не обнулённые переменные типа handle
Ред. PT153
» WarCraft 3 / PgUP и PgDn не действуют на декорации
» StarCraft 2 / Azeroth Reborn
» StarCraft 2 / Azeroth Reborn
» WarRaft / IntelliJASS
Ред. PT153
» WarRaft / IntelliJASS
Основная причина, почему IntelliJ так много жрёт - написано на Java. Но в общем и целом ты обмениваешь скорость разработки на потребление ОЗУ. Нужно ли это для JASS, не знаю.
» WarRaft / IntelliJASS
На следующей странице гайда рассказано про первый запуск приложения и настройку.
» Прочее / Сэмми Дидье вкатился в Stormgate
» WarCraft 3 / Too many nested ifs
» Unryze Jass API / UjAPI
Ред. PT153
» Unryze Jass API / UjAPI
Значение level <= 1 - возвращает 0.
level = 2 - возвращает 200 или другое значение из таблицы в константах.
level = 3 - 500 или другое значение по формуле/из таблицы.
level = 4 - 900 или другое значение по формуле/из таблицы.
И так далее.
» Unryze Jass API / UjAPI
» Unryze Jass API / UjAPI
» Unryze Jass API / UjAPI
» WarRaft / VJASS - Vexorian JASS
» WarRaft / VJASS - Vexorian JASS
» WarRaft / VJASS - Vexorian JASS
» WarCraft 3 / Парсер реплеев
https://github.com/jblanchette/wc3v
https://w3rep.sourceforge.net
https://github.com/PBug90/w3gjs
https://replaytool.warcraft3.org/en:home
https://pypi.org/project/w3g