• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

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