эта проблема решается с помощью v/cjass указанием размера массива
У vJass лимит кастомного массива 32к, в 1.29+ такой размер массива нативен. Vlod, ты описываешь нейросеть, которая будет существовать только во время запуска карты. После её закрытия все изменения сотрутся. Нужно сохранять как-то и загружать, что адекватно сделать нельзя, только костылями через прелоад. Пока не будет нормального I\O API, не вижу смысла этим заниматься.
Ты просто переписал код на JASS2 на Lua, функции же идентичны по что. Нужно переделать AngleBetweenPoints(), а CreateNUnitsAtLocFacingLocBJ() не изменять, при вызове стандартной функции вызовется новая версия AngleBetweenPoints().
Если не передавать аргумент, то функция примет nil, незачем лишний раз писать.
Я так и думал.
Может и по этому))
То предложение странно звучит, JASS2 тоже ЯП, так-то. Но у JASS2 нет функциональщины (как и у многих других ЯП), а в Lua есть.
Но и часть BJ будет переписана, надеюсь в итоге будет плюс.
Я бы не стал пока так писать, потому что это лишь в теории. А для таких утверждений нужна практика.
Нейронка же обучаться как-то должна, нейроны должны где-то быть. Это точно какой-то сервер. У SC2 есть API для этого, у WC3 нет, будет ли у ремейка - неизвестно. К тому же, AlphaStar не фановый проект, а исследовательская работа.
Можно и без него. Достаточно глянуть опции стандартного WE, о которых уже сказал 8gabriel8.
С рельефом сложнее, средствами WE никак. Лучше сделать карту с рельефом, сделать её копию и в копии дальше её делать.
Да, массив + один триггер это всегда хорошая идея.
С: Инициализация
Д:
массив_рун[3] = равкод_руны_жаба
массив_рун[5] = равкод_руны_большаяжаба
массив_рун[7] = равкод_руны_огромнаяжаба
С: Юнит Получает уровень
У: Unit-type героя равно НУЖНЫЙ_ЮНИТ
Д:
Создать предмет массив_рун[уровень героя] в позиции героя
Если последний созданный предмет не null, то
дать последний созданный предмет герою. // герой = Leveling Hero
А ты в курсе что таблица начинает лагать если её захламить одновременно кучей всего? У меня тоже есть одна общая таблица для игры и её НЕЛЬЗЯ засирать такими данными.
Ты её просто не чистил, а чистить нужно.
Да и зачем 100500 хештаблиц? У меня карта с кастомным хп, ресурсами, способностями, баффами, 1 хештаблица и всё работает.
Ставить на паузу таймер нужно, потому что ты работаешь с весьма малым периодом, а периодический таймер стартует повторно до запуска своей функции. Также ставить на паузу нужно, если периодический таймер может быть удалён действием извне.
В обоих случаях может произойти ситуация, что таймер запустит свою функцию и будет удалён, GetExpiredTimer() вернёт null, и все действия, которое по логике кода не должны быть выполнены, будут выполнены. Пауза решает данную проблему, потому вообще можно сделать так.
Ты можешь сделать периодический таймер с периодом 0, внутри коллбека выводить его хендл и удалять таймер. По идее, таймер запустит коллбек 1 раз, но через сообщения ты увидишь, что это не так. Добавишь паузу перед удалением -> будет 1 раз.
У меня бывала ситуация, что юнит удалялся как раз в тот момент, когда его таймер хпрегена стартовал свою функцию. При удалении юнита удаляется всё, что с ним связано, таймер хпрегена не исключение. Из-за этого выходила ситуация, что функция запускалась с удалённым таймером, у которого хендл 0, из-за чего связанная с ним структура тоже 0. Одним словом, выполнялось то, что не должно выполнятся. Добавил паузу - баг исчез.
Подобных вопросов много, тебе нужно изначально заблокировать строительство ranger, сделать грейд, который блокирует archer и разблокирует ranger, сделать способность на основе Chaos или Berserk (без иконки), в поле "New Model" (или как там) поставить ranger, а в требованиях твой грейд. Способнотсь дать archer. Поговаривают ещё, что нужно поставить взаимосвязь эквивалентов, но я не знаю, зачем это поле.
Если есть импортируемые текстуры, то помимо самой модели нужно ещё и импортировать текстуры. На странице модели будут указаны текстуры и пути к ним. Текстуры можно импортировать в карту через Редактор Импорта. После импорта файла ему можно задать путь, щёлкнув два раза ЛКМ по нему в списке.
Если импортируемых текстур нет, то нужно только импортировать модель.
» WarCraft 3 / Нейронная Сеть в WC3
Vlod, ты описываешь нейросеть, которая будет существовать только во время запуска карты. После её закрытия все изменения сотрутся. Нужно сохранять как-то и загружать, что адекватно сделать нельзя, только костылями через прелоад. Пока не будет нормального I\O API, не вижу смысла этим заниматься.
Ред. PT153
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
Ред. PT153
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
Ред. PT153
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
Bergi_Bear:
» WarCraft 3 / Нестандартные Модели.
Ред. PT153
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
Может, благодаря тому, что в lua есть функциональное программирование? Я бы не был бы в этом так уверен. Всё же ты часть нативок превращаешь в код, что выполняется на виртуальной машине. А в чём тут разница? Неверное название статьи. Не удаляем, а предотвращаем их создание.
Удаление реализовано тут.
Ред. PT153
» WarCraft 3 / Периодически пропадает плавающий текст
Ред. PT153
» WarCraft 3 / Нейронная Сеть в WC3
Ред. PT153
» WarCraft 3 / Как сделать так, что бы герой строился в алтаре как герой?
» WarCraft 3 / Как сделать так, что бы герой строился в алтаре как герой?
Ред. PT153
» WarCraft 3 / Можно ли перенести данные из редактора войск на другую карту?
С рельефом сложнее, средствами WE никак. Лучше сделать карту с рельефом, сделать её копию и в копии дальше её делать.
» WarCraft 3 / Радар / временный модификатор видимости
Но я бы вместо R_Max проверял, что R_Max != N.
» WarCraft 3 / Спелл "оседлать гиппогрифа"
Ред. PT153
» WarCraft 3 / Какие ошибки может вызывать таймер?
» WarCraft 3 / Спелл "оседлать гиппогрифа"
» WarCraft 3 / Почему юнит жив (существует)
» WarCraft 3 / Почему юнит жив (существует)
» WarCraft 3 / Не все даммики группы кастуют скилл
» WarCraft 3 / Почему юнит жив (существует)
prog:
8gabriel8: Совершенно верно.
А вот после KillUnit() функция UnitAlive() сразу же возвращает false.
Ред. PT153
» WarCraft 3 / Эволюция юнита через проверку уровня
Ред. PT153
» WarCraft 3 / Можно ли уничтожить hashtable?
Да и зачем 100500 хештаблиц? У меня карта с кастомным хп, ресурсами, способностями, баффами, 1 хештаблица и всё работает.
Ред. PT153
» WarCraft 3 / [lua] Двигаем снаряды
Ред. PT153
» WarCraft 3 / Разработка карты по warcraft 2
» WarCraft 3 / что значит у моделек не импортируемых текстур
Если импортируемых текстур нет, то нужно только импортировать модель.
» WarCraft 3 / Характеристика предмета