SсRealm, кстати, только сейчас заметил, схожую тему выше показал EugeAl, но у меня будет еще более точная проверка за счет меньшего слипа + интегрирован сразу же в твой код с твоим таймером, то есть не придется создавать второй параллельный таймер, как если бы ты юзал этот вейт.
По сути тут мы проверяем каждые 0.1 сек, когда там таймер завершится (с помощью call TriggerSleepAction(0.1)), и дальше закрываем окно. Все локально, в одном коде без дополнительных событий. Не сказать, что прямо оптимизированно и точно, но для твоей задачи сгодится. Если надо более точное время - ставишь не 0.1 а 0.01 или 0.05 к примеру.
SсRealm, вот как раз проблема внутри вейта... просто таймер и действие TriggerSleepAction с указанием одного и того-же времени на самом деле могут ждать разное время. Одно привязывается к игровому времени а второе к системному.
К примеру если у тебя карта лагает, время может замедлятся/ ускорятся внутри игры, а вот системное будет стабильное. Помню уже были подобные проблемы со временем.
SсRealm, а еще, тебе же надо дождаться окончания таймера, почему бы вместо вейта не использовать ожидание окончания таймера как УЖЕ сделано в вейте? :D
Без отдельного триггера с событием.
SсRealm, у тебя действия в инициализации запускаются. Из-за этого могут быть сдвиги какие-то. Как то-же окно таймера в инициализации, как помню, не создается.
Поэтому запускай триггер по событию "время прошло". Хотя бы 0.01 сек ставишь и уже не в инициализации запускаешь триггер.
Типа так:
Если что, действия инициализации происходят во время загрузки карты (в конце в основном).
SсRealm, я думаю ты просто запутался в своей реализации, начал использовать разные инструменты, смешав их в одну кучу, и в итоге не получается так как ты хочешь. Может тогда опишешь изначальную цель, что ты хочешь получить (четко и понятно по порядку).
В идеале еще предоставишь карту, как у тебя работает. Можешь вынести весь нужный код в отдельную пустую карту, чтобы мы могли потестить твой случай и сказать в чем ты не прав, ибо по скринам не всегда понятно, что у тебя пошло не так ибо может быть ты не всю информацию нам предоставляешь.
SсRealm, ну с таким подходом, естественно, локальные переменные смысла делать нет, используй глобалки. Ты же не планируешь 100 таймеров одновременно запускать.
wait и таймер могут завершиться немного с разным временем, даже если ты поставил одинаковое число. Лучше делай по событию "таймер истек" действия по закрытию окна, а не через wait.
Так-же мне показалось много странного в коде. Ты сам сможешь объяснить каждую строку, зачем она нужна, вот тут к примеру:
set IvanTimer = CreateTimer()
IvanTimer=bj_lastStartedTimer
Мне кажется тут есть лишние строки кода, но мб чего-то не помню и надо потестить.
Как? Ставишь перед таймер логическую переменную-флажок = false
Другой триггер:
Событие - юнит применил способность
Условие - твоя способность
Действие - твоя переменная = true
Далее если после таймера проверяешь, если переменная == true, значит применил способку. Иначе не применял.
Если способок таких много или юнитов много, то делай через хеш с привязкой к юниту.
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
К примеру если у тебя карта лагает, время может замедлятся/ ускорятся внутри игры, а вот системное будет стабильное. Помню уже были подобные проблемы со временем.
» WarCraft 3 / Переодически подвисает таймер
Без отдельного триггера с событием.
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
Ред. konvan5
» WarCraft 3 / Переодически подвисает таймер
Поэтому запускай триггер по событию "время прошло". Хотя бы 0.01 сек ставишь и уже не в инициализации запускаешь триггер.
Типа так:
» WarCraft 3 / Переодически подвисает таймер
В идеале еще предоставишь карту, как у тебя работает. Можешь вынести весь нужный код в отдельную пустую карту, чтобы мы могли потестить твой случай и сказать в чем ты не прав, ибо по скринам не всегда понятно, что у тебя пошло не так ибо может быть ты не всю информацию нам предоставляешь.
Ред. konvan5
» WarCraft 3 / Переодически подвисает таймер
Ред. konvan5
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
» WarCraft 3 / Переодически подвисает таймер
Так-же мне показалось много странного в коде. Ты сам сможешь объяснить каждую строку, зачем она нужна, вот тут к примеру:
» Администрация XGM / Сломался счетчик уведомлений
У меня +1 очко способностей еще показало теперь, но уровень я не поднимал.
» Администрация XGM / Сломался счетчик уведомлений
» Администрация XGM / Сломался счетчик уведомлений
» Администрация XGM / Сломался счетчик уведомлений
Ред. konvan5
» Администрация XGM / Сломался счетчик уведомлений
» WarCraft 3 / Возможно ли урезать Warcraft 3 Reforged?
Ред. konvan5
» WarCraft 3 / Отслеживание НЕ использования способности
Другой триггер:
Событие - юнит применил способность
Условие - твоя способность
Действие - твоя переменная = true
» WarCraft 3 / Возможно ли урезать Warcraft 3 Reforged?
» WarCraft 3 / Аура дамага
» Администрация XGM / При копировании ника мышкой не учитывается пробел