Я столкнулся с интересной проблемой при переводе своей карты на lua, у меня в редакторе выставлены основные здания и ключевые юниты в игре.
Это удобно, я не хочу создавать их триггерно, так как обстановку на карте можно наглядно расставить, покрутить мышкой угол поворота и тд, это основа основ скажем так.
В JASS они имеют переменные типа gg_unit_n01P_0124, но когда я переключил карту в режим Lua, они-то есть в файле war3map.lua, но инициализированы как nil. И в игре скрипты их в упор не видят, их будто не существует. Как сделать так, чтоб lua увидел юнитов выставленных в редакторе?
P.S.:
Точка входа у меня после InitGlobals, все работает хорошо, лишь проблема с выставленными заранее юнитами, переменные которых в lua почему-то недоступны.

Принятый ответ

Эти юниты инициализируются после InitGlobals, но перед триггерами инициализации в функции CreatePlayerUnits или как-то так.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
28
4 года назад
Отредактирован PT153
0
Эти юниты инициализируются после InitGlobals, но перед триггерами инициализации в функции CreatePlayerUnits или как-то так.
Принятый ответ
0
16
4 года назад
Отредактирован Drulia_san
0
CreatePlayerUnits
CreatePlayerUnits вызывается из CreateAllUnits(), который вызывается из main() как раз перед InitBlizzard() и InitGlobals()
То есть моя инициализация в любом случае позже CreatePlayerUnits.
Есть ли смысл его перехватывать?
Только что попробовал вызвать инициализацию карты которая делает неуязвимыми все мои здания из хука на CreatePlayerUnits, она вообще не вызвалась теперь.
Пробовал также вызвать её из ГУИ на ивенте инициализации карты из кастомного скрипта, она вызывается, но переменные зданий nil
0
28
4 года назад
0
CreatePlayerUnits вызывается из CreateAllUnits(), который вызывается из main() как раз перед InitBlizzard() и InitGlobals()
Что ж, я ошибался.
А в CreatePlayerUnit юниты хоть создаются и переменные присваиваются?
0
16
4 года назад
Отредактирован Drulia_san
0
Короче не сумев придумать ничего толкового - соорудил костыль при помощи ГУИ, создал сотню переменных и в каждую записал соответствующее здание через GUI Set variable, поменял все обращения в скриптах со сгенерированных переменных на мои и всё заработало. Такое конечно, надеюсь потом это исправят.
PT153:
А в CreatePlayerUnit юниты хоть создаются и переменные присваиваются?
CreatePlayerUnits - его реализация не определяется в war3map.lua, его вообще нет...
Ах да, может это тоже имеет дело, мой проект - это проект-папка в редакторе беты Reforged. Вероятно проблема вообще не во мне.
0
28
4 года назад
0
CreatePlayerUnits - его реализация не определяется в war3map.lua, его вообще нет...
Могу посоветовать переставить юниты заново, данная функция должна быть, иначе на карте ничего не будет.
Либо баг беты.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.