Custom side errors...

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
Rekubot
Jedi
Jedi
Posts: 1080
Joined: Wed Apr 05, 2006 12:34 pm
Projects :: No Mod project currently.
Games I'm Playing :: Shadow Complex
xbox live or psn: Rekubot
Location: UK

Custom side errors...

Post by Rekubot »

For about a month now I've been struggling to get a custom unit in-game, and it was only yesterday that I discovered I needed to make a whole new side to get the custom unit working. I've put in every file that it needs into the side folder (which is called "bet"), and when I munge I get the following errors:

Code: Select all

ERROR[levelpack req\bet_inf_ep3_bettrooper.req]:Expecting bracket, but none was found.
File : munged\pc\bet_inf_ep3bettrooper_low1.model.req(1)...

ucft <--
ERROR[levelpack req\bet_inf_ep3_bettrooper.req]:Expecting bracket, but none was found.
File : munged\pc\bet_inf_ep3bettrooper_low1.model.req(1)...

ucft <--

   2 Errors    0 Warnings

ERROR[levelpack bet.req]:Expecting bracket, but none was found.
File : munged\pc\bet_inf_ep3_bettrooper.lvl.req(1)...

ucft <--
ERROR[levelpack bet.req]:Expecting bracket, but none was found.
File : munged\pc\bet_inf_ep3_bettrooper.lvl.req(1)...

ucft <--

   2 Errors    0 Warnings
Now I've looked into my .REQ files and there doesn't seem to be anything wrong with them, so I'm guessing that there must be another file involved. Here's my LUA:

Code: Select all

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

    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(50)
    SetMaxPlayerFlyHeight (50)
    
    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_ep3_jettrooper",        
                             "rep_hover_fightertank",
                             "rep_hero_anakin",
                             "rep_hover_barcspeeder")
    ReadDataFile("dc:SIDE\\cis.lvl",
                             "cis_inf_marine",
                             "cis_inf_rifleman",
                             "cis_inf_rocketeer",
                             "cis_inf_engineer",
                             "cis_inf_sniper",
                             "cis_inf_officer",
                             "cis_inf_droideka",
                             "cis_hero_grievous",
                             "cis_hover_aat")

    ReadDataFile("dc:SIDE\\bet.lvl",
                             "bet_inf_ep3_bettrooper")
                             
    ReadDataFile("SIDE\\tur.lvl", 
    			"tur_bldg_laser",
    			"tur_bldg_tower")          
                             
	SetupTeams{
		rep = {
			team = REP,
			units = 40,
			reinforcements = 150,
			soldier  = { "rep_inf_ep3_rifleman",10, 25},
			assault  = { "rep_inf_ep3_rocketeer",2, 4},
			engineer = { "rep_inf_ep3_engineer",2, 4},
			sniper   = { "rep_inf_ep3_sniper",2, 4},
			officer = {"rep_inf_ep3_officer",2, 3},
			special = { "rep_inf_ep3_jettrooper",0, 1},
	        
		},
		cis = {
			team = CIS,
			units = 40,
			reinforcements = 150,
			soldier  = { "cis_inf_marine", 10, 25},
			assault  = { "cis_inf_rocketeer",2, 4},
			engineer = { "cis_inf_engineer",2, 4},
			sniper   = { "cis_inf_sniper",2, 4},
			officer = {"cis_inf_officer",2, 4},
			special = { "cis_inf_rifleman",10, 25},
		},
	}

    AddUnitClass(CIS, "cis_inf_droideka",2, 4)
    AddUnitClass(REP, "bet_inf_ep3_bettrooper",0, 1)
     
    SetHeroClass(CIS, "cis_hero_grievous")
    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:CHR\\CHR.lvl", "CHR_conquest")
    ReadDataFile("dc:CHR\\CHR.lvl", "CHR_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
Since it says one of my .REQ files is missing a bracket, I'll post those as well.

Here's bet.req:

Code: Select all

ucft
{
    REQN
    {
        "lvl"
        "bet_inf_ep3_bettrooper"
    }
}
Here's bet_inf_ep3_bettrooper.req:

Code: Select all

ucft
{
    REQN
    {
        "class"
        "bet_inf_ep3_bettrooper"
    }
}
And here's reptroop.req, although I don't think this one is important:

Code: Select all

ucft
{    
	REQN
	{
		"model"
		"rep_1st_trooper"
	}
}
If you can see anything that's wrong, please help me out! Thanks in advance.

Edit: Just to let you know, the game runs fine, it's just that the unit does not show up when you select a character.
Schizo

RE: Custom side errors...

Post by Schizo »

Go to the BUILD -> SIDES folder. Copy any one of the folders in there. Paste a copy, and rename it to "bet". Clean and munge your map.
Rekubot
Jedi
Jedi
Posts: 1080
Joined: Wed Apr 05, 2006 12:34 pm
Projects :: No Mod project currently.
Games I'm Playing :: Shadow Complex
xbox live or psn: Rekubot
Location: UK

RE: Custom side errors...

Post by Rekubot »

Nope, didn't work, he still doesn't show up. Thanks anyway though. Any other suggestions?
Hebes24
Sith Master
Sith Master
Posts: 2594
Joined: Sat Jun 03, 2006 5:15 pm
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set
Location: In An Epic Space Battle!
Contact:

RE: Custom side errors...

Post by Hebes24 »

I just copied the side from my assets folder to data_***\Sides. then munge the side you copied. youi will get some warnings, but nothing that affects the game. then in that side folder you can edit and add anything you want. That's better than creating a whole new side, and alot less work in my opinion.

BTW, your REQ's look perfect. I see no problem. check for other places where you should have a req and see if you made any mistakes or forgot one. Otherwise, I don't know what's wrong. :?
Rekubot
Jedi
Jedi
Posts: 1080
Joined: Wed Apr 05, 2006 12:34 pm
Projects :: No Mod project currently.
Games I'm Playing :: Shadow Complex
xbox live or psn: Rekubot
Location: UK

RE: Custom side errors...

Post by Rekubot »

It didn't work, but I have a feeling that I know why; the bettrooper has the same .MSH file as the jettrooper. I've followed the tutorial a few threads back about getting different skins onto the same model but it still doesn't want to work. The PC_MungeLog file is saying something about the low1.msh file, I suppose I better check in there for errors (although I've already checked about 5 times).
Dabrowski

