Scripting Problems (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

Post Reply
Noobasaurus
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2006
Joined: Tue Aug 17, 2010 5:56 pm

Scripting Problems (Solved)

Post by Noobasaurus »

I'm trying to make release more and more units in waves, but I'm having problems. I want you to be on the REP or ATT team at the start. Then I want a message to popup and then a timer to start, and when it hits zero you win. Then I want in 90 seconds a second message to popup and the other side can spawn. That all worked perfectly, but then I tried to implement waves and I messed everything up. I tried to make the waves spawn every minute or so with 100 units.

Here's the lua:
Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

--THIS IS THE EASY MODE--

ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("ambush")
ScriptCB_DoFile("ObjectiveTDM")


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

function ScriptPostLoad()

AllowAISpawn(CIS, false)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.start", ATT)

--Timer STARTZ--

music01Timer = CreateTimer("music01")
SetTimerValue(music01Timer, 90.0)
StartTimer(music01Timer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
AllowAISpawn(CIS, true)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.timerend", ATT)
wavetimer = CreateTimer("wave")
DestroyTimer(timer)
end,
music01Timer
)

SetTimerValue(wavetimer, 30.0)
StartTimer(wavetimer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 5)
end,
wavetimer
)
SetTimerValue(wavetimer, 30.0)
StartTimer(wavetimer)
ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 5)
end,
wavetimer
)

--Timer for victory startz nao...also known as when the first timer elapses--
music02Timer = CreateTimer("music02Timer")
SetTimerValue(music02Timer, 630.0)
StartTimer(music02Timer)
ShowTimer(music02Timer)
OnTimerElapse(
function(timer)
MissionVictory(ATT)


DestroyTimer(timer)
end,
music02Timer
)


--WAVE AMBUSH CONFIGS--

ShowTimer(nil)
OnTimerElapse(
function(timer)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 5, 100)
DestroyTimer(timer)
end,
wavetimer
)


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}




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

SetUberMode(1);

EnableSPHeroRules()

AddDeathRegion("death")
AddDeathRegion("death1")

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

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

ReadDataFile("sound\\kam.lvl;kam1cw")

ReadDataFile("dc:SIDE\\gam.lvl",
"gam_inf_gamorreanguard",
"gam_inf_elite")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_obi",
"imp_inf_ganimedes")




SetupTeams{
cis = {
team = CIS,
units = 350,
reinforcements = -1,
soldier = { "gam_inf_gamorreanguard",0, 50},

},
rep = {
team = REP,
units = 50,
reinforcements = 300,
assault = { "imp_inf_ganimedes",0, 20},
}
}



SetTeamName(5, "gam")
AddUnitClass (5, "gam_inf_gamorreanguard", 50, 100)
AddAIGoal(5, "Deathmatch", 100)
SetUnitCount (5, 100)

SetTeamName(6, "gam")
AddUnitClass (6, "gam_inf_elite", 50, 100)
AddAIGoal(6, "Deathmatch", 100)
SetUnitCount (6, 100)

