Pls suggest how to correct my revive countdown timer

Level 3
Joined
Jul 31, 2011
Messages
39
Sorry if this is too noobish... just had started learning a little more than a week that's why...

  • Revive Hero Timer Show
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Set DeadTimer = (Load (Player number of (Owner of (Triggering unit))) of 0 in (Last created hashtable))
      • Set TempReal = (((Real((Hero level of (Dying unit)))) x Hero_Revive_Time_Factor) + 5.00)
      • Countdown Timer - Create a timer window for DeadTimer with title PlayerNames[0]
      • Countdown Timer - Start DeadTimer as a One-shot timer that will expire in TempReal seconds
      • Set DeadTimerWindow = (Last created timer window)
      • Wait TempReal seconds
      • Countdown Timer - Destroy DeadTimerWindow
But I can't get it...

It would show the window but doesn't show anything in it...

Note: I have a respawn system already... I just want a respawn countdown timer on a timer window to give a hint when I will respawned...

Thank you to all who care to view...
 
Last edited:
Well, you set DeadTimer to something, but I'm pretty sure that the

(Load (Player number of (Owner of (Triggering unit))) of 0 in (Last created hashtable))

returns nothing...

Why?

1)There is no triggering unit in a map init event
2)Its your first action on map init so I'm sure there hasn't been anything saved on that hashtable (you did not even create the hashtable yet)
 
Level 4
Joined
Aug 8, 2011
Messages
84
DeadTimer and TempReal are not set correctly. This is because the trigger is at map initialization, so (Triggering Unit) and (Dying Unit) are referencing nothing.

You should set those variables when the unit dies, instead.
 
Level 3
Joined
Jul 31, 2011
Messages
39
Well, you set DeadTimer to something, but I'm pretty sure that the

(Load (Player number of (Owner of (Triggering unit))) of 0 in (Last created hashtable))

returns nothing...

Why?

1)There is no triggering unit in a map init event
2)Its your first action on map init so I'm sure there hasn't been anything saved on that hashtable (you did not even create the hashtable yet)

Thank you for the response... i will be moving set variables to the 2nd directory... pls help with the correct trigger... I should not be using hashtable, I used load because i can't find just (Player number of (Owner of (Triggering unit)))... thank you again...
 
You haven't saved a timer into the hashtable so there's no use loading... also its not MUI

What you should do:
1)Create 1 timer per player on map init and save it into an array variable using the player number as the index
2)Create a timer window for each timer and save it into an array variable using the player number as the index
3)Make sure the timer windows are hidden
3)Just start the timer and show window when a unit dies via the array vairables
4)Create another trigger which detects when the timers finish so that you can hide the windows again...

Also, there are revive systems on the spells section... it wouldn't hurt to check them out...
 
Level 3
Joined
Jul 31, 2011
Messages
39
You haven't saved a timer into the hashtable so there's no use loading...

Yes sir... I should not be using that hashtable... pls do assist me how can I set only this:
  • Set DeadTimer = (Player number of (Owner of (Triggering unit)))
I can't find it... I'm really a newbie and don't understand a lot... Still in the process of starting how to use this stuffs...


*Ohh... updated with suggestion how to do it... Thank you... I'm gonna try your suggestion...
 
Level 3
Joined
Jul 31, 2011
Messages
39
You see, TIMER is very different from a NUMBER... just take a look at the systems available on the spells section and you'll see how to do it...

right... thank you sir... I'll update what I can manage to do...

*I have created the timer array and timer window array... can you tell me what is suppose to be the value? Seen the spell section... There's revive systems in there, but not revive timer....
 

Bannar

Code Reviewer
Level 26
Joined
Mar 19, 2008
Messages
3,141
Here is my little respawn system made on request. You are free to configure it (enabling respawn only for heroes etc.), credits will be appreciated.

Although, if you want to learn by yourself how to do respawn system, better take Adiktuz advice and go spell section for egzamples (my map is also good egzample :S).
 

Attachments

  • RespawnSystem.w3x
    21.2 KB · Views: 41
