Wampa AI and reinforcements problems

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
SkinnyODST
Lieutenant Colonel
Lieutenant Colonel
Posts: 545
Joined: Mon Jul 04, 2016 10:56 pm
Location: My other account
Contact:

Wampa AI and reinforcements problems

Post by SkinnyODST »

I replaced the CIS team with SNW (Wampas) and that has worked, but the Wampa AI don`t act how I want them to. They seem to be in a deathmatch mode that I can`t get them out of, they don`t try and capture CP`s and seem to stand still until an enemy comes by. I want them to act the opposite of that. Also, their reinforcements are always going down even though they own all but 1 CP. How do I fix this?

My LUA.
Hidden/Spoiler:
[code]--
-- 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;
SNW = 2;
-- These variables do not change
ATT = REP;
DEF = SNW;


function ScriptPostLoad()

AddAIGoal(1, "Deathmatch", 100)

SetProperty("Local_CP", "Team", 1)
SetProperty("cp1", "Team", 2)
SetProperty("cp2", "Team", 2)
SetProperty("cp3", "Team", 2)
SetProperty("cp4", "Team", 2)
SetProperty("cp5", "Team", 2)
SetProperty("cp6", "Team", 2)
SetProperty("cp7", "Team", 2)



--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 = "Local_CP"}
cp7 = CommandPost:New{name = "cp7"}



--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)

conquest:Start()

SetUberMode(1);

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

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\\yav.lvl;yav1cw")
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_ep2_pilot",
"rep_inf_ep2_sniper",
"rep_inf_ep3_jettrooper",
"rep_inf_ep2_marine",
"rep_inf_ep2_jettrooper",
"rep_inf_ep2_jettrooper_rifleman",
"rep_inf_ep2_jettrooper_sniper",
"rep_walk_atte")

ReadDataFile("dc:SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_marine",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_inf_pilot",
"cis_hover_aat",
"cis_hover_stap",
"cis_walk_spider")

ReadDataFile("dc:SIDE\\snw.lvl",
"snw_inf_wampa")


ReadDataFile("dc:SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower",
"tur_bldg_chaingun",
"tur_bldg_built_chaingun",
"tur_yav_bldg_watchtower",
"tur_bldg_recoilless_fel_auto",
"tur_bldg_recoilless_kas",
"tur_bldg_recoilless_lg",
"tur_bldg_recoilless_md",
"tur_bldg_recoilless_myg_auto",
"tur_bldg_recoilless_nab_auto")


SetupTeams{
rep = {
team = REP,
units = 62,
reinforcements = 200,
soldier = { "rep_inf_ep2_jettrooper_rifleman",20, 35},
assault = { "rep_inf_ep2_jettrooper_sniper",1, 1},

},
snw = {
team = SNW,
units = 500,
reinforcements = 500,
soldier = { "snw_inf_wampa",30, 60},

}
}


SetClassProperty("rep_inf_ep2_jettrooper_sniper", "FleeLikeAHero", "1")

AddAIGoal(1, "Deathmatch", 100)

SetTeamName (3, "fompas")
AddUnitClass (3, "snw_inf_wampa", 100,150)
SetUnitCount (3, 150)
AddAIGoal(3, "Deathmatch", 100)

SetTeamAsEnemy(ATT,3)
SetTeamAsEnemy(3,ATT)
SetTeamAsEnemy(DEF,3)
SetTeamAsEnemy(3,DEF)


-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 0) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 1) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 1) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("CommandWalker", 1)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 32)
SetMemoryPoolSize("Navigator", 128)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 128)
SetMemoryPoolSize("UnitController", 128)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:CCC\\CCC.lvl", "CCC_conquest")
ReadDataFile("dc:CCC\\CCC.lvl", "CCC_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.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

[/code]
User avatar
Oceans14
Command Sergeant Major
Command Sergeant Major
Posts: 296
Joined: Mon Apr 27, 2015 7:09 pm
Projects :: Athenova Campaign
Games I'm Playing :: SWBF2
Location: Planet 4546b

Re: Wampa AI and reinforcements problems

Post by Oceans14 »

Code: Select all

function ScriptPostLoad()

AddAIGoal(1, "Deathmatch", 100)
You set a goal for team 1 but not team 2. I believe the ai need a goal of any kind, otherwise they'll default to deathmatch or do nothing. Add a goal for team 2 and see what happens.
SkinnyODST
Lieutenant Colonel
Lieutenant Colonel
Posts: 545
Joined: Mon Jul 04, 2016 10:56 pm
Location: My other account
Contact:

Re: Wampa AI and reinforcements problems

Post by SkinnyODST »

Add a goal for team 2 and see what happens.
I did try that. I added AddAIGoal "Conquest" and nothing changed. Is that the right thing to write?

Could it have something to do with its odf? I mean Wampas are in a deathmatch style gamemode for Hoth but I had a look and couldn`t seem to find anything relating to deathmatch.

Here`s their odf file:
Hidden/Spoiler:
[code][GameObjectClass]
ClassParent = "com_jedi_default"
GeometryName = "hot_inf_wampa"

[Properties]
HUDTag = "hud_wampa"
AISizeType = "HOVER"

GeometryName = "hot_inf_wampa"
GeometryLowRes = "hot_inf_wampa_low1"
SkeletonLowRes = "wampalz"

SkeletonName = "wampa"

//this keeps the player from entering first person with this char
forcemode = 1

// well, they can't use technology!
NoEnterVehicles = 1

// do NOT kneel when dead
FleeLikeAHero = 0

// one jump animation for this dude
UseDirectionalJumps = 0

JetJump = "00.0" //The initial jump-push given when enabling the jet
JetPush = "0.0" //The constant push given while the jet is enabled (20 is gravity)
JetAcceleration = "0.0" // for characters with jet jump, use this acceleration for in air control
JetEffect = ""
JetShowHud = 0

CollisionScale = "0.0 0.0 0.0" // don't take damage from collisions

WEAPONSECTION = 1
WeaponName1 = "hot_weap_lightsaber_wampa"
WeaponAmmo1 = 0

//HEALTH
HealthType = "person"
MaxHealth = 1800.0

// Movement defaults
// These are values for an average class - some soldiers will override these
MaxSpeed = 7.0 // base forward speed
MaxStrafeSpeed = 5.25 // base right/left speed
MaxTurnSpeed = 5.0 // base turn speed
JumpHeight = 2.5 // base jump height in meters
// Speed multipliers for various actions
JumpForwardSpeedFactor = 1.3 // boost forward part of velocity by this factor when jumping
JumpStrafeSpeedFactor = 1.0 // boost side/backward part of velocity by this factor when jumping
RollSpeedFactor = 1.5 // in forward arc, boost speed by this factor when rolling
// Apparently contant for all or most classes:
Acceleration = 70.0 // accelerate to full run in about 7/70 = 0.1 seconds
SprintAccelerateTime = 0.35 // accelerate from run to sprint in this time

// ControlSpeed = "<stance> <thrustfactor> <strafefactor> <turnfactor>"
// For grounded states (stand, crouch, prone, sprint) and jet state,
// in which the thrust/strafe stick controls the player's velocity,
// these values are multipliers on the max speed and acceleration.
// For flying states (jump, roll, tumble), in which the thrust/strafe stick
// applies an acceleration, these values only multiply the acceleration.
ControlSpeed = "stand 1.00 1.00 1.00"
ControlSpeed = "crouch 0.70 0.60 1.00"
ControlSpeed = "prone 0.30 0.20 0.50"
ControlSpeed = "sprint 3.00 0.50 0.35"
ControlSpeed = "jet 0.30 0.30 1.00"
ControlSpeed = "jump 0.03 0.03 0.35"
ControlSpeed = "roll 0.02 0.02 0.35"
ControlSpeed = "tumble 0.00 0.00 0.10"

///SOUND
SndHeroSelectable = ""
SndHeroSpawned = ""
SndHeroDefeated = ""
SndHeroKiller = ""

SoldierMusic = ""
HurtSound = "wampahurt"
DeathSound = "wampadeath"
LowHealthSound = "wampa_chatter"
LowHealthThreshold = "1.1"

FoleyFXClass = "wok_inf_soldier"




[/code]
User avatar
Oceans14
Command Sergeant Major
Command Sergeant Major
Posts: 296
Joined: Mon Apr 27, 2015 7:09 pm
Projects :: Athenova Campaign
Games I'm Playing :: SWBF2
Location: Planet 4546b

Re: Wampa AI and reinforcements problems

Post by Oceans14 »

Try removing all the ai goals and see what happens. As I recall, the bone stock conquest script doesn't specify goals at all, just a gamemode. If that doesn't work, add the same goal for both teams.

I realize that's contradictory to my first post where I said they do need a goal, but when I thought about it further I believe I was getting your issue confused with something else.
Post Reply