Page 1 of 1

AddUnitClass in ScriptPostLoad, stability online

Posted: Sun Jan 24, 2010 3:06 pm
by MetalcoreRancor
Ok, so I had experimented with the design of introducing more units into any given side based on the premise of AddUnitClass during waves, so to spread out the longevity of that Side's usefullness during my zombie map. After play testing this online, everything was solid, until the wave with the working AddUnitClass line came up at wave 15. It caused my friend who was playing to crash, but I remained fine as the host.

I had AddUnitClass working fine for introducing playable characters to Team 1, but again only the host had access to them, so my friend couldn't play them. (I have a fix for this by instead offering the new characters by Point unlock.)

I have enclosed in the following hidden box the entire wave code, with highlighted section of where the crash took place for online.
Hidden/Spoiler:
---------------------------------------------------------------------------
-- ScriptPostLoad
---------------------------------------------------------------------------
function ScriptPostLoad()
AllowAISpawn(ALL, false)
AllowAISpawn(IMP, false)
--ScriptCB_SetGameRules("campaign")
ScriptCB_SetNumBots(400)
--ScriptCB_GetAutoAssignTeams(false)
-- ForceHumansOntoTeam1()
--ActivateRegion("spawn1")
MapHideCommandPosts()
--EnableSPHeroRules()
EnableSPScriptedHeroes()
-- This is the actual objective setup
TDM = ObjectiveTDM:New{teamATT = 1, teamDEF = 2,
multiplayerScoreLimit = 2000,
textATT = "game.modes.tdm",
textDEF = "game.modes.tdm2", multiplayerRules = true, isCelebrityDeathmatch = true}
TDM:Start()

victorious = OnCharacterDeath(
function(character)
if GetNumTeamMembersAlive(ATT) == 0
then
MissionVictory(DEF)
end
end
)


zombify = OnCharacterDeath(
function(player)
SelectCharacterTeam(player, 2)

end
)


AddAIGoal(1, "Deathmatch", 2000)
AddAIGoal(2, "Deathmatch", 2000)
spawnonce = 0
wavetimer = CreateTimer("waves") --1
SetTimerValue(wavetimer, 20)

wavetimer0 = CreateTimer("waves0") --2
SetTimerValue(wavetimer0, 30)

wavetimer9 = CreateTimer("waves9") --3
SetTimerValue(wavetimer9, 30)

wavetimer1 = CreateTimer("waves1") --4
SetTimerValue(wavetimer1, 30)

wavetimer2 = CreateTimer("waves2") --5
SetTimerValue(wavetimer2, 30)

wavetimer3 = CreateTimer("waves3") --6
SetTimerValue(wavetimer3, 30)

wavetimer4 = CreateTimer("waves4") --7
SetTimerValue(wavetimer4, 40)

wavetimer5 = CreateTimer("waves5") --8
SetTimerValue(wavetimer5, 10)

wavetimer6 = CreateTimer("waves6") --9
SetTimerValue(wavetimer6, 40)

wavetimer7 = CreateTimer("waves7") --10
SetTimerValue(wavetimer7, 60)

wavetimer8 = CreateTimer("waves8") --11
SetTimerValue(wavetimer8, 40)

wavetimer8b = CreateTimer("waves8b") --12
SetTimerValue(wavetimer8b, 40)

wavetimer8c = CreateTimer("waves8c") --13
SetTimerValue(wavetimer8c, 40)

wavetimer8d = CreateTimer("waves8d") --14
SetTimerValue(wavetimer8d, 40)

wavetimer8e = CreateTimer("waves8e") --15
SetTimerValue(wavetimer8e, 40)

wavetimer8f = CreateTimer("waves8f") --16
SetTimerValue(wavetimer8f, 40)

wavetimer77 = CreateTimer("waves77") --17
SetTimerValue(wavetimer77, 40)

wavetimer77b = CreateTimer("waves77b") --18
SetTimerValue(wavetimer77b, 60)

wavetimer77c = CreateTimer("waves77c") --19
SetTimerValue(wavetimer77c, 30)

wavetimer77d = CreateTimer("waves77d") --20
SetTimerValue(wavetimer77d, 30)

