Page 1 of 1

Local side not spawning!!!

Posted: Thu Jul 19, 2007 1:48 pm
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.

Posted: Thu Jul 19, 2007 1:50 pm
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.

Posted: Thu Jul 19, 2007 1:52 pm
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.

Posted: Thu Jul 19, 2007 2:02 pm
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.

Posted: Thu Jul 19, 2007 2:11 pm
by Master Fionwë
What do you mean AI goals? What would they do?

Posted: Thu Jul 19, 2007 2:14 pm
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.

Posted: Thu Jul 19, 2007 2:17 pm
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.

Posted: Thu Jul 19, 2007 2:43 pm
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 )

Posted: Thu Jul 19, 2007 3:26 pm
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.

Posted: Thu Jul 19, 2007 3:50 pm
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.

Posted: Thu Jul 19, 2007 3:52 pm
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?

Posted: Thu Jul 19, 2007 3:55 pm
by Teancum
Yeah, it's there, right below function ScriptPostLoad()

Posted: Thu Jul 19, 2007 3:57 pm
by Maveritchell
Well boy am I red-faced. Yep, that's the error, then.

Posted: Thu Jul 19, 2007 6:12 pm
by Master Fionwë
Ok, thanks guys. I'll try this out and let you know.