Demoré en ponerme a trabajar en el sistema porque no tuve tiempo en computadora.
El sistema ya funciona, pero el botón de revivir solo funciona mientras no estés reviviendo el héroe.
Tampoco lo hice para múltiples héroes, ya que el botón de revivir sólo funcionará para el último héroe que muera.
[gui]Heroe muere
Acontecimientos
Unidad - A unit Muere
Condiciones
((Triggering unit) is Un hÃ

roe) Igual a (==) True
Acciones
Set Heroe_Muerto[(Player number of (Triggering player))] = (Triggering unit)
[/gui]
[gui]Instarevive
Acontecimientos
Unidad - A unit Vende una unidad
Condiciones
(Unit-type of (Sold unit)) Igual a (==) Boton de revivir
Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Heroe_Muerto[(Player number of (Triggering player))] No igual a (!=) Ninguna unidad
Entonces: Acciones
Set Punto = (Position of (Triggering unit))
HÃ

roe - Instantly revive Heroe_Muerto[(Player number of (Triggering player))] at Punto, Mostrar revival graphics
Custom script: call RemoveLocation(udg_Punto)
Otros: Acciones
[/gui]
[gui]Iniciar timer
Acontecimientos
Unidad - A unit Inicia resurrección
Condiciones
Acciones
Set NumEntero = (Hero level of (Reviving Hero))
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
NumEntero Mayor que (>) 3
Entonces: Acciones
Set Real = 110.00
Otros: Acciones
Set Real = (35.00 x (Real(NumEntero)))
Cuenta atrás del reloj - Start SR_Timer[(Player number of (Triggering player))] as a Un tiro timer that will expire in (35.00 x (Real((Hero level of (Reviving Hero))))) seconds
Cuenta atrás del reloj - Create a timer window for (Last started timer) with title Revive en:
Cuenta atrás del reloj - Ocultar (Last created timer window)
Cuenta atrás del reloj - Mostrar (Last created timer window) for (Triggering player)
Set SR_TimerWindow[(Player number of (Triggering player))] = (Last created timer window)
[/gui]
[gui]Detener timer
Acontecimientos
Unidad - A unit Cancela resurrección
Unidad - A unit Termina resurrección
Condiciones
Acciones
Cuenta atrás del reloj - Destroy SR_TimerWindow[(Player number of (Triggering player))]
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Vida of Heroe_Muerto[(Player number of (Triggering player))]) Mayor que o igual a (>=) 10.00
Entonces: Acciones
Set Heroe_Muerto[(Player number of (Triggering player))] = Ninguna unidad
Otros: Acciones
[/gui]
También se bugueará si cancelas la resurección clickeando sobre el icono del héroe, esto es un bug del juego, se puede solucionar insertando este sistema
https://www.hiveworkshop.com/threads/herorevivecancelevent-v1-1.293491/#resource-72570
Pero utiliza vJASS y solo funciona si usas newgen
http://www.epicwar.com/maps/275689/