wavetimer77e = CreateTimer("waves77e") --21
SetTimerValue(wavetimer77e, 60)

wavetimer77n = CreateTimer("waves77n") --22
SetTimerValue(wavetimer77n, 30)

wavetimer10 = CreateTimer("waves10") --23
SetTimerValue(wavetimer10, 60)

wavetimer11 = CreateTimer("waves11") --24
SetTimerValue(wavetimer11, 25)


wavetimer12 = CreateTimer("waves12") --25
SetTimerValue(wavetimer12, 30)

wavetimer13 = CreateTimer("waves13") --26
SetTimerValue(wavetimer13, 30)

wavetimer14 = CreateTimer("waves14") --27
SetTimerValue(wavetimer14, 30)

wavetimer15 = CreateTimer("waves15") --28
SetTimerValue(wavetimer15, 30)

wavetimer16 = CreateTimer("waves16") --29
SetTimerValue(wavetimer16, 30)

wavetimer17 = CreateTimer("waves17") --30
SetTimerValue(wavetimer17, 30)

wavetimer18 = CreateTimer("waves18") --31
SetTimerValue(wavetimer18, 60)

firstspawn = OnCharacterSpawn(
function(player)
if GetCharacterTeam(player) == 1 and spawnonce == 0 then
ShowObjectiveTextPopup("level.dea1.zombie1", ATT)
StartTimer(wavetimer)
ShowTimer(nil)
ShowTimer(wavetimer)
ShowMessageText("level.dea1.survive")
spawnonce = 1
end
end
)
--1
wtime0 = OnTimerElapse(
function(timer)
StartTimer(wavetimer0)
ShowTimer(nil)
ShowTimer(wavetimer0)
ShowMessageText("level.dea1.zombie")
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
elseif zombiehorde == 3 then
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
end --neu_bldg_luatomb
TombStone1 = GetEntityMatrix("neu_bldg_luatomb1")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone1)

DestroyTimer(timer)
end,
wavetimer
)
--2
wtime9 = OnTimerElapse(
function(timer)
StartTimer(wavetimer9)
ShowTimer(nil)
ShowTimer(wavetimer9)
ShowMessageText("level.dea1.zombie")
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
elseif zombiehorde == 3 then
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
end --neu_bldg_luatomb1
TombStone2 = GetEntityMatrix("neu_bldg_luatomb2")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone2)

DestroyTimer(timer)
end,
wavetimer0
)
--3
wtime1 = OnTimerElapse(
function(timer)
StartTimer(wavetimer1)
ShowTimer(nil)
ShowTimer(wavetimer1)
ShowMessageText("level.dea1.zombie")
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
elseif zombiehorde == 3 then
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
end --neu_bldg_luatomb2
TombStone3 = GetEntityMatrix("neu_bldg_luatomb3")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone3)

DestroyTimer(timer)
end,
wavetimer9
)
--4
wtime2 = OnTimerElapse(
function(timer)
StartTimer(wavetimer2)
ShowTimer(nil)
ShowTimer(wavetimer2)
ShowMessageText("level.dea1.zombie")
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
elseif zombiehorde == 3 then
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
end --neu_bldg_luatomb3
TombStone4 = GetEntityMatrix("neu_bldg_luatomb4")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone4)

DestroyTimer(timer)
end,
wavetimer1
)
--5
wtime3 = OnTimerElapse(
function(timer)
StartTimer(wavetimer3)
ShowTimer(nil)
ShowTimer(wavetimer3)
ShowMessageText("level.dea1.zombie")
AddUnitClass(6, "dum_inf_nomnom", 40, 60)
AddUnitClass(6, "dum_inf_pigzombie", 20, 30)
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
elseif zombiehorde == 3 then
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
end --neu_bldg_luatomb4
TombStone5 = GetEntityMatrix("neu_bldg_luatomb5")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone5)

DestroyTimer(timer)
end,
wavetimer2
)
--6

wtime4 = OnTimerElapse(
function(timer)
StartTimer(wavetimer4)
ShowTimer(nil)
ShowTimer(wavetimer4)
ShowMessageText("level.dea1.zombie")
ShowMessageText("level.dea1.commando")
AddUnitClass(ALL, "hnt_inf_hunter_commando",1,2)
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
elseif zombiehorde == 3 then
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
end --neu_bldg_luatomb5
TombStone6 = GetEntityMatrix("neu_bldg_luatomb6")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone6)
DestroyTimer(timer)
end,
wavetimer3
)

--7
wtime5 = OnTimerElapse(
function(timer)
StartTimer(wavetimer5)
ShowTimer(nil)
ShowTimer(wavetimer5)
ShowMessageText("level.dea1.zombie")
AddUnitClass(6, "dum_inf_juggernaught", 40, 60)
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
elseif zombiehorde == 3 then
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
Ambush("CP4Spawn", 2, 6)
end --neu_bldg_luatomb6
TombStone7 = GetEntityMatrix("neu_bldg_luatomb7")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone7)

DestroyTimer(timer)
end,
wavetimer4
)
--8
wtime6 = OnTimerElapse(
function(timer)
StartTimer(wavetimer6)
ShowTimer(nil)
ShowTimer(wavetimer6)
--ShowObjectiveTextPopup("level.dea1.boss", ATT)
ShowMessageText("level.dea1.anger")
--SetClassProperty("zom_inf_achmed", "MaxHealth", 200000)
Ambush("CP1Spawn", 1, 5)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
DestroyTimer(timer) --neu_bldg_luatomb7
TombStone8 = GetEntityMatrix("neu_bldg_luatomb8")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone8)
end,
wavetimer5
)

--9
wtime7 = OnTimerElapse(
function(timer)
StartTimer(wavetimer7)
ShowTimer(nil)
ShowTimer(wavetimer7)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)--neu_bldg_luatomb8
TombStone9 = GetEntityMatrix("neu_bldg_luatomb9")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone9)

DestroyTimer(timer)
end,
wavetimer6
)

--10
wtime8 = OnTimerElapse(
function(timer)
StartTimer(wavetimer8)
ShowTimer(nil)
ShowTimer(wavetimer8)
ShowMessageText("level.dea1.zombie")
ShowMessageText("level.dea1.melee")
AddUnitClass(ALL, "hnt_inf_hunter_melee",1,2)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3) --neu_bldg_luatomb9
TombStone10 = GetEntityMatrix("neu_bldg_luatomb10")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone10)
DestroyTimer(timer)
end,
wavetimer7
)
--11
wtime8b = OnTimerElapse(
function(timer)
StartTimer(wavetimer8b)
ShowTimer(nil)
ShowTimer(wavetimer8b)
ShowMessageText("level.dea1.zombie")
Ambush("CP1Spawn", 2, 6)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP4Spawn", 3, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3) --neu_bldg_luatomb10
TombStone11 = GetEntityMatrix("neu_bldg_luatomb11")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone11)
DestroyTimer(timer)
end,
wavetimer8
)
--12
wtime8c = OnTimerElapse(
function(timer)
StartTimer(wavetimer8c)
ShowTimer(nil)
ShowTimer(wavetimer8c)
ShowMessageText("level.dea1.zombie")
Ambush("CP1Spawn", 5, 6)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3) --neu_bldg_luatomb11
DestroyTimer(timer)
TombStone12 = GetEntityMatrix("neu_bldg_luatomb12")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone12)
end,
wavetimer8b
)
--13
wtime8d = OnTimerElapse(
function(timer)
StartTimer(wavetimer8d)
ShowTimer(nil)
ShowTimer(wavetimer8d)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3) --neu_bldg_luatomb12
DestroyTimer(timer)
TombStone13 = GetEntityMatrix("neu_bldg_luatomb13")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone13)
end,
wavetimer8c
)
--14
wtime8e = OnTimerElapse(
function(timer)
StartTimer(wavetimer8e)
ShowTimer(nil)
ShowTimer(wavetimer8e)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3) --neu_bldg_luatomb13
DestroyTimer(timer)
TombStone14 = GetEntityMatrix("neu_bldg_luatomb14")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone14)
end,
wavetimer8d
)
--15
wtime8f = OnTimerElapse(
function(timer)
StartTimer(wavetimer8f)
ShowTimer(nil)
ShowTimer(wavetimer8f)
ShowMessageText("level.dea1.zombie")
AddUnitClass (3, "zom_inf_nomnom", 60, 80)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP1Spawn", 2, 3) --neu_bldg_luatomb14
DestroyTimer(timer)
TombStone15 = GetEntityMatrix("neu_bldg_luatomb15")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone15)
end,
wavetimer8e
)

