Here: When the hero dies, you must create a timer for it.
Trigger:
Hero Dies
Events
Unit - A unit Dies
Conditions
((Triggering unit) is A Hero) Equal to True
Actions
Unit Group - Add (Dying unit) to Reviving_Heroes_unitgroup
Set temp_real = (10.00 + (2.00 x (Real((Hero level of (Dying unit))))))
Countdown Timer - Start Revive_Timer[(Player number of (Owner of (Dying unit)))] as a One-shot timer that will expire in temp_real seconds
Countdown Timer - Create a timer window for Revive_Timer[(Player number of (Owner of (Dying unit)))] with title Player_Names[(Player number of (Owner of (Dying unit)))]
Set Revive_Timer_Window_AR[(Player number of (Owner of (Dying unit)))] = (Last created timer window)
Player Group - Pick every player in all_players_playergroup and do (Countdown Timer - Show Revive_Timer_Window_AR[(Player number of (Owner of (Dying unit)))] for Player 1 (Red))
When the specific hero timer is up, this trigger checks who is reviving, and what team they're on, then revives them either at team 1 or team 2's base.
Trigger:
Revive Hero Timer
Events
Time - Revive_Timer[1] expires
Time - Revive_Timer[2] expires
Time - Revive_Timer[3] expires
Time - Revive_Timer[4] expires
Time - Revive_Timer[5] expires
Time - Revive_Timer[6] expires
Time - Revive_Timer[7] expires
Time - Revive_Timer[8] expires
Time - Revive_Timer[9] expires
Time - Revive_Timer[10] expires
Conditions
Actions
Unit Group - Pick every unit in Reviving_Heroes_unitgroup and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Integer((Remaining time for Revive_Timer[(Player number of (Owner of (Picked unit)))]))) Less than or equal to 1
((Picked unit) is dead) Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Owner of (Picked unit)) is an ally of Player 11 (Dark Green)) Equal to True
Then - Actions
Set temp_point = (Center of Human Pedestal <gen>)
Hero - Instantly revive (Picked unit) at temp_point, Show revival graphics
Unit Group - Remove (Picked unit) from Reviving_Heroes_unitgroup
Camera - Pan camera for (Owner of (Picked unit)) to temp_point over 2.00 seconds
Player Group - Pick every player in all_players_playergroup and do (Countdown Timer - Hide Revive_Timer_Window_AR[(Player number of (Owner of (Picked unit)))] for (Picked player))
Countdown Timer - Destroy Revive_Timer_Window_AR[(Player number of (Owner of (Picked unit)))]
Point - Remove temp_point
Else - Actions
Set temp_point = (Center of Orc Pedestal <gen>)
Hero - Instantly revive (Picked unit) at temp_point, Show revival graphics
Unit Group - Remove (Picked unit) from Reviving_Heroes_unitgroup
Camera - Pan camera for (Owner of (Picked unit)) to temp_point over 2.00 seconds
Player Group - Pick every player in all_players_playergroup and do (Countdown Timer - Hide Revive_Timer_Window_AR[(Player number of (Owner of (Picked unit)))] for (Picked player))
Countdown Timer - Destroy Revive_Timer_Window_AR[(Player number of (Owner of (Picked unit)))]
Point - Remove temp_point
Else - Actions
Do nothing
There are a lot of variables in these triggers, If anyone has a simpler trigger, please post it instead!
EDIT: This trigger is virtually leakless though. I say virtually because I know it's leakless, but haven't checked it in a long time.
Ghan has said he has fixed this. Monovertex please confirm this fix. This was only a problem with people that had signatures in the upper levels like not the special members but the respected members.