So I was hoping to make a custom side for myself (which you kind find what it is and an explanation heeeerrre - http://www.swbfgamers.com/index.php?topic=12904.0)
But I keep getting stuck cuz I'm constantly getting these ERROR MESAGES like this one here https://imgur.com/a/QTfAD8F
At this point (which isn't really a point cuz it's like i didn't even get to get that in depth with what I wanted to do) i would ask someone to do this whole thing for me. OOOR someone explain what's the dealio here with the error messages.
1) let's start simpler (see below)
2) what is the path that BFBuilder is installed in? The whole location like c:\blah\blah\blah
--------------------------------------------------------------------------------------
Let's start you with some simple mission mods.
Download and uncompress thisL
http://www.swbfgamers.com/index.php?action=downloads;sa=view;down=319
go to this folder
N:\mission.lvl_PC_swbf1\scripts\BES -------note that your path will different
open the file bes2a.lua with notepad
look at this section:
-- Alliance Stats
SetTeamName(ALL, "Alliance")
SetTeamIcon(ALL, "all_icon")
AddUnitClass(ALL, "all_inf_soldierurban",11)
AddUnitClass(ALL, "all_inf_vanguard",3)
AddUnitClass(ALL, "all_inf_pilot",4)
AddUnitClass(ALL, "all_inf_marksman",4)
AddUnitClass(ALL, "all_inf_smuggler",3)
SetHeroClass(ALL, "all_inf_lukeskywalker")
SetAttackingTeam(ATT);
and change it to look like this:
-- Alliance Stats
SetTeamName(ALL, "Alliance")
SetTeamIcon(ALL, "all_icon")
AddUnitClass(ALL, "all_inf_lukeskywalker",11)
AddUnitClass(ALL, "all_inf_lukeskywalker",3)
AddUnitClass(ALL, "all_inf_lukeskywalker",4)
AddUnitClass(ALL, "all_inf_lukeskywalker",4)
AddUnitClass(ALL, "all_inf_lukeskywalker",3)
SetHeroClass(ALL, "all_inf_lukeskywalker")
SetAttackingTeam(ATT);
double click on munge.bat located here N:\mission.lvl_PC_swbf1 (or where your folder is)
If you have space, make a complete backup copy of this folder
C:\Program Files (x86)\LucasArts\Star Wars Battlefront like BACKUPSWBF
go to this location:
N:\mission.lvl_PC_swbf1\_lvl_pc and copy the newly created mission.lvl file
now paste it into this location (after you made the backup of the whole game folder or at least the mission.lvl that is in here)
C:\Program Files (x86)\LucasArts\Star Wars Battlefront\GameData\Data\_LVL_PC
Now play cloud city as rebels and see what happens.
I think that will give you the idea of some things you can do. Much more is possible when BFBuilder is working.
Ok, I'm getting an idea of what's going on now. So from this, how can I tell the game to add the geonosian to the CIS side, and then edit its stats?
If you want to play a Geonosian with "stock" abilities, use the geonosian map side and edit the unit from the local team into a playable slot into the mission.
To edit the abilities of the Geonosian gun, we are going to need to get your BFbuilder working.
Let me know your install path. The tool will break if there are any spaces in path.
Make it like this: C:\BFBuilder\blah\blah
and make sure it is not like this:
C:\Program Files\notice the\spaces are bad\BFbuilder
that is the most common error.
My build path is D:Games/STARWARSBATTLEFRONT/LucasArts/BFBuilder
SO i fiddled around applpying geonosian to the playable team...and I disabled the one I was gonna swap it with :slap:
Quote from: LBmyBB on May 13, 2018, 10:10:36 AM
My build path is D:Games/STARWARSBATTLEFRONT/LucasArts/BFBuilder
SO i fiddled around applpying geonosian to the playable team...and I disabled the one I was gonna swap it with :slap:
I would recommend just putting it in c:\BFBuilder
I am not sure it can handle such a long folder name. There should be a detailed readme in the installation package that I linked.
No worries about the wrong edit, it is easy to try again!
Oh boy, I did it-ish. SO i succeeded in adding the geonosian to the the roster list. So i decided to do the exact same thing to bes1r.lua
However, I get this message when I use the munge.bat - https://imgur.com/a/Ao06IAq
Here is what bes1r.lua looks like from everything I changed.
- https://imgur.com/a/3ZOZOvt
- https://imgur.com/a/Bn3vW1F
- https://imgur.com/a/TLnSZe0
I'm pretty sure this is identical to what I did for geonosis.
Well, the cloud city map does not originally contain geonosians, so you have to do more than just change the mission lua.
So, we need to get your BFBuilder working to make more progress.
OKDOKEY, so i did what you said and changed the location. Now it just reads D:LucasArts/BFbuilder. Is that ok? If not, I will do what needs to be done. If so, show me how to do this :cheer:
OK, follow this tutorial
http://www.swbfgamers.com/index.php?topic=8.0
starting at right after BFBuilder is ready
(simple side editing)
make a MODID
and load the Geonosian Stock Side
edit the ODF file using notepad
Note that there are ODF files for units and weapons and other thing separately.
You may need to edit several ODF files to get what you want.
OKOK, so I think I have some understanding. Although, I'm a little overwhelmed because idk what to do when the geonosian stuff doesn't have anything to replace droid pilot stuff (and weapon stuff). What do I do?
Quote
So I wanna like edit the rep and cis sides cuz I want a custom team. I don't wanna do much (or is it) cuz its basically the same sides just with the gungan replacing the republic pilot, and the geonosian replacing the droid pilot. Also wanna them to be able to take more hits and have the sonic blaster deal a little more damage. Is that particularly hard and something I can do on my own? I'm a simple person and i'm about as good as dragging and dropping files.
OK, so at this point I assume you have BFBuilder working and have imported the "retail side": GEO
Use Windows [File] Explorer and go into:
F:\LucasArts\BFBuilder\Datags1\Sides\GEO\ODF
where your directory will look slightly different. I see three files, and here is one:
geo_inf_geonosian.odf
[GameObjectClass]
ClassLabel = "soldier"
GeometryName = "gen_inf_geonosian.msh"
[Properties]
FootWaterSplashEffect = "watersplash_sm"
WaterSplashEffect = "watersplash_md"
WakeWaterSplashEffect = "watersplash_wade"
Label = "Geonosian"
UnitType = "trooper"
IconTexture = "rep_htrooper_icon"
MapTexture = "troop_icon"
MapScale = 1.4
GeometryName = "gen_inf_geonosian"
GeometryLowRes = "gen_inf_geonosian_low1"
SkeletonName = "gen_inf_geonosian"
SkeletonLowRes = "geo_inf_geonosian_lowres"
AnimationName = "gen_inf_geonosian"
JetDuration = "5.0" //The duration of the jet push, until its turned off
JetJump = "8.0" //The initial jump-push given when enabling the jet
JetPush = "8.0" //The constant push given while the jet is enabled (20 is gravity)
JetEffect = "geo_wingsfly"
JetType = "hover"
JetFuelRechargeRate = "0.03" //Additional fuel per second (fuel is 0 to 1)
JetFuelCost = "0.1" //Cost per second when hovering (only used for jet-hovers)(fuel is 0 to 1)
JetFuelInitialCost = "0.2" //initial cost when jet jumping(fuel is 0 to 1)
JetFuelMinBorder = "0.3" //minimum fuel to perform a jet jump(fuel is 0 to 1)
CAMERASECTION = "STAND"
EyePointOffset = "0.0 2.0 0.0"
TrackCenter = "0.0 2.0 0.0"
TrackOffset = "0.0 -0.25 3.5"
TiltValue = "10"
CAMERASECTION = "CROUCH"
EyePointOffset = "0.0 1.6 0.0"
TrackCenter = "0.0 1.6 0.0"
TrackOffset = "0.0 -0.25 3.5"
TiltValue = "10"
CAMERASECTION = "PRONE"
EyePointOffset = "0.0 1.0 0.0"
TrackCenter = "0.0 1.0 0.0"
TrackOffset = "0.0 -0.25 3.0"
TiltValue = "10"
MaxHealth = 125.0
Acceleraton = 30.0
MaxSpeed = 6.0
MaxStrafeSpeed = 5.0
MaxTurnSpeed = 2.25
WeaponName1 = "geo_weap_inf_blunderbuss"
WeaponAmmo1 = 3
CollisionScale = "0.0 0.0 0.0"
AimFactorPostureSpecial = 50
AimFactorPostureStand = 100
AimFactorPostureCrouch = 140
AimFactorPostureProne = 160
AimFactorStrafe = 60
AimFactorMove = 70
NoEnterVehicles = 1
HurtSound = "geo_inf_hurt"
DeathSound = "geo_inf_die"
//LeftFootstepSound = "soldierstepleft"
//RightFootstepSound = "soldierstepright"
AcquiredTargetSound = ""
HidingSound = ""
ApproachingTargetSound = ""
FleeSound = ""
PreparingForDamageSound = ""
HeardEnemySound = ""
WaterWadingSound = ""
ShockFadeOutTime = ""
ShockFadeOutGain = ""
ShockFadeInTime = ""
ShockSound = ""
RollSound = ""
JumpSound = ""
LandSound = ""
ClothingRustleSound = ""
LowHealthSound = ""
LowHealthThreshold = ""
EngineSound = "geo_inf_fly_parameterized"
TurnOnSound = ""
TurnOffSound = ""
FoleyFXClass = "cis_inf_droid"
AISizeType = "SOLDIER"
DropItemClass = "com_item_powerup_ammo"
DropItemProbability = 0.05
NextDropItem = "-"
DropItemClass = "com_item_powerup_health25"
DropItemProbability = 0.0
NextDropItem = "-"
DropItemClass = "com_item_powerup_health100"
DropItemProbability = 0.20
Look for this line:
MaxHealth = 125.0
and increase the value to increase the health
----------------
next, look at:
geo_weap_inf_blunderbuss.odf to adjust some weapon properties. Some things just make sense, some items can be adjusted one at a time to see what it does.
[WeaponClass]
ClassLabel = "cannon"
[Properties]
IconTexture = "HUD_all_rifle_icon"
GeometryName = "geo_weap_inf_blunderbuss"
MuzzleFlash = "small_muzzle_flash"
Discharge = "small_smoke_effect"
ZoomMin = "3.0"
ZoomMax = "3.0"
ZoomRate = "0.0"
AnimationBank = "rifle"
FirePointName = "hp_fire"
RoundsPerClip = "100"
ReloadTime = "4.0"
HeatRecoverRate = "0.1"
HeatThreshold = "0.3"
WEAPONSECTION = 1
FireSound = "cis_weap_inf_sonicblaster_fire"
//ReloadSound = "laserreload"
//ChangeModeSound = "com_weap_inf_blaster_rifle_modechange"
//FireEmptySound = "com_weap_inf_weapon_empty"
OrdnanceName = "geo_weap_inf_blunderbuss_ord"
ReticuleTexture = "reticule_04"
TargetEnemy = "1"
TargetNeutral = "0"
TargetFriendly = "0"
TargetPerson = "1"
TargetAnimal = "1"
TargetDroid = "1"
TargetVehicle = "0"
TargetBuilding = "0"
ShotDelay = "2.0"
TriggerSingle = "0"
HeatPerShot = "0.075"
LockOnRange = "30.0"
LockTime = "0.8"
MinSpread = "0.01"
MaxSpread = "0.15"
AutoAimSize = "0.1"
Look at the Ordnance Name:
OrdnanceName = "geo_weap_inf_blunderbuss_ord"
That means we need to go to that file to change the damage properties.
Here is the file
geo_weap_inf_blunderbuss_ord.odf
[OrdnanceClass]
ClassLabel = "missile"
[Properties]
ImpactEffectWater = "watersplash_md"
ExplosionName = ""
LifeSpan = "0.85"
TurnRate = "0.0"
WaverRate = "0.0"
WaverTurn = "0.0"
Velocity = "30.0"
Gravity = "0.0"
Rebound = "0.0"
MaxDamage = "25.0"
VehicleScale = "0.0"
ShieldScale = "1.0"
PersonScale = "1.0"
AnimalScale = "1.0"
DroidScale = "1.0"
BuildingScale = "1.0"
TrailEffect = "geo_blunderbuss_blast"
//OrdnanceSound = "com_weap_launcher_energy_dumbfire"
CollisionSound = ""
Change the MaxDamage line and anything else you want.
More in the next post.
Now go here:
F:\LucasArts\BFBuilder\Datags1
(note gs1 is my Mod ID)
and double click on 64bitMunge.bat
a window will pop up and a lot of things will scroll by.
You will get a soundmunge warning, but that is OK.
Go here:
F:\LucasArts\BFBuilder\AddOn
find your folder (mine is called gs1)
F:\LucasArts\BFBuilder\AddOn\gs1
Go here:
F:\LucasArts\BFBuilder\AddOn\gs1\Data\_lvl_pc\Side
I have a file called geo.lvl
rename it to updategeo.lvl
(or whatever you want).
Now we go back to the mission builder. (next post)
Here is the stock GEO mission lua
---------------------------------------------------------------------------
-- 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()
-- REP Attacking (attacker is always #1)
local REP = 1
local CIS = 2
-- These variables do not change
local ATT = 1
local DEF = 2
AddMissionObjective(CIS, "orange", "level.geo1.objectives.1r");
AddMissionObjective(CIS, "red", "level.geo1.objectives.2r");
AddMissionObjective(CIS, "red", "level.geo1.objectives.3r");
AddMissionObjective(REP, "orange", "level.geo1.objectives.1r");
AddMissionObjective(REP, "red", "level.geo1.objectives.4r");
AddMissionObjective(REP, "red", "level.geo1.objectives.5r");
SetTeamAggressiveness(CIS, 1.0)
SetTeamAggressiveness(REP, 1.0)
ReadDataFile("sound\\geo.lvl;geo1cw");
ReadDataFile("SIDE\\rep.lvl",
"rep_bldg_forwardcenter",
"rep_fly_assault_dome",
"rep_fly_gunship",
"rep_fly_gunship_dome",
"rep_fly_jedifighter_dome",
"rep_inf_basic",
"rep_inf_jet_trooper",
"rep_inf_macewindu",
"rep_walk_atte")
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_droidfighter_dome",
"cis_fly_fedcoreship_dome",
"cis_fly_geofighter",
"cis_fly_techounion_dome",
"cis_inf_basic",
"cis_inf_countdooku",
"cis_inf_droideka",
"cis_tread_hailfire",
"cis_walk_spider")
ReadDataFile("SIDE\\geo.lvl",
"gen_inf_geonosian")
-- Level Stats
ClearWalkers()
SetMemoryPoolSize("EntityWalker", -2)
AddWalkerType(0, 8) -- 8 droidekas (special case: 0 leg pairs)
AddWalkerType(2, 2) -- 2 spider walkers with 2 leg pairs each
AddWalkerType(3, 2) -- 2 attes with 3 leg pairs each
SetMemoryPoolSize("CommandWalker", 2)
SetMemoryPoolSize("EntityFlyer", 5)
SetMemoryPoolSize("EntityHover", 3)
-- SetMemoryPoolSize("EntityCarrier", 2)
-- SetMemoryPoolSize("EntityTauntaun", 0)
-- SetMemoryPoolSize("CommandBuildingArmed", 2)
SetMemoryPoolSize("PowerupItem", 25)
SetMemoryPoolSize("MountedTurret", 50)
SetMemoryPoolSize("Aimer", 200)
SetSpawnDelay(10.0, 0.25)
-- Republic Stats
SetTeamName(REP, "Republic")
SetTeamIcon(REP, "rep_icon")
AddUnitClass(REP, "rep_inf_clone_trooper",14)
AddUnitClass(REP, "rep_inf_arc_trooper",4)
AddUnitClass(REP, "rep_inf_clone_pilot",5)
AddUnitClass(REP, "rep_inf_clone_sharpshooter",5)
AddUnitClass(REP, "rep_inf_jet_trooper",4)
SetHeroClass(REP, "rep_inf_macewindu")
-- SetCarrierClass(REP, "rep_fly_vtrans")
-- CIS Stats
SetTeamName(CIS, "CIS")
SetTeamIcon(CIS, "cis_icon")
AddUnitClass(CIS, "cis_inf_battledroid",11)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "cis_inf_pilotdroid",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",3)
SetHeroClass(CIS, "cis_inf_countdooku")
-- Attacker Stats
SetUnitCount(ATT, 32)
SetReinforcementCount(ATT, 250)
AddBleedThreshold(ATT, 31, 0.0)
AddBleedThreshold(ATT, 21, 0.75)
AddBleedThreshold(ATT, 11, 2.25)
AddBleedThreshold(ATT, 1, 3.0)
SetTeamAsEnemy(ATT,3)
-- Defender Stats
SetUnitCount(DEF, 25)
SetReinforcementCount(DEF, 250)
AddBleedThreshold(DEF, 31, 0.0)
AddBleedThreshold(DEF, 21, 0.75)
AddBleedThreshold(DEF, 11, 2.25)
AddBleedThreshold(DEF, 1, 3.0)
SetTeamAsFriend(DEF,3)
-- Local Stats
SetTeamName(3, "locals")
AddUnitClass(3, "geo_inf_geonosian", 7)
SetUnitCount(3, 7)
SetTeamAsFriend(3, DEF)
--SetTeamName(4, "locals")
--AddUnitClass(4, "rep_inf_jedimale",1)
--AddUnitClass(4, "rep_inf_jedimaleb",1)
--AddUnitClass(4, "rep_inf_jedimaley",1)
--SetUnitCount(4, 3)
--SetTeamAsFriend(4, ATT)
ReadDataFile("GEO\\geo1.lvl")
SetDenseEnvironment("false")
SetMinFlyHeight(-65)
SetMaxFlyHeight(50)
SetMaxPlayerFlyHeight(50)
-- Birdies
--SetNumBirdTypes(1)
--SetBirdType(0.0,10.0,"dragon")
--SetBirdFlockMinHeight(90.0)
-- Sound
OpenAudioStream("sound\\geo.lvl", "geocw_music");
OpenAudioStream("sound\\cw.lvl", "cw_vo");
OpenAudioStream("sound\\cw.lvl", "cw_tac_vo");
OpenAudioStream("sound\\geo.lvl", "geo1cw");
OpenAudioStream("sound\\geo.lvl", "geo1cw");
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(1, "repleaving");
SetOutOfBoundsVoiceOver(2, "cisleaving");
SetAmbientMusic(REP, 1.0, "rep_GEO_amb_start", 0,1)
SetAmbientMusic(REP, 0.99, "rep_GEO_amb_middle", 1,1)
SetAmbientMusic(REP, 0.1,"rep_GEO_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_GEO_amb_start", 0,1)
SetAmbientMusic(CIS, 0.99, "cis_GEO_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.1,"cis_GEO_amb_end", 2,1)
SetVictoryMusic(REP, "rep_geo_amb_victory")
SetDefeatMusic (REP, "rep_geo_amb_defeat")
SetVictoryMusic(CIS, "cis_geo_amb_victory")
SetDefeatMusic (CIS, "cis_geo_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");
SetPlanetaryBonusVoiceOver(CIS, CIS, 0, "CIS_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(CIS, REP, 0, "CIS_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(CIS, CIS, 1, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 1, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 2, "CIS_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(CIS, REP, 2, "CIS_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(CIS, CIS, 3, "CIS_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(CIS, REP, 3, "CIS_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(CIS, CIS, 4, "CIS_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(CIS, REP, 4, "CIS_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(CIS, CIS, 5, "CIS_bonus_CIS_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(CIS, REP, 5, "CIS_bonus_REP_sabotage");
SetPlanetaryBonusVoiceOver(CIS, CIS, 6, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 6, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 7, "CIS_bonus_CIS_training");--advanced training
SetPlanetaryBonusVoiceOver(CIS, REP, 7, "CIS_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, REP, 0, "REP_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(REP, CIS, 0, "REP_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(REP, REP, 1, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 1, "");
SetPlanetaryBonusVoiceOver(REP, REP, 2, "REP_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(REP, CIS, 2, "REP_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(REP, REP, 3, "REP_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(REP, CIS, 3, "REP_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(REP, REP, 4, "REP_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(REP, CIS, 4, "REP_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(REP, REP, 5, "REP_bonus_REP_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(REP, CIS, 5, "REP_bonus_CIS_sabotage");
SetPlanetaryBonusVoiceOver(REP, REP, 6, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 6, "");
SetPlanetaryBonusVoiceOver(REP, REP, 7, "REP_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, CIS, 7, "REP_bonus_CIS_training");--advanced training
--ActivateBonus(CIS, "SNEAK_ATTACK")
--ActivateBonus(REP, "SNEAK_ATTACK")
SetAttackingTeam(ATT)
--Opening Satalite Shot
--Geo
--Mountain
AddCameraShot(0.996091, 0.085528, -0.022005, 0.001889, -6.942698, -59.197201, 26.136919);
--Wrecked Ship
AddCameraShot(0.906778, 0.081875, -0.411906, 0.037192, 26.373968, -59.937874, 122.553581);
--War Room
AddCameraShot(0.994219, 0.074374, 0.077228, -0.005777, 90.939568, -49.293945, -69.571136);
end
Find this line:
ReadDataFile("SIDE\\geo.lvl",
"gen_inf_geonosian")
and change it to read your file
Find this line:
ReadDataFile("SIDE\\updategeo.lvl",
"gen_inf_geonosian")
Add the unit to the playable units:
-- CIS Stats
SetTeamName(CIS, "CIS")
SetTeamIcon(CIS, "cis_icon")
AddUnitClass(CIS, "cis_inf_battledroid",11)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "gen_inf_geonosian",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",3)
SetHeroClass(CIS, "cis_inf_countdooku")
Munge the mission; replace the mission file in
C:\Program Files (x86)\LucasArts\Star Wars Battlefront\GameData\Data\_LVL_PC
This next step is really important:
copy this file
F:\LucasArts\BFBuilder\AddOn\gs1\Data\_lvl_pc\Side\updategeo.lvl
to this location
C:\Program Files (x86)\LucasArts\Star Wars Battlefront\GameData\Data\_LVL_PC\SIDE
Play the Geonosis map and have fun.
Important: This will crash your game in multiplayer. Single player will be fine.
If you want to turn this into an Addon Map, then we have some more work to do.
Lit. So ok, actually in the line whereit said "AddUnitClass(etc." it needs to say geo_inf_geonosian, not gen_inf_geonosian. I liked being able to edit their hp and damage so they aren't useless. So I have 2 questions now. 1, how do I get the camera to not be so zoomed in (aka how do I get it to be in the normal position for every other class), and 2, how do I get it so I can play as the CIS with the geonosians on any map?
Quote from: LBmyBB on May 13, 2018, 06:22:53 PM
Lit. So ok, actually in the line whereit said "AddUnitClass(etc." it needs to say geo_inf_geonosian, not gen_inf_geonosian. I liked being able to edit their hp and damage so they aren't useless. So I have 2 questions now. 1, how do I get the camera to not be so zoomed in (aka how do I get it to be in the normal position for every other class), and 2, how do I get it so I can play as the CIS with the geonosians on any map?
Look at the camera settings for a regular player unit and change them to those values for the geonosian. You will have to munge (i.e. compile) it again of course and place it in the side folder. The updategeo.lvl can be loaded into any map and assigned to a player position on any map just like we did with the Geonosis map, i.e. by changing the mission lua for each map--it just has to be done one at a time.
Note that sound can be tricky. You might need to load the sound file as well (same one as geonosis). Someone else may have to step in for help with that.
Gungans would work the same way. In fact, you can use any of the SWBF and SWBF2 assets and many other assets that people have made.
Welcome to the world of modding.
I don't do a lot of modding so be sure to ask questions on the forum and someone will usually respond as the get time. We also have a section on modding tutorials.
Ok so I tried to do the mission thing for other maps, so I picked Kamino. This is the error I got - https://imgur.com/a/oEIcBhd
Here is my stuff that I put in there
Quote---------------------------------------------------------------------------
-- 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()
-- REP Attacking (attacker is always #1)
local REP = 2;
local CIS = 1;
-- These variables do not change
local ATT = 1;
local DEF = 2;
AddMissionObjective(CIS, "orange", "level.kamino1.objectives.1");
AddMissionObjective(REP, "orange", "level.kamino1.objectives.1");
ReadDataFile("sound\\kam.lvl;kam1cw");
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_basic",
"rep_inf_jet_trooper",
"rep_inf_macewindu");
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_fedlander_dome",
"cis_inf_basic",
"cis_inf_countdooku",
"cis_inf_droideka");
ReadDateFile("Side\\updatedgeo"
"geo_inf_geonosian")
SetTeamAggressiveness(CIS, 0.9)
SetTeamAggressiveness(REP, 0.9)
-- Republic Stats
SetTeamName(REP, "Republic");
SetTeamIcon(REP, "rep_icon");
AddUnitClass(REP, "rep_inf_clone_trooper",11)
AddUnitClass(REP, "rep_inf_arc_trooper",3)
AddUnitClass(REP, "rep_inf_clone_pilot",4)
AddUnitClass(REP, "rep_inf_clone_sharpshooter",4)
AddUnitClass(REP, "rep_inf_jet_trooper",3)
SetHeroClass(REP, "rep_inf_macewindu")
-- CIS Stats
SetTeamName(CIS, "CIS");
SetTeamIcon(CIS, "cis_icon");
AddUnitClass(CIS, "cis_inf_battledroid",12)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "geo_inf_geonosian",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",2)
SetHeroClass(CIS, "cis_inf_countdooku")
--SetPlayerTeamDifficulty( 11 )
--SetEnemyTeamDifficulty( 11 )
-- Attacker Stats
SetUnitCount(ATT, 25)
SetReinforcementCount(ATT, 200)
AddBleedThreshold(ATT, 31, 0.0)
AddBleedThreshold(ATT, 21, 0.75)
AddBleedThreshold(ATT, 11, 2.25)
AddBleedThreshold(ATT, 1, 3.0)
-- Defender Stats
SetUnitCount(DEF, 25)
SetReinforcementCount(DEF, 220)
AddBleedThreshold(DEF, 31, 0.0)
AddBleedThreshold(DEF, 21, 0.75)
AddBleedThreshold(DEF, 11, 2.25)
AddBleedThreshold(DEF, 1, 3.0)
-- Local Stats
AddUnitClass ("geo_inf_geonosian",4)
-- Level Stats
ClearWalkers()
AddWalkerType(0, 16) -- droidekas
SetSpawnDelay(10.0, 0.25)
ReadDataFile("KAM\\kam1.lvl")
SetDenseEnvironment("false")
-- AI
SetMinFlyHeight(60)
SetMaxFlyHeight(140)
SetAllowBlindJetJumps(0)
-- Sound
OpenAudioStream("sound\\kam.lvl", "kamcw_music");
OpenAudioStream("sound\\cw.lvl", "cw_vo");
OpenAudioStream("sound\\cw.lvl", "cw_tac_vo");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
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);
SetAmbientMusic(REP, 1.0, "rep_kam_amb_start", 0,1);
SetAmbientMusic(REP, 0.99, "rep_kam_amb_middle", 1,1);
SetAmbientMusic(REP, 0.1,"rep_kam_amb_end", 2,1);
SetAmbientMusic(CIS, 1.0, "cis_kam_amb_start", 0,1);
SetAmbientMusic(CIS, 0.99, "cis_kam_amb_middle", 1,1);
SetAmbientMusic(CIS, 0.1,"cis_kam_amb_end", 2,1);
SetVictoryMusic(REP, "rep_kam_amb_victory");
SetDefeatMusic (REP, "rep_kam_amb_defeat");
SetVictoryMusic(CIS, "cis_kam_amb_victory");
SetDefeatMusic (CIS, "cis_kam_amb_defeat");
SetOutOfBoundsVoiceOver(2, "repleaving");
SetOutOfBoundsVoiceOver(1, "cisleaving");
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");
SetPlanetaryBonusVoiceOver(CIS, CIS, 0, "CIS_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(CIS, REP, 0, "CIS_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(CIS, CIS, 1, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 1, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 2, "CIS_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(CIS, REP, 2, "CIS_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(CIS, CIS, 3, "CIS_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(CIS, REP, 3, "CIS_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(CIS, CIS, 4, "CIS_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(CIS, REP, 4, "CIS_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(CIS, CIS, 5, "CIS_bonus_CIS_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(CIS, REP, 5, "CIS_bonus_REP_sabotage");
SetPlanetaryBonusVoiceOver(CIS, CIS, 6, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 6, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 7, "CIS_bonus_CIS_training");--advanced training
SetPlanetaryBonusVoiceOver(CIS, REP, 7, "CIS_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, REP, 0, "REP_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(REP, CIS, 0, "REP_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(REP, REP, 1, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 1, "");
SetPlanetaryBonusVoiceOver(REP, REP, 2, "REP_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(REP, CIS, 2, "REP_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(REP, REP, 3, "REP_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(REP, CIS, 3, "REP_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(REP, REP, 4, "REP_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(REP, CIS, 4, "REP_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(REP, REP, 5, "REP_bonus_REP_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(REP, CIS, 5, "REP_bonus_CIS_sabotage");
SetPlanetaryBonusVoiceOver(REP, REP, 6, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 6, "");
SetPlanetaryBonusVoiceOver(REP, REP, 7, "REP_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, CIS, 7, "REP_bonus_CIS_training");--advanced training
SetAttackingTeam(ATT);
AddDeathRegion("DeathRegion");
--Kamino
--Alpha
AddCameraShot(0.190478, -0.010945, -0.980014, -0.056312, -26.091288, 55.965012, 159.458099);
--Clonecenter
AddCameraShot(-0.376571, -0.019637, -0.924923, 0.048232, 176.042465, 53.957565, 244.261139);
--Overhead many alphas
AddCameraShot(0.639254, -0.073533, 0.760457, 0.087475, 78.395348, 72.538582, 344.086609);
end
Quote---------------------------------------------------------------------------
-- 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()
-- REP Attacking (attacker is always #1)
local REP = 2;
local CIS = 1;
-- These variables do not change
local ATT = 1;
local DEF = 2;
SetHistorical()
SetTeamAggressiveness(REP, 0.9)
SetTeamAggressiveness(CIS, 0.9)
SetPlayerTeamDifficultyEasy (6)
SetEnemyTeamDifficultyEasy (-3)
SetPlayerTeamDifficultyMedium (4)
SetEnemyTeamDifficultyMedium (-11)
-- SetPlayerTeamDifficultyHard (0)
-- SetEnemyTeamDifficultyHard (0)
AddMissionObjective(CIS, "orange", "level.kamino1.objectives.1");
AddMissionObjective(REP, "orange", "level.kamino1.objectives.1");
ReadDataFile("sound\\kam.lvl;kam1cw");
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_basic",
"rep_inf_jet_trooper",
"rep_inf_macewindu");
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_fedlander_dome",
"cis_inf_basic",
"cis_inf_countdooku",
"cis_inf_droideka");
ReadDateFile("SIDE\\updatedgeo.lvl"
"geo_inf_geonosian")
-- Republic Stats
SetTeamName(REP, "Republic");
SetTeamIcon(REP, "rep_icon");
AddUnitClass(REP, "rep_inf_clone_trooper",11)
AddUnitClass(REP, "rep_inf_arc_trooper",3)
AddUnitClass(REP, "rep_inf_clone_pilot",4)
AddUnitClass(REP, "rep_inf_clone_sharpshooter",4)
AddUnitClass(REP, "rep_inf_jet_trooper",3)
SetHeroClass(REP, "rep_inf_macewindu")
-- CIS Stats
SetTeamName(CIS, "CIS");
SetTeamIcon(CIS, "cis_icon");
AddUnitClass(CIS, "cis_inf_battledroid",12)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "geo_inf_geonosian",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",2)
SetHeroClass(CIS, "cis_inf_countdooku")
-- Attacker Stats
SetUnitCount(ATT, 25)
SetReinforcementCount(ATT, 200)
AddBleedThreshold(ATT, 31, 0.0)
AddBleedThreshold(ATT, 21, 0.75)
AddBleedThreshold(ATT, 11, 2.25)
AddBleedThreshold(ATT, 1, 3.0)
-- Defender Stats
SetUnitCount(DEF, 25)
SetReinforcementCount(DEF, 240)
AddBleedThreshold(DEF, 31, 0.0)
AddBleedThreshold(DEF, 21, 0.75)
AddBleedThreshold(DEF, 11, 2.25)
AddBleedThreshold(DEF, 1, 3.0)
-- Local Stats
AddUnitClass ("geo_inf_geonosian",4)
-- Level Stats
ClearWalkers()
AddWalkerType(0, 16) -- droidekas
SetSpawnDelay(10.0, 0.25)
ReadDataFile("KAM\\kam1.lvl")
SetDenseEnvironment("false")
-- AI
SetMinFlyHeight(60)
SetMaxFlyHeight(140)
SetAllowBlindJetJumps(0)
-- Sound
OpenAudioStream("sound\\kam.lvl", "kamcw_music");
OpenAudioStream("sound\\cw.lvl", "cw_vo");
OpenAudioStream("sound\\cw.lvl", "cw_tac_vo");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
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, "repleaving");
SetOutOfBoundsVoiceOver(1, "cisleaving");
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");
SetAmbientMusic(REP, 1.0, "rep_kam_amb_start", 0,1);
SetAmbientMusic(REP, 0.99, "rep_kam_amb_middle", 1,1);
SetAmbientMusic(REP, 0.1,"rep_kam_amb_end", 2,1);
SetAmbientMusic(CIS, 1.0, "cis_kam_amb_start", 0,1);
SetAmbientMusic(CIS, 0.99, "cis_kam_amb_middle", 1,1);
SetAmbientMusic(CIS, 0.1,"cis_kam_amb_end", 2,1);
SetVictoryMusic(REP, "rep_kam_amb_victory");
SetDefeatMusic (REP, "rep_kam_amb_defeat");
SetVictoryMusic(CIS, "cis_kam_amb_victory");
SetDefeatMusic (CIS, "cis_kam_amb_defeat");
SetPlanetaryBonusVoiceOver(CIS, CIS, 0, "CIS_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(CIS, REP, 0, "CIS_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(CIS, CIS, 1, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 1, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 2, "CIS_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(CIS, REP, 2, "CIS_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(CIS, CIS, 3, "CIS_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(CIS, REP, 3, "CIS_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(CIS, CIS, 4, "CIS_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(CIS, REP, 4, "CIS_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(CIS, CIS, 5, "CIS_bonus_CIS_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(CIS, REP, 5, "CIS_bonus_REP_sabotage");
SetPlanetaryBonusVoiceOver(CIS, CIS, 6, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 6, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 7, "CIS_bonus_CIS_training");--advanced training
SetPlanetaryBonusVoiceOver(CIS, REP, 7, "CIS_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, REP, 0, "REP_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(REP, CIS, 0, "REP_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(REP, REP, 1, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 1, "");
SetPlanetaryBonusVoiceOver(REP, REP, 2, "REP_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(REP, CIS, 2, "REP_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(REP, REP, 3, "REP_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(REP, CIS, 3, "REP_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(REP, REP, 4, "REP_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(REP, CIS, 4, "REP_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(REP, REP, 5, "REP_bonus_REP_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(REP, CIS, 5, "REP_bonus_CIS_sabotage");
SetPlanetaryBonusVoiceOver(REP, REP, 6, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 6, "");
SetPlanetaryBonusVoiceOver(REP, REP, 7, "REP_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, CIS, 7, "REP_bonus_CIS_training");--advanced training
SetAttackingTeam(ATT);
AddDeathRegion("DeathRegion");
--Kamino
--Alpha
AddCameraShot(0.190478, -0.010945, -0.980014, -0.056312, -26.091288, 55.965012, 159.458099);
--Clonecenter
AddCameraShot(-0.376571, -0.019637, -0.924923, 0.048232, 176.042465, 53.957565, 244.261139);
--Overhead many alphas
AddCameraShot(0.639254, -0.073533, 0.760457, 0.087475, 78.395348, 72.538582, 344.086609);
end
ReadDateFile("Side\\updatedgeo"
left off the .lvl
maybe other errors, but that one for sure
OKEEE, so I started from scratch and fixed that .lvl, as well as remove them from local stats. So now they look like this
QuoteReadDataFile("sound\\kam.lvl;kam1cw");
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_basic",
"rep_inf_jet_trooper",
"rep_inf_macewindu");
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_fedlander_dome",
"cis_inf_basic",
"cis_inf_countdooku",
"cis_inf_droideka");
ReadDataFile("SIDE\\updategeo.lvl"
"gen_inf_geonosian")
Quote-- CIS Stats
SetTeamName(CIS, "CIS");
SetTeamIcon(CIS, "cis_icon");
AddUnitClass(CIS, "geo_inf_geonosian")
AddUnitClass(CIS, "cis_inf_battledroid",12)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "geo_inf_geonosian",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",2)
SetHeroClass(CIS, "cis_inf_countdooku")
and for kam1c_h.lua
QuoteReadDataFile("sound\\kam.lvl;kam1cw");
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_basic",
"rep_inf_jet_trooper",
"rep_inf_macewindu");
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_fedlander_dome",
"cis_inf_basic",
"cis_inf_countdooku",
"cis_inf_droideka");
ReadDataFile("SIDE\\updategeo.lvl"
"gen_inf_geonosian")
QuoteSetTeamName(CIS, "CIS");
SetTeamIcon(CIS, "cis_icon");
AddUnitClass(CIS, "geo_inf_geonosian)")
AddUnitClass(CIS, "cis_inf_battledroid",12)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "geo_inf_geonosian",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",2)
SetHeroClass(CIS, "cis_inf_countdooku")
Ok. I'm confused cuz even this comes up with this error
- https://imgur.com/a/BnQAQMO
So if you look at the message in green, it is showing you are missing a parenthesis somewhere. It can be most anywhere and mess up that line that was flagged, but it is definitely in the kam1c.lua .
But how can it be screwed up? All I did was just add a couple lines, and I'm certain I put parentheses where they belong :o
aaah, ok so I solved that error problem but now I have another problem :slap:. the munge worked fine, however when I go to play kamino, it crashes
Please post your entire Kamino lua and we can take a look.
this is Kam1c.lua
Quote---------------------------------------------------------------------------
-- 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()
-- REP Attacking (attacker is always #1)
local REP = 2;
local CIS = 1;
-- These variables do not change
local ATT = 1;
local DEF = 2;
AddMissionObjective(CIS, "orange", "level.kamino1.objectives.1");
AddMissionObjective(REP, "orange", "level.kamino1.objectives.1");
ReadDataFile("sound\\kam.lvl;kam1cw");
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_basic",
"rep_inf_jet_trooper",
"rep_inf_macewindu");
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_fedlander_dome",
"cis_inf_basic",
"cis_inf_countdooku",
"cis_inf_droideka");
ReadDataFile("SIDE\\updategeo.lvl",
"gen_inf_geonosian")
SetTeamAggressiveness(CIS, 0.9)
SetTeamAggressiveness(REP, 0.9)
-- Republic Stats
SetTeamName(REP, "Republic");
SetTeamIcon(REP, "rep_icon");
AddUnitClass(REP, "rep_inf_clone_trooper",11)
AddUnitClass(REP, "rep_inf_arc_trooper",3)
AddUnitClass(REP, "rep_inf_clone_pilot",4)
AddUnitClass(REP, "rep_inf_clone_sharpshooter",4)
AddUnitClass(REP, "rep_inf_jet_trooper",3)
SetHeroClass(REP, "rep_inf_macewindu")
-- CIS Stats
SetTeamName(CIS, "CIS");
SetTeamIcon(CIS, "cis_icon");
AddUnitClass(CIS, "geo_inf_geonosian",2)
AddUnitClass(CIS, "cis_inf_battledroid",12)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "geo_inf_geonosian",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",2)
SetHeroClass(CIS, "cis_inf_countdooku")
--SetPlayerTeamDifficulty( 11 )
--SetEnemyTeamDifficulty( 11 )
-- Attacker Stats
SetUnitCount(ATT, 25)
SetReinforcementCount(ATT, 200)
AddBleedThreshold(ATT, 31, 0.0)
AddBleedThreshold(ATT, 21, 0.75)
AddBleedThreshold(ATT, 11, 2.25)
AddBleedThreshold(ATT, 1, 3.0)
-- Defender Stats
SetUnitCount(DEF, 25)
SetReinforcementCount(DEF, 220)
AddBleedThreshold(DEF, 31, 0.0)
AddBleedThreshold(DEF, 21, 0.75)
AddBleedThreshold(DEF, 11, 2.25)
AddBleedThreshold(DEF, 1, 3.0)
-- Level Stats
ClearWalkers()
AddWalkerType(0, 16) -- droidekas
SetSpawnDelay(10.0, 0.25)
ReadDataFile("KAM\\kam1.lvl")
SetDenseEnvironment("false")
-- AI
SetMinFlyHeight(60)
SetMaxFlyHeight(140)
SetAllowBlindJetJumps(0)
-- Sound
OpenAudioStream("sound\\kam.lvl", "kamcw_music");
OpenAudioStream("sound\\cw.lvl", "cw_vo");
OpenAudioStream("sound\\cw.lvl", "cw_tac_vo");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
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);
SetAmbientMusic(REP, 1.0, "rep_kam_amb_start", 0,1);
SetAmbientMusic(REP, 0.99, "rep_kam_amb_middle", 1,1);
SetAmbientMusic(REP, 0.1,"rep_kam_amb_end", 2,1);
SetAmbientMusic(CIS, 1.0, "cis_kam_amb_start", 0,1);
SetAmbientMusic(CIS, 0.99, "cis_kam_amb_middle", 1,1);
SetAmbientMusic(CIS, 0.1,"cis_kam_amb_end", 2,1);
SetVictoryMusic(REP, "rep_kam_amb_victory");
SetDefeatMusic (REP, "rep_kam_amb_defeat");
SetVictoryMusic(CIS, "cis_kam_amb_victory");
SetDefeatMusic (CIS, "cis_kam_amb_defeat");
SetOutOfBoundsVoiceOver(2, "repleaving");
SetOutOfBoundsVoiceOver(1, "cisleaving");
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");
SetPlanetaryBonusVoiceOver(CIS, CIS, 0, "CIS_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(CIS, REP, 0, "CIS_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(CIS, CIS, 1, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 1, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 2, "CIS_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(CIS, REP, 2, "CIS_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(CIS, CIS, 3, "CIS_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(CIS, REP, 3, "CIS_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(CIS, CIS, 4, "CIS_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(CIS, REP, 4, "CIS_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(CIS, CIS, 5, "CIS_bonus_CIS_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(CIS, REP, 5, "CIS_bonus_REP_sabotage");
SetPlanetaryBonusVoiceOver(CIS, CIS, 6, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 6, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 7, "CIS_bonus_CIS_training");--advanced training
SetPlanetaryBonusVoiceOver(CIS, REP, 7, "CIS_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, REP, 0, "REP_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(REP, CIS, 0, "REP_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(REP, REP, 1, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 1, "");
SetPlanetaryBonusVoiceOver(REP, REP, 2, "REP_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(REP, CIS, 2, "REP_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(REP, REP, 3, "REP_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(REP, CIS, 3, "REP_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(REP, REP, 4, "REP_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(REP, CIS, 4, "REP_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(REP, REP, 5, "REP_bonus_REP_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(REP, CIS, 5, "REP_bonus_CIS_sabotage");
SetPlanetaryBonusVoiceOver(REP, REP, 6, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 6, "");
SetPlanetaryBonusVoiceOver(REP, REP, 7, "REP_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, CIS, 7, "REP_bonus_CIS_training");--advanced training
SetAttackingTeam(ATT);
AddDeathRegion("DeathRegion");
--Kamino
--Alpha
AddCameraShot(0.190478, -0.010945, -0.980014, -0.056312, -26.091288, 55.965012, 159.458099);
--Clonecenter
AddCameraShot(-0.376571, -0.019637, -0.924923, 0.048232, 176.042465, 53.957565, 244.261139);
--Overhead many alphas
AddCameraShot(0.639254, -0.073533, 0.760457, 0.087475, 78.395348, 72.538582, 344.086609);
end
this is kam1c_h.lua
Quote---------------------------------------------------------------------------
-- 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()
-- REP Attacking (attacker is always #1)
local REP = 2;
local CIS = 1;
-- These variables do not change
local ATT = 1;
local DEF = 2;
SetHistorical()
SetTeamAggressiveness(REP, 0.9)
SetTeamAggressiveness(CIS, 0.9)
SetPlayerTeamDifficultyEasy (6)
SetEnemyTeamDifficultyEasy (-3)
SetPlayerTeamDifficultyMedium (4)
SetEnemyTeamDifficultyMedium (-11)
-- SetPlayerTeamDifficultyHard (0)
-- SetEnemyTeamDifficultyHard (0)
AddMissionObjective(CIS, "orange", "level.kamino1.objectives.1");
AddMissionObjective(REP, "orange", "level.kamino1.objectives.1");
ReadDataFile("sound\\kam.lvl;kam1cw");
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_basic",
"rep_inf_jet_trooper",
"rep_inf_macewindu");
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_fedlander_dome",
"cis_inf_basic",
"cis_inf_countdooku",
"cis_inf_droideka");
ReadDataFile("SIDE\\updategeo.lvl",
"gen_inf_geonosian")
-- Republic Stats
SetTeamName(REP, "Republic");
SetTeamIcon(REP, "rep_icon");
AddUnitClass(REP, "rep_inf_clone_trooper",11)
AddUnitClass(REP, "rep_inf_arc_trooper",3)
AddUnitClass(REP, "rep_inf_clone_pilot",4)
AddUnitClass(REP, "rep_inf_clone_sharpshooter",4)
AddUnitClass(REP, "rep_inf_jet_trooper",3)
SetHeroClass(REP, "rep_inf_macewindu")
-- CIS Stats
SetTeamName(CIS, "CIS");
SetTeamIcon(CIS, "cis_icon");
AddUnitClass(CIS, "geo_inf_geonosian,",2)
AddUnitClass(CIS, "cis_inf_battledroid",12)
AddUnitClass(CIS, "cis_inf_assault",3)
AddUnitClass(CIS, "geo_inf_geonosian",4)
AddUnitClass(CIS, "cis_inf_assassindroid",4)
AddUnitClass(CIS, "cis_inf_droideka",2)
SetHeroClass(CIS, "cis_inf_countdooku")
-- Attacker Stats
SetUnitCount(ATT, 25)
SetReinforcementCount(ATT, 200)
AddBleedThreshold(ATT, 31, 0.0)
AddBleedThreshold(ATT, 21, 0.75)
AddBleedThreshold(ATT, 11, 2.25)
AddBleedThreshold(ATT, 1, 3.0)
-- Defender Stats
SetUnitCount(DEF, 25)
SetReinforcementCount(DEF, 240)
AddBleedThreshold(DEF, 31, 0.0)
AddBleedThreshold(DEF, 21, 0.75)
AddBleedThreshold(DEF, 11, 2.25)
AddBleedThreshold(DEF, 1, 3.0)
-- Level Stats
ClearWalkers()
AddWalkerType(0, 16) -- droidekas
SetSpawnDelay(10.0, 0.25)
ReadDataFile("KAM\\kam1.lvl")
SetDenseEnvironment("false")
-- AI
SetMinFlyHeight(60)
SetMaxFlyHeight(140)
SetAllowBlindJetJumps(0)
-- Sound
OpenAudioStream("sound\\kam.lvl", "kamcw_music");
OpenAudioStream("sound\\cw.lvl", "cw_vo");
OpenAudioStream("sound\\cw.lvl", "cw_tac_vo");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
OpenAudioStream("sound\\kam.lvl", "kam1cw");
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, "repleaving");
SetOutOfBoundsVoiceOver(1, "cisleaving");
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");
SetAmbientMusic(REP, 1.0, "rep_kam_amb_start", 0,1);
SetAmbientMusic(REP, 0.99, "rep_kam_amb_middle", 1,1);
SetAmbientMusic(REP, 0.1,"rep_kam_amb_end", 2,1);
SetAmbientMusic(CIS, 1.0, "cis_kam_amb_start", 0,1);
SetAmbientMusic(CIS, 0.99, "cis_kam_amb_middle", 1,1);
SetAmbientMusic(CIS, 0.1,"cis_kam_amb_end", 2,1);
SetVictoryMusic(REP, "rep_kam_amb_victory");
SetDefeatMusic (REP, "rep_kam_amb_defeat");
SetVictoryMusic(CIS, "cis_kam_amb_victory");
SetDefeatMusic (CIS, "cis_kam_amb_defeat");
SetPlanetaryBonusVoiceOver(CIS, CIS, 0, "CIS_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(CIS, REP, 0, "CIS_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(CIS, CIS, 1, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 1, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 2, "CIS_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(CIS, REP, 2, "CIS_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(CIS, CIS, 3, "CIS_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(CIS, REP, 3, "CIS_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(CIS, CIS, 4, "CIS_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(CIS, REP, 4, "CIS_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(CIS, CIS, 5, "CIS_bonus_CIS_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(CIS, REP, 5, "CIS_bonus_REP_sabotage");
SetPlanetaryBonusVoiceOver(CIS, CIS, 6, "");
SetPlanetaryBonusVoiceOver(CIS, REP, 6, "");
SetPlanetaryBonusVoiceOver(CIS, CIS, 7, "CIS_bonus_CIS_training");--advanced training
SetPlanetaryBonusVoiceOver(CIS, REP, 7, "CIS_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, REP, 0, "REP_bonus_REP_medical");
SetPlanetaryBonusVoiceOver(REP, CIS, 0, "REP_bonus_CIS_medical");
SetPlanetaryBonusVoiceOver(REP, REP, 1, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 1, "");
SetPlanetaryBonusVoiceOver(REP, REP, 2, "REP_bonus_REP_sensors");
SetPlanetaryBonusVoiceOver(REP, CIS, 2, "REP_bonus_CIS_sensors");
SetPlanetaryBonusVoiceOver(REP, REP, 3, "REP_bonus_REP_hero");
SetPlanetaryBonusVoiceOver(REP, CIS, 3, "REP_bonus_CIS_hero");
SetPlanetaryBonusVoiceOver(REP, REP, 4, "REP_bonus_REP_reserves");
SetPlanetaryBonusVoiceOver(REP, CIS, 4, "REP_bonus_CIS_reserves");
SetPlanetaryBonusVoiceOver(REP, REP, 5, "REP_bonus_REP_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(REP, CIS, 5, "REP_bonus_CIS_sabotage");
SetPlanetaryBonusVoiceOver(REP, REP, 6, "");
SetPlanetaryBonusVoiceOver(REP, CIS, 6, "");
SetPlanetaryBonusVoiceOver(REP, REP, 7, "REP_bonus_REP_training");--advanced training
SetPlanetaryBonusVoiceOver(REP, CIS, 7, "REP_bonus_CIS_training");--advanced training
SetAttackingTeam(ATT);
AddDeathRegion("DeathRegion");
--Kamino
--Alpha
AddCameraShot(0.190478, -0.010945, -0.980014, -0.056312, -26.091288, 55.965012, 159.458099);
--Clonecenter
AddCameraShot(-0.376571, -0.019637, -0.924923, 0.048232, 176.042465, 53.957565, 244.261139);
--Overhead many alphas
AddCameraShot(0.639254, -0.073533, 0.760457, 0.087475, 78.395348, 72.538582, 344.086609);
end
You have too many units defined for CIS class. Remove one (not the hero).
Ahaaaaah. Now its working. So now all that is missing is....the sounds (sonic blaster, wings, death, injure), which I know you said something about that being harder?
There should be a line similar to this one
OpenAudioStream("sound\\kam.lvl", "kam1cw");
in the Geonosis map. You can try to add that to your kamino lua.
Another more experienced modder may have to jump in and help out on the sounds.
I don't remember if Geonosian sounds are tied to the geo.lvl or not. This may be your safest bet. Also it has been a while since I worked with sounds.
ReadDataFile("sound\\geo.lvl;geo1cw");
--This goes right below your mission objectives
And then this goes down in the "Sound" section of the lua. Swap this with what you have to avoid running out of space for sound.
OpenAudioStream("sound\\geo.lvl", "geocw_music");
OpenAudioStream("sound\\cw.lvl", "cw_vo");
OpenAudioStream("sound\\cw.lvl", "cw_tac_vo");
OpenAudioStream("sound\\geo.lvl", "geo1cw");
OpenAudioStream("sound\\geo.lvl", "geo1cw");
OK i did what you said but it didn't work.
So unless someone else responds, you will need to search in the tutorials section and see if anything can help there or try a few things now that you have the process down and see what works.
I am fairly sure there is a way to make it work, so know that it should be possible. :cheers:
I will move this over to the tutorial section in a few days.
Yeaaaah, prob leave it up to the experts for this one. BTW, thx for your help, you have made my dream come true in terms of the teams I have always wanted. I was able to get started on adding the gungan to the republic side on my own. Thx a ton :tu: :cheers: :wub:
Good deal, not everyone picks it up this fast :cheers:
O I have another question. Say I want to apply the mission.lvl to maps outside of the standard ones that are given by the game. What do I do then?
Quote from: LBmyBB on May 16, 2018, 05:50:26 PM
O I have another question. Say I want to apply the mission.lvl to maps outside of the standard ones that are given by the game. What do I do then?
It is very difficult for an already existing mod map unless you have the modder's assets (mission lua like what you have been editing).
Note however, that you can make your own map and customize everything. For that, I will send you to the tutorials. Map making is fairly advanced, but there those tutorials can help a lot.