--16
wtime77 = OnTimerElapse(
function(timer)
StartTimer(wavetimer77)
ShowTimer(nil)
ShowTimer(wavetimer77)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3) --neu_bldg_luatomb15
DestroyTimer(timer)
TombStone16 = GetEntityMatrix("neu_bldg_luatomb16")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone16)
end,
wavetimer8f
)
--17
wtime77b = OnTimerElapse(
function(timer)
StartTimer(wavetimer77b)
ShowTimer(nil)
ShowTimer(wavetimer77b)
ShowMessageText("level.dea1.anger")
AddUnitClass(4, "zom_inf_juggernaught", 60, 80)
AddUnitClass(4, "zom_inf_insanezombie", 60, 80)
AddUnitClass(5,"zom_inf_undeadwarrior",1,3)
Ambush("CP1Spawn", 1, 4)
Ambush("CP3Spawn", 1, 4)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP3Spawn", 5, 1) --neu_bldg_luatomb16
DestroyTimer(timer)
TombStone17 = GetEntityMatrix("neu_bldg_luatomb17")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone17)
end,
wavetimer77
)
--18
wtime77c = OnTimerElapse(
function(timer)
StartTimer(wavetimer77c)
ShowTimer(nil)
ShowTimer(wavetimer77c)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3) --neu_bldg_luatomb17
DestroyTimer(timer)
TombStone18 = GetEntityMatrix("neu_bldg_luatomb18")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone18)
end,
wavetimer77b
)
--19
wtime77d = OnTimerElapse(
function(timer)
StartTimer(wavetimer77d)
ShowTimer(nil)
ShowTimer(wavetimer77d)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 4)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3)
Ambush("CP4Spawn", 4, 3) --neu_bldg_luatomb18

DestroyTimer(timer)
TombStone19 = GetEntityMatrix("neu_bldg_luatomb19")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone19)
end,
wavetimer77c
)
--20
wtime77e = OnTimerElapse(
function(timer)
StartTimer(wavetimer77e)
ShowTimer(nil)
ShowTimer(wavetimer77e)
ShowMessageText("level.dea1.anger")
AddUnitClass(5,"zom_inf_BIGRED",1,3)
--SetClassProperty("zom_inf_BIGRED", "MaxHealth", 2500000)
--SetClassProperty("zom_inf_undeadwarrior", "MaxHealth", 2500000)
--SetClassProperty("zom_inf_flesheater", "MaxHealth", 2500000)
zombiehorde = math.random(3)
if zombiehorde == 1 then
Ambush("CP1Spawn", 1, 5)
elseif zombiehorde == 2 then
Ambush("CP1Spawn", 1, 5)
Ambush("CP1Spawn", 5, 4)
elseif zombiehorde == 3 then
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 1, 5)
Ambush("CP1Spawn", 5, 4)
end --neu_bldg_luatomb19
DestroyTimer(timer)
TombStone20 = GetEntityMatrix("neu_bldg_luatomb20")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone20)
end,
wavetimer77d
)
--21
wtime77n = OnTimerElapse(
function(timer)
StartTimer(wavetimer77n)
ShowTimer(nil)
ShowTimer(wavetimer77n)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3)
Ambush("CP1Spawn", 2, 3) --neu_bldg_luatomb20

DestroyTimer(timer)
TombStone21 = GetEntityMatrix("neu_bldg_luatomb21")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone21)
end,
wavetimer77e
)


