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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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, предлагает просто триггерный таймер, который не отображается визуально.
Можно сделать над юнитом шкалу времени действия, как полоска здоровья.
26
По идее таймер может встать на паузу, если юнита поставить на паузу. Правда, там и бафф стана может сохраниться, но это не точно.
Ещё есть вариант с отображением не полоски, а цифр оставшегося времени, как-нибудь красиво это замутив. Например, с помощью DGUI создавая панель над панелью характеристик и портрета, где будет указано оставшееся время, либо просто убывающая шкала, ведь в неё не придётся вглядываться.
Всё-таки опиши на конкретном примере, как это должно выглядеть, а не общими словами.
Принятый ответ
30
Например, с помощью DGUI
Дгуи со свободной камерой не работает, что не всегда удобно. Полоски проще.
26
Можно ещё цвет юнита менять, например, от насыщенного красного до нормального)
6
8gabriel8:
По идее таймер может встать на паузу, если юнита поставить на паузу. Правда, там и бафф стана может сохраниться, но это не точно.
Ещё есть вариант с отображением не полоски, а цифр оставшегося времени, как-нибудь красиво это замутив. Например, с помощью DGUI создавая панель над панелью характеристик и портрета, где будет указано оставшееся время, либо просто убывающая шкала, ведь в неё не придётся вглядываться.
Всё-таки опиши на конкретном примере, как это должно выглядеть, а не общими словами.
Все расписывать не буду, т.к. весьма долго, но в один момент герой входит в "режим", бафающий ег по хак-кам(каким еще не придумал), длится он, допустим, 9 сек(тоже не придумал), все это время вместо полоски опыта идет обратный отсчет. Затем на юнита используют способность, продлевающую длительность подобных "режимов" на 2 секунды, что на деле просто останавливает полоску таймера на 2 секунды.
26
Упоминал, что играл в карты, где подобное было реализовано. Это какие, например?
6
Ну, я скорее имел ввиду режим на UnitTimedLife, чем возможность паузы таймера. В карте "ChoiceBattle" останавливался таймер, но теперь, когда вы сказали про PauseUnit, я вспомнил, что в основном замечал остановку таймера во время паузы юнита. Я решил, что создатель сам останавливает таймер, но, похоже, это происходит только в паузах из-за упомянутой вами механики.
Да и режимы были реализованы на превращении, скорее всего.
8gabriel8:
Упоминал, что играл в карты, где подобное было реализовано. Это какие, например?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.