-- 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("SoldierAnimation", 1500)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntityPortableTurret", 1200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 99)
SetMemoryPoolSize("LightFlash", 400)
SetMemoryPoolSize("Navigator", 500)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("UnitController", 500)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 600)
SetMemoryPoolSize("UnitController", 750)
SetMemoryPoolSize("ParticleTransformer::SizeTransf", 1400)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(0.0, 0.0)
--ReadDataFile("dc:GAA\\GAA.lvl", "GAA_conquest")
ReadDataFile("dc:GAA\\GAA.lvl", "GAA_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.763622, 0.012544, -0.645455, 0.010603, 125.539291, 63.603477, -17.511637);
AddCameraShot(-0.198788, -0.005538, -0.979647, 0.027292, 149.981628, 64.837639, -60.428387);
AddCameraShot(0.005205, -0.001663, -0.952560, -0.304300, 139.273087, 99.218147, -62.060764);

end
Any help is greatly appreciated.
Last edited by Noobasaurus on Sun Dec 09, 2012 5:36 pm, edited 1 time in total.
Loopy53
1st Lieutenant
1st Lieutenant
Posts: 456
Joined: Thu Nov 01, 2012 2:27 am
Projects :: Earth Apocalypse
Games I'm Playing :: swbf2 bf3 cod
xbox live or psn: Dont have one
Location: On earth, I guess.

Re: Scripting Problems

Post by Loopy53 »

Well, im no LUA expert, but I would reference mav's dark times 2 or repsharpshooters battle arena 2.0 LUA's. If you can, that is. good luck
Noobasaurus
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2006
Joined: Tue Aug 17, 2010 5:56 pm

Re: Scripting Problems

Post by Noobasaurus »

That's exactly what I did. I used Mav's wave mode script in hopes of adding it to my map but that was apparently not the case. I've recently been just moving things around in the script in hopes of getting things working but no can do.
Loopy53
1st Lieutenant
1st Lieutenant
Posts: 456
Joined: Thu Nov 01, 2012 2:27 am
Projects :: Earth Apocalypse
Games I'm Playing :: swbf2 bf3 cod
xbox live or psn: Dont have one
Location: On earth, I guess.

Re: Scripting Problems

Post by Loopy53 »

Hm.... get mavs wave mode working fully first, then edit that to your liking.
Noobasaurus
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2006
Joined: Tue Aug 17, 2010 5:56 pm

Re: Scripting Problems

Post by Noobasaurus »

Hm. I got wave mode working, sort of. When the waves first start you die, so that's a problem. Then when they're all over the game crashes so that's also a problem. Here's my lua:
Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

--THIS IS THE EASY MODE--

ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("ambush")
ScriptCB_DoFile("ObjectiveTDM")


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

function ScriptPostLoad()

AllowAISpawn(CIS, false)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.start", ATT)


wavetimer = CreateTimer("waves")
SetTimerValue(wavetimer, 30)

wavetimer0 = CreateTimer("waves0")
SetTimerValue(wavetimer0, 45)

wavetimer1 = CreateTimer("waves1")
SetTimerValue(wavetimer1, 80)

wavetimer2 = CreateTimer("waves2")
SetTimerValue(wavetimer2, 70)

wavetimer3 = CreateTimer("waves3")
SetTimerValue(wavetimer3, 70)

wavetimer4 = CreateTimer("waves4")
SetTimerValue(wavetimer4, 100)

wavetimer5 = CreateTimer("waves5")
SetTimerValue(wavetimer5, 120)

StartTimer(wavetimer)
ShowTimer(nil)
ShowTimer(wavetimer)

wtime0 = OnTimerElapse(
function(timer)
StartTimer(wavetimer0)
ShowTimer(nil)
ShowTimer(wavetimer0)
ShowObjectiveTextPopup("level.GAA.objectives.campaign.timerend", ATT)
AllowAISpawn(CIS, true)
Ambush("ambush_path", 100, 3)

DestroyTimer(timer)
end,
wavetimer
)

wtime1 = OnTimerElapse(
function(timer)
StartTimer(wavetimer1)
ShowTimer(nil)
ShowTimer(wavetimer1)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_spawn", 100, 3)

DestroyTimer(timer)
end,
wavetimer0
)

wtime2 = OnTimerElapse(
function(timer)
StartTimer(wavetimer2)
ShowTimer(nil)
ShowTimer(wavetimer2)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 4)

DestroyTimer(timer)
end,
wavetimer1
)

wtime3 = OnTimerElapse(
function(timer)
StartTimer(wavetimer3)
ShowTimer(nil)
ShowTimer(wavetimer3)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 3)

DestroyTimer(timer)
end,
wavetimer2
)

wtime4 = OnTimerElapse(
function(timer)
StartTimer(wavetimer4)
ShowTimer(nil)
ShowTimer(wavetimer4)
ShowMessageText("level.GAA.objectives.campaign.more")
Ambush("ambush_path", 100, 4)
DestroyTimer(timer)
end,
wavetimer3
)


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}




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

SetUberMode(1);

EnableSPHeroRules()

AddDeathRegion("death")
AddDeathRegion("death1")

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

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

ReadDataFile("sound\\kam.lvl;kam1cw")

ReadDataFile("dc:SIDE\\gam.lvl",
"gam_inf_gamorreanguard",
"gam_inf_elite")
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_obi",
"imp_inf_ganimedes")




SetupTeams{
cis = {
team = CIS,
units = 350,
reinforcements = -1,
soldier = { "gam_inf_gamorreanguard",0, 50},

},
rep = {
team = REP,
units = 50,
reinforcements = 300,
assault = { "imp_inf_ganimedes",0, 20},
}
}



SetTeamName(3, "gam")
AddUnitClass(3, "gam_inf_gamorreanguard",20,50)
SetUnitCount (3, 100)
--first number is numteam, second is numunits
AddAIGoal(3, "Deathmatch", 100)

SetTeamName(5, "gam")
AddUnitClass (5, "gam_inf_elite", 20, 50)

SetUnitCount (5, 50)
--first number is numteam, second is numunits
AddAIGoal(5, "Deathmatch", 100)