Level 3
Joined
Jul 31, 2011
Messages
39
Here is my little respawn system made on request. You are free to configure it (enabling respawn only for heroes etc.), credits will be appreciated.

Although, if you want to learn by yourself how to do respawn system, better take Adiktuz advice and go spell section for egzamples (my map is also good egzample :S).

Sir, there are numerous spells in the spell section... But it is all about the revive or respawn as you've call it... I might want to clarify, have a respawn system already... I just want to have a respawn countdown timer showing on a timer window...
 
Level 3
Joined
Jul 31, 2011
Messages
39
This is an update... made the timer show... but as that I have no LAN or other multi-player options to test with, I don't know if it gets error...

Map Init
  • Events
    • Map initialization
  • Conditions
  • Actions
    • Set Hero_Revive_Time_Factor = 7.00

Revival Timer
  • Events
    • Unit - A unit Dies
  • Conditions
    • ((Dying unit) is A Hero) Equal to True
  • Actions
    • Set Revival_Time = (((Real((Hero level of (Dying unit)))) x Hero_Revive_Time_Factor) + 5.00)
    • Countdown Timer - Start DeadTimer[(Player number of (Owner of (Dying unit)))] as a One-shot timer that will expire in Revival_Time seconds
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • Multiboard_ShowDead Equal to False
      • Then - Actions
        • Countdown Timer - Create a timer window for (Last started timer) with title (Name of (Owner of (Dying unit)))
        • Countdown Timer - Show (Last created timer window) for (Owner of (Dying unit))
        • Set DeathTimerWindow[(Player number of (Owner of (Dying unit)))] = (Last created timer window)
      • Else - Actions
    • Countdown Timer - Create a timer window for (Last started timer) with title Respawn in
    • Countdown Timer - Show (Last created timer window) for (Owner of (Dying unit))
    • Wait Revival_Time seconds
    • Countdown Timer - Destroy (Last created timer window)
 
Level 3
Joined
Jul 31, 2011
Messages
39
Combining Timers and Waits this way is inacurate. Do you need the system to be MUI?

Yes sir... but I do not know how to make one... there should be a 5 players on each of the battling sides and I don't know if it gets an error if multiple heroes are dead...

I admit I am too dumb not to be able to follow Adiktuz suggestions... Maybe a little more time (or more correcly, a lot more time) to learn things...
 

Bannar

Code Reviewer
Level 26
Joined
Mar 19, 2008
Messages
3,141
Following Adiktuz way (I prefer loops here, not the timers):

  • init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Hero_Revive_Time_Factor = 7.00
      • For each (Integer i) from 0 to 4, do (Actions)
        • Loop - Actions
          • Custom script: if udg_t[udg_i] == null then
          • Custom script: set udg_t[udg_i] = CreateTimer()
          • Custom script: endif
          • Trigger - Add to Callback <gen> the event (Time - t[i] expires)
          • Custom script: set udg_w[udg_i] = CreateTimerDialog(udg_t[udg_i])
          • Custom script: call TimerDialogSetTitle(udg_w[udg_i], "Expiration:")
  • DEATH EVERYWHERE
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Set Revival_Time = (((Real((Hero level of (Triggering unit)))) x Hero_Revive_Time_Factor) + 5.00)
      • Custom script: set udg_i = GetPlayerId(GetTriggerPlayer())
      • Custom script: set udg_u[udg_i] = GetTriggerUnit()
      • Custom script: call TimerStart(udg_t[udg_i], udg_Revival_Time, false, null)
      • Custom script: if GetLocalPlayer() == GetTriggerPlayer() then
      • Custom script: call TimerDialogDisplay(udg_w[udg_i], true)
      • Custom script: endif
  • Callback
    • Events
    • Conditions
    • Actions
      • For each (Integer i) from 0 to 4, do (Actions)
        • Loop - Actions
          • Custom script: if udg_t[udg_i] == GetExpiredTimer() then
          • Custom script: call TimerDialogDisplay(udg_w[udg_i], false)
          • Set p = (Center of (Playable map area))
          • Hero - Instantly revive u[i] at p, Show revival graphics
          • Unit - Set life of u[i] to 100.00%
          • Unit - Set mana of u[i] to 100.00%
          • Custom script: call RemoveLocation(udg_p)
          • Custom script: return
          • Custom script: endif
