Кто знает как отследить срабатывание пассивного навыка перерождение (реинкарнация)? Что бы, например, сделать несколько жизней воину(не герою). А после нескольких срабатываний убирать эту способность у существа.

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

WindMaster, проверяй, что количество жизней < 1, если 0 не работает. Можно было и самостоятельно догадаться, не бог весть какая наука.

Хотя периодическая проверка - априори костыль для такой задачи.
0
23
7 лет назад
0
WindMaster, проще зделать через тригеры и переменной отслеживать количество смертей когда дойдет до определенного значения выключить тригер воскрешающий героя.
2
7
7 лет назад
2
FrigatPlay, в том то и дело, что с героями проблем нет. А мне нужно для рядового юнита.
0
23
7 лет назад
0
WindMaster, через кастом велью попробуй
0
23
7 лет назад
0
есть уже наработка библиотек чтобы оследить события что он был умер с крестом
Detect the instant when a unit starts reincarnating
Event: Game - DeathEvent Becomes Equal to 0.50

Detect when a unit is brought back to life via Reincarnation, Resurrect or Reanimate
Event: Game - DeathEvent Becomes Equal to 2.00

You can differentiate between the three of these as well. If it is summoned, that means it was reanimated. If IsUnitReincarnating[UDex] is true, that means it finished reincarnating. Otherwise, it was simply resurrected.

Detect when a unit is loaded into a transport
Event: Game - CargoEvent Becomes Equal to 1.00
Unit: CargoTransportUnit[UDex] --- The unit who loaded this unit

Detect when a unit is unloaded from a transport
Event: Game - CargoEvent Becomes Equal to 2.00
Unit: CargoTransportUnit[UDex] --- The unit who unloaded this unit

Detect when a unit transforms into a new unit type
Event: Game - UnitTypeEvent Becomes Equal to 1.00
Unit Type: UnitTypeOf[UDex] --- The previous unit type

Detect the instant before a unit is completely removed from the game
Event: Game - UnitIndexEvent Becomes Equal to 2.00

To detect when any unit is created (including pre-placed units)
Event: Game - UnitIndexEvent Becomes Equal to 1.00

To detect when a new unit is summoned (fires after the Create event)
Event: Game - UnitIndexEvent Becomes Equal to 0.50
Unit: SummonerOfUnit[UDex]

To detect when any unit dies (including units created dead)
Event: Game - DeathEvent Becomes Equal to 1.00
Unit: KillerOfUnit[UDex]
0
26
7 лет назад
0
нужно отлавливать то, что у юнита стало 0 хп
и при этом не сработало событие "юнит умер"
значит сработало перерождение
2
7
7 лет назад
2
Extremator, попробовал, работает если юнит уже создан на карте и использовать событие Боевая единица - жизнь. Но если создать юнита в игре и записать в переменную, и каждую секунду проверять равно ли количество жизни юнита(переменной) нулю, то не работает.
pro100master, скачал наработку, посмотрю днем, но если это jass, то я в нем не разбираюсь
0
23
7 лет назад
0
а зачем просто переменную равно 0.50 это даже GUI можно а наработка просто копировать и ставить и забудь о ней
0
30
7 лет назад
0
WindMaster, проверяй, что количество жизней < 1, если 0 не работает. Можно было и самостоятельно догадаться, не бог весть какая наука.

Хотя периодическая проверка - априори костыль для такой задачи.
Принятый ответ
0
32
7 лет назад
0
Во бля вредные советы...\
TriggerRegisterDeathEvent - срабатывает на смерть с юнита с реинкарнацией, а TriggerRegisterUnitEvent( u,t, EVENT_UNIT_DEATH) нет.
Далее думаю несложно понять что у юнита сработало перерождение.
И еще одно, если юзайте мемхак - можно проверить кд абилки при смерти.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.