Page 1 of 1

New side not showing up

Posted: Sat Oct 02, 2010 10:57 pm
by Noobasaurus
Whenever I make a new side, (completely new, like my kuf side)it never shows up in the selection screen! It has no errors either. Maybe it's because it is asking for a tga for the trooper that I don't have? Maybe the weapons are not set properly? I know I put it in the lua the right way. Anyway, here is my unit's odf: (Does it have to say odf file or can it say text document?)

Code: Select all

[GameObjectClass]
ClassParent     	= "kuf_inf_warrior_1"

[Properties]
UnitType            	= "trooper"

WEAPONSECTION = 1
WeaponName     	= "weap_inf_vibrosword"
WeaponAmmo     	= 0

VOUnitType      	= 083

It should work correctly, but it doesnt. And where does it ask for the tga file for the trooper? Here?

Code: Select all

[GameObjectClass]
ClassParent     	= "kuf_inf_warrior_1"
And this is my lua:
Hidden/Spoiler:
[code]--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
-- Mos Eisley Hero Deathmatch (uses Space Assault rules)
-- First team to reach 100 kills wins
--

ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveTDM")

---------------------------------------------------------------------------
-- ScriptPostLoad
---------------------------------------------------------------------------
function ScriptPostLoad()
EnableSPHeroRules()
-- This is the actual objective setup
TDM = ObjectiveTDM:New{teamATT = 1, teamDEF = 2,
multiplayerScoreLimit = 100,
textATT = "game.modes.tdm",
textDEF = "game.modes.tdm2", multiplayerRules = true, isCelebrityDeathmatch = true}
TDM:Start()

AddAIGoal(1, "Deathmatch", 300)
AddAIGoal(2, "Deathmatch", 300)

AddDeathRegion("doom")


SetUberMode(1);

end


---------------------------------------------------------------------------
-- ScriptInit
---------------------------------------------------------------------------
function ScriptInit()


SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",70) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",850) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",850) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",850) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",750) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",8000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",140) -- should be ~1x #combo -- should be ~1x #combo

ReadDataFile("ingame.lvl")

ALL = 1
IMP = 2
-- These variables do not change
ATT = 1
DEF = 2

SetMaxFlyHeight(99999999999)
SetMaxPlayerFlyHeight(999999999)

ReadDataFile("sound\\tat.lvl;tat2gcw")
ReadDataFile("dc:SIDE\\all.lvl",
"all_hero_luke_jedi",
"all_hero_hansolo_tat",
"all_hero_leia",
"all_hero_chewbacca")

ReadDataFile("dc:SIDE\\imp.lvl",
"imp_hero_darthvader",
"imp_hero_emperor",
"imp_hero_bobafett")

ReadDataFile("dc:SIDE\\rep.lvl",
"rep_hero_yoda",
"rep_hero_macewindu",
"rep_hero_anakin",
"rep_hero_aalya",
"rep_hero_kiyadimundi",
"rep_hero_obiwan")

ReadDataFile("dc:SIDE\\kuf.lvl",
"kuf_inf_warrior_1")

ReadDataFile("dc:SIDE\\cis.lvl",
"cis_hero_grievous",
"cis_hero_darthmaul",
"cis_hero_countdooku",
"cis_hero_jangofett")

--[[ Turrets disabled
ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_chaingun_roof",
"tur_weap_built_gunturret")
SetMemoryPoolSize("MountedTurret", 15)
--]]

--ReadDataFile("SIDE\\snw.lvl", "snw_inf_wampa")

SetupTeams{
hero = {
team = ALL,
units = 200,
reinforcements = -1,
soldier = { "all_hero_hansolo_tat",1,2},
assault = { "all_hero_chewbacca", 1,2},
engineer= { "all_hero_luke_jedi", 1,2},
sniper = { "rep_hero_obiwan", 1,2},
officer = { "rep_hero_yoda", 1,2},
special = { "rep_hero_macewindu", 1,2},
},
}

AddUnitClass(ALL,"all_hero_leia", 1,2)
AddUnitClass(ALL,"imp_inf_default_engineer", 1,2)

SetupTeams{
villain = {
team = IMP,
units = 200,
reinforcements = -1,
soldier = { "imp_hero_bobafett", 1,2},
assault = { "imp_hero_darthvader",1,2},
engineer= { "cis_hero_darthmaul", 1,2},
sniper = { "cis_hero_jangofett", 1,2},
officer = { "cis_hero_grievous", 1,2},
special = { "imp_hero_emperor", 1,2},

},
}
AddUnitClass(IMP, "kuf_inf_warrior_1",1,2)
AddUnitClass(IMP, "cis_hero_countdooku",1,2)


-- Level Stats
ClearWalkers()
AddWalkerType(0, 0) -- 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 = 96
SetMemoryPoolSize("Aimer", 1)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 320)
SetMemoryPoolSize("ConnectivityGraphFollower", 23)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth",41)
SetMemoryPoolSize("EntityDefenseGridTurret", 0)
SetMemoryPoolSize("EntityDroid", 0)
SetMemoryPoolSize("EntityFlyer", 5) -- to account for 5 chewbaccas
SetMemoryPoolSize("EntityLight", 80, 80) -- stupid trickery to actually set lights to 80
SetMemoryPoolSize("EntityPortableTurret", 0) -- nobody has autoturrets AFAIK - MZ
SetMemoryPoolSize("EntitySoundStream", 2)
SetMemoryPoolSize("EntitySoundStatic", 45)
SetMemoryPoolSize("FLEffectObject::OffsetMatrix", 120)
SetMemoryPoolSize("MountedTurret", 0)
SetMemoryPoolSize("Navigator", 23)
SetMemoryPoolSize("Obstacle", 667)
SetMemoryPoolSize("Ordnance", 80) -- not much ordnance going on in the level
SetMemoryPoolSize("ParticleEmitter", 512)
SetMemoryPoolSize("ParticleEmitterInfoData", 512)
SetMemoryPoolSize("PathFollower", 23)
SetMemoryPoolSize("PathNode", 128)
SetMemoryPoolSize("ShieldEffect", 0)
SetMemoryPoolSize("TentacleSimulator", 24)
SetMemoryPoolSize("TreeGridStack", 290)
SetMemoryPoolSize("UnitAgent", 23)
SetMemoryPoolSize("UnitController", 23)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(10.0, 0.25)
ReadDataFile("dc:BFU\\BFU.lvl", "BFU_eli")
SetDenseEnvironment("false")

-- Sound Stats

ScriptCB_EnableHeroMusic(0)
ScriptCB_EnableHeroVO(0)

voiceSlow = OpenAudioStream("sound\\global.lvl", "all_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "imp_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)