Variables:

i - integer non array variable
w - timer window array variable
t - timer array variable
p - point non array variable
 
Last edited:
Level 3
Joined
Jul 31, 2011
Messages
39
Following Adiktuz way (I prefer loops here, not the timers):

  • init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Hero_Revive_Time_Factor = 7.00
      • For each (Integer i) from 0 to 4, do (Actions)
        • Loop - Actions
          • Custom script: set udg_t[udg_i] = CreateTimer()
          • Trigger - Add to Callback <gen> the event (Time - t[i] expires)
          • Custom script: set udg_w[udg_i] = CreateTimerWindow(udg_t[udg_i])
          • Custom script: call TimerDialogSetTitle(udg_w[udg_i], "Expiration")
  • DEATH EVERYWHERE
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Set Revival_Time = (((Real((Hero level of (Triggering unit)))) x Hero_Revive_Time_Factor) + 5.00)
      • Countdown Timer - Start t[(Player number of (Triggering player))] as a One-shot timer that will expire in Revival_Time seconds
      • Custom script: call TimerDialogDisplay(udg_t[udg_i], true)
  • Callback
    • Events
    • Conditions
    • Actions
      • For each (Integer i) from 0 to 4, do (Actions)
        • Loop - Actions
          • Custom script: if udg_t[udg_i] == GetExpiredTimer() then
          • Custom script: call TimerDialogDisplay(udg_t[udg_i], false)
          • // Revive actions here
          • Custom script: endif
Variables:

i - integer non array variable
w - timer window array variable
t - timer array variable

Thank you so much for simplifying things... i would study the triggers.. and surely learn a lot from this... (Ohh God... custom scripts...)

I also noticed that timer windows in what I created is not closed when multiple heores are dead at the same time because it calls to destroy only the last created window...

Adiktuz thank you so much also...
 
Level 3
Joined
Jul 31, 2011
Messages
39
Custom scripts return errors, so I manually searched for the equivalence... Pls check and correct me...

Revive Timer Init
  • Events
    • Map initialization
  • Conditions
  • Actions
    • Set DeadTimer[(Player number of Player 3 (Teal))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 2 (Blue))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 4 (Purple))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 6 (Orange))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 5 (Yellow))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 8 (Pink))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 9 (Gray))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 10 (Light Blue))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 11 (Dark Green))] = (Last started timer)
    • Set DeadTimer[(Player number of Player 12 (Brown))] = (Last started timer)
    • Set DeadTimerWindows[(Player number of Player 2 (Blue))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 3 (Teal))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 3 (Teal))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 4 (Purple))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 5 (Yellow))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 6 (Orange))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 8 (Pink))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 10 (Light Blue))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 9 (Gray))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 11 (Dark Green))] = (Last created timer window)
    • Set DeadTimerWindows[(Player number of Player 12 (Brown))] = (Last created timer window)
    • For each (Integer A) from 0 to 4, do (Actions)
      • Loop - Actions
        • Set DeadTimer[DeadTimerInteger] = (Last started timer)
        • Trigger - Add to Revive Timer Callback <gen> the event (Time - DeadTimer[DeadTimerInteger] expires)
        • Set DeadTimerWindows[DeadTimerInteger] = (Last created timer window)
        • Countdown Timer - Create a timer window for DeadTimer[DeadTimerInteger] with title Respawn in