RE: Custom side errors...

Post by Dabrowski »

im sorry rekubot. i posted something before but you done that already so i deleted it.

I have a question though about the problem, does all seven of your cis units display? (ie the droideka you added) or just your bet_inf_ep3_bettrooper does not show up?
Rekubot
Jedi
Jedi
Posts: 1080
Joined: Wed Apr 05, 2006 12:34 pm
Projects :: No Mod project currently.
Games I'm Playing :: Shadow Complex
xbox live or psn: Rekubot
Location: UK

RE: Custom side errors...

Post by Rekubot »

Yes, all the CIS units show up, most probably because I was adding in an already in-game unit; the droid marine.
Dabrowski

RE: Custom side errors...

Post by Dabrowski »

can you just rename the skin and rename it in the '.odf" or ".req" to look for that skin by adding a few lines?
Rekubot
Jedi
Jedi
Posts: 1080
Joined: Wed Apr 05, 2006 12:34 pm
Projects :: No Mod project currently.
Games I'm Playing :: Shadow Complex
xbox live or psn: Rekubot
Location: UK

RE: Custom side errors...

Post by Rekubot »

That's what I have been trying to do for the last couple of months, but it never worked. It worked with the CIS marine, but not the Republic jettrooper. I suppose that I'll just have to try again.
Dabrowski

RE: Custom side errors...

Post by Dabrowski »

Rekubot, as i was trying to create a new map i ran up across a similar problem. However I solved it using a guide i saved into my documents from a post long ago. This might help you find the solution...
1) Create a new map, copy the race you want to edit (example: republic) into the sides folder of the new map.
2) Now go to assets/shell and copy all of the folders in it, but not the .req, then paste it in the _Build/shell folder in the newmap you created.
3) Now Copy the “Common” folder from within the mod-tool “assets/sides” directory and place it in the sides folder of your new map,
4) edit the texture,
5) now, go into common > script > newmapname and open the LUA file named newmapnamec_con.lua (for me that was BS1c_con.lua ). Now if you look down the LUA file you will see ReadDataFile("SIDE\\rep.lvl", change this to ReadDataFile("dc:SIDE\\rep.lvl ,
6) then copy 2 .bat files in the side you got, these are: clean.bat and munge.bat , these can be acquired from the _BUILD > Sides > ALL in the newmap you created, then copy the 2 .bat files into the side in the mod tools you are modifying.
7) Finally we munge the your new map (see Jedi Creation doc for more info) we select the new race in the drop down menu on the left, and select the race you edited (mine was rep) you also have to tick the "common" check box, then munge!
Rekubot
Jedi
Jedi
Posts: 1080
Joined: Wed Apr 05, 2006 12:34 pm
Projects :: No Mod project currently.
Games I'm Playing :: Shadow Complex
xbox live or psn: Rekubot
Location: UK

RE: Custom side errors...

Post by Rekubot »

Hehe, I too, saved this tutorial a while back, but I never thought of looking at it. Thanks, I'll try it out and see if it works.
Post Reply