Local side not spawning!!!

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
Master Fionwë
Rebel Colonel
Rebel Colonel
Posts: 598
Joined: Wed May 30, 2007 3:33 pm
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: At RCTC
Contact:

Local side not spawning!!!

Post by Master Fionwë »

My geonosians are spawning fine, but my jedi locals aren't. Is there a limit to the number of local teams?
Because I've noticed that places like Tatooine; Dune Sea, which have Tuskens but should also have Jawas, just because of the stuff in it, doesn't have them.
User avatar
Maveritchell
Jedi Admin
Jedi Admin
Posts: 7366
Joined: Mon Aug 21, 2006 11:03 pm

Post by Maveritchell »

There's no limit to the local teams, so far as I know. Assuming your unit count isn't too high, let's see your .lua.
Master Fionwë
Rebel Colonel
Rebel Colonel
Posts: 598
Joined: Wed May 30, 2007 3:33 pm
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: At RCTC
Contact:

Post by Master Fionwë »

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

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

---------------------------------------------------------------------------
-- 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 ScriptPostLoad()
AddAIGoal(3, "Deathmatch", 100)
cp0 = CommandPost:New{name = "cp0"}
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 = "cp7"}
cp8 = CommandPost:New{name = "CP8"}
cp9 = CommandPost:New{name = "cp9"}

--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF, text = "level.geo1.objectives.conquest", multiplayerRules = true}

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp0)
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp6)
conquest:AddCommandPost(cp7)
conquest:AddCommandPost(cp8)
conquest:AddCommandPost(cp9)

conquest:Start()

SetUberMode(1);

EnableSPHeroRules()

AddDeathRegion("deathregion")
AddDeathRegion("deathregion2")
AddDeathRegion("deathregion3")
AddDeathRegion("deathregion4")
AddDeathRegion("deathregion5")

end
function ScriptInit()
StealArtistHeap(800*1024)
-- Designers, these two lines *MUST* be first.
SetPS2ModelMemory(3500000)
ReadDataFile("ingame.lvl")

SetMemoryPoolSize ("ClothData",100)
SetMemoryPoolSize ("Combo",12) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",130) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",200) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",180) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",180) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",1200) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",160) -- should be ~1x #combo


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

SetTeamAggressiveness(CIS, 1.0)
SetTeamAggressiveness(REP, 1.0)

SetMemoryPoolSize("Music", 40)

ReadDataFile("sound\\geo.lvl;geo1cw")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_bldg_forwardcenter",
"rep_fly_assault_dome",
"rep_fly_command",
"rep_fly_commandship",
"rep_fly_gunship",
"rep_fly_gunship_dome",
"rep_fly_jedifighter_sc",
"rep_inf_ep2_commander",
"rep_inf_ep3_arctrooper",
"rep_inf_ep3_pilot",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_jettrooper",
"rep_inf_ep3_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep3_engineer",
"rep_hero_macewindu",
"rep_hero_aalya",
"rep_hero_kiyadimundi",
"rep_hero_obiwan",
"rep_hero_anakin",
"rep_hover_barcspeeder",
"rep_walk_sphat",
"rep_walk_atte")

ReadDataFile("SIDE\\cis.lvl",
"cis_fly_droidfighter_dome",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_engineer",
"cis_hero_countdooku",
"cis_inf_droideka",
"cis_tread_hailfire",
"cis_hover_stap",
"cis_walk_spider")
ReadDataFile("dc:SIDE\\geo.lvl",
"geo_inf_geonosian")

ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_geoturret")

-- Level Stats

ClearWalkers()
SetMemoryPoolSize("EntityWalker", -1)
AddWalkerType(0, 40) -- 40 droidekas (special case: 0 leg pairs)
AddWalkerType(2, 6) -- 2 spider walkers with 2 leg pairs each
AddWalkerType(3, 2) -- 2 attes with 3 leg pairs each
local weaponcnt = 240
SetMemoryPoolSize("Aimer", 170)
SetMemoryPoolSize("AmmoCounter", weaponcnt)
SetMemoryPoolSize("BaseHint", 480)
SetMemoryPoolSize("CommandFlyer", 2)
SetMemoryPoolSize("CommandWalker", 2)
SetMemoryPoolSize("EnergyBar", weaponcnt)
SetMemoryPoolSize("EntityCloth",60)
SetMemoryPoolSize("EntityFlyer", 15)
SetMemoryPoolSize("EntityHover", 9)
SetMemoryPoolSize("EntityLight", 50)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("FLEffectObject::OffsetMatrix", 120)
SetMemoryPoolSize("MountedTurret", 50)
SetMemoryPoolSize("Navigator", 60)
SetMemoryPoolSize("Obstacle", 450)
SetMemoryPoolSize("ParticleTransformer::ColorTrans", 1875)
SetMemoryPoolSize("ParticleTransformer::SizeTransf", 1850)
SetMemoryPoolSize("ParticleTransformer::PositionTr", 1250)
SetMemoryPoolSize("ParticleEmitter", 512)
SetMemoryPoolSize("ParticleEmitterInfoData", 512)
SetMemoryPoolSize("PassengerSlot", 18)
SetMemoryPoolSize("PathFollower", 50)
SetMemoryPoolSize("PathNode", 100)
SetMemoryPoolSize("TreeGridStack", 420)
SetMemoryPoolSize("UnitAgent", 120)
SetMemoryPoolSize("UnitController", 180)
SetMemoryPoolSize("Weapon", weaponcnt)
SetMemoryPoolSize("SoldierAnimation", 1500)

SetSpawnDelay(5.0, 0.25)

SetupTeams{

rep = {
team = REP,
units = 120,
reinforcements = 500,
soldier = { "rep_inf_ep3_rocketeer",10, 20},
pilot = { "rep_inf_ep3_sniper",10, 20},
assault = {"rep_inf_ep3_engineer",10, 20},
sniper = { "rep_inf_ep3_pilot",8, 15},
marine = { "rep_inf_ep3_officer",3, 8},
engineer = { "rep_inf_ep3_jettrooper",3, 10},
officer = {"rep_inf_ep2_commander",2, 5},
special = { "rep_inf_ep3_arctrooper",1, 3},
AddUnitClass(1, "rep_inf_ep3_rifleman",20, 30)
},
cis = {
team = CIS,
units = 180,
reinforcements = 450,
soldier = { "cis_inf_rifleman",30, 80},
assault = { "cis_inf_rocketeer",18, 30},
engineer = { "cis_inf_engineer",18, 30},
sniper = { "cis_inf_sniper",18, 30},
officer = {"cis_inf_officer",5, 15},
special = { "cis_inf_droideka",10, 20},
}
}

SetHeroClass(REP, "rep_hero_macewindu")
SetHeroClass(CIS, "cis_hero_countdooku")


-- Attacker Stats

--teamATT = ConquestTeam:New{team = ATT}
--teamATT:AddBleedThreshold(21, 0.75)
--teamATT:AddBleedThreshold(11, 2.25)
--teamATT:AddBleedThreshold(1, 3.0)
--teamATT:Init()
SetTeamAsEnemy(ATT,3)
SetTeamAsEnemy(3,ATT)

-- Defender Stats

--teamDEF = ConquestTeam:New{team = DEF}
--teamDEF:AddBleedThreshold(21, 0.75)
--teamDEF:AddBleedThreshold(11, 2.25)
--teamDEF:AddBleedThreshold(1, 3.0)
--teamDEF:Init()
SetTeamAsFriend(DEF,3)

-- Local Stats
SetTeamName(3, "locals")
SetUnitCount(3, 45)
AddUnitClass(3, "geo_inf_geonosian", 20)
SetTeamAsFriend(3, DEF)


-- Attacker Stats

--teamATT = ConquestTeam:New{team = ATT}
--teamATT:AddBleedThreshold(21, 0.75)
--teamATT:AddBleedThreshold(11, 2.25)
--teamATT:AddBleedThreshold(1, 3.0)
--teamATT:Init()
SetTeamAsFriend(ATT,4)
SetTeamAsFriend(ATT,4)

-- Defender Stats

--teamDEF = ConquestTeam:New{team = DEF}
--teamDEF:AddBleedThreshold(21, 0.75)
--teamDEF:AddBleedThreshold(11, 2.25)
--teamDEF:AddBleedThreshold(1, 3.0)
--teamDEF:Init()
SetTeamAsEnemy(DEF,4)

SetTeamName(4, "locals")
SetUnitCount(4, 3)
AddUnitClass(4, "rep_hero_aalya",1)
AddUnitClass(4, "rep_hero_kiyadimundi",1)
AddUnitClass(4, "rep_hero_obiwan",1)
SetTeamAsFriend(4, ATT)

ReadDataFile("dc:BOG\\geo1.lvl", "geo1_conquest")

SetDenseEnvironment("false")
SetMinFlyHeight(-125)
SetMaxFlyHeight(125)
SetMaxPlayerFlyHeight(175)



-- Birdies
--SetNumBirdTypes(1)
--SetBirdType(0.0,10.0,"dragon")
--SetBirdFlockMinHeight(90.0)

-- Sound

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\\geo.lvl", "geo1cw")
OpenAudioStream("sound\\geo.lvl", "geo1cw")

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)

