• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!

Request for Spawning system

Status
Not open for further replies.
Level 15
Joined
Jul 9, 2008
Messages
1,552
im after a Spawning system for my hero siege map that is easy to change the units that are spawned and how many of them there are.
the hero siege is created for 8 players and there is 2 lanes if only 1/2/3/4 players are playing only one lane spawns units

i also need somthing so i can stop the spawns for spiecal events and turn them back on after the events

There are 30 waves every 5th wave a boss is spawned for both lanes(depending if there is enough players) and the next level will start with new units and a longer wait from what it normaly is between waves before the next level starts

so it looks like this
wave 1/2/3/5(boss) = level 1
wave 6/7/8/9/10(boss) = level 2
wave 11/12/13/14/15(boss) = level 3
wave 16/17/18/19/20(boss)= level 4
wave 21/22/23/24/25(boss) = level 5
Wave 26/27/28/28/30(boss) = level 6

the next level wont start unit the boss is killed

if you need any more info please ask
 
Last edited:
Level 15
Joined
Jul 9, 2008
Messages
1,552
well since i still dont have a spawning system from door i gave it a go my self

can some 1 look at these triggers and see if they are sufficent

the main is very long so i put it in hidden tags
  • Main
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Wave_count Equal to 0
        • Then - Actions
          • Set Wave_count = (Wave_count + 1)
          • Set Wave_unit_number[1] = (2 + (3 x number_of_players))
          • Set Wave_unit_number[2] = (1 + (2 x number_of_players))
          • Set temp_point = (Center of spawn point 1 <gen>)
          • Unit - Create Wave_unit_number[1] Wave_units[1] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
          • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
          • Custom script: call RemoveLocation (udg_temp_point)
          • Set temp_point = (Center of spawn point 2 <gen>)
          • Set Attack_points = (Center of spawn point 1 Copy <gen>)
          • Unit - Create Wave_unit_number[1] Wave_units[1] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
          • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
          • Custom script: call RemoveLocation (udg_temp_point)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Wave_count Equal to 1
            • Then - Actions
              • Set Wave_count = (Wave_count + 1)
              • Set Wave_unit_number[1] = (5 + (4 x number_of_players))
              • Set Wave_unit_number[2] = (3 + (3 x number_of_players))
              • Set temp_point = (Center of spawn point 1 <gen>)
              • Unit - Create Wave_unit_number[1] Wave_units[1] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
              • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
              • Custom script: call RemoveLocation (udg_temp_point)
              • Set temp_point = (Center of spawn point 2 <gen>)
              • Set Attack_points = (Center of spawn point 1 Copy <gen>)
              • Unit - Create Wave_unit_number[1] Wave_units[1] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
              • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
              • Custom script: call RemoveLocation (udg_temp_point)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Wave_count Equal to 2
                • Then - Actions
                  • Set Wave_count = (Wave_count + 1)
                  • Set Wave_unit_number[1] = (2 + (2 x number_of_players))
                  • Set Wave_unit_number[2] = (3 + (2 x number_of_players))
                  • Set Wave_unit_number[3] = (2 + (2 x number_of_players))
                  • Set temp_point = (Center of spawn point 1 <gen>)
                  • Unit - Create Wave_unit_number[1] Wave_units[1] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                  • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                  • Unit - Create Wave_unit_number[3] Wave_units[3] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                  • Unit - Order (Last created unit) to Attack-Move To Attack_points
                  • Custom script: call RemoveLocation (udg_temp_point)
                  • Set temp_point = (Center of spawn point 2 <gen>)
                  • Set Attack_points = (Center of spawn point 1 Copy <gen>)
                  • Unit - Create Wave_unit_number[1] Wave_units[1] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                  • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                  • Unit - Create Wave_unit_number[3] Wave_units[3] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                  • Unit - Order (Last created unit) to Attack-Move To Attack_points
                  • Custom script: call RemoveLocation (udg_temp_point)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Wave_count Equal to 3
                    • Then - Actions
                      • Set Wave_count = (Wave_count + 1)
                      • Set Wave_unit_number[2] = (3 + (2 x number_of_players))
                      • Set Wave_unit_number[3] = (2 + (2 x number_of_players))
                      • Set Wave_unit_number[4] = (2 + (1 x number_of_players))
                      • Set temp_point = (Center of spawn point 1 <gen>)
                      • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                      • Unit - Create Wave_unit_number[3] Wave_units[3] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                      • Unit - Create Wave_unit_number[4] Wave_units[4] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                      • Custom script: call RemoveLocation (udg_temp_point)
                      • Set temp_point = (Center of spawn point 2 <gen>)
                      • Set Attack_points = (Center of spawn point 1 Copy <gen>)
                      • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                      • Unit - Create Wave_unit_number[3] Wave_units[3] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                      • Unit - Create Wave_unit_number[4] Wave_units[4] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                      • Custom script: call RemoveLocation (udg_temp_point)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Wave_count Equal to 4
                        • Then - Actions
                          • -------- Boss Triggers --------
                          • -------- Boss Triggers --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Wave_Level Equal to 0
                            • Then - Actions
                              • Trigger - Turn on Skeleton boss spawns <gen>
                            • Else - Actions
                          • -------- Boss Triggers --------
                          • -------- Boss Triggers --------
                          • Trigger - Turn off (This trigger)
                          • Multiboard - Set the text for (Last created multiboard) item in column 3, row 12 to (coulors[11] + Bosses Death)
                          • Set Wave_count = 0
                          • Set Wave_unit_number[2] = (3 + (2 x number_of_players))
                          • Set Wave_unit_number[3] = (2 + (2 x number_of_players))
                          • Set Wave_unit_number[4] = (2 + (1 x number_of_players))
                          • Set temp_point = (Center of spawn point 1 <gen>)
                          • Unit - Create 1 Wave_units[5] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Set Wave_boss[1] = (Last created unit)
                          • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Unit - Create Wave_unit_number[3] Wave_units[3] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Unit - Create Wave_unit_number[4] Wave_units[4] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Custom script: call RemoveLocation (udg_temp_point)
                          • Set temp_point = (Center of spawn point 2 <gen>)
                          • Set Attack_points = (Center of spawn point 1 Copy <gen>)
                          • Unit - Create 1 Wave_units[5] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Set Wave_boss[2] = (Last created unit)
                          • Unit - Create Wave_unit_number[2] Wave_units[2] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Unit - Create Wave_unit_number[3] Wave_units[3] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Unit - Create Wave_unit_number[4] Wave_units[4] for Player 11 (Dark Green) at temp_point facing Default building facing degrees
                          • Set Wave_Level = (Wave_Level + 1)
                          • Custom script: call RemoveLocation (udg_temp_point)
                        • Else - Actions

