Scripting Problems (Solved)
Posted: Thu Dec 06, 2012 12:21 pm
by Noobasaurus
I'm trying to make release more and more units in waves, but I'm having problems. I want you to be on the REP or ATT team at the start. Then I want a message to popup and then a timer to start, and when it hits zero you win. Then I want in 90 seconds a second message to popup and the other side can spawn. That all worked perfectly, but then I tried to implement waves and I messed everything up. I tried to make the waves spawn every minute or so with 100 units.
Here's the lua:
Any help is greatly appreciated.
Here's the lua:
Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
--THIS IS THE EASY MODE--
ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("ambush")
ScriptCB_DoFile("ObjectiveTDM")
-- REP Attacking (attacker is always #1)
REP = 1
CIS = 2
-- These variables do not change
ATT = REP
DEF = CIS
function ScriptPostLoad()
AllowAISpawn(CIS, false)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.start", ATT)
--Timer STARTZ--
music01Timer = CreateTimer("music01")
SetTimerValue(music01Timer, 90.0)
StartTimer(music01Timer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
AllowAISpawn(CIS, true)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.timerend", ATT)
wavetimer = CreateTimer("wave")
DestroyTimer(timer)
end,
music01Timer
)
SetTimerValue(wavetimer, 30.0)
StartTimer(wavetimer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 5)
end,
wavetimer
)
SetTimerValue(wavetimer, 30.0)
StartTimer(wavetimer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 5)
end,
wavetimer
)
--Timer for victory startz nao...also known as when the first timer elapses--
music02Timer = CreateTimer("music02Timer")
SetTimerValue(music02Timer, 630.0)
StartTimer(music02Timer)
ShowTimer(music02Timer)
OnTimerElapse(
function(timer)
MissionVictory(ATT)
DestroyTimer(timer)
end,
music02Timer
)
--WAVE AMBUSH CONFIGS--
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 5, 100)
DestroyTimer(timer)
end,
wavetimer
)
--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}
--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:Start()
SetUberMode(1);
EnableSPHeroRules()
AddDeathRegion("death")
AddDeathRegion("death1")
end
---------------------------------------------------------------------------
-- FUNCTION: ScriptInit
-- PURPOSE: This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES: The name, 'ScriptInit' is a chosen convention, and each
-- mission script must contain a version of this function, as
-- it is called from C to start the mission.
---------------------------------------------------------------------------
function ScriptInit()
ReadDataFile("ingame.lvl")
SetMaxFlyHeight(300)
SetMaxPlayerFlyHeight (300)
SetMemoryPoolSize ("ClothData",50)
SetMemoryPoolSize ("Combo",500) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",6500) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",6500) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",6500) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",9500) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",22000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo
ReadDataFile("sound\\kam.lvl;kam1cw")
ReadDataFile("dc:SIDE\\gam.lvl",
"gam_inf_gamorreanguard",
"gam_inf_elite")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_obi",
"imp_inf_ganimedes")
SetupTeams{
cis = {
team = CIS,
units = 350,
reinforcements = -1,
soldier = { "gam_inf_gamorreanguard",0, 50},
},
rep = {
team = REP,
units = 50,
reinforcements = 300,
assault = { "imp_inf_ganimedes",0, 20},
}
}
SetTeamName(5, "gam")
AddUnitClass (5, "gam_inf_gamorreanguard", 50, 100)
AddAIGoal(5, "Deathmatch", 100)
SetUnitCount (5, 100)
SetTeamName(6, "gam")
AddUnitClass (6, "gam_inf_elite", 50, 100)
AddAIGoal(6, "Deathmatch", 100)
SetUnitCount (6, 100)
-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 4) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("SoldierAnimation", 1500)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntityPortableTurret", 1200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 99)
SetMemoryPoolSize("LightFlash", 400)
SetMemoryPoolSize("Navigator", 500)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("UnitController", 500)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 600)
SetMemoryPoolSize("UnitController", 750)
SetMemoryPoolSize("ParticleTransformer::SizeTransf", 1400)
SetMemoryPoolSize("Weapon", weaponCnt)
SetSpawnDelay(0.0, 0.0)
--ReadDataFile("dc:GAA\\GAA.lvl", "GAA_conquest")
ReadDataFile("dc:GAA\\GAA.lvl", "GAA_conquest")
SetDenseEnvironment("false")
-- Sound
SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)
voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)
OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1_emt")
SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, CIS, "rep_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, REP, "cis_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, CIS, "cis_off_com_report_us_overwhelmed", 1)
SetOutOfBoundsVoiceOver(2, "cisleaving")
SetOutOfBoundsVoiceOver(1, "repleaving")
SetAmbientMusic(REP, 1.0, "rep_yav_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_yav_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2, "rep_yav_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_yav_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_yav_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2, "cis_yav_amb_end", 2,1)
SetVictoryMusic(REP, "rep_yav_amb_victory")
SetDefeatMusic (REP, "rep_yav_amb_defeat")
SetVictoryMusic(CIS, "cis_yav_amb_victory")
SetDefeatMusic (CIS, "cis_yav_amb_defeat")
SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--SetSoundEffect("BirdScatter", "birdsFlySeq1")
--SetSoundEffect("WeaponUnableSelect", "com_weap_inf_weaponchange_null")
--SetSoundEffect("WeaponModeUnableSelect", "com_weap_inf_modechange_null")
SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")
--OpeningSateliteShot AddCameraShot(0.763622, 0.012544, -0.645455, 0.010603, 125.539291, 63.603477, -17.511637);
AddCameraShot(-0.198788, -0.005538, -0.979647, 0.027292, 149.981628, 64.837639, -60.428387);
AddCameraShot(0.005205, -0.001663, -0.952560, -0.304300, 139.273087, 99.218147, -62.060764);
end
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
--THIS IS THE EASY MODE--
ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("ambush")
ScriptCB_DoFile("ObjectiveTDM")
-- REP Attacking (attacker is always #1)
REP = 1
CIS = 2
-- These variables do not change
ATT = REP
DEF = CIS
function ScriptPostLoad()
AllowAISpawn(CIS, false)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.start", ATT)
--Timer STARTZ--
music01Timer = CreateTimer("music01")
SetTimerValue(music01Timer, 90.0)
StartTimer(music01Timer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
AllowAISpawn(CIS, true)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.timerend", ATT)
wavetimer = CreateTimer("wave")
DestroyTimer(timer)
end,
music01Timer
)
SetTimerValue(wavetimer, 30.0)
StartTimer(wavetimer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 5)
end,
wavetimer
)
SetTimerValue(wavetimer, 30.0)
StartTimer(wavetimer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 5)
end,
wavetimer
)
--Timer for victory startz nao...also known as when the first timer elapses--
music02Timer = CreateTimer("music02Timer")
SetTimerValue(music02Timer, 630.0)
StartTimer(music02Timer)
ShowTimer(music02Timer)
OnTimerElapse(
function(timer)
MissionVictory(ATT)
DestroyTimer(timer)
end,
music02Timer
)
--WAVE AMBUSH CONFIGS--
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 5, 100)
DestroyTimer(timer)
end,
wavetimer
)
--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}
--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:Start()
SetUberMode(1);
EnableSPHeroRules()
AddDeathRegion("death")
AddDeathRegion("death1")
end
---------------------------------------------------------------------------
-- FUNCTION: ScriptInit
-- PURPOSE: This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES: The name, 'ScriptInit' is a chosen convention, and each
-- mission script must contain a version of this function, as
-- it is called from C to start the mission.
---------------------------------------------------------------------------
function ScriptInit()
ReadDataFile("ingame.lvl")
SetMaxFlyHeight(300)
SetMaxPlayerFlyHeight (300)
SetMemoryPoolSize ("ClothData",50)
SetMemoryPoolSize ("Combo",500) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",6500) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",6500) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",6500) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",9500) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",22000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo
ReadDataFile("sound\\kam.lvl;kam1cw")
ReadDataFile("dc:SIDE\\gam.lvl",
"gam_inf_gamorreanguard",
"gam_inf_elite")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_obi",
"imp_inf_ganimedes")
SetupTeams{
cis = {
team = CIS,
units = 350,
reinforcements = -1,
soldier = { "gam_inf_gamorreanguard",0, 50},
},
rep = {
team = REP,
units = 50,
reinforcements = 300,
assault = { "imp_inf_ganimedes",0, 20},
}
}
SetTeamName(5, "gam")
AddUnitClass (5, "gam_inf_gamorreanguard", 50, 100)
AddAIGoal(5, "Deathmatch", 100)
SetUnitCount (5, 100)
SetTeamName(6, "gam")
AddUnitClass (6, "gam_inf_elite", 50, 100)
AddAIGoal(6, "Deathmatch", 100)
SetUnitCount (6, 100)
-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 4) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("SoldierAnimation", 1500)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntityPortableTurret", 1200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 99)
SetMemoryPoolSize("LightFlash", 400)
SetMemoryPoolSize("Navigator", 500)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("UnitController", 500)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 600)
SetMemoryPoolSize("UnitController", 750)
SetMemoryPoolSize("ParticleTransformer::SizeTransf", 1400)
SetMemoryPoolSize("Weapon", weaponCnt)
SetSpawnDelay(0.0, 0.0)
--ReadDataFile("dc:GAA\\GAA.lvl", "GAA_conquest")
ReadDataFile("dc:GAA\\GAA.lvl", "GAA_conquest")
SetDenseEnvironment("false")
-- Sound
SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)
voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)
OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1_emt")
SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, CIS, "rep_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, REP, "cis_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, CIS, "cis_off_com_report_us_overwhelmed", 1)
SetOutOfBoundsVoiceOver(2, "cisleaving")
SetOutOfBoundsVoiceOver(1, "repleaving")
SetAmbientMusic(REP, 1.0, "rep_yav_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_yav_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2, "rep_yav_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_yav_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_yav_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2, "cis_yav_amb_end", 2,1)
SetVictoryMusic(REP, "rep_yav_amb_victory")
SetDefeatMusic (REP, "rep_yav_amb_defeat")
SetVictoryMusic(CIS, "cis_yav_amb_victory")
SetDefeatMusic (CIS, "cis_yav_amb_defeat")
SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--SetSoundEffect("BirdScatter", "birdsFlySeq1")
--SetSoundEffect("WeaponUnableSelect", "com_weap_inf_weaponchange_null")
--SetSoundEffect("WeaponModeUnableSelect", "com_weap_inf_modechange_null")
SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")
--OpeningSateliteShot AddCameraShot(0.763622, 0.012544, -0.645455, 0.010603, 125.539291, 63.603477, -17.511637);
AddCameraShot(-0.198788, -0.005538, -0.979647, 0.027292, 149.981628, 64.837639, -60.428387);
AddCameraShot(0.005205, -0.001663, -0.952560, -0.304300, 139.273087, 99.218147, -62.060764);
end