Revive Hero Timer
  • Events
    • Unit - A unit Dies
  • Conditions
    • ((Triggering unit) is A Hero) Equal to True
  • Actions
    • Unit Group - Add (Dying unit) to RevivableHeroes
    • Set TempReal = (((Real((Hero level of (Dying unit)))) x Hero_Revive_Time_Factor) + 5.00)
    • If (UberMode_On Equal to True) then do (Set TempReal = (TempReal x 0.50)) else do (Do nothing)
    • Countdown Timer - Start DeadTimer[(Player number of (Triggering player))] as a One-shot timer that will expire in TempReal seconds
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • Multiboard_ShowDeaths Equal to False
      • Then - Actions
        • Countdown Timer - Create a timer window for (Last started timer) with title (Name of (Owner of (Dying unit)))
        • Countdown Timer - Show (Last created timer window) for (Owner of (Dying unit))
        • Set RevivableTimersWindows[(Player number of (Owner of (Dying unit)))] = (Last created timer window)
      • Else - Actions
    • Countdown Timer - Show DeadTimerWindows[DeadTimerInteger] for (Owner of (Dying unit))
Revive Hero Callback
  • Events
  • Conditions
  • Actions
    • For each (Integer A) from 0 to 4, do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Remaining time for DeadTimer[DeadTimerInteger]) Equal to 0.00
          • Then - Actions
            • Countdown Timer - Hide (Last created timer window) for (Owner of (Dying unit))
            • Unit Group - Pick every unit in RevivableHeroes and do (Actions)
              • Loop - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Remaining time for ReviveTimers[(Player number of (Owner of (Picked unit)))]) Less than 1.00
                  • Then - Actions
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • ((Owner of (Picked unit)) is in PlayersSentinel) Equal to True
                      • Then - Actions
                        • Hero - Instantly revive (Picked unit) at (Center of Hero Creation Sentinel <gen>), Show revival graphics
                      • Else - Actions
                        • Hero - Instantly revive (Picked unit) at (Center of Hero Creation Scourge <gen>), Show revival graphics
                  • Else - Actions
          • Else - Actions
 
Level 37
Joined
Mar 6, 2006
Messages
9,242
Here is a test map with HeroRespawn mini-system made with timer usage.

In Callback trigger, the RemoveLocation should be before endif. You could also use
Custom script: return after you find the correct timer so you don't keep on looping. Or use a hashtable to load the unit id without looping at all.

U and t are not that good names forvariables used spesifically only for this system.

t[0] and t[1] are created at map initialization, so you're leaking two timers.


  • RespawnInit
    • Events
      • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
      • Set Revival_Factor = 1.00
      • For each (Integer i) from 0 to 11, do (Actions)
        • Loop - Actions
          • Custom script: if udg_t[udg_i] != null then
          • Game - Display to Player Group - Player 1 (Red) the text: (not null + (String(i)))
          • Custom script: else
          • Game - Display to Player Group - Player 1 (Red) the text: (is null + (String(i)))
          • Custom script: endif
          • Custom script: set udg_t[udg_i] = CreateTimer()
          • Trigger - Add to Callback <gen> the event (Time - t[i] expires)
          • Custom script: set udg_w[udg_i] = CreateTimerDialog(udg_t[udg_i])
          • Custom script: call TimerDialogSetTitle(udg_w[udg_i], "Expiration:")
 

Bannar

Code Reviewer
Level 26
Joined
Mar 19, 2008
Messages
3,141
Why two timers (t[0], t[1]) are created at map init? Another wonderfull war3 issue?

  • Custom script: if udg_t[udg_i] == null then
  • Custom script: set udg_t[udg_i] = CreateTimer()
  • Custom script: endif
Should do the job, yes?

Great idea about return, I never thought it can be used that way in GUI ;<
I won't implement hashtables here since I know most GUI users do 1hash/spell and additional one won't help them at all. U & t can be configured by themselves if they want to - most use superlong variable names anyway.

If you could, check the map again - checking is always appreciated.
 
Level 37
Joined
Mar 6, 2006
Messages
9,242
Why two timers (t[0], t[1]) are created at map init? Another wonderfull war3 issue?

When you create an array in the variable editor, you'll see that some types have initial value. For example timers and dialogs. Those generate code that is executed at map initialization.

