Добавлен scopterectus
Что делает эта функция? И когда возвращает true, а когда false?
Принятый ответ
xgm.guru/p/wc3/184282?postid=344950#comment5 поиск юзайте.
пояснения
Эта функция запускает условие триггера (точнее функцию, которая приписана в регистре) и эта функция может возвращать boolean. если TriggerEvaluate возвращает истину, значит условие триггера истино.
пример для понимания
function ConditionalTriggerExecute takes trigger trig returns nothing
if TriggerEvaluate(trig) then //если условие истино
call TriggerExecute(trig) //то запускаем действие
endif
endfunction
тонкости jass
Хитрецы используют TriggerEvaluate в других способах. Например, урезают действие (action), а сами действия прописывают в условиях. Эта функция то же самое что и TriggerExecute, только здесь пишут в конце return boolean (условие). То есть вместо TriggerExecute используют TriggerEvaluate, а на конце прописывают return false.
function CCC takes nothing returns boolean
...... //действия
return false //по идее если триггер возвращает истину, то запускает действие (action). Но TriggerEvaluate не запускает действие, просто запускает функцию (проверяет условие) и возвращает boolean
endfunction
function DD takes nothing returns nothing
call TriggerEvaluate(trig) //вызываете условие триггера
endfunction
Часто условие может не срабатывать (возвращает ложь), возможно (мое предположение, так как не изучал TriggerEvaluate подробно, все особенности, как сработает ли условие с варкрафтовскими переменными) потому что потому что стоят варкрафтоские переменные (точно не знаю, проверь), ибо переменные пусты или заполнены другим чем-то. По идее переменные эти срабатывают по событию, а значит запускать TriggerEvaluate в момент срабатывания события
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW