• 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.

Hero Survival

Status
Not open for further replies.
Level 6
Joined
Sep 19, 2007
Messages
215
Well me and my friend are making a Hero survival map like enfos but unique, and with brand new heroes. But the spawn trigger we have sucks, i was wondering if someone can make us a spawn trigger, heres what it would need 2 be like.


starts waves in 60 seconds of start.
spawns 100 units on each side of spawns.
after 10 seconds after the last unit gone out of wave, next wave starts,
and every 10 levels the waves pause for boss round. after he dies it then resumes tell the next 10 levels tell boss again.

And with timer..
 
Level 6
Joined
Oct 31, 2008
Messages
229
I dont think you need to use arrays.
Make a trigger that after 50 seconds of game time starts another trigger which every 10 sec spawns the units. Every 100 secs of game, it will spawn 100 boss and kill the 99 of them. simple
 
Level 16
Joined
Mar 3, 2006
Messages
1,564
Sorry for the delay.

Its a lot of triggers, but here you are:


  • Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Visibility - Create an initially Enabled visibility modifier for Player 1 (Red) emitting Visibility across (Playable map area)
      • Set Enemy = Player 12 (Brown)
      • Set MaxLevel = 90
      • Set BossLevel = 10
      • Set BossEveryLevel = 10
      • Trigger - Run Level and Spawns Setup <gen> (checking conditions)
  • Level and Spawns Setup
    • Events
    • Conditions
    • Actions
      • -------- LevelDelay[Index] sets the amount of time before every level, if you want a constant time for all levels then modify the timer expiration duration to a cinstant real number in the 'Next Round' trigger. --------
      • Set Centre = (Center of Centre <gen>)
      • Set SpawnRegion[1] = Spawn1 <gen>
      • Set SpawnRegion[2] = Spawn2 <gen>
      • Set SpawnRegion[3] = Spawn3 <gen>
      • Set SpawnRegion[4] = Spawn4 <gen>
      • -------- This is important because ZERO value means that the 100 monster will spawn one at a time --------
      • Set SpawnFrequency = 0.05
      • -------- NumberOfSpawnPerLevel will set the number of spawned unit from each side --------
      • Set NumberOfSpawnPerLevel = 1
      • -------- Level 1 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelSpawn[((L x MaxLevel) + T)] = Dark Troll
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Dark Troll Shadow Priest
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Dark Troll Trapper
      • Set NumberOfTypes[L] = T
      • -------- You can add the type you want just remeber to add (Set T = T + 1) before setting a new type --------
      • -------- Level 2 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Dragon Whelp
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Drake
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Dragon
      • Set NumberOfTypes[L] = T
      • -------- Level 3 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Spider
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Spitting Spider
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Giant Spider
      • Set NumberOfTypes[L] = T
      • -------- Level 4 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Trickster
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Shadowdancer
      • Set NumberOfTypes[L] = T
      • -------- Level 5 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Trickster
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Shadowdancer
      • Set NumberOfTypes[L] = T
      • -------- Level 6 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Trickster
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Shadowdancer
      • Set NumberOfTypes[L] = T
      • -------- Level 7 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Dragon Whelp
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Drake
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Dragon
      • Set NumberOfTypes[L] = T
      • -------- Level 8 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Dragon Whelp
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Drake
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Green Dragon
      • Set NumberOfTypes[L] = T
      • -------- Level 9 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Trickster
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Shadowdancer
      • Set NumberOfTypes[L] = T
      • -------- Level 10 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Trickster
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Satyr Shadowdancer
      • Set NumberOfTypes[L] = T
      • -------- Level 11 --------
      • Set L = (L + 1)
      • Set T = 1
      • Set LevelDelay[L] = 30.00
      • Set LevelDelay[L] = 5.00
      • Set LevelSpawn[((L x MaxLevel) + T)] = Lightning Lizard
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Thunder Lizard
      • Set T = (T + 1)
      • Set LevelSpawn[((L x MaxLevel) + T)] = Storm Wyrm
      • Set NumberOfTypes[L] = T
      • -------- You will set the rest of the levels like that till the final level --------
      • -------- Bosses Setup --------
      • -------- 1st Boss --------
      • Set L = 10
      • Set BossLevelDelay[L] = 35.00
      • Set BossLevelDelay[L] = 10.00
      • Set Boss[L] = Mannoroth
      • -------- 2nd Boss --------
      • Set L = (L + BossEveryLevel)
      • Set BossLevelDelay[L] = 35.00
      • Set Boss[L] = Magtheridon
      • -------- And so on ... --------
  • Initial Time
    • Events
      • Time - Elapsed game time is 60.00 seconds
      • Time - Elapsed game time is 5.00 seconds
    • Conditions
    • Actions
      • Set Level = 1
      • Countdown Timer - Start NormalSpawnTimer as a Repeating timer that will expire in SpawnFrequency seconds
  • New Level Setup
    • Events
      • Time - LevelTimer expires
    • Conditions
    • Actions
      • Countdown Timer - Destroy TWindow
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • NextLevelIsBoss Equal to True
        • Then - Actions
          • Set NextLevelIsBoss = False
          • Trigger - Run Boss Spawn <gen> (checking conditions)
        • Else - Actions
          • If (Level Equal to BossLevel) then do (Set NextLevelIsBoss = True) else do (Do nothing)
          • Set N = 0
          • Countdown Timer - Start NormalSpawnTimer as a Repeating timer that will expire in SpawnFrequency seconds
  • Normal Spawn
    • Events
      • Time - NormalSpawnTimer expires
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • N Less than NumberOfSpawnPerLevel
        • Then - Actions
          • Set Spawning = True
          • Set N = (N + 1)
          • Game - Display to (All players) the text: (String(N))
          • For each (Integer B) from 1 to 4, do (Actions)
            • Loop - Actions
              • Set TempLoc = (Random point in SpawnRegion[(Integer B)])
              • Unit - Create 1 LevelSpawn[((Level x MaxLevel) + (Random integer number between 1 and NumberOfTypes[Level]))] for Enemy at TempLoc facing Centre
              • Unit - Order (Last created unit) to Attack-Move To Centre
              • Custom script: call RemoveLocation(udg_TempLoc)
        • Else - Actions
          • Set Spawning = False
          • Countdown Timer - Pause NormalSpawnTimer
  • Boss Spawn
    • Events
    • Conditions
    • Actions
      • Set Spawning = True
      • For each (Integer B) from 1 to 4, do (Actions)
        • Loop - Actions
          • Set TempLoc = (Random point in SpawnRegion[(Integer B)])
          • Unit - Create 1 Boss[Level] for Enemy at TempLoc facing Centre
          • Unit - Order (Last created unit) to Attack-Move To Centre
          • Custom script: call RemoveLocation(udg_TempLoc)
      • Set Spawning = False
  • Next Round
    • Events
      • Player - Player 12 (Brown)'s Food used becomes Less than or equal to 0.00
    • Conditions
      • Spawning Equal to False
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Level Equal to BossLevel
        • Then - Actions
          • Set BossLevel = (BossLevel + BossEveryLevel)
          • Countdown Timer - Start LevelTimer as a One-shot timer that will expire in BossLevelDelay[Level] seconds
          • Countdown Timer - Create a timer window for (Last started timer) with title Boss Level time rem...
          • Set TWindow = (Last created timer window)
        • Else - Actions
          • Set Level = (Level + 1)
          • Countdown Timer - Start LevelTimer as a One-shot timer that will expire in LevelDelay[Level] seconds
          • Countdown Timer - Create a timer window for (Last started timer) with title (Level + ((String(Level)) + time remaining))
          • Set TWindow = (Last created timer window)


NOTE: You may find a duplicated events and action one of them is disabled for testing purposes, but disabled function can't appear disabled in the [TRIGGER][/TRIGGER]
 
Level 6
Joined
Sep 19, 2007
Messages
215
Ya tried to put it in my map and it just stops working after level 2 i was wonder if i can send u the map in pm and u fix it properly
 
Level 16
Joined
Mar 3, 2006
Messages
1,564
Ya tried to put it in my map and it just stops working after level 2 i was wonder if i can send u the map in pm and u fix it properly

Thats impossible because I tried it and it worked till level 11, maybe you didn't increase the array size of the variable LevelSpawn, make sure the array size at maximum (8192) because I am using 2d array.
 
Status
Not open for further replies.
Top