JASS:
function InitGlobals takes nothing returns nothing
    local integer i= 0
    set udg_Revival_Factor=0
    set udg_i=0
    set i=0
    loop
        exitwhen ( i > 1 )
        set udg_t[i]=CreateTimer()
        set i=i + 1
    endloop

    set udg_Revival_Time=0
endfunction

You see that it initializes indexes from 0 to initial value. Indeed it is another wonderful GUI issue ;)

  • Custom script: if udg_t[udg_i] == null then
  • Custom script: set udg_t[udg_i] = CreateTimer()
  • Custom script: endif
Should do the job, yes?

Yes.

If you could, check the map again - checking is always appreciated.

Looks ok.
 
Level 3
Joined
Jul 31, 2011
Messages
39
May you review this: Errors on call removelocation

  • Revive Timer Callback
    • Events
    • Conditions
    • Actions
      • For each (Integer DeadTimerInteger) from 0 to 11, do (Actions)
        • Loop - Actions
          • Custom script: if udg_DeadTimer[udg_DeadTimerInteger] == GetExpiredTimer() then
          • Custom script: call TimerDialogDisplay(udg_DeadTimerWindows[udg_DeadTimerInteger], false)
          • For each (Integer DeadTimerInteger) from 0 to 5, do (Actions)
            • Loop - Actions
              • Set DeadReviveLocation[PlayersSentinelCount] = (Center of Hero Creation Sentinel <gen>)
              • Hero - Instantly revive u[DeadTimerInteger] at DeadReviveLocation[PlayersSentinelCount], Show revival graphics
              • Unit - Set life of u[DeadTimerInteger] to 100.00%
              • Unit - Set mana of u[DeadTimerInteger] to 50.00%
              • Custom script: call RemoveLocation(udg_DeadReviveLocation[udg_PlayersSentinelCount])
          • For each (Integer DeadTimerInteger) from 6 to 11, do (Actions)
            • Loop - Actions
              • Set DeadReviveLocation[PlayersScourgeCount] = (Center of Hero Creation Scourge <gen>)
              • Hero - Instantly revive u[DeadTimerInteger] at DeadReviveLocation[PlayersScourgeCount], Show revival graphics
              • Unit - Set life of u[DeadTimerInteger] to 100.00%
              • Unit - Set mana of u[DeadTimerInteger] to 50.00%
              • Custom script: call RemoveLocation(udg_DeadReviveLocation[udg_PlayerScourgeCount])
          • Custom script: return
          • Custom script: endif
Thank you
 
Level 3
Joined
Jul 31, 2011
Messages
39
Sorry for not visiting hive for a while... Typhoon/hurricane rendered the area 3 days out of power supply...

Thank you Maker... that's what I have noticed... point array is not accepted...

One thing I also observed, there's this bug (IDK if you experts call that a bug) I have found while testing the map in multi-player... my hitpoints isn't full... when my dead teammate is called back the "add 100% to hitpoints and 50% mana" effect is also triggered on me when I'm very much alive... only once it happened though...

Revive Timer Init
  • Events
    • Time - Elapsed game time is 2.00 seconds
    • Conditions
    • Actions
      • Set Hero_Revive_Time_Factor = 7.00
      • For each (Integer DeadTimerInteger) from 0 to 11, do (Actions)
        • Loop - Actions
          • Custom script: if udg_DeadTimer[udg_DeadTimerInteger] == null then
          • Custom script: set udg_DeadTimer[udg_DeadTimerInteger] = CreateTimer()
          • Custom script: endif
          • Trigger - Add to Revive Timer Callback <gen> the event (Time - DeadTimer[DeadTimerInteger] expires)
          • Custom script: set udg_DeadTimerWindows[udg_DeadTimerInteger] = CreateTimerDialog(udg_DeadTimer[udg_DeadTimerInteger])
          • Custom script: call TimerDialogSetTitle(udg_DeadTimerWindows[udg_DeadTimerInteger], "Mabyag:")
