How do I make AI play as heroes? [Solved]

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

Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

How do I make AI play as heroes? [Solved]

Post by Coley »

So, last question for this time.
I can change my heroes, I can play them, everything works.
But, the other ai-side in game don´t use the hero...so I always win.
How can I make it, that the other side (and my, of course) uses automic heroes??
Thanks for help
YaNkFaN
Field Commander
Field Commander
Posts: 943
Joined: Sat Dec 13, 2008 8:17 am

Re: Hero

Post by YaNkFaN »

http://www.gametoast.com/forums/viewtop ... =64&t=7088

there is a script here that allows for AI heros for both teams this being said you can still play as the hero take a look at it and possibly use it
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

I can´t download it.

EDIT
Is there another way?
-_-
Gametoast Staff
Gametoast Staff
Posts: 2678
Joined: Sat May 07, 2005 1:22 pm

Re: Hero

Post by -_- »

If you look a tad further down, you would see a "Fixed Link".
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

okay, now I can see another link, too :oops: .
I´ll try it

EDIT

uuuh...I downloaded it, and tried to follow the guide...but isn´t the...hugest description.
mmmh...can somebody help me?^^
I do´nt know where I have to add lines in the lua EXACTLY...and this isn´t very good :(
-_-
Gametoast Staff
Gametoast Staff
Posts: 2678
Joined: Sat May 07, 2005 1:22 pm

Re: Hero

Post by -_- »

I'm pretty sure there's are a couple reference .luas in that file to look at.
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

I HAVE seen these "references".
But it doesn´t EXACTLY tell me where I have to writ any codes!
User avatar
DarthD.U.C.K.
Master of the Force
Master of the Force
Posts: 6027
Joined: Wed Sep 27, 2006 11:05 am
Location: Duckburg, Germany

Re: Hero

Post by DarthD.U.C.K. »

sometimes readmes can be really usefull....
Hidden/Spoiler:
they sometimes even include something like a tutorial...
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

I READ THE README AND IT WASN´T VERY HELPFUL!!!! :x
But anyhow, I thank you...
User avatar
DarthD.U.C.K.
Master of the Force
Master of the Force
Posts: 6027
Joined: Wed Sep 27, 2006 11:05 am
Location: Duckburg, Germany

Re: Hero

Post by DarthD.U.C.K. »

maybe it explained everything to you, but you didnt understand it? :roll:
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

sorry, that I am angry. possible, my english isn´t very good. But I know one thing:
this isn´t the easiest and hugest addme and reference.... :cry:
And when you can explain it, then DO it, and don´t say me I´m to silly to understand anything...
User avatar
DarthD.U.C.K.
Master of the Force
Master of the Force
Posts: 6027
Joined: Wed Sep 27, 2006 11:05 am
Location: Duckburg, Germany

Re: Hero

Post by DarthD.U.C.K. »

erm, tutorials explain how to do it do you expect us to write all tutorials again and again for everybody who doesnt understand them? :x

i didnt say you were to silly to understand it, but do you claim that this tutorial is bad/wrong because you cant understand it?

sorry, but im getting really tired of these "i dont understand the tutorial, tell me (EXACTLY) how to do it!" guys, modding isnt easy..
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

Okay...I can understand you. But did you read this tutorial?
You can´t know where you must put in some words or where you just must change anything.... :(
but I will try it again tomorrow....sorry...
User avatar
DarthD.U.C.K.
Master of the Force
Master of the Force
Posts: 6027
Joined: Wed Sep 27, 2006 11:05 am
Location: Duckburg, Germany

Re: Hero

Post by DarthD.U.C.K. »

but thats exactly what the tutorial tells you

as an example:
="Tutorial"
2- You will see a bunch of "ScriptCB_DoFile(something here)" commands at the top
3- Add this just after them:


ScriptCB_DoFile("AIHeroSupport")
and if you cant ifn the place you have to put it in, just open an example lua and look where the line, to which the tutorial references, is written

what else do you need?
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

for example, there are two lines wich the CB name
User avatar
Super_Clone
High General
High General
Posts: 803
Joined: Sat Jul 12, 2008 7:58 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Florida

Re: Hero

Post by Super_Clone »

You can just set the hero as a unit with a point unlock, set it to allow only 1 of each hero on the battlefield at all times, and the AI will play as that hero throughout the map. Thats a really really really easy, well working, work around I use.
User avatar
Blade
Captain
Captain
Posts: 496
Joined: Fri Apr 04, 2008 11:02 pm
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set

Re: Hero

Post by Blade »

Or you could do it the other way, which isn't a whole lot harder and isn't a workaround.
YaNkFaN
Field Commander
Field Commander
Posts: 943
Joined: Sat Dec 13, 2008 8:17 am

Re: Hero

Post by YaNkFaN »

but then once you unlock the hero ie by killing one person you get the hero for the rest of the map which kind of defeats the purpose of the infantry..
User avatar
DarthD.U.C.K.
Master of the Force
Master of the Force
Posts: 6027
Joined: Wed Sep 27, 2006 11:05 am
Location: Duckburg, Germany

Re: Hero

Post by DarthD.U.C.K. »

Coley wrote:for example, there are two lines wich the CB name
yes, but whats the problem?
if you are being confused by the

Code: Select all

    ScriptCB_SndPlaySound("KAS_obj_13") 
line in the reference lua
you can see, that the

Code: Select all

ScriptCB_DoFile("AIHeroSupport")
line is not blow this line, so you have to add it under the upper lines of this kind

if you are possibly confused by the

Code: Select all

     ScriptCB_SetDopplerFactor(0.4)
line in your own maps lua, chack the reference and see that it doesnt has this line and that the

Code: Select all

ScriptCB_DoFile("AIHeroSupport")
line is added below the two upper lines of this kind

and if you are possibly confused by the two

Code: Select all

ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")
lines on top of the lua and dont know undwer which line to add the new script, you can read n the readme that you have to add the

Code: Select all

ScriptCB_DoFile("AIHeroSupport")
line below both

i hope i was able to show how to solve all possible problems you could have meant with your question (yourself) by just drawing logical conclusions
Coley
Sergeant Major
Sergeant Major
Posts: 249
Joined: Sun Aug 09, 2009 11:27 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: Germany

Re: Hero

Post by Coley »

mmmh...this is now my lua...and I can play my map, but there isn´t any jedi unplayed hero.
Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("AIHeroSupport")
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"}



--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:Start()

EnableSPHeroRules(herosupport = AIHeroSupport:New{AIATTHeroHealth = 5000, AIDEFHeroHealth = 3000, gameMode = "NonConquest",})

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\\yav.lvl;yav1cw")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_ep2_rifleman",
"rep_inf_ep2_rocketeer",
"rep_inf_ep2_engineer",
"rep_inf_ep2_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep2_jettrooper",
"rep_hover_fightertank",
"rep_hero_macewindu",
"rep_hover_barcspeeder")
ReadDataFile("dc:SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_hero_jangofett",
"cis_hover_aat")


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

SetupTeams{
rep = {
team = REP,
units = 30,
reinforcements = 150,
soldier = { "rep_inf_ep2_rifleman",9, 25},
assault = { "rep_inf_ep2_rocketeer",1, 4},
engineer = { "rep_inf_ep2_engineer",1, 4},
sniper = { "rep_inf_ep2_sniper",1, 4},
officer = {"rep_inf_ep3_officer",1, 4},
special = { "rep_inf_ep2_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 30,
reinforcements = 150,
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 = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}

herosupport: SetHeroClass(CIS, "cis_hero_jangofett")
herosupport: SetHeroClass(REP, "rep_hero_macewindu")
herosupport:CP1("CP1","CP1_spawn")
herosupport:CP2("CP2","CP2_spawn")

-- 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("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:SUM\\SUM.lvl", "SUM_conquest")
ReadDataFile("dc:SUM\\SUM.lvl", "SUM_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
sorry, that I annoy you...
Post Reply