Page 1 of 2

Lua Callback Erro

Posted: Thu Jul 20, 2006 3:51 am
by MasterSkywalker
When I start my map it loads fine but when its about to show you the Select Team screen it crashes. This is what I got from the Debug Output:

Message Severity: 2
.\Source\LuaCallbacks_Mission.cpp(3767)
Command Post "cp1" not found

Message Severity: 3
.\Source\LuaHelper.cpp(312)
CallProc failed: (none):0: attempt to perform arithmetic on a nil value
stack traceback:
(none): in function `AddCommandPost'
(none): in function `ScriptPostLoad'

This is my LUA:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;


function ScriptPostLoad()


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "CP1"}
cp2 = CommandPost:New{name = "CP2"}
cp3 = CommandPost:New{name = "CP3"}
cp4 = CommandPost:New{name = "CP4"}
cp4 = CommandPost:New{name = "CP5"}
cp4 = CommandPost:New{name = "CP6"}



--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:AddCommandPost(CP4)
conquest:AddCommandPost(CP5)
conquest:AddCommandPost(CP6)

conquest:Start()

EnableSPHeroRules()

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(30)
SetMaxPlayerFlyHeight (30)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo

ReadDataFile("sound\\nab.lvl;nab2cw")
ReadDataFile("sound\\nab.lvl;nab2gcw")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_inf_ep2_rifleman",
"rep_walk_oneman_atst",
"rep_hover_barcspeeder",
"rep_walk_atxt")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_officer",
"imp_hero_bobafett",
"imp_hero_darthvader",
"imp_walk_atst",
"imp_hover_speederbike")
ReadDataFile("dc:SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_marine",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_droideka",
"cis_hover_aat",
"cis_hover_stap")
ReadDataFile("dc:SIDE\\geo.lvl", "gen_inf_geonosian")
ReadDataFile("dc:SIDE\\gar.lvl", "gar_inf_soldier")


ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")