Revive Timer
  • Events
    • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Unit Group - Add (Dying unit) to RevivableHeroes
      • Set DeadReviveTime = (((Real((Hero level of (Triggering unit)))) x Hero_Revive_Time_Factor) + 1.00)
      • Custom script: set udg_DeadTimerInteger = GetPlayerId(GetTriggerPlayer())
      • Custom script: set udg_u[udg_DeadTimerInteger] = GetTriggerUnit()
      • Custom script: call TimerStart(udg_DeadTimer[udg_DeadTimerInteger], udg_DeadReviveTime, false, null)
      • Custom script: if GetLocalPlayer() == GetTriggerPlayer() then
      • Custom script: call TimerDialogDisplay(udg_DeadTimerWindows[udg_DeadTimerInteger], true)
      • Custom script: endif
Revive Timer Callback
  • Events
    • Conditions
    • Actions
      • For each (Integer DeadTimerInteger) from 0 to 11, do (Actions)
        • Loop - Actions
          • Custom script: if udg_DeadTimer[udg_DeadTimerInteger] == GetExpiredTimer() then
          • Custom script: call TimerDialogDisplay(udg_DeadTimerWindows[udg_DeadTimerInteger], false)
          • For each (Integer DeadTimerInteger) from 0 to 5, do (Actions)
            • Loop - Actions
              • Set DeadReviveLocation = (Center of Hero Creation Sentinel <gen>)
              • Hero - Instantly revive u[DeadTimerInteger] at DeadReviveLocation, Show revival graphics
              • Unit - Set life of u[DeadTimerInteger] to 100.00%
              • Unit - Set mana of u[DeadTimerInteger] to 50.00%
              • Custom script: call RemoveLocation(udg_DeadReviveLocation)
          • For each (Integer DeadTimerInteger) from 6 to 11, do (Actions)
            • Loop - Actions
              • Set DeadReviveLocation = (Center of Hero Creation Scourge <gen>)
              • Hero - Instantly revive u[DeadTimerInteger] at DeadReviveLocation, Show revival graphics
              • Unit - Set life of u[DeadTimerInteger] to 100.00%
              • Unit - Set mana of u[DeadTimerInteger] to 50.00%
              • Custom script: call RemoveLocation(udg_DeadReviveLocation)
          • Custom script: return
          • Custom script: endif
          • Unit Group - Remove u[DeadTimerInteger] from RevivableHeroes
Revive Timer Multiboard
  • Events
    • Time - Every 1.00 seconds of game time
    • Conditions
      • (RevivableHeroes is empty) Equal to False
    • Actions
      • Unit Group - Pick every unit in RevivableHeroes and do (Actions)
        • Loop - Actions
          • Multiboard - Set the text for (Last created multiboard) item in column 2, row Multiboard_Spots[(Player number of (Owner of (Picked unit)))] to (String((Integer((Remaining time for DeadTimer[DeadTimerInteger])))))
          • Multiboard - Set the color for (Last created multiboard) item in column 2, row Multiboard_Spots[(Player number of (Owner of (Picked unit)))] to (20.00%, 50.00%, 80.00%) with 0.00% transparency
 
Level 37
Joined
Mar 6, 2006
Messages
9,242
  • Events
    • Conditions
    • Actions
      • For each (Integer DeadTimerInteger) from 0 to 11, do (Actions)
        • Loop - Actions
          • Custom script: if udg_DeadTimer[udg_DeadTimerInteger] == GetExpiredTimer() then
          • Custom script: call TimerDialogDisplay(udg_DeadTimerWindows[udg_DeadTimerInteger], false)
          • Set DeadReviveLocation = (Center of Hero Creation Sentinel <gen>)
          • Hero - Instantly revive u[DeadTimerInteger] at DeadReviveLocation, Show revival graphics
          • Unit - Set life of u[DeadTimerInteger] to 100.00%
          • Unit - Set mana of u[DeadTimerInteger] to 50.00%
          • Custom script: call RemoveLocation(udg_DeadReviveLocation)
          • Unit Group - Remove u[DeadTimerInteger] from RevivableHeroes
          • Custom script: return
          • Custom script: endif
 
Top