--22
wtime10 = OnTimerElapse(
function(timer)
StartTimer(wavetimer10)
ShowTimer(nil)
ShowTimer(wavetimer10)
ShowMessageText("level.dea1.zombie")
Ambush("CP4Spawn", 1, 3)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4) --neu_bldg_luatomb21
DestroyTimer(timer)
TombStone22 = GetEntityMatrix("neu_bldg_luatomb22")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone22)
end,
wavetimer77n
)
--23
wtime11 = OnTimerElapse(
function(timer)
StartTimer(wavetimer11)
ShowTimer(nil)
ShowTimer(wavetimer11)
ShowMessageText("level.dea1.anger")
ShowObjectiveTextPopup("level.dea1.boss", ATT)
Ambush("CP2Spawn", 1, 5)
--SetClassProperty("zom_inf_pigzombie", "MaxHealth", 300000)
--SetClassProperty("zom_inf_female", "MaxHealth", 200000)
--SetClassProperty("zom_inf_juggernaught", "MaxHealth", 300000)
--SetClassProperty("zom_inf_nomnom", "MaxHealth", 100000)
--SetClassProperty("zom_inf_martyr", "MaxHealth", 500000)
--SetClassProperty("zom_inf_ghost", "MaxHealth", 100000)
--SetClassProperty("zom_inf_insanezombie", "MaxHealth", 100000)
--SetClassProperty("zom_inf_BIGRED", "MaxHealth", 3000000)
--SetClassProperty("zom_inf_undeadwarrior", "MaxHealth", 3000000)
Ambush("CP1Spawn", 1, 5)
Ambush("CP1Spawn", 5, 3)
Ambush("CP3Spawn", 5, 6)
Ambush("CP3Spawn", 5, 6)
Ambush("CP1Spawn", 5, 6)
Ambush("CP1Spawn", 5, 6)
zombiehorde = math.random(4)
if zombiehorde == 1 then
Ambush("CP1Spawn", 3, 5)

elseif zombiehorde == 2 then
Ambush("CP1Spawn", 2, 5)
Ambush("CP1Spawn", 5, 4)
Ambush("CP2Spawn", 5, 4)
Ambush("CP1Spawn", 5, 3)

elseif zombiehorde == 3 then
Ambush("CP1Spawn", 5, 6)
Ambush("CP1Spawn", 5, 3)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 3)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 6)
Ambush("CP1Spawn", 1, 5)

elseif zombiehorde == 4 then
Ambush("CP1Spawn", 1, 5)
Ambush("CP1Spawn", 5, 6)
Ambush("CP1Spawn", 5, 3)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 3)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 6)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 4)
Ambush("CP1Spawn", 5, 4)


end --neu_bldg_luatomb22
DestroyTimer(timer)
TombStone23 = GetEntityMatrix("neu_bldg_luatomb23")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone23)
end,
wavetimer10
)
--24
wtime12 = OnTimerElapse(
function(timer)
StartTimer(wavetimer12)
ShowTimer(nil)
ShowTimer(wavetimer12)
ShowMessageText("level.dea1.zombie")
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4) --neu_bldg_luatomb23
DestroyTimer(timer)
TombStone24 = GetEntityMatrix("neu_bldg_luatomb24")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone24)
end,
wavetimer11
)

