XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
нет, самое быстрое --- триггерЭвалуэйт
Старый 31.08.2009, 12:51
ScorpioT1000
Работаем
offline
Опыт: отключен
запуск таймера ждет окончания выполнения текущего потока, что делает это неприменимым, и провоцирует путаницу в коде
ты уверен что это катит и с .0 секунд? может там проверка =O ну я бы по кр. мере так сделал
и вобще не пойму, причем тут путаница? для выполнения в потоке ! специально call сделан, мы сейчас не о том вобще
да а у экзекутора вычисляется ключь, что быстрей)
ScorpioT1000 добавил:
нет, самое быстрое --- триггерЭвалуэйт
это тормознуто расписывать
Старый 31.08.2009, 12:53
adic3x

offline
Опыт: 108,439
Активность:
кажется быстрее евалут, он только запускает условие, хотя я неуверен
Старый 31.08.2009, 12:59
agentex

offline
Опыт: 34,834
Активность:
нет, самое быстрое --- триггерЭвалуэйт
кажется быстрее евалут, он только запускает условие
ниче не понял.. какой в этом смысл? почему быстрее евалуат если экзекут тупо запускает тригер, а евалуат еще и условие проверяет?
Старый 31.08.2009, 13:02
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
TriggerExecute проверяет условие, а потом запускает триггер. Даже если условия нет, движок сделает потуги его поискать (насколько я понимаю)
TriggerEvaluate только проверяет условие триггера и всё.
Старый 31.08.2009, 13:04
adic3x

offline
Опыт: 108,439
Активность:
ты уверен что это катит и с .0 секунд?
да, и с .0 сек тоже
Старый 31.08.2009, 13:10
agentex

offline
Опыт: 34,834
Активность:
TriggerEvaluate только проверяет условие триггера и всё.
значит выгодней писать код в условии, а экшн вообще не добавлять, и юзать евалуэйт?
Старый 31.08.2009, 13:21
ScorpioT1000
Работаем
offline
Опыт: отключен
рофл в условии не все возможно делать + условие оптимальней при правильном юзании(чем например ифы в действиях)
Старый 31.08.2009, 13:26
adic3x

offline
Опыт: 108,439
Активность:
условие оптимальней при правильном юзании(чем например ифы в действиях)
это могло бы быть так, если движок обязательно перед запуском триггера проверяет условие (даже если его нет)
хм...
честно говоря вы не то оптимизируете, т.е. разницы ну скажем не очень много
Старый 31.08.2009, 13:28
agentex

offline
Опыт: 34,834
Активность:
~Van_Damm, тогда какой смысл в этой функции?
Код:
function ConditionalTriggerExecute takes trigger trig returns nothing
    if TriggerEvaluate(trig) then
        call TriggerExecute(trig)
    endif
endfunction

ладно короче я все понял тему моно клоз
Старый 31.08.2009, 13:28
ScorpioT1000
Работаем
offline
Опыт: отключен
очевидно она пускает триггер только когда условия вернут true
Старый 31.08.2009, 13:30
agentex

offline
Опыт: 34,834
Активность:
ScorpioT1000,
Цитата:
TriggerExecute проверяет условие, а потом запускает триггер. Даже если условия нет, движок сделает потуги его поискать


смысл перед этим юзать Evaluate?
Старый 31.08.2009, 13:32
ScorpioT1000
Работаем
offline
Опыт: отключен
ADOLF:
это могло бы быть так, если движок обязательно перед запуском триггера проверяет условие (даже если его нет)
хм...
честно говоря вы не то оптимизируете, т.е. разницы ну скажем не очень много
я же даже не писал ни одного кода, ты уже говоришь что я не правильно оптимизирую)
адресовалось автору темы
пример есть - периодически срабатывает эвент и нам надо знать - пускать ли действия. если вставить иф то будет вызываться 2 ф-ции(причем не просто вызываться, а там посложней, я уверен) и проверяться во второй, т.е. при тру/фэлсе в любом случае вызывается 2 ф-ции) а тут одна

Отредактировано ADOLF, 31.08.2009 в 14:31.
Старый 31.08.2009, 13:35
agentex

offline
Опыт: 34,834
Активность:
о чем вы вообще? мне условия проверять не нужно, если что
Старый 31.08.2009, 13:36
ScorpioT1000
Работаем
offline
Опыт: отключен
TriggerExecute проверяет условие, а потом запускает триггер. Даже если условия нет, движок сделает потуги его поискать
я так не думаю:
function TriggerExecuteBJ takes trigger trig, boolean checkConditions returns boolean
    if checkConditions then
        if not (TriggerEvaluate(trig)) then
            return false
        endif
    endif
    call TriggerExecute(trig)
    return true
endfunction
Старый 31.08.2009, 13:38
agentex

offline
Опыт: 34,834
Активность:
это не мои слова
афигеть вы противоречите друг другу.. о чем может быть речь? Т_Т

кароче буду юзать экзекут и точка
если чо буит лагать, это на вашей совести xD

Отредактировано agentex, 31.08.2009 в 13:49.
Старый 31.08.2009, 13:41
adic3x

offline
Опыт: 108,439
Активность:
ScorpioT1000, это надо слазить и глянуть, что оно да как запускает... но смысла я в этом честно говоря не вижу
Старый 31.08.2009, 14:31
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Бывает, опростоволосился =)
TriggerEvaluate вроде бы немного быстрее, но внутри него нельзя юзать вейты, в отличие от TriggerExecute. ExecuteFunc медленнее их обеих раза в два (PipeDream вроде тестил)
Старый 31.08.2009, 16:01
agentex

offline
Опыт: 34,834
Активность:
Van Damm, TriggerEvaluate просто вызывает условие и возвращает результат, а мне нужно чтоб срабатывал экшн
Старый 31.08.2009, 16:21
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
С чего на форуме такое задротство скоростей началось?
Старый 31.08.2009, 16:33
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:03.