Похимичив некоторое время с вэйтом во многих триггерах, которые он крашит я выявил закономерность. Если определенную жертву событий использовать как переменную то вэйт будет безопасно задерживать действия, без всяких сбиваний и ошибок. Вопрос: прокатит ли такой метод с циклами?

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

Поздравляю с изобретением велосипеда. Если поищешь внимательно, то на сайте даже найдешь соответствующую наработку.
0
12
9 лет назад
0
Прокатит
0
6
9 лет назад
0
Поздравляю с изобретением велосипеда. Если поищешь внимательно, то на сайте даже найдешь соответствующую наработку.
Принятый ответ
0
28
9 лет назад
0
какую наработку вы что обкурились?
вейт в циклах пичаль бида
2
21
9 лет назад
2
щас бы про таймеры забыть и системы понаписать
0
4
9 лет назад
0
nvc123, через ExecuteFunc
0
28
9 лет назад
0
вейт через ExecuteFunc не запустишь(
0
32
9 лет назад
0
nvc123:
вейт через ExecuteFunc не запустишь(
Запустишь.
Экзекуты даже наследуют свойства потока из которого запущены, ExecuteTrigger запущенный из потока триггера наследует его ивент, а так же знание связанным с ним функций, с таймерами и ExecuteFunc я не проверял...
Что качается вейтов в циклах, это убого из за неточности вейта + невозможности установки малого периода, о триггерном движении можно забыть.
0
28
9 лет назад
Отредактирован nvc123
0
quq_CCCP, ExecuteFunc стартует функцию которая ничего не берёт и ничего не возвращает
вейт берёт число
поток созданный через ExecuteFunc никак не связан с родительским потоком
ExecuteTrigger это совсем другое дело
0
32
9 лет назад
0
nvc123:
quq_CCCP, ExecuteFunc стартует функцию которая ничего не берёт и ничего не возвращает
вейт берёт число
поток созданный через ExecuteFunc никак не связан с родительским потоком
ExecuteTrigger это совсем другое дело
Но вот TriggerSleepAction там работает исправно, вот ссылочка раздел 3, пункт 4 как бы намекает.
0
33
9 лет назад
0
quq_CCCP, хм, для меня в этом примере интереснее, что работает GetEnumUnit() (если она правда работает) — я думал, что не должна. А с TriggerSleepAction не понимаю, какие бы могли быть проблемы.
0
24
9 лет назад
Отредактирован Melissa
0
Предыдущие комментарии не читал.
Насчёт вейта в циклах - его можно использовать при условии, что будет выключен пользовательский контроль, да.
Спецэффекты - Disable User Control
После этого можно юзать циклы с вейтами, но, естественно, не получится ни юнитами управлять, ни в чат писать и т.д.
Можете проверить сами...
Кстати у меня в карте "монополия" передвижение фишки по полям сделано через вейт в цикле.
2
28
9 лет назад
Отредактирован nvc123
2
А с TriggerSleepAction не понимаю, какие бы могли быть проблемы.
если вызывать без обёртки, то есть
call ExecuteFunc("TriggerSleepAction")
то ничего не произойдёт
ибо есть параметры
Кет:
хм, для меня в этом примере интереснее, что работает GetEnumUnit()
при создании потока через Execute в неявном виде передаются параметры основного потока(GetTriggerUnit() и прочее)
это часто юзают для оптимизации триггерных скилов
вместо того чтобы создавать по триггеру на каждый скил создают 1 триггер который по равкоду применённого скила достаёт из хэш таблицы имя функции и запускает её через экзекут
0
24
9 лет назад
0

Новичкам рекомендую не искать всю подноготную про вейты и привыкнуть к таймерам.
0
33
9 лет назад
Отредактирован Кет
0
call ExecuteFunc("TriggerSleepAction")
А, ну это понятно =)
при создании потока через Execute в неявном виде передаются параметры основного потока(GetTriggerUnit() и прочее)
Круто, не знал, полезная штука.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.