Как повесить на юнита обратный отсчет, как для призванного существа, но в последствии не убить самого юнита? При этом таймер все так же можно было бы остановить.

По идее таймер может встать на паузу, если юнита поставить на паузу. Правда, там и бафф стана может сохраниться, но это не точно.
Ещё есть вариант с отображением не полоски, а цифр оставшегося времени, как-нибудь красиво это замутив. Например, с помощью DGUI создавая панель над панелью характеристик и портрета, где будет указано оставшееся время, либо просто убывающая шкала, ведь в неё не придётся вглядываться.
Всё-таки опиши на конкретном примере, как это должно выглядеть, а не общими словами.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
Там есть функция по остановке такого таймера.
6
Ну она останавливает UnitTimedLife таймеры, но остановить таймер при превращении, что было моим запасным вариантом создания обратного отсчета на юните, она не может.
30
Можете повесить на юнита обычный таймер и делать с ним что хотите)
26
Опиши подробнее задачу. Тебе нужен юнит с превращением, таймер превращения которого можно остановить, либо нужно просто отобразить таймер на юните? Зачем останавливать и при каких условиях это следует делать?
6
А как это сделать?
NazarPunk:
Можете повесить на юнита обычный таймер и делать с ним что хотите)
8gabriel8:
Опиши подробнее задачу. Тебе нужен юнит с превращением, таймер превращения которого можно остановить, либо нужно просто отобразить таймер на юните? Зачем останавливать и при каких условиях это следует делать?
Из перечисленного вами скорее всего третье. Просто отобразить таймер на юните, получить визуальный эффект обратного отсчета. Я пытался достичь этого при помощи UnitAppltTimedLife и превращения. Первое убивало юнита, второе нельзя было остановить.
Останавливать в случае стана, в случае использования на юнита способностей, останавливающих режимы, оставшееся время которых таймер и должен был отображать. В самых разных целях.
Под "остановить" я имел ввиду поставить на паузу, если что.
30
А как это сделать?
// native SaveTimerHandle takes hashtable table, integer parentKey, integer childKey, timer whichTimer returns boolean

set t = CreateTimer()
set u = /*unit*/

call SaveTimerHandle(HT, GetUnitHandle(u), 0, t);

call StartTimer(t, 100500, function myfunc)
6
NazarPunk:
А как это сделать?
// native SaveTimerHandle takes hashtable table, integer parentKey, integer childKey, timer whichTimer returns boolean

set t = CreateTimer()
set u = /*unit*/

call SaveTimerHandle(HT, GetUnitHandle(u), 0, t);

call StartTimer(t, 100500, function myfunc)
Я думал, вы имели ввиду с отображением на юните отсчета)
26
NazarPunk, предлагает просто триггерный таймер, который не отображается визуально.
Можно сделать над юнитом шкалу времени действия, как полоска здоровья.
6
Можно, но, имхо, обратный отсчет можно чекать особо не вглядываясь в него, тк. голубую полоску на черном фоне проще проверять пользователю юнита, не отвлекаясь особо. Часто видел, как такой таймер прикрепляют во время разных "режимов", я подумал, ее не так и сложно реализовать.
8gabriel8:
NazarPunk, предлагает просто триггерный таймер, который не отображается визуально.
Можно сделать над юнитом шкалу времени действия, как полоска здоровья.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.