voiceQuick = OpenAudioStream("sound\\global.lvl", "all_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "imp_unit_vo_quick", voiceQuick)

OpenAudioStream("sound\\global.lvl", "gcw_music")
OpenAudioStream("sound\\tat.lvl", "tat2")
OpenAudioStream("sound\\tat.lvl", "tat2")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")

SetBleedingVoiceOver(ALL, ALL, "all_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(ALL, IMP, "all_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(IMP, ALL, "imp_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(IMP, IMP, "imp_off_com_report_us_overwhelmed", 1)

SetLowReinforcementsVoiceOver(ALL, ALL, "all_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(ALL, IMP, "all_off_victory_im", .1, 1)
SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(IMP, ALL, "imp_off_victory_im", .1, 1)

SetOutOfBoundsVoiceOver(1, "Allleaving")
SetOutOfBoundsVoiceOver(2, "Impleaving")

SetAmbientMusic(ALL, 1.0, "gen_amb_celebDeathmatch", 0,1)
-- SetAmbientMusic(ALL, 0.9, "all_tat_amb_middle", 1,1)
-- SetAmbientMusic(ALL, 0.1, "all_tat_amb_end", 2,1)
SetAmbientMusic(IMP, 1.0, "gen_amb_celebDeathmatch", 0,1)
-- SetAmbientMusic(IMP, 0.9, "imp_tat_amb_middle", 1,1)
-- SetAmbientMusic(IMP, 0.1, "imp_tat_amb_end", 2,1)

SetVictoryMusic(ALL, "all_tat_amb_victory")
SetDefeatMusic (ALL, "all_tat_amb_defeat")
SetVictoryMusic(IMP, "imp_tat_amb_victory")
SetDefeatMusic (IMP, "imp_tat_amb_defeat")

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--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")

SetAttackingTeam(ATT)

-- Camera Stats
--Tat2 Mos Eisley
AddCameraShot(0.974338, -0.222180, 0.035172, 0.008020, -82.664650, 23.668301, 43.955681);
AddCameraShot(0.390197, -0.089729, -0.893040, -0.205362, 23.563562, 12.914885, -101.465561);
AddCameraShot(0.169759, 0.002225, -0.985398, 0.012916, 126.972809, 4.039628, -22.020613);
AddCameraShot(0.677453, -0.041535, 0.733016, 0.044942, 97.517807, 4.039628, 36.853477);
AddCameraShot(0.866029, -0.156506, 0.467299, 0.084449, 7.685640, 7.130688, -10.895234);
end[/code]
Any help is greatly appreciated.

Re: New side not showing up

Posted: Sat Oct 02, 2010 11:24 pm
by AQT
Noobasaurus wrote:It should work correctly, but it doesnt.
It shouldn't work at all with how the way you set up your unit's ODF. It's missing a lot of important stuff.

The ClassParent parameter doesn't call for a TGA but rather another ODF. Which sides tutorials, if any, are you following?

Re: New side not showing up

Posted: Sun Oct 03, 2010 10:04 am
by Noobasaurus
Well, I read 2 tutorials. One was fierfeks:
Go over to the ‘odf’ folder. Now, there is a large list of things that the republic side uses.
Now, the codename for the 501st Clone Trooper is ‘rep_inf_ep3_rifleman’ (see end of this part for a quick reference on clone codenames). So, go find that file in the ‘odf’ folder.
When you find it, open it in Notepad. It looks like this:

[GameObjectClass]
ClassParent = "rep_inf_default_rifleman"

[Properties]
GeometryName = "rep_inf_ep3trooper"
GeometryLowRes = "rep_inf_ep3trooper_low1"
FirstPerson = "REP\reptroop;rep_1st_trooper"

The first line calls for the unit’s properties (rep_inf_default_rifleman). We will deal with that later.
The next line calls for the model (and the model calls for the skin). We want this line, because it deals with the model, and the model deals with the skin.
Remember ‘rep_inf_ep3trooper’. Go back to the MSH folder, and find the MSH called ‘rep_inf_ep3trooper’. Generally, msh’s and their associating TGA’s have the same name. So now find the TGA called ‘rep_inf_ep3trooper’. Copy it to another folder.
Now for this step, you will need a program that can open TGA’s.
And another was ... well, I forgot who made it but it was on sides:
Ok, so make a folder in Data_ABC/Sides, and name it PMS (IE whatever your side name is)
And then inside it, make a: effects, odf, msh, req, and MUNGED folders
(note that the MUNGED folder doesn’t need to be in caps, it just typically is.)
So it now looks like this:



Now go get the assets for your unit.
(make sure you only copy the original assets, and not modify them.)
This means get the all the TGAs, MSHs, weapon ODFs, and the unit’s ODF, that you want/need.
They did give me a lot of the information I needed, but never told me exactly what I needed to have.
AQT wrote:It shouldn't work at all with how the way you set up your unit's ODF. It's missing a lot of important stuff.

So what else so I need for it to work?
The ClassParent parameter doesn't call for a TGA but rather another ODF. Which sides tutorials, if any, are you following?
The tutorials are above. The second one(I remember now! :wink: ) is from the gametoast FAQ on sides (Custom Sides: Howto), by Caleb1117.


...Or could this possibly be what I need?
Hidden/Spoiler:
[code][GameObjectClass]
ClassParent = "com_jedi_default"
GeometryName = "jed_inf_jedi.msh"

[Properties]
AISizeType = "HOVER"

GeometryName = "jed_inf_jedi"
GeometryLowRes = "jed_inf_jedi_low1"
OverrideTexture = "jed_inf_jedi02"

AnimationName = "obiwan"
//ClothODF = "rep_inf_ep3obiwan_skirt"

HealthType = "person"
MaxHealth = 200.0
AddHealth = 20.0

MaxSpeed = 8.0
MaxStrafeSpeed = 6.0
MaxTurnSpeed = 5.0
JumpHeight = 3.5
RecoverFromTumble = "1"

NoEnterVehicles = 1

//Jet Jump
JetJump = "10.0" //The initial jump-push given when enabling the jet
JetPush = "0.0" //The constant push given while the jet is enabled (20 is gravity)
JetAcceleration = "10.0" // for characters with jet jump, use this acceleration for in air control
JetEffect = ""
JetFuelRechargeRate = "0.0" //Additional fuel per second (fuel is 0 to 1)
JetFuelCost = "0.0" //Cost per second when hovering (only used for jet-hovers)(fuel is 0 to 1)
JetFuelInitialCost = "0.0" //4initial cost when jet jumping(fuel is 0 to 1)
JetFuelMinBorder = "0.0" //minimum fuel to perform a jet jump(fuel is 0 to 1)
JetShowHud = 0
JetEnergyDrain = 40.0

CollisionScale = "0.0 0.0 0.0" // don't take damage from collisions
//Jet Jump End

WEAPONSECTION = 1
WeaponName1 = "jed_weap_lightsaber_obiwan"
WeaponAmmo1 = 0

//SOUND
//SndHeroSelectable = ""
//SndHeroSpawned = "hero_obiWan_spawn"
//SndHeroDefeated = "hero_obiWan_exhausted"
//SndHeroKiller = "hero_obiWan_exhausted"

//VOSound = "hero_obiWan_AcquiredTarget AcquiredTarget"
//VOSound = "hero_obiWan_KillingSpree4 KillingSpree4"

VOUnitType = 0181
//SoldierMusic = "rep_hero_ObiWan_lp"
HurtSound = ""
DeathSound = ""
AcquiredTargetSound = ""
HidingSound = ""
//ApproachingTargetSound = ""
FleeSound = ""
PreparingForDamageSound = ""
HeardEnemySound = ""
ShockFadeOutTime = ""
ShockFadeInTime = ""
ShockFadeOutGain = ""
ShockSound = ""
ClothingRustleSound = ""
//LowHealthSound = "com_inf_saber_ambient"
LowHealthThreshold = "1.1"
FoleyFXClass = "rep_inf_soldier"

[/code]

Re: New side not showing up

Posted: Sun Oct 03, 2010 11:23 am
by Fiodis
I'm not sure what you want to do. Make a custom side? Read BF2 Jedi Creation.doc; it goes over how to set up a custom side. Chances are you won't understand a fair deal of it, so then you go to the FAQ thread tutorials to fill any holes you have, and then if you still don't understand something, you run a forum search, and then if you still don't you make a thread. So generally, Stock Documentation --> FAQ threads --> Forum search --> Open a topic.

As for what you need, I thought the tutorials you cited above were quite clear on that. You need an odf, req, side req, msh, tga files, and any msh/tga.option files that come with it. As for where to put them, you ought to be able to figure that out by looking at stock side setups.

Re: New side not showing up

Posted: Sun Oct 03, 2010 2:55 pm
by Noobasaurus
Well, I know what to get, (the files, I mean) but I just don't know which ones. I copied this:
[GameObjectClass]
ClassParent = "cis_inf_default"

[Properties]
UnitType = "trooper"

WEAPONSECTION = 1
WeaponName = "cis_weap_inf_wrist_blaster"
WeaponAmmo = 5

WEAPONSECTION = 2
WeaponName = "cis_weap_inf_wrist_trishot"
WeaponAmmo = 0

WEAPONSECTION = 3
WeaponName = "cis_weap_inf_wrist_rocket"
WeaponAmmo = 3
WeaponChannel = 1

WEAPONSECTION = 4
WeaponName = "cis_weap_award_wrist_blaster"
WeaponAmmo = 4

VOUnitType = 083
from a super battle droid. Is it the wrong one, or must I make another odf for it to be connected to?

Edit: I'm now reading the document you showed me. Good so far.


Offtopic: Could anyone help me with these?

Code: Select all

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


Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\LuaHelper.cpp(112)
OpenScript(BFUc_eli): script (29062f8a) not found

Message Severity: 5
C:\Battlefront2\main\Battlefront2\Source\GameState.cpp(1283)
Could not open MISSION\BFUc_eli.lvl

Re: New side not showing up

Posted: Mon Oct 04, 2010 12:27 pm
by DarthD.U.C.K.
it means youve made a mistake while editing the .lua (bfuc_eli)

Re: New side not showing up

Posted: Mon Oct 04, 2010 11:01 pm
by Noobasaurus
Well, I just scrapped that idea because it is a biiiit too advanced for me. I'll just stick to finding out what's wrong with my sides and map thingies. But where could I have gone wrong? (Lol, I just copied over the lua already there and edited a few things, like ALL and IMP VS REP and CIS)

Re: New side not showing up

Posted: Tue Oct 05, 2010 2:24 am
by DarthD.U.C.K.
you can do basically everythig wrong. one wrong bracket can/will crash the map already.

Re: New side not showing up

Posted: Wed Oct 06, 2010 7:04 pm
by Noobasaurus
DarthD.U.C.K. wrote:you can do basically everythig wrong. one wrong bracket can/will crash the map already.
Hmmm, yeah. I'll make a new side later in the future. :clone: