Hello everyone. As you can see, I'm new around here, and like all new modders I've run into some trouble. I'm trying to replace some of the clone troopers for wookies. I've added all the wookie data into my rep side folder and have added them into my lua and my repshell. I cleaned and munged and got no errors. Now when I try to run my map it crashes to the desktop. I've been looking on the search function for an answer without any luck. Here's my lua, hopefully someone can see what I've done wrong...
--
-- 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()
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("dc:SIDE\\rep.lvl",
"wok_inf_warrior",
"wok_inf_rocketeer",
"wok_inf_mechanic",
"rep_inf_ep3_sniper_felucia",
"rep_inf_ep3_officer",
"rep_hover_fightertank",
"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 = { "wok_inf_warrior",9, 25},
assault = { "wok_inf_rocketeer",1, 4},
engineer = { "wok_inf_mechanic",1, 4},
sniper = { "rep_inf_ep3_sniper_felucia",1, 4},
officer = {"rep_inf_ep3_officer",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},
}
}
AddUnitClass(REP, "all_inf_wookie",2, 4)
SetHeroClass(CIS, "cis_hero_darthmaul")
SetHeroClass(REP, "")
-- 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:KAE\\KAE.lvl", "KAE_conquest")
ReadDataFile("dc:KAE\\KAE.lvl", "KAE_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
Note: My map worked before I tried adding the wookies
Help replacing units
Moderator: Moderators
-
Zaniac
- Private First Class
- Posts: 77
- Joined: Wed Oct 25, 2006 7:07 pm
- Projects :: No Mod project currently.
- xbox live or psn: No gamertag set
-
The_Emperor
- Supreme Galactic Ruler
- Posts: 2118
- Joined: Sat Dec 10, 2005 6:30 am
- Projects :: No Mod project currently.
- xbox live or psn: No gamertag set
- Location: Waaaaay over there.
RE: Help replacing units
Code: Select all
AddUnitClass(REP, "all_inf_wookie",2, 4) -
Rekubot
- Jedi

- Posts: 1080
- Joined: Wed Apr 05, 2006 12:34 pm
- Projects :: No Mod project currently.
- xbox live or psn: Rekubot
- Location: UK
RE: Help replacing units
Is the REQ file still called wok_inf_basic? That file loads up all three ODF files, so you don't need to mention them in the ReadDataFile part for the LUA. If your req file is wok_inf_basic, it should look more like this:
Finally, see this?
http://www.gametoast.com/index.php?name ... pic&t=5363
Perhaps you have this already, but if you follow the instructions and show us your BF2 log it'll make it much easier for us to help you.
Then in the setup teams section, it calls for the ODF files, so if you have a look in wok_inf_basic (that is, assuming you just kept the same REQ file in the WOK side and moved it over), you'll see this:ReadDataFile("dc:SIDE\\rep.lvl",
"wok_inf_basic",
"rep_inf_ep3_sniper_felucia",
"rep_inf_ep3_officer",
"rep_hover_fightertank",
"rep_hover_barcspeeder")
The "class" bit means that it calls for ODF files, so in your ODF folder in the REP side folder there should be three files; wok_inf_mechanic, wok_inf_rocketeer and wok_inf_warrior. Those are the bits that go in the setup teams section, which you've done properly.ucft
{
REQN
{
"class"
"wok_inf_mechanic"
"wok_inf_rocketeer"
"wok_inf_warrior"
}
}
Finally, see this?
You're telling the LUA to use an ODF file which doesn't exist in the REP/odf folder. You also haven't told the LUA to call for the REQ file in the ReadDataFile section. Whatsmore, if you're missing any MSH or animation files then the map will most likely crash.AddUnitClass(REP, "all_inf_wookie",2, 4)
http://www.gametoast.com/index.php?name ... pic&t=5363
Perhaps you have this already, but if you follow the instructions and show us your BF2 log it'll make it much easier for us to help you.
-
Zaniac
- Private First Class
- Posts: 77
- Joined: Wed Oct 25, 2006 7:07 pm
- Projects :: No Mod project currently.
- xbox live or psn: No gamertag set
Thanks for the help. I've changed the ReadDataFile to wok_inf_basic, removed the AddUnitClass, doubled checked the wok_inf_basic req file was moved, re copied everything in the wok sides folder into the Rep folder. I munged and got no error and then I tried running my map and it still crashes. I tried adding this line:
Rekubot: I'm still trying to install the debug output hopefully it will help me see my bf2log...
But it still crashes. Is it because I have the rep.req, repshell.req, and wok_inf_basic.req all in my rep folder? Do I only have to have one req? Sorry if this is a stupid question but I'm still learning how to mod. I tried running the the Battlefront modtools in the gamedata folder to get the bf2log but it keeps asking me to insert disk 1 when it's already in there. I think it's something with my Sonic DLA not reading my disk.
ReadDataFile("SIDE\\rep.lvl",
"wok_inf_warrior",
"wok_inf_rocketeer",
"wok_inf_mechanic")
Rekubot: I'm still trying to install the debug output hopefully it will help me see my bf2log...
-
Rekubot
- Jedi

- Posts: 1080
- Joined: Wed Apr 05, 2006 12:34 pm
- Projects :: No Mod project currently.
- xbox live or psn: Rekubot
- Location: UK
If you have the DVD version, the BF2_modtools.exe will not work unless you follow [RDH]Zerted's tutorial. Also, why did you put the wok_inf_warrior, rocketeer and mechanic in the ReadDataFile part? The ReadDataFile part calls for REQ files, and the SetupTeams{ section calls for the ODF files that are mentioned within the REQ.
