• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Arena System just works half....and revive "system" just for player 1

Status
Not open for further replies.
Level 9
Joined
Jul 10, 2011
Messages
562
Hey all...

i just tested my map a little bit with a friend but we ran into some problems...

i wont show the triggers of the arena systemhere because it's too long i would say.

my question now is :

would a really really good triggerer help me with this system?

If someone would help me i would send him the triggers or the map itself...

some informations about the revive system:

-it includes 3 types of arena
-it's made from the scratch
-it's completely GUI


now the revive "system"...maybe someone can help there...

the main trigger:

  • revival
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 6, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Conditions
              • ((Triggering unit) is in heaven_unit_group) Equal to True
            • 'THEN'-Actions
              • Set RevivePointHeaven = (Center of revive heaven <gen>)
              • Set ReviveHero[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
              • Countdown-Timer - Start ReviveTimer[(Player number of (Owner of (Triggering unit)))] as a One-Shot timer that will expire in 10.00 seconds
            • 'ELSE'-Actions
      • For each (Integer A) from 7 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Conditions
              • ((Triggering unit) is in hell_unit_group) Equal to True
            • 'THEN'-Actions
              • Set RevivePointHell = (Center of revive hell <gen>)
              • Set ReviveHero[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
              • Countdown-Timer - Start ReviveTimer[(Player number of (Owner of (Triggering unit)))] as a Einmalig timer that will expire in 10.00 seconds
            • 'ELSE'-Actions
and this trigger i did for every player:

  • revival player1
    • Events
      • Time - ReviveTimer[1] expires
    • Conditions
    • Actions
      • Hero - Instantly revive ReviveHero[1] at RevivePointHeaven, Show revival graphics
but it just works for player 1 somehow. my friend was player 7 and he wasnt revived. someone is able to spot the mistake?



thanks in advance

greetz happy


EDIT:

Here the Arena triggers (Pharao_ wanted it ;D ) :

  • arena timer and timer window
    • Events
      • Unit - A unit enters first hero spawn <gen>
    • Conditions
    • Actions
      • Countdown-Timer - Start arena_timer as a One-Shot timer that will expire in 600.00 seconds
      • Countdown-Timer - Create a timer window for arena_timer with title Arena starts in...
      • Set timer_window = (Last created timer window)
      • Countdown-Timer - Show (Last created timer window)
      • Trigger - Turn off (This trigger)
  • set units
    • Events
      • Zeit - Elapsed game time is 5.00 seconds
    • Conditions
    • Actions
      • Set creeps_spawn_arena[1] = Arena Creep Level 1
      • Set creeps_spawn_arena[2] = Arena Creep Level 5
      • Set creeps_spawn_arena[3] = Arena Creep Level 10
      • Set creeps_spawn_arena[4] = Arena Creep Level 15
      • Set creeps_spawn_arena[5] = Arena Creep Level 20
      • Set creeps_spawn_arena[6] = Arena Creep Level 25
  • arena trigger
    • Events
      • Time - arena_timer expires
    • Conditions
    • Actions
      • Countdown-Timer - Pause arena_timer
      • Countdown-Timer - Destroy timer_window
      • Set Arena_IntegerType = (Random integer number between 1 and 3)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'IF'-Conditions
          • Arena_IntegerType Equal to 1
        • 'THEN'-Actions
          • Countdown-Timer - Start CreepsArena_Timer as a One-Shot timer that will expire in 0.10 seconds
          • Set Temp_Group = (Units in (Entire map))
          • Unit Group - Pick every unit in TempGroup and do (Actions)
            • Loop - Actions
              • Unit - Make (Picked unit) Invurnable
              • Unit - Pause (Picked unit)
          • Custom script: call DestroyGroup (udg_Temp_Group)
          • Unit Group - Pick every unit in (Random 1 units from heaven_unit_group) and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Conditions
                  • ((Picked unit) is dead) Equal to True
                • 'THEN'-Actions
                  • Set Temp_Point = (Center of revive heaven <gen>)
                  • Hero - Instantly revive (Picked unit) at Temp_Point, Verbergen revival graphics
                  • Custom script: call RemoveLocation (udg_Temp_Point)
                • 'ELSE'-Actions
              • Set Temp_Point = (Center of edge L port <gen>)
              • Set player_positions[(Player number of (Owner of (Picked unit)))] = (Position of (Picked unit))
              • Unit - Move (Picked unit) instantly to TempPoint
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • Set Arena_Heroes[1] = (Picked unit)
          • Unit Group - Pick every unit in (Random 1 units from hell_unit_group) and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Conditions
                  • ((Picked unit) is dead) Equal True
                • 'THEN'-Actions
                  • Set Temp_Point = (Center of revive hell <gen>)
                  • Hero - Instantly revive (Picked unit) at Temp_Point, Verbergen revival graphics
                  • Custom script: call RemoveLocation (udg_Temp_Point)
                • 'ELSE'-Actions
              • Set Temp_Point = (Center of edge R port <gen>)
              • Set player_positions[(Player number of (Owner of (Picked unit)))] = (Position of (Picked unit))
              • Unit - Move (Picked unit) instantly to TempPoint
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • Set Arena_Heroes[2] = (Picked unit)
          • Player Group - Pick every player in (All players) and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Conditions
                  • (Arena_Heroes[1] belongs to an ally of (Picked player)) Equal to True
                • 'THEN'-Actions
                  • Set Temp_Point = (Position of Arena_Heroes[1])
                  • Camera - Pan camera for (Picked player) to Temp_Point over 0.00 seconds
                  • Custom script: call RemoveLocation (udg_Temp_Point)
                • 'ELSE'-Actions
                  • Set Temp_Point = (Position of Arena_Heroes[2])
                  • Camera - Pan camera for (Picked player) to Temp_Point over 0.00 seconds
                  • Custom script: call RemoveLocation (udg_Temp_Point)
          • Game - Display to (All players) the text: |cffFFB90FArena Mod...
          • Game - Display to (All players) the text: 3...
          • Wait 1.00 seconds
          • Game - Display to (All players) the text: 2...
          • Wait 1.00 seconds
          • Game - Display to (All players) the text: 1...
          • Wait 1.00 seconds
          • Game - Display to (All players) the text: |cffFF3030GO!!!|r
          • Set Creep_Number = (Random integer number between 1 and 20)
          • Set Creep_ArenaNumber = (Random integer number between 1 and 6)
          • Set Temp_Point = (Random point in edge L <gen>)
          • Unit - Create Creep_Number creeps_spawn_arena[Creep_ArenaNumber] for Neutral hostile at TempPoint facing ...
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • Set Temp_Point = (Random point in edge R <gen>)
          • Unit - Create Creep_Number creeps_spawn_arena[Creep_ArenaNumber] for Neutral hostile at TempPoint facing...
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • Set Temp_Group = (Units in edge L <gen>)
          • Unit Group - Pick every unit in Temp_Group and do (Actions)
            • Loop - Actions
              • Unit - Make (Picked unit) vurnable
              • Unit - Unpause (Picked unit)
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • Set Temp_Group = (Units in edge R <gen>)
          • Unit Group - Pick every unit in Temp_Group and do (Actions)
            • Loop - Actions
              • Unit - Make (Picked unit) vurnable
              • Unit - Unpause (Picked unit)
          • Custom script: call RemoveLocation (udg_Temp_Point)
          • Trigger - Turn on arena creeps check <gen>
          • Trigger - Turn off revival <gen>
          • Trigger - Turn off (This trigger)
        • 'ELSE'-Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Conditions
              • Arena_IntegerType Equal 2
            • 'THEN'-Actions
              • Set Arena_IntegerType2 = 0
              • Set Arena_IntegerType3 = 2
              • Countdown-Timer - Start CreepsArena_Timer as a One-Shot timer that will expire in 0.10 seconds
              • Set Temp_Group = (Units in (Entire map))
              • Unit Group - Pick every unit in TempGroup and do (Actions)
                • Loop - Actions
                  • Unit - Make (Picked unit) invurnable
                  • Unit - Pause (Picked unit)
              • Custom script: call DestroyGroup (udg_Temp_Group)
              • For each (Integer A) from 1 to 2, do (Actions)
                • Loop - Actions
                  • Unit Group - Pick every unit in (Random 1 units from heaven_unit_group) and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'IF'-Conditions
                          • ((Picked unit) is dead) Equal to True
                        • 'THEN'-Actions
                          • Set Temp_Point = (Center of revive heaven <gen>)
                          • Hero - Instantly revive (Picked unit) at Temp_Point, Hide revival graphics
                          • Custom script: call RemoveLocation (udg_Temp_Point)
                        • 'ELSE'-Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'IF'-Conditions
                          • (Integer A) Equal to 1
                        • 'THEN'-Actions
                          • Set Temp_Point = (Center of CreepsArenaHeavenPort <gen>)
                        • 'ELSE'-Actions
                          • Set Temp_Point = (Center of CreepsArenaHeavenPort2 <gen>)
                      • Set player_positions[(Player number of (Owner of (Picked unit)))] = (Position of (Picked unit))
                      • Unit - Move (Picked unit) instantly to TempPoint
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                      • Set Arena_Heroes[(Integer A)] = (Picked unit)
              • For each (Integer A) from 3 to 4, do (Actions)
                • Loop - Actions
                  • Unit Group - Pick every unit in (Random 1 units from hell_unit_group) and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'IF'-Conditions
                          • ((Picked unit) is dead) Equal to True
                        • 'THEN'-Actions
                          • Set Temp_Point = (Center of revive hell <gen>)
                          • Hero - Instantly revive (Picked unit) at Temp_Point, Hide revival graphics
                          • Custom script: call RemoveLocation (udg_Temp_Point)
                        • 'ELSE'-Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'IF'-Conditions
                          • (Integer A) Equal to 3
                        • 'THEN'-Actions
                          • Set Temp_Point = (Center of CreepsArenaHellPort <gen>)
                        • 'ELSE'-Actions
                          • Set Temp_Point = (Center of CreepsArenaHellPort2 <gen>)
                      • Set player_positions[(Player number of (Owner of (Picked unit)))] = (Position of (Picked unit))
                      • Unit - Move (Picked unit) instantly to TempPoint
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                      • Set Arena_Heroes[(Integer A)] = (Picked unit)
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Conditions
                      • (Arena_Heroes[1] belongs to an ally of (Picked player)) Equal to True
                    • 'THEN'-Actions
                      • Set Temp_Point = (Position of Arena_Heroes[1])
                      • Camera - Pan camera for (Picked player) to Temp_Point over 0.00 seconds
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                    • 'ELSE'-Actions
                      • Set Temp_Point = (Position of Arena_Heroes[3])
                      • Camera - Pan camera for (Picked player) to Temp_Point over 0.00 seconds
                      • Custom script: call RemoveLocation (udg_Temp_Point)
              • Game - Display to (All players) the text: |cffFFB90FArena Mod...
              • Game - Display to (All players) the text: 3...
              • Wait 1.00 seconds
              • Game - Display to (All players) the text: 2...
              • Wait 1.00 seconds
              • Game - Display to (All players) the text: 1...
              • Wait 1.00 seconds
              • Game - Display to (All players) the text: |cffFF3030GO!!!|r
              • Set Creep_Number = (Random integer number between 10 and 40)
              • Set Creep_ArenaNumber = (Random integer number between 1 and 6)
              • Set Temp_Point = (Random point in CreepsArenaHeaven <gen>)
              • Unit - Create Creep_Number creeps_spawn_arena[Creep_ArenaNumber] for Neutral hostile at TempPoint facing ...
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • Set Temp_Point = (Random point in CreepsArenaHell <gen>)
              • Unit - Create Creep_Number creeps_spawn_arena[Creep_ArenaNumber] for Neutral hostile at TempPoint facing ...
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • Set Temp_Group = (Units in CreepsArenaHeavenTotal <gen>)
              • Unit Group - Pick every unit in Temp_Group and do (Actions)
                • Loop - Actions
                  • Unit - Make (Picked unit) vurnable
                  • Unit - Pause (Picked unit)
              • Custom script: call DestroyGroup (udg_Temp_Group)
              • Set Temp_Group = (Units in CreepsArenaHellTotal <gen>)
              • Unit Group - Pick every unit in Temp_Group and do (Actions)
                • Loop - Actions
                  • Unit - Make (Picked unit) vurnable
                  • Unit - Unpause (Picked unit)
              • Custom script: call DestroyGroup (udg_Temp_Group)
              • Trigger - Turn on arena creeps check <gen>
              • Trigger - Turn off revival <gen>
              • Trigger - Turn off (This trigger)
            • 'ELSE'-Actions
              • Set Arena_IntegerType2 = 0
              • Set Arena_HeroesFight = (Random integer number between 1 and 6)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • Arena_HeroesFight greater than (Number of units in heaven_unit_group)
                      • Arena_HeroesFight Greater than (Number of units in hell_unit_group)
                • 'THEN'-Actions
                  • Set Arena_HeroesFight = 1
                • 'ELSE'-Actions
              • Set Arena_IntegerType3 = Arena_HeroesFight
              • Countdown-Timer - Start CreepsArena_Timer as a One-Shot timer that will expire in 0.10 seconds
              • Set Temp_Group = (Units in (Entire map))
              • Unit Group - Pick every unit in TempGroup and do (Actions)
                • Loop - Actions
                  • Unit - Make (Picked unit) invurnable
                  • Unit - Pause (Picked unit)
              • Custom script: call DestroyGroup (udg_Temp_Group)
              • Unit Group - Pick every unit in (Random Arena_HeroesFight units from heaven_unit_group) and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Conditions
                      • ((Picked unit) is dead) Equal to True
                    • 'THEN'-Actions
                      • Set Temp_Point = (Center of revive heaven <gen>)
                      • Hero - Instantly revive (Picked unit) at Temp_Point, Hide revival graphics
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                    • 'ELSE'-Actions
                  • Set Temp_Point = (Center of HeroArenaPortHeaven <gen>)
                  • Set player_positions[(Player number of (Owner of (Picked unit)))] = (Position of (Picked unit))
                  • Unit - Move (Picked unit) instantly to TempPoint
                  • Custom script: call RemoveLocation (udg_Temp_Point)
                  • Set Arena_IntegerType2 = (Arena_IntegerType2 + 1)
                  • Set Arena_Heroes[Arena_IntegerType2] = (Picked unit)
                  • Unit Group - Add Arena_Heroes[Arena_IntegerType2] to ArenaHeroFightsGroup[1]
              • Unit Group - Pick every unit in (Random Arena_HeroesFight units from hell_unit_group) and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Conditions
                      • ((Picked unit) is dead) Equal to True
                    • 'THEN'-Actions
                      • Set Temp_Point = (Center of revive hell <gen>)
                      • Hero - Instantly revive (Picked unit) at Temp_Point, Verbergen revival graphics
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                    • 'ELSE'-Actions
                  • Set Temp_Point = (Center of HeroArenaPortHell <gen>)
                  • Set player_positions[(Player number of (Owner of (Picked unit)))] = (Position of (Picked unit))
                  • Unit - Move (Picked unit) instantly to TempPoint
                  • Custom script: call RemoveLocation (udg_Temp_Point)
                  • Set Arena_IntegerType3 = (Arena_IntegerType3 + 1)
                  • Set Arena_Heroes[Arena_IntegerType3] = (Picked unit)
                  • Einheitengruppe - Add Arena_Heroes[Arena_IntegerType3] to ArenaHeroFightsGroup[2]
              • Player Group - Pick every player in (All players) and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Conditions
                      • (Arena_Heroes[1] belongs to an ally of (Picked player)) Equal to True
                    • 'THEN'-Actions
                      • Set Temp_Point = (Position of Arena_Heroes[1])
                      • Camera - Pan camera for (Picked player) to Temp_Point over 0.00 seconds
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                    • 'ELSE'-Actions
                      • Set Temp_Point = (Position of Arena_Heroes[Arena_HeroesFight])
                      • Camera - Pan camera for (Picked player) to Temp_Point over 0.00 seconds
                      • Custom script: call RemoveLocation (udg_Temp_Point)
              • Game - Display to (All players) the text: |cffFFB90FArena Mod...
              • Game - Display to (All players) the text: 3...
              • Wait 1.00 seconds
              • Game - Display to (All players) the text: 2...
              • Wait 1.00 seconds
              • Game - Display to (All players) the text: 1...
              • Wait 1.00 seconds
              • Game - Display to (All players) the text: |cffFF3030GO!!!|r
              • Set Temp_Group = (Units in HeroArenaTotal <gen>)
              • Unit Group - Pick every unit in Temp_Group and do (Actions)
                • Loop - Actions
                  • Unit - Make (Picked unit) Vurnable
                  • Unit - Unpause (Picked unit)
              • Custom script: call RemoveLocation (udg_Temp_Point)
              • Trigger - Turn on arena creeps check <gen>
              • Trigger - Turn off revival <gen>
              • Trigger - Turn off (This trigger)
  • finished
    • Events
      • Time - CreepsArena_Timer expires
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'IF'-Conditions
          • And - All (Conditions) are true
            • Conditions
              • heaven_done Equal to True
              • hell_done Equal to True
        • 'THEN'-Actions
          • Trigger - Turn on arena trigger <gen>
          • Trigger - Turn on revival <gen>
          • Trigger - Run port back and unpause <gen> (ignoring conditions)
        • 'ELSE'-Actions
          • Countdown-Timer - Start CreepsArena_Timer as a One-Shot timer that will expire in 0.10 seconds
  • port back and unpause
    • Events
    • Conditions
    • Actions
      • Set Temp_Group = (Units in (Entire map))
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Unit - Make (Picked unit) vurnable
          • Unit - Unpause (Picked unit)
      • Custom script: call DestroyGroup (udg_Temp_Group)
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in (Units in (Entire map)) and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Picked unit) Equal to Arena_Heroes[(Integer A)]
                • 'THEN'-Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Conditions
                      • (Arena_Heroes[(Integer A)] is dead) Equal to True
                    • 'THEN'-Actions
                      • Set Temp_Point = (Center of item fuse over rank 2 til rank 4 <gen>)
                      • Hero - Instantly revive Arena_Heroes[(Integer A)] at Temp_Point, Hide revival graphics
                      • Custom script: call RemoveLocation (udg_Temp_Point)
                    • 'ELSE'-Actions
                  • Unit - Move (Picked unit) instantly to player_positions[(Player number of (Owner of (Picked unit)))]
                  • Set Arena_Heroes[(Integer A)] = No Unit
                • 'ELSE'-Actions
      • Set heaven_done = False
      • Set hell_done = False
      • Countdown-Timer - Start arena_timer as a One-Shot timer that will expire in 600.00 seconds
      • Countdown-Timer - Create a timer window for (Last started timer) with title Arena starts in...
      • Set timer_window = (Last created timer window)
      • Trigger - Turn off arena creeps check <gen>
      • Trigger - Turn off (This trigger)
 
Last edited:
You are using loops for no reason. Remove them, you can just check if a unit is in the respective alliance, when the timer expires.
It works for player 1 only, because array'd timer variables need to be initiated. Go to the Variable Editor and set initial size to 12 or use this trigger:
  • Tri
  • Events
    • Map Initialization
  • Conditions
  • Actions
    • For each (Integer A) from 1 to 12, do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • ((Player((Integer A))) controller) Equal to User
            • ((Player((Integer A))) slot status) Equal to Is playing
          • Then - Actions
            • Custom script: set udg_ReviveTimer[bj_forLoopAIndex] = CreateTimer()
          • Else - Actions
 
Level 9
Joined
Jul 10, 2011
Messages
562
oh thank you man :thumbs_up::thumbs_up::thumbs_up:

good to know that array timers need to be initiated. any other variable needs to be initiated?


and the wanted help for the arena system is still needed ^^
 
Level 9
Joined
Jul 10, 2011
Messages
562
i could....but that would make the post about 5-6 times longer ^^ or even more xD :grin:

and Pharaoh_...why you dont answer my question : any other variable needs to be initiated? ?? :eekani:
 
Level 9
Joined
Jul 10, 2011
Messages
562
the arena trigger fires...the units get paused, invurnable and so on...and its randomly choosing an arena type...but they dont move the heroes to the arena and let them fight....it just finishes the triggers and say that every team won the duel.

i hope this "poor" description helps a bit....if you need the map to see the problem yourself ill send it tomorrow. i have to go to bed now...have to work again tomorrow -.-
 
Status
Not open for further replies.
Top