AddUnitClass in ScriptPostLoad, stability online

In this forum you will find and post information regarding the modding of Star Wars Battlefront 2. DO NOT POST MOD IDEAS/REQUESTS.

Moderator: Moderators

Post Reply
MetalcoreRancor
Brigadier General
Brigadier General
Posts: 628
Joined: Thu Jun 07, 2007 11:13 am
Projects :: No Mod project currently.
Games I'm Playing :: swbf origin
xbox live or psn: No gamertag set

AddUnitClass in ScriptPostLoad, stability online

Post 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.
mswf
Master Bounty Hunter
Master Bounty Hunter
Posts: 1674
Joined: Tue Mar 31, 2009 3:40 pm
Location: Twello, The Netherlands
Contact:

Re: AddUnitClass in ScriptPostLoad, stability online

Post 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.
User avatar
[RDH]Zerted
Gametoast Staff
Gametoast Staff
Posts: 2982
Joined: Sun Feb 26, 2006 7:36 am
Projects :: Bos Wars AI - a RTS game
Games I'm Playing :: SWBF2 and Bos Wars
xbox live or psn: No gamertag set
Location: USA
Contact:

Re: AddUnitClass in ScriptPostLoad, stability online

Post 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.
MetalcoreRancor
Brigadier General
Brigadier General
Posts: 628
Joined: Thu Jun 07, 2007 11:13 am
Projects :: No Mod project currently.
Games I'm Playing :: swbf origin
xbox live or psn: No gamertag set

Re: AddUnitClass in ScriptPostLoad, stability online

Post by MetalcoreRancor »

I will pursue this Zerted, thank you. Any more suggestions on this would be appreciated =)
Post Reply