quq_CCCP, можно и так, через boolexpr. Плюс - можно сделать массив функций, минус - не работает слип, как написано выше, и надо везде писать returns boolean.
Глобальный можно, но это лишняя работа. nazarpunk, для костыля пойдёт.
EugeAl, лучше не удалять триггер, а создать отдельный глобальный, как и не юзать экшены, а только TriggerCondition() и EvaluateTrigger().
В любом случае костыли...
Если вы уже перешли на UjAPI но ещё не перешли на AngelScript то это единственный адекватный способ передать функцию аргументом. Передаваемая функция по традиции должна ничего не принимать и ничего не возвращатть.
Это можно и раньше было делать. Да, медленно, костыль, но всё таки можно, всё работает
function ExecuteCode takes code c returns nothing
local trigger t = CreateTrigger()
local triggeraction a = TriggerAddAction(t, c)
call TriggerExecute(t)
call TriggerRemoveAction(t, a)
call DestroyTrigger(t)
set t = null
set a = null
endfunction
function a takes code b returns nothing
call ExecuteCode(b)
endfunction
function c takes nothing returns nothing
//...
endfunction
function main takes nothing returns nothing
call a(function c)
endfunction
Комментарии проекта WarRaft
Функции
Ред. EugeAl
Глобальный можно, но это лишняя работа.
nazarpunk, для костыля пойдёт.
В любом случае костыли...
Переезд
Переменные
Переезд
Операторы
Переезд
Типы данных
Ред. nazarpunk
Переезд
Выбор редакции
IntelliJASS