SetupTeams{
imp = {
team = IMP,
units = 80,
reinforcements = 764,
soldier = { "rep_inf_ep3_rifleman",9, 25},
pilot = { "rep_inf_ep2_rifleman",9, 25},
assault = { "rep_inf_ep3_rocketeer",2, 8},
sniper = { "rep_inf_ep3_sniper",1, 4},
marine = { "rep_inf_ep3_engineer",1, 4},
officer = { "imp_inf_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 89,
reinforcements = 780,
soldier = { "cis_inf_rifleman",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = { "gar_inf_soldier",1, 4},
pilot = { "cis_inf_marine",9, 25},
marine = { "gen_inf_geonosian",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}

SetHeroClass(CIS, "imp_hero_bobafett")
SetHeroClass(REP, "imp_hero_darthvader")


-- 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 = 240
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 22)
SetMemoryPoolSize("EntityFlyer", 30)
SetMemoryPoolSize("EntityHover", 20)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 20)
SetMemoryPoolSize("MountedTurret", 25)
SetMemoryPoolSize("Navigator", 49)
SetMemoryPoolSize("Obstacle", 760)
SetMemoryPoolSize("PathNode", 512)
SetMemoryPoolSize("SoundSpaceRegion", 46)
SetMemoryPoolSize("TreeGridStack", 500)
SetMemoryPoolSize("UnitAgent", 49)
SetMemoryPoolSize("UnitController", 49)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:EOS\\EOS.lvl", "EOS_conquest")
ReadDataFile("dc:EOS\\EOS.lvl", "EOS_conquest")
SetDenseEnvironment("false")




-- Sound

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")

voiceSlow = OpenAudioStream("sound\\global.lvl", "imp_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", "imp_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)

OpenAudioStream("sound\\global.lvl", "gcw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\nab.lvl", "nab2")
OpenAudioStream("sound\\nab.lvl", "nab2")
OpenAudioStream("sound\\nab.lvl", "nab2_emt")

SetBleedingVoiceOver(IMP, IMP, "imp_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(IMP, CIS, "imp_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, IMP, "cis_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, CIS, "cis_off_com_report_us_overwhelmed", 1)

SetOutOfBoundsVoiceOver(2, "cisleaving")
SetOutOfBoundsVoiceOver(1, "impleaving")

SetAmbientMusic(IMP, 1.0, "imp_yav_amb_start", 0,1)
SetAmbientMusic(IMP, 0.8, "imp_yav_amb_middle", 1,1)
SetAmbientMusic(IMP, 0.2, "imp_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(IMP, "imp_yav_amb_victory")
SetDefeatMusic (IMP, "imp_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.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);

AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end
I can't find what I did wrong now, but I really don't want to start from scratch again :(
Thanks in advance,
MS

RE: Lua Callback Erro

Posted: Thu Jul 20, 2006 4:00 am
by Rekubot
I think you have to use the AddUnitClass line to put in your marines and pilots.

Posted: Thu Jul 20, 2006 4:04 am
by RC-1290
And I think the two errors say you haven't added the cp1 in zeroeditor.
Command Post "cp1" not found
allProc failed: (none):0: attempt to perform arithmetic on a nil value
stack traceback:
(none): in function `AddCommandPost'
(none): in function `ScriptPostLoad'

Re: RE: Lua Callback Erro

Posted: Thu Jul 20, 2006 4:57 am
by MasterSkywalker
Rekubot wrote:I think you have to use the AddUnitClass line to put in your marines and pilots.
Nope that isn't it because it worked before. I just added CP5 and CP6 to my lua because I got a Victory in 15 or Defeat in 15 message when I captured or lost 4 cp's instead of 6. I checked zeroeditor but CP1 is in their.

Posted: Thu Jul 20, 2006 5:04 am
by RC-1290
but is it also in the same layer as the other command posts? Do you have all cp's capture reagions and controll regions in the conquest layer?

Posted: Thu Jul 20, 2006 7:23 am
by MasterSkywalker
Yes, they are all in the conquest layer.

Posted: Thu Jul 20, 2006 8:28 am
by Squirrel7Hunter
Try re-adding cp1, somthing may have been deleted without you knowing. And just check all your other cp's to make sure there fine

Posted: Thu Jul 20, 2006 11:40 am
by MasterSkywalker
I re-writed my lua using the lua.bak file in my Scripts folder, but now my units don't want to spawn anymore :S What did I do wrong now? This is my current, working lua:

--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;


function ScriptPostLoad()


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "CP5"}
cp6 = CommandPost:New{name = "CP6"}
cp7 = CommandPost:New{name = "GuardcP"}



--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:AddCommandPost(cp4)
conquest:AddCommandPost(CP5)
conquest:AddCommandPost(CP6)

conquest:Start()

EnableSPHeroRules()

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(70)
SetMaxPlayerFlyHeight (70)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo

ReadDataFile("sound\\nab.lvl;nab2cw")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep2_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper_felucia",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_walk_oneman_atst",
"rep_walk_atxt",
"rep_hover_barcspeeder")
ReadDataFile("dc:SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_marine",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_droideka",
"cis_hover_aat",
"cis_hover_stap",
"gar_hover_gianspeeder")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_officer",
"imp_hero_bobafett",
"imp_hero_darthvader",
"imp_walk_atst",
"imp_hover_speederbike")
ReadDataFile("dc:SIDE\\geo.lvl", "gen_inf_geonosian")
ReadDataFile("dc:SIDE\\gar.lvl", "gar_inf_soldier")


ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")

SetupTeams{
rep = {
team = REP,
units = 44,
reinforcements = 800,
soldier = { "rep_inf_ep3_rifleman",9, 25},
marine = { "rep_inf_ep3_rifleman",4, 12},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper_felucia",1, 4},
officer = { "imp_inf_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 20,
reinforcements = 150,
soldier = { "cis_inf_rifleman",9, 25},
pilot = { "cis_inf_marine",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
marine = { "gen_inf_geonosian",1, 4},
officer = { "gar_inf_soldier",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}

SetHeroClass(CIS, "imp_hero_bobafett")
SetHeroClass(REP, "imp_hero_darthvader")


-- Level Stats
ClearWalkers()
AddWalkerType(0, 3) -- 8 droidekas with 0 leg pairs each
AddWalkerType(1, 3) -- ATSTs
local weaponCnt = 220
SetMemoryPoolSize("Aimer", 50)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 128)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 18)
SetMemoryPoolSize("EntitySoundStream", 1)
SetMemoryPoolSize("EntitySoundStatic", 44)
SetMemoryPoolSize("EntityHover", 4)
SetMemoryPoolSize("MountedTurret", 11)
SetMemoryPoolSize("Navigator", 40)
SetMemoryPoolSize("Obstacle", 450)
SetMemoryPoolSize("PathFollower", 40)
SetMemoryPoolSize("PathNode", 200)
SetMemoryPoolSize("TreeGridStack", 400)
SetMemoryPoolSize("UnitAgent", 40)
SetMemoryPoolSize("UnitController", 40)
SetMemoryPoolSize("Weapon", weaponCnt)
SetMemoryPoolSize("EntityFlyer", 6)

SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:ES3\\ES3.lvl", "ES3_conquest")
ReadDataFile("dc:ES3\\ES3.lvl", "ES3_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", "gcw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\nab.lvl", "nab2")
OpenAudioStream("sound\\nab.lvl", "nab2")
OpenAudioStream("sound\\nab.lvl", "nab2_emt")

SetBleedingVoiceOver(REP, REP, "imp_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, CIS, "imp_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, "impleaving")

SetAmbientMusic(REP, 1.0, "imp_yav_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "imp_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, "imp_yav_amb_victory")
SetDefeatMusic (REP, "imp_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.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);

AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end

Also, my Gian Speeder and AT-XT don't want to spawn, but I set them up the same way as my AT-ST, AT-PT or AAT, and those fighters do spawn.

Posted: Thu Jul 20, 2006 12:24 pm
by Squirrel7Hunter
SetupTeams{
rep = {
team = REP,
units = 44, <-- this number needs to equal the same amount as all the 2nd numbers in () add up too
reinforcements = 800,
soldier = { "rep_inf_ep3_rifleman",9, 25},
marine = { "rep_inf_ep3_rifleman",4, 12},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper_felucia",1, 4},
officer = { "imp_inf_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},



you also have 2 rep_ep3_rifleman in there

--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "CP5"}
cp6 = CommandPost:New{name = "CP6"}
cp7 = CommandPost:New{name = "GuardcP"}--- you forgot to add this below



--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:AddCommandPost(cp4)
conquest:AddCommandPost(CP5)
conquest:AddCommandPost(CP6)

Posted: Thu Jul 20, 2006 12:33 pm
by MasterSkywalker
OH the rep_inf_ep3_rifleman needs to be rep_inf_ep2_rifleman :P I didn't add the GuardCP line below because I thought that when I didn't add it I just need to capture 6 cp's instead of 7 :P I'll try it. The unit count doesn't mather because that worked before to.

Posted: Thu Jul 20, 2006 12:47 pm
by MasterSkywalker
It didn't work counting the second numbers and making your unit count the same as amount you get then :P This is my current lua:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;


function ScriptPostLoad()


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "CP5"}
cp6 = CommandPost:New{name = "CP6"}
cp7 = CommandPost:New{name = "GuardCP"}



--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:AddCommandPost(cp4)
conquest:AddCommandPost(CP5)
conquest:AddCommandPost(CP6)
conquest:AddCommandPost(GuardCP)

conquest:Start()

EnableSPHeroRules()

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(70)
SetMaxPlayerFlyHeight (70)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo

ReadDataFile("sound\\nab.lvl;nab2cw")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep2_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper_felucia",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_walk_oneman_atst",
"rep_walk_atxt",
"rep_hover_barcspeeder")
ReadDataFile("dc:SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_marine",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_droideka",
"cis_hover_aat",
"cis_hover_stap",
"gar_hover_gianspeeder")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_officer",
"imp_hero_bobafett",
"imp_hero_darthvader",
"imp_walk_atst",
"imp_hover_speederbike")
ReadDataFile("dc:SIDE\\geo.lvl", "gen_inf_geonosian")
ReadDataFile("dc:SIDE\\gar.lvl", "gar_inf_soldier")


ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")

SetupTeams{
rep = {
team = REP,
units = 70,
reinforcements = 800,
soldier = { "rep_inf_ep3_rifleman",9, 25},
marine = { "rep_inf_ep2_rifleman",9, 25},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper_felucia",1, 4},
officer = { "imp_inf_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 74,
reinforcements = 875,
soldier = { "cis_inf_rifleman",9, 25},
pilot = { "cis_inf_marine",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
marine = { "gen_inf_geonosian",1, 4},
officer = { "gar_inf_soldier",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}


SetTeamName (3, "jawas")
AddUnitClass (3, "gar_inf_soldier", 10,15)
SetUnitCount (3, 15)
AddAIGoal(3, "Deathmatch", 100)
SetTeamAsEnemy(ATT,3)
SetTeamAsEnemy(3,ATT)
SetTeamAsFriend(DEF,3)
SetTeamAsFriend(3,DEF)

SetHeroClass(CIS, "imp_hero_bobafett")
SetHeroClass(REP, "imp_hero_darthvader")


-- Level Stats
ClearWalkers()
AddWalkerType(0, 3) -- 8 droidekas with 0 leg pairs each
AddWalkerType(1, 3) -- ATSTs
local weaponCnt = 220
SetMemoryPoolSize("Aimer", 50)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 128)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 18)
SetMemoryPoolSize("EntitySoundStream", 1)
SetMemoryPoolSize("EntitySoundStatic", 44)
SetMemoryPoolSize("EntityHover", 4)
SetMemoryPoolSize("MountedTurret", 11)
SetMemoryPoolSize("Navigator", 40)
SetMemoryPoolSize("Obstacle", 450)
SetMemoryPoolSize("PathFollower", 40)
SetMemoryPoolSize("PathNode", 200)
SetMemoryPoolSize("TreeGridStack", 400)
SetMemoryPoolSize("UnitAgent", 40)
SetMemoryPoolSize("UnitController", 40)
SetMemoryPoolSize("Weapon", weaponCnt)
SetMemoryPoolSize("EntityFlyer", 6)

SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:ES3\\ES3.lvl", "ES3_conquest")
ReadDataFile("dc:ES3\\ES3.lvl", "ES3_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", "gcw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\nab.lvl", "nab2")
OpenAudioStream("sound\\nab.lvl", "nab2")
OpenAudioStream("sound\\nab.lvl", "nab2_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.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);

AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end

Posted: Thu Jul 20, 2006 1:35 pm
by Teancum
Squirrel7Hunter wrote:SetupTeams{
rep = {
team = REP,
units = 44, <-- this number needs to equal the same amount as all the 2nd numbers in () add up too
reinforcements = 800,
soldier = { "rep_inf_ep3_rifleman",9, 25},
marine = { "rep_inf_ep3_rifleman",4, 12},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper_felucia",1, 4},
officer = { "imp_inf_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},
Although it's a good idea to do this, technically it doesn't cause that problem.

Usually this is caused by a faulty munge. It's happened to me a few times. What I usually do is move my project to the desktop then create a new one. After that I paste the world folders back into my new project. I usually have to redo the luas (DON'T paste those back) but at least it fixes things.

Posted: Thu Jul 20, 2006 1:37 pm
by Squirrel7Hunter
I forgot to tell you, if you want to add more classes to your side, you have to add this

so for your rep add these

AddUnitClass(REP, "rep_inf_ep2_rifleman",0,0) you can change the zeros

so take out the marine = { "rep_inf_ep3_rifleman",4, 12},
same goes for any other ones you added in rep or cis

and for the cis, add

AddUnitClass(CIS, "cis_inf_marine",0,0)
AddUnitClass(CIS, "geo_inf_agro_geonosian",0,0)

the geo_inf_geonosian doesnt work, but this one does , it has the bulldog, remeber to change it in the Readatafile part

Posted: Thu Jul 20, 2006 1:40 pm
by Teancum
A cool note about setting up your classes like Squirrel said:

AddUnitClass(CIS, "cis_inf_marine",0,0)

The two zeros make it so the AI can't use the unit, but the player still can.

Posted: Thu Jul 20, 2006 1:52 pm
by Hebes24
What do those numbers mean?

Posted: Thu Jul 20, 2006 2:09 pm
by MasterSkywalker
Nope it still doesn't work :(

--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;


function ScriptPostLoad()


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "CP5"}
cp6 = CommandPost:New{name = "CP6"}
cp7 = CommandPost:New{name = "GuardCP"}



--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:AddCommandPost(cp4)
conquest:AddCommandPost(CP5)
conquest:AddCommandPost(CP6)
conquest:AddCommandPost(GuardCP)

conquest:Start()

EnableSPHeroRules()

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(70)
SetMaxPlayerFlyHeight (70)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo

ReadDataFile("sound\\nab.lvl;nab2cw")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep2_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper_felucia",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_walk_oneman_atst",
"rep_walk_atxt",
"rep_hover_barcspeeder")
ReadDataFile("dc:SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_marine",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_droideka",
"cis_hover_aat",
"cis_hover_stap",
"gar_hover_gianspeeder")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_officer",
"imp_hero_bobafett",
"imp_hero_darthvader",
"imp_walk_atst",
"imp_hover_speederbike")
ReadDataFile("dc:SIDE\\geo.lvl", "gen_inf_geonosian")
ReadDataFile("dc:SIDE\\gar.lvl", "gar_inf_soldier")


ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")

SetupTeams{
rep = {
team = REP,
units = 70,
reinforcements = 800,
soldier = { "rep_inf_ep3_rifleman",9, 25},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper_felucia",1, 4},
officer = { "imp_inf_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 74,
reinforcements = 875,
soldier = { "cis_inf_rifleman",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = { "gar_inf_soldier",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}

AddUnitClass(REP, "rep_inf_ep2_rifleman",9,25)
AddUnitClass(CIS, "cis_inf_marine",9,25)
AddUnitClass(CIS, "geo_inf_agro_geonosian",1,4)

SetTeamName (3, "jawas")
AddUnitClass (3, "gar_inf_soldier", 10,15)
SetUnitCount (3, 15)
AddAIGoal(3, "Deathmatch", 100)
SetTeamAsEnemy(ATT,3)
SetTeamAsEnemy(3,ATT)
SetTeamAsFriend(DEF,3)
SetTeamAsFriend(3,DEF)

SetHeroClass(CIS, "imp_hero_bobafett")
SetHeroClass(REP, "imp_hero_darthvader")

Posted: Thu Jul 20, 2006 2:40 pm
by Squirrel7Hunter
run the BF_modtools , the one that gives you an error log for that map , and post it here

Posted: Thu Jul 20, 2006 3:11 pm
by MasterSkywalker
Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(884)
Missing a localized team name for this level, level.ES3.local

Message Severity: 2
.\Source\Team.cpp(439)
level.ES3.locals not localized

Message Severity: 2
.\Source\EntityHover.cpp(3723)
Unable to build EntityHover

Message Severity: 3
.\Source\LuaHelper.cpp(312)
CallProc failed: (none):0: attempt to index a nil value
stack traceback:
(none): in function `AddCommandPost'
(none): in function `ScriptPostLoad'

Posted: Thu Jul 20, 2006 5:32 pm
by [RDH]Zerted
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(CP5)
conquest:AddCommandPost(CP6)
conquest:AddCommandPost(GuardCP)
should be

Code: Select all

conquest:AddCommandPost(cp1) 
conquest:AddCommandPost(cp2) 
conquest:AddCommandPost(cp3) 
conquest:AddCommandPost(cp4) 
conquest:AddCommandPost(cp5) 
conquest:AddCommandPost(cp6) 
conquest:AddCommandPost(cp7) 

Posted: Thu Jul 20, 2006 5:56 pm
by Teancum
[RDH]Zerted is right. Can't believe I missed that. I will explain. What's in orange needs to match the name of your CP in ZeroEdit. The blue needs to each other in the lua.
MasterSkywalker wrote: --This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "CP5"}
cp6 = CommandPost:New{name = "CP6"}
cp7 = CommandPost:New{name = "GuardCP"}



--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:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
conquest:AddCommandPost(cp6)
conquest:AddCommandPost(cp7)