--25
wtime13 = OnTimerElapse(
function(timer)
StartTimer(wavetimer13)
ShowTimer(nil)
ShowTimer(wavetimer13)
ShowMessageText("level.dea1.zombie")
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3)
Ambush("CP4Spawn", 2, 3) --neu_bldg_luatomb24
DestroyTimer(timer)
TombStone25 = GetEntityMatrix("neu_bldg_luatomb25")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone25)
end,
wavetimer12
)
--26
wtime14 = OnTimerElapse(
function(timer)
StartTimer(wavetimer14)
ShowTimer(nil)
ShowTimer(wavetimer14)
ShowMessageText("level.dea1.anger")
Ambush("CP3Spawn", 4, 6)
Ambush("CP3Spawn", 4, 6)
Ambush("CP3Spawn", 4, 6)
Ambush("CP3Spawn", 4, 6)
Ambush("CP3Spawn", 4, 6)
Ambush("CP3Spawn", 4, 6)
Ambush("CP1Spawn", 4, 6)
Ambush("CP5Spawn", 4, 6)
Ambush("CP5Spawn", 4, 6)
Ambush("CP5Spawn", 4, 6)
Ambush("CP5Spawn", 4, 6)
Ambush("CP5Spawn", 4, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP5Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP1Spawn", 2, 6)
Ambush("CP4Spawn", 1, 5)
Ambush("CP1Spawn", 1, 6)
Ambush("CP1Spawn", 1, 6)
Ambush("CP1Spawn", 1, 6)
Ambush("CP4Spawn", 1, 5)
Ambush("CP1Spawn", 1, 6) --neu_bldg_luatomb25
DestroyTimer(timer)
TombStone26 = GetEntityMatrix("neu_bldg_luatomb26")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone26)
end,
wavetimer13
)
--27
wtime15 = OnTimerElapse(
function(timer)
StartTimer(wavetimer15)
ShowTimer(nil)
ShowTimer(wavetimer15)
ShowMessageText("level.dea1.zombie")
AddUnitClass(4,"zom_inf_spawn2", 1, 15)
AddUnitClass (4, "zom_inf_spawn1", 1, 15)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4) --neu_bldg_luatomb26
DestroyTimer(timer)
TombStone27 = GetEntityMatrix("neu_bldg_luatomb27")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone27)
end,
wavetimer14
)
--28
wtime16 = OnTimerElapse(
function(timer)
StartTimer(wavetimer16)
ShowTimer(nil)
ShowTimer(wavetimer16)
ShowMessageText("level.dea1.zombie")
Ambush("CP1Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4) --neu_bldg_luatomb27
DestroyTimer(timer)
TombStone28 = GetEntityMatrix("neu_bldg_luatomb28")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone28)
end,
wavetimer15
)
--29
wtime17 = OnTimerElapse(
function(timer)
StartTimer(wavetimer17)
ShowTimer(nil)
ShowTimer(wavetimer17)
ShowMessageText("level.dea1.zombie")
Ambush("CP1Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP5Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP1Spawn", 2, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4)
Ambush("CP4Spawn", 1, 4) --neu_bldg_luatomb28
DestroyTimer(timer)
TombStone29 = GetEntityMatrix("neu_bldg_luatomb29")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone29)
end,
wavetimer16
)
--30

wtime18 = OnTimerElapse(
function(timer)
StartTimer(wavetimer18)
ShowTimer(nil)
ShowTimer(wavetimer18)
ShowMessageText("level.dea1.anger")
Ambush("CP5Spawn", 1, 5)
Ambush("CP4Spawn", 1, 5)
Ambush("CP3Spawn", 1, 5) --neu_bldg_luatomb29


DestroyTimer(timer)
TombStone30 = GetEntityMatrix("neu_bldg_luatomb30")
AttachEffectToMatrix(CreateEffect("com_sfx_wavecomplete"), TombStone30)
end,
wavetimer17
) --31


As you can see I have other AddUnitClass's throughout, and the main issue of this topic is: is there another method to introduce units that would be stable? I think that the only issue could of been the space between the AddUnitClass and the ( in that line of code, but It is a lot of work to package up and upload to test THAT miniscule of a problem, so again the focus of this topic is discussing a method of bringing in more classes for the ai to spawn with during waves, that would be online friendly.

Re: AddUnitClass in ScriptPostLoad, stability online

Posted: Sun Jan 24, 2010 3:13 pm
by mswf
I don't know how to fix your crash (didn't addunit always crash on MP?), but there may be a better way to do what you want;
In the beginning of your wave mode, make all the characters that you do not want to have playable an insanely high pointstounlock count. Then, if you've come to the wave when you want to unlock one or two units, remove the pointstounlock of the units you want accesible.
It should (guess?) work online.

Re: AddUnitClass in ScriptPostLoad, stability online

Posted: Sun Jan 24, 2010 3:28 pm
by [RDH]Zerted
You could also put that unit on a different local team and only spawn that team after you would have done the AddUnitClass().

I have used AddUnitClass online before. That is how the 'Spawn As Locals' script works. It adds the local units to the main teams and force spawns other players as that unit. The difference between that script and yours is that AddUnitClass() is only run on the server. You might want to try that. Surround your AddUnitClass() line (and move it into an earlier wave for faster testing) with a if ScriptCB_GetAmHost() check.

Re: AddUnitClass in ScriptPostLoad, stability online

Posted: Sun Jan 24, 2010 3:34 pm
by MetalcoreRancor
I will pursue this Zerted, thank you. Any more suggestions on this would be appreciated =)