Что делает эта функция? И когда возвращает true, а когда false?

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

пояснения
Эта функция запускает условие триггера (точнее функцию, которая приписана в регистре) и эта функция может возвращать 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 в момент срабатывания события
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
27
7 лет назад
Отредактирован MpW
1
пояснения
Эта функция запускает условие триггера (точнее функцию, которая приписана в регистре) и эта функция может возвращать 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 в момент срабатывания события
Принятый ответ
0
21
7 лет назад
0
Steal nerves, спасибо за подробный ответ! )
Чтобы оставить комментарий, пожалуйста, войдите на сайт.