the system works with my multiboard clock so these are also main triggers
  • spawn clock 2
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Wave_countdown[2] Equal to 0
        • Then - Actions
          • Set Wave_count = 0
          • Trigger - Turn off (This trigger)
          • Trigger - Turn on spawn clock <gen>
          • Trigger - Run Unit set up <gen> (checking conditions)
          • Trigger - Run Main <gen> (checking conditions)
          • Set Wave_countdown[2] = 0
        • Else - Actions
          • Set Wave_countdown[2] = (Wave_countdown[2] - 1)
          • Multiboard - Set the text for (Last created multiboard) item in column 3, row 12 to (coulors[11] + (String(Wave_countdown[2])))
  • spawn clock
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Wave_countdown[1] Equal to 0
        • Then - Actions
          • Trigger - Run Main <gen> (checking conditions)
          • Set Wave_countdown[1] = 45
        • Else - Actions
          • Set Wave_countdown[1] = (Wave_countdown[1] - 1)
          • Multiboard - Set the text for (Last created multiboard) item in column 3, row 12 to (coulors[11] + (String(Wave_countdown[1])))
my unit set up and boss deaths and units attack move
  • Unit set up
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Wave_Level Equal to 0
        • Then - Actions
          • Set Wave_units[1] = Skeleton Warrior (level one)
          • Set Wave_units[2] = Skeleton Archer
          • Set Wave_units[3] = Giant Skeleton Warrior
          • Set Wave_units[4] = Skeletal Mage
          • Set Wave_units[5] = Lord of the skeletons
        • Else - Actions
  • ---ect...ect----
  • Boss Deaths
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) Equal to Wave_boss[1]) or ((Triggering unit) Equal to Wave_boss[2])
    • Actions
      • Set Wave_boss_Death = (Wave_boss_Death + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Wave_boss_Death Equal to 2
        • Then - Actions
          • Set Wave_countdown[2] = 100
          • Trigger - Turn on spawn clock 2 <gen>
        • Else - Actions
i have this for each lane
  • main attack
    • Events
      • Unit - A unit enters spawn point 1 <gen>
    • Conditions
      • ((Triggering unit) belongs to an ally of Player 11 (Dark Green)) Equal to True
    • Actions
      • Set Attack_points = (Center of spawn point 2 Copy <gen>)
      • Unit - Order (Triggering unit) to Attack-Move To Attack_points
      • Custom script: call RemoveLocation (udg_Attack_points)
 
Status
Not open for further replies.
Top