-- 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("SoldierAnimation", 1500)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntityPortableTurret", 1200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 99)
SetMemoryPoolSize("LightFlash", 400)
SetMemoryPoolSize("Navigator", 500)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("UnitController", 500)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 600)
SetMemoryPoolSize("UnitController", 750)
SetMemoryPoolSize("ParticleTransformer::SizeTransf", 1400)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(0.0, 0.0)
--ReadDataFile("dc:GAA\\GAA.lvl", "GAA_conquest")
ReadDataFile("dc:GAA\\GAA.lvl", "GAA_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.763622, 0.012544, -0.645455, 0.010603, 125.539291, 63.603477, -17.511637);
AddCameraShot(-0.198788, -0.005538, -0.979647, 0.027292, 149.981628, 64.837639, -60.428387);
AddCameraShot(0.005205, -0.001663, -0.952560, -0.304300, 139.273087, 99.218147, -62.060764);

end
EDIT: So I got it to make you win after the last wave but you still die randomly on the first and third waves. :?
User avatar
Fiodis
Master of the Force
Master of the Force
Posts: 4145
Joined: Wed Nov 12, 2008 9:27 pm
Projects :: Rannoch + Tientia + Tools Programming

Re: Scripting Problems

Post by Fiodis »

The only parts of the script that look potentially lethal are the death regions. If you comment out those calls, do you still die?
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

Re: Scripting Problems

Post by Teancum »

And is there anything of interest in BFront2.log?
Noobasaurus
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2006
Joined: Tue Aug 17, 2010 5:56 pm

Re: Scripting Problems

Post by Noobasaurus »

Surprisingly, there actually is stuff in my log. For a while now there hasn't been anything.
Hidden/Spoiler:
Message Severity: 2
C:\Battlefront2\main\Battlefront2\Source\Character.cpp(1217)
Trying to spawn a character with no class. Skipping this character. Perhaps the UnitClassCounts are too low?

Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\LuaCallbacks_Mission.cpp(3247)
Path "ambush_path" node 49 out of range [0..30)

Message Severity: 2
C:\Battlefront2\main\Battlefront2\Source\Character.cpp(1217)
Trying to spawn a character with no class. Skipping this character. Perhaps the UnitClassCounts are too low?
WARNING: could not spawn all the ambushers...team is too small or there are too many dudes running around alive

Message Severity: 2
C:\Battlefront2\main\Battlefront2\Source\EntitySoldier.cpp(4513)
Unit flew out of world, x = 61593580473011673000000000000.000000, z = 0.000000
I get a bunch of the 'trying to spawn a character with no class' and the path node errors. I'm not sure what I could do about the character error but for the other one I'll revise the ambush path.

I commented out the death region lines later and it crashed when the first wave spawned. I think I died too, but I'm not sure. The error log is the same as the above one.
Loopy53
1st Lieutenant
1st Lieutenant
Posts: 456
Joined: Thu Nov 01, 2012 2:27 am
Projects :: Earth Apocalypse
Games I'm Playing :: swbf2 bf3 cod
xbox live or psn: Dont have one
Location: On earth, I guess.

Re: Scripting Problems

Post by Loopy53 »

odd...make sure the paths in ZE are setup correctly, along with all regions and the likes.
Noobasaurus
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2006
Joined: Tue Aug 17, 2010 5:56 pm

Re: Scripting Problems

Post by Noobasaurus »

I remade the ambush path in ZE and now I have twice as many errors and now I randomly die even more! I'll rename the path and do more checks.
User avatar
Fiodis
Master of the Force
Master of the Force
Posts: 4145
Joined: Wed Nov 12, 2008 9:27 pm
Projects :: Rannoch + Tientia + Tools Programming

Re: Scripting Problems

Post by Fiodis »

At one point you have:

Code: Select all

Ambush("ambush_path", 100, 5)
but later you have

Code: Select all

Ambush("ambush_path", 5, 100)
How many nodes does ambush_path actually have?

One of those values, if I remember right, is the class of the spawned unit. I really doubt you have 100 classes. :wink:
Noobasaurus
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2006
Joined: Tue Aug 17, 2010 5:56 pm

Re: Scripting Problems

Post by Noobasaurus »

The path has around 10 nodes. I thought the first value was how many units you wanted to spawn, and the second number was what team they were on. Or maybe it was the other way around. :?
User avatar
AceMastermind
Gametoast Staff
Gametoast Staff
Posts: 3285
Joined: Mon Aug 21, 2006 6:23 am
Contact:

Re: Scripting Problems

Post by AceMastermind »

[color=#FF8040]The What, When, Where, and How on AI Ambushing (FAQ)[/color] wrote:...
The generic parameters for Ambush() as follows
Ambush(ambushpath, numDudes, fromTeam)



IMPORTANT RULES:

1) The number of ai that you spawn MUST be the same as the number of nodes you added to the path in zeroeditor.
...
User avatar
Fiodis
Master of the Force
Master of the Force
Posts: 4145
Joined: Wed Nov 12, 2008 9:27 pm
Projects :: Rannoch + Tientia + Tools Programming

Re: Scripting Problems

Post by Fiodis »

So the class of the spawned units is chosen at random from the available classes on that team?
Noobasaurus
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2006
Joined: Tue Aug 17, 2010 5:56 pm

Re: Scripting Problems

Post by Noobasaurus »

Thank you, Ace. I used that and after many tests I have everything working perfectly along with the victory timer on the side.

Thanks to everyone who helped as well. :D
Post Reply