SetLowReinforcementsVoiceOver(REP, REP, "rep_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(REP, CIS, "rep_off_victory_im", .1, 1)
SetLowReinforcementsVoiceOver(CIS, CIS, "cis_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(CIS, REP, "cis_off_victory_im", .1, 1)

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

SetAmbientMusic(REP, 1.0, "rep_GEO_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_GEO_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2, "rep_GEO_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_GEO_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_GEO_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2, "cis_GEO_amb_end", 2,1)

SetVictoryMusic(REP, "rep_geo_amb_victory")
SetDefeatMusic (REP, "rep_geo_amb_defeat")
SetVictoryMusic(CIS, "cis_geo_amb_victory")
SetDefeatMusic (CIS, "cis_geo_amb_defeat")

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--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")


--ActivateBonus(CIS, "SNEAK_ATTACK")
--ActivateBonus(REP, "SNEAK_ATTACK")

SetAttackingTeam(ATT)

--Opening Satalite Shot
--Geo
--Mountain
AddCameraShot(0.996091, 0.085528, -0.022005, 0.001889, -6.942698, -59.197201, 26.136919)
--Wrecked Ship
AddCameraShot(0.906778, 0.081875, -0.411906, 0.037192, 26.373968, -59.937874, 122.553581)
--War Room
--AddCameraShot(0.994219, 0.074374, 0.077228, -0.005777, 90.939568, -49.293945, -69.571136)
end

Here it is. There is a separate cp for both the local teams, one each.
User avatar
Maveritchell
Jedi Admin
Jedi Admin
Posts: 7366
Joined: Mon Aug 21, 2006 11:03 pm

Post by Maveritchell »

Well, if I had to guess, both teams being named "locals" might be a problem. Also, I'm not sure why you didn't add AI goals, but that at least is obviously not affecting anything.
Master Fionwë
Rebel Colonel
Rebel Colonel
Posts: 598
Joined: Wed May 30, 2007 3:33 pm
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: At RCTC
Contact:

Post by Master Fionwë »

What do you mean AI goals? What would they do?
User avatar
Maveritchell
Jedi Admin
Jedi Admin
Posts: 7366
Joined: Mon Aug 21, 2006 11:03 pm

Post by Maveritchell »

i.e. AddAIGoal(3, "Deathmatch", 100)

I thought they were necessary to get your local team to do anything but twiddle their thumbs unless they're attacked. I suppose it's not doing anything, if your locals are already going out and finding targets on their own.
Master Fionwë
Rebel Colonel
Rebel Colonel
Posts: 598
Joined: Wed May 30, 2007 3:33 pm
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: At RCTC
Contact:

Post by Master Fionwë »

Oh, I see. Well, that stuff should already be set up, since I went the somewhat easier route, and just edited the shipped Geonosis map. All the animations for it, the flyers, technounion ships taking off, the laser blasts and explosions being already set, I would have to do much of that. I also used the original scripts, so that would make it easier too. I changed the name from locals to jedi, I'm going to try it out now. Be right back.

EDIT: Didn't work. At least I'm pretty sure it didn't, I didn't see them anywhere.
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:

Post by [RDH]Zerted »

There is some type of limit to the local teams, but I have no clue what it is. I tired to put each unit on a team by itself for the Deathmatch game mode, but it didn't work (which is a reason why that game mode is so wierd). A team with a team number like 62 would work, but a team with a number like 7 would crash the game. I never did pin that problem down...

I think you are missing SetReinforcementCount(). SetUnitCount() says how many total units a team has, but SetReinforcementCount() says how many times those units are allowed to spawn.

Code: Select all

SetReinforcementCount( teamNumber, totalReinforcementCount )
User avatar
Maveritchell
Jedi Admin
Jedi Admin
Posts: 7366
Joined: Mon Aug 21, 2006 11:03 pm

Post by Maveritchell »

Without the SetReinforcementCount call, the game just interprets it as meaning reinforcements are unlimited. It's not a limiting factor for third-plus-teams spawning.
User avatar
Teancum
Jedi Admin
Jedi Admin
Posts: 11080
Joined: Wed Sep 07, 2005 11:42 pm
Projects :: No Mod project currently.
Games I'm Playing :: Destiny
xbox live or psn: No gamertag set
Location: Indiana

Post by Teancum »

AddAIGoal(4, "Deathmatch", 100) is missing. It's absolutely required to get units to spawn (it goes in ScriptPostLoad). That's why they're not spawning, guaranteed.
User avatar
Maveritchell
Jedi Admin
Jedi Admin
Posts: 7366
Joined: Mon Aug 21, 2006 11:03 pm

Post by Maveritchell »

I woulda said the same, but he said that his local team 3 was spawning, and it's missing the same line. Did I just overlook it?
User avatar
Teancum
Jedi Admin
Jedi Admin
Posts: 11080
Joined: Wed Sep 07, 2005 11:42 pm
Projects :: No Mod project currently.
Games I'm Playing :: Destiny
xbox live or psn: No gamertag set
Location: Indiana

Post by Teancum »

Yeah, it's there, right below function ScriptPostLoad()
User avatar
Maveritchell
Jedi Admin
Jedi Admin
Posts: 7366
Joined: Mon Aug 21, 2006 11:03 pm

Post by Maveritchell »

Well boy am I red-faced. Yep, that's the error, then.
Master Fionwë
Rebel Colonel
Rebel Colonel
Posts: 598
Joined: Wed May 30, 2007 3:33 pm
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: At RCTC
Contact:

Post by Master Fionwë »

Ok, thanks guys. I'll try this out and let you know.
Post Reply