Page 1 of 2

Problems with locals [Solved]

Posted: Fri Dec 29, 2017 6:14 pm
by Cattermelon
So, I'm trying to set up some locals in my map (ewoks, to be exact). I've followed the tutorial by Kateana step by step, but when I load the map, no command posts appear, and I can't spawn in. I double and triple checked my lua, but I just can't find what I've done wrong. Here's 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;
CIS = 2;
LocalTeam = 3;
-- 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"}
cp5 = CommandPost:New{name = "cp5"}
cp6 = CommandPost:New{name = "Local_CP"}




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

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(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 ("SIDE\\ewk.lvl",
"ewk_inf_trooper")
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_ep3_jettrooper",
"rep_hover_fightertank",
"rep_hero_anakin",
"rep_hover_barcspeeder")
ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_hero_darthmaul",
"cis_hover_aat")


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

SetupTeams{
rep = {
team = REP,
units = 20,
reinforcements = 150,
soldier = { "rep_inf_ep3_rifleman",9, 25},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper",1, 4},
officer = {"rep_inf_ep3_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},

},
cis = {
team = CIS,
units = 20,
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},
}

}

SetTeamName (3, "ewoks")
AddUnitClass (3, "ewk_inf_trooper", 10, 15)
SetUnitCount (3, 15)
AddAiGoal(3, "Deathmatch", 100)
SetTeamAsFriend(ATT,3)
SetTeamAsFriend(3,ATT)
SetTeamAsFriend(DEF,3)
SetTeamAsFriend(3,DEF)

SetHeroClass(CIS, "cis_hero_darthmaul")
SetHeroClass(REP, "rep_hero_anakin")


-- 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:ABC\\ABC.lvl", "ABC_conquest")
ReadDataFile("dc:ABC\\ABC.lvl", "ABC_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]

Re: Problems with locals

Posted: Sat Dec 30, 2017 3:19 pm
by Ascertes
In my experience, having no command posts usually indicates a problem with the .lvl file. As for your LUA, a couple things:

Code: Select all

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
LocalTeam = 3;
-- These variables do not change
ATT = [b]REP[/b];
DEF = [b]CIS[/b];
My only experience with bf2 modding lies in space battles, but for bf1 at least the REP and CIS are normally 1 and 2. After checking a stock bf2 LUA, it is the same for bf2. So I'd start by changing REP and CIS to 1 and 2 for ATT and DEF.
Also, the "LocalTeam = 3;" part doesn't seem to be necessary, based on stock LUA's. I'd try removing that as well, see what happens.

Secondly, this:

Code: Select all

--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"}
[b]cp6 = CommandPost:New{name = "Local_CP"}[/b]

conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5) 
Notice how the bolded line is missing from the second section. That may also be causing a problem.


Otherwise, it seems your LUA is fine. Hope this helps!

Re: Problems with locals

Posted: Sun Dec 31, 2017 8:57 pm
by Cattermelon
I tried what you suggested, and nothing has changed. Any other ideas?

Re: Problems with locals

Posted: Mon Jan 01, 2018 7:28 pm
by LitFam
You forgot to add this in your .lua

conquest:AddCommandPost(Local_CP)

Re: Problems with locals

Posted: Mon Jan 01, 2018 8:54 pm
by Marth8880
LitFam wrote:You forgot to add this in your .lua

conquest:AddCommandPost(Local_CP)
Close. It would have to be `conquest:AddCommandPost(cp6)` - the value inside the parentheses is a variable, which in this case is `cp6`.

Re: Problems with locals

Posted: Tue Jan 02, 2018 10:47 am
by Cattermelon
LitFam wrote:You forgot to add this in your .lua

conquest:AddCommandPost(Local_CP)
Marth8880 wrote:
LitFam wrote:You forgot to add this in your .lua

conquest:AddCommandPost(Local_CP)
Close. It would have to be `conquest:AddCommandPost(cp6)` - the value inside the parentheses is a variable, which in this case is `cp6`.
Neither of these solutions changed anything.

Re: Problems with locals

Posted: Wed Jan 03, 2018 5:52 pm
by Ascertes
Upon further inspection, this also stood out to me:

Code: Select all

 --ReadDataFile("dc:ABC\\ABC.lvl", "ABC_conquest")
    ReadDataFile("dc:ABC\\ABC.lvl", "ABC_conquest")
Is your 3 letter date folder called ABC? The only reason I ask is because most people do a more unique 3 letter name, and ABC is used often in tutorials so sometimes people to forget to change it after doing said tutorials.

Re: Problems with locals

Posted: Mon Jan 08, 2018 12:44 pm
by Cattermelon
Yeah, I just made it ABC. This is my first map (just for myself), and I didn't really care enough to think of a creative name, lol.

Re: Problems with locals

Posted: Mon Jan 08, 2018 7:37 pm
by Ascertes

Code: Select all

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_ep3_jettrooper",
                             "rep_hover_fightertank",
                             "rep_hero_anakin",
                             "rep_hover_barcspeeder")
Another thing. Did you create a custom Republic side? If not, the dc: part doesn't need to be there.

Re: Problems with locals

Posted: Mon Jan 08, 2018 8:06 pm
by AQT
You have:
Cattermelon wrote:

Code: Select all

    AddAiGoal(3, "Deathmatch", 100)
It should be:

Code: Select all

    AddAIGoal(3, "Deathmatch", 100)
Also, you don't need to add the local CP to the list of CPs, unless it needs to be captured as well in order for the countdown timer to appear.

Re: Problems with locals

Posted: Wed Jan 10, 2018 11:22 am
by Cattermelon
I fixed the typo you pointed out, AQT, and I can now spawn into the map, and everything seems normal, except no ewoks are showing up.

Re: Problems with locals

Posted: Wed Jan 10, 2018 11:37 am
by Marth8880
Is the locals CP's team set to 3?

Also, have you checked the debug log for any relevant information?

Re: Problems with locals

Posted: Wed Jan 10, 2018 11:49 am
by Cattermelon
Yes it is. And there's a slight problem there. When I run the debug battlefront, no debug log ever appears.

Re: Problems with locals

Posted: Wed Jan 10, 2018 11:50 am
by Marth8880

Re: Problems with locals

Posted: Wed Jan 10, 2018 11:56 am
by Cattermelon
I use to get the CD 1 error thing, so I use the modified version referenced at the bottom, which I have placed in the same folder as my BattlefrontII.exe. It works fine, but whenever I close it no debug log appears.

Re: Problems with locals

Posted: Wed Jan 10, 2018 11:57 am
by Marth8880
Again, see question #4 - particularly the note to Vista users (applies to 7/8/8.1/10/etc. too).

Re: Problems with locals

Posted: Wed Jan 10, 2018 12:07 pm
by Cattermelon
Okay, I found the debug log, thanks for the help. Here's some stuff that seemed relevant. I figured I'd post it here since I'm not familiar working with the debug log, lol.

Code: Select all

Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\LoadUtil.cpp(829)
Unable to find level chunk ewk_inf_trooper in data\_lvl_pc\SIDE\ewk.lvl


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\LoadUtil.cpp(1019)
Unable to find level chunk  in SIDE\ewk.lvl

Re: Problems with locals

Posted: Wed Jan 10, 2018 2:15 pm
by AQT
I don't have the source files to check at the moment, but is the unit really called ewk_inf_trooper? Double check the stock Endor lua files to be sure.

EDIT
Ah, you can't just load ewk_inf_trooper like that. It has to be done like this: viewtopic.php?p=246463#p246463

Re: Problems with locals

Posted: Wed Jan 10, 2018 2:43 pm
by Cattermelon
I checked the stock Endor lua files and they do indeed reference an "ewk_inf_trooper".

Re: Problems with locals

Posted: Wed Jan 10, 2018 3:03 pm
by AQT
Again: viewtopic.php?p=246463#p246463

You have:
Cattermelon wrote:

Code: Select all

    ReadDataFile ("SIDE\\ewk.lvl",
             "ewk_inf_trooper")
It should be:

Code: Select all

    ReadDataFile ("SIDE\\ewk.lvl",
             "ewk_inf_basic")
While ewk_inf_trooper can be used as a unit class, you actually load ewk_inf_basic instead, which contains all three stock Ewok classes.