EugeAl, для моделлинга инструменты были, близзарды выпускали WarCraft III Art Tools для 3D Studio Max. Можешь поискать, даже вроде на XGM есть.
Нормальный кодинг в WE? Он был бы не нужен, если бы близзарды как раз сделали качественный GUI с полным апи и без утечек.
Техподдержка по вопросам по редактору? Базовый мануал идёт в комплекте с игрой, а больше и не нужно.
Вот в SC2 проблем с утечеками нет, поэтому мало кто из моддеров пишет код. Редактор объектов весьма гибкий, поэтому для спелов даже триггеры не юзаются. И для SC2 тоже выпускали Art Tools.
а не делали "игру для людей"
Так игры замечательные вышли, все твои претензии про моддерство, что на качество самой игры мало влияет.
Античит. Ещё одна беда пришла откуда не ждали. Игра использует Easy Anti-Cheat, то есть в комплекте со Штормгейтом игроки устанавливают посторонний софт, работающий на уровне ядра операционный системы. Казалось бы, кому какое дело, но в официальном дискорде развернулась нешуточная дискуссия на эту тему, оказалось, что многие считают такое неприемлемым.
А вот это действительно плохо. Возможна ситуация как с Crowdsrtike, если драйвер античита запускается во время старта системы. Разрабы античита выпускают сломанное обновление, из-за него драйвер античита не запускается во время запуска системы, из-за этого система крашится на моменте запуска. И чтобы это исправить, надо запускать систему через безопасный запуск и сносить игру с античитом. 🤡
Вполне может быть, что только из-за этого я не буду даже вкатываться в моддинг, если игра всё же окажется тортом.
По статье: не увидел комментария про кампанию. Видел многие отзывы, что она не понравилась или совсем из рук вон плохая. Сам смотрел прохождение миссий 1-3, не впечатлило.
Как вариант, можно периодический таймер запускать в такой колбек, который проверяет привязанный период. Если 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 изначально и не создавался для широкой публики (хотя и в этом случае отсутствие документации осуждаю). А вот в гуи документация +/- имеется.
Я могу посоветовать следующее: при создании новых функций сразу писать документацию к ним, а к старым постепенно добавлять.
Ред. PT153
» Stormgate / [Опрос] Что там по Штормгейту?
Нормальный кодинг в WE? Он был бы не нужен, если бы близзарды как раз сделали качественный GUI с полным апи и без утечек.
Техподдержка по вопросам по редактору? Базовый мануал идёт в комплекте с игрой, а больше и не нужно.
Ред. PT153
» Stormgate / [Опрос] Что там по Штормгейту?
Вполне может быть, что только из-за этого я не буду даже вкатываться в моддинг, если игра всё же окажется тортом.
» 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