cross era battles

Started by Ltin, January 12, 2013, 11:12:21 AM

Previous topic - Next topic
Theoretically, i could rename the sides files and i could pit the republic against the alliance and such, but when i try to do this it crashes when a battle starts. Why?

because the MISSION.lvl is trying to read another type of unit that isn't inside the lvl that has been renamed.
I tried that onces, but then I learned how it worked.

ei. Basicly the engine looks for   cis_inf_battledroid   in  the imp.lvl that has been renamed to cis.lvl
but imp.lvl does not contain   cis_inf_battledroid, therefore, game crashes with that error of not loading side.

If you want to have cross era battles, you can use MISSION.LVL modding.
just re-reference all of the sides and era in the mission *.lua lines of the planet you want the teams fighting on.

and how exactly do i do that?

Quote from: Ltin on January 12, 2013, 11:43:54 AM
and how exactly do i do that?
Lol. First you will need the Mission.lvl builder  (in the v4.0b LVL builders tool box, which is a big download)
Lets pretend that the world you want to "mess up" the sides on is Geonosis, or "GEO" is modding terms.
You would go into, /Mission.lvl Builder/scripts/GEO/
Open GEO1r.LUA with Notepad (or notepad+) and you should see this:
---------------------------------------------------------------------------
-- 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")
YADA YADA YADA

Now leave that up in notepad, go to your scripts folder again, and go inside BES/ folder
Open this file in Notepad like you did GEO1r   : Bes1a.LUA
Find these lines:     ReadDataFile("SIDE\\all.lvl",
        "all_fly_xwing",
        "all_fly_ywing",
        "all_inf_basicurban",
        "all_inf_lukeskywalker",
        "all_inf_smuggler");

Copy that, go into the GEO1r.lua (in notepad) and find these lines:
    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")

Now select them all ^^, and paste into the selection.
Now you have just edited the LUA to open the ALLIANCE sides instead of Republic.
(That will also destroy gunships from the map when this is done, because map doesn't read gunship in ALL.lvl)
Now, find ANYWHERE in the lua, where it says REP, and replace it with ALL .
You will find this line in the LUA:
    SetOutOfBoundsVoiceOver(1, "repleaving");
Make it say
    SetOutOfBoundsVoiceOver(1, "allleaving");

You will also see this line (and several like it)
    SetAmbientMusic(REP, 1.0, "rep_GEO_amb_start",  0,1)
make it say
    SetAmbientMusic(ALL, 1.0, "rep_GEO_amb_start",  0,1)  and you should be done.
Now munge.bat is located in the builder, double click it, and if it does nothing,
You can try this step:
Edit the munge.bat  in notepad, at the beginning, hit ENTER, then type @set_path=Windows/System32
and that should fix issues, now double click munge.bat again, and wait for it to be done, then go in the
_LVL_PC/ folder
and your finished MISSION.LVL is in there.
Put it in
C:/Programfiles/LucasArts/Battlefront/GameData/Data/_LVL_PC/  folder    (or if you have  OSx86 Windows 7 vista)
C:/Programfiles (x86)/LucasArts/Battlefront/GameData/Data/_LVL_PC/
Now run battlefront and that should work.

Is the level builders tool box in bf builder?

January 12, 2013, 04:17:27 PM #5 Last Edit: January 12, 2013, 04:20:44 PM by Agent Z
Quote from: Ltin on January 12, 2013, 04:07:03 PM
Is the level builders tool box in bf builder?

The LVL Builders Toolbox was compiled by Phobos, and is not the same thing as the actual BFBuilder. I believe you can do the same thing RC was talking about in BFBuilder as well as in the toolbox. I use the toolbox because I find it easier, but I would try to use BFBuilder first.

-edit:  I can make the mission.lvl's for you, if you want. Which world(s) would you like to be cross eras?

Also, there has already been a mod for this on Bespin: Cloud City. Most refer to it as the "fairsides" mod, but it is the same thing you are talking about.
Nevermind. Fairsides is Clones vs Clones, Empire vs Empire, CIS vs CIS, and Rebels vs Rebels; not cross eras.

Quote from: Agent Z on January 12, 2013, 04:17:27 PM
..Nevermind. Fairsides is Clones vs Clones, Empire vs Empire, CIS vs CIS, and Rebels vs Rebels; not cross eras.
Yes, that's why my tutorial is so detailed.
Other wise it is fairly more simple and easy to make "fairsides" mode.

I can construct the mission.lvl you want, but I will have to do it on tuesday or wensday, because my scheduel is so backed up..

Neither of you need to do that, iv got the stuff i need, its just not on my computer yet. I rarely ever visit this site on desktop.