На момент добавления Lua в редактор, у меня много вопросов вызывало то, как разные файлы скриптов (иногда даже в разных категориях) должны работать независимо, если так можно выразиться. Сейчас я узнал, что нужно вешать хук на триггер инициализации, но не сказать, что стало намного понятнее. Собственно, могу ли я вызывать функции из скрипта, который выглядит примерно так:
do
-- код
end
Могу ли я делать это из любого места, важно ли, чтобы скрипт находился выше в иерархии, чем код, который его вызывает, и, наконец, нужно ли ставить хук на инициализацию в каждом скрипте?

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

Как я понял, чтобы работал триггер (вызывалось событие), который находится в скрипте, ты его помещаешь в do end и хукаешь InitGlobals или ещё раннюю функцию берёшь. А функции можно писать без хука и do end. Они всё равно в одном файле находятся (war3map.lua), иерархия в Lua не важна.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
28
4 года назад
Отредактирован Феникс
0
local a = "Global"
do
-- это область видимости
local a = "Visible Zone
print(a) = {"Visible Zone"}
end
print(a) = {"Global"}
0
8
4 года назад
0
Я наверное не так выразился. В моем понимании каждый скрипт может иметь блок кода между do и end, при этом запускаются они по очереди. Script 2 должен иметь возможность запускать функции из Script 1.
Загруженные файлы
1
37
4 года назад
1
Сортировка идет именно по тому порядку, который у тебя в редакторе триггеров
Как решение проблемы зависимостей могу так же предложить WLPM
0
32
4 года назад
0
А какие проблемы то?
1
15
4 года назад
1
Как я понял, чтобы работал триггер (вызывалось событие), который находится в скрипте, ты его помещаешь в do end и хукаешь InitGlobals или ещё раннюю функцию берёшь. А функции можно писать без хука и do end. Они всё равно в одном файле находятся (war3map.lua), иерархия в Lua не важна.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.