Custom Galactic Conquest Crash [Solved]

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

Deviss
Master of the Force
Master of the Force
Posts: 3772
Joined: Tue Aug 12, 2008 7:59 pm
Projects :: Clone Wars Extended
Games I'm Playing :: BF2

Re: Custom Galactic Conquest Crash [Solved]

Post by Deviss »

[RDH]Zerted wrote:Thanks.

Actually I think that "zer" to "abc" change might fix the problem. Looking at LoadState(), pairs() is used with this.activeBonus and this.controllerTeam. this.activeBonus is item 20 which is an empty table so that's fine. this.controllerTeam is commented out so it's likely nil. The ifs_freeform_controllers() inside ifs_freeform_start_abc() might set the proper this.controllerTeam, but ifs_freeform_start_abc() is never called because this line: local start = _G["ifs_freeform_start_" .. this.scenario] tries to find a function called ifs_freeform_start_zer instead of your ifs_freeform_start_abc. :thumbs:

Make the change, munge, and delete your saved campaign (if you saved it) then retest. If that doesn't work. Post all your updated files and log again as well as ifs_freeform_controller.lua.
EDIT: Glory to the Hero!!!, you got it work perfect :D , and many thanks for everyone helped me :D ,here the working files:
ifs_freeform_init_abc
Hidden/Spoiler:
[code]-- initialize for Zer War
print("ifs_freeform_init_abc.lua")
ifs_freeform_init_abc = function(this, REP, CIS)
print("ifs_freeform_init_abc: ifs_freeform_init_abc()")

-- common init
ifs_freeform_init_common(this)

--replacing this table from init_common, by [RDH]Zerted
-- per-planet camera offsets
this.cameraOffset = {
["cor"] = { 0, 1, 1 },
["dag"] = { 0, 1, 1 },
["fel"] = { 0, 1, 1 },
["geo"] = { 0, 1, 1 },
["kas"] = { 0, 1, 1 },
["kam"] = { 0, 1, 1 },
["mus"] = { 0, 1, 1 },
["myg"] = { 0, 1, 1 },
["nab"] = { 0, 1, 1 },
["pol"] = { 0, 1, 1 },
["tat"] = { 0, 1, 1 },
["uta"] = { 0, 1, 1 },
["yav"] = { 0, 1, 1 },
}

-- default victory condition (take all planets)
this:SetVictoryPlanetLimit(nil)

-- associate codes with teams
this.teamCode = {
[REP] = "rep",
[CIS] = "cis"
}

ifs_purchase_unit_types = { "soldier", "pilot", "assault", "assault2", "sniper", "sniper2", "marine", "marine2", "engineer2", "engineer", "officer", "officer2", "special2", "special", "commander2", "commander" }

ifs_purchase_unit_name = {
soldier = "rifleman",
pilot = "pilot",
assault = "rocketeer",
sniper = "sniper",
marine = "marine",
engineer = "engineer",
officer = "officer",
special = "special",
commander = "commander",
}

ifs_purchase_unit_cost = {
soldier = 0,
pilot = 0,
assault = 0,
sniper = 0,
marine = 30,
engineer = 40,
officer = 40,
special = 50,
commander = 10,
pilot2 = 0,
assault2 = 0,
sniper2 = 0,
marine2 = 0,
engineer2 = 0,
officer2 = 0,
special2 = 0,
commander2 = 0,
}

orden_anim_set = {
animbanks = { "orden" },
unselected = "orden_sabre_stand_idle_emote_full",
select_start = "orden_sabre_stand_idle_emote_full",
select_loop = "orden_sabre_stand_idle_emote_full",
}

rifle_anim_set = {
animbanks = { "human_0" },
unselected = "human_rifle_standalert_idle_emote_full",
select_start = "human_rifle_stand_idle_lookaround_full",
select_loop = "human_rifle_stand_idle_checkweapon_full",
}

bazooka_anim_set = {
animbanks = { "human_0", "human_2" },
unselected = { upper = "human_bazooka_stand_idle_emote", lower = "human_rifle_stand_idle_emote_full" },
select_start = "human_bazooka_stand_idle_lookaround",
select_loop = { upper = "human_bazooka_stand_idle_emote", lower = "human_rifle_stand_idle_emote_full" },
}

marksperson_anim_set = {
animbanks = { "marksperson", "human_0" },
--unselected = "human_rifle_crouch_idle_emote_full",
unselected = { upper = "human_rifle_stand_idle_emote_full", lower = "human_rifle_stand_idle_emote_full" },
select_start = "human_rifle_stand_idle_lookaround_full",
select_loop = { upper = "human_rifle_stand_idle_emote_full", lower = "human_rifle_stand_idle_emote_full" },
}

wookiee_anim_set = {
animbanks = { "wookie", "human_0" },
unselected = { upper = "human_rifle_stand_idle_emote_full", lower = "human_rifle_stand_idle_emote_full" },
select_start = "human_rifle_stand_idle_lookaround_full",
select_loop = { upper = "human_rifle_stand_idle_emote_full", lower = "human_rifle_stand_idle_emote_full" },
}

bdroid_rifle_anim_set = {
animbanks = { "bdroid", "human_0" },
unselected = "human_rifle_stand_idle_emote_full",
select_start = "human_rifle_stand_idle_lookaround_full",
select_loop = "human_rifle_stand_idle_emote_full",
}

bdroid_bazooka_anim_set = {
animbanks = { "bdroid", "human_0", "human_2" },
unselected = { upper = "human_bazooka_stand_idle_emote", lower = "human_rifle_stand_idle_emote_full" },
select_start = "human_bazooka_stand_idle_lookaround",
select_loop = { upper = "human_bazooka_stand_idle_emote", lower = "human_rifle_stand_idle_emote_full" },
}

sbdroid_anim_set = {
animbanks = { "sbdroid", "human_0" },
unselected = { upper = "sbdroid_rifle_stand_idle_emote", lower = "human_rifle_stand_idle_emote_full" },
select_start = "sbdroid_rifle_standalert_idle_emote",
select_loop = { upper = "sbdroid_rifle_stand_idle_emote", lower = "human_rifle_stand_idle_emote_full" },
}

magnaguard_anim_set = {
animbanks = { "magnaguard", "human_0" },
unselected = { upper = "human_rifle_stand_idle_emote_full", lower = "human_rifle_stand_idle_emote_full" },
select_start = "human_rifle_stand_idle_lookaround_full",
select_loop = { upper = "human_rifle_stand_idle_emote_full", lower = "human_rifle_stand_idle_emote_full" },
}

droideka_anim_set = {
animbanks = { "cis_walk_droideka" },
unselected = "fold",
unselected_oneshot = 1,

select_start = "unfold",
select_loop = "idle",
}

-- sound formats
ifs_purchase_team_table = {
rep = {
file = "..\\..\\addon\\ABC\\data\\_LVL_PC\\SIDE\\DEV.lvl",

classes = {
soldier = {
name = "entity.rep.clone1",
info = "ifs.freeform.purchase.military.sides.rep.clone1",
sound = "mtg_rep_unit_name_rifleman",
body = "rep_inf_ep3trooper",
weapon = nil,
anim_set = orden_anim_set
},
pilot = {
name = "entity.rep.clone2",
info = "ifs.freeform.purchase.military.sides.rep.clone2",
sound = "mtg_rep_unit_name_pilot",
body = "rep_inf_ep3heavytrooper",
weapon = nil,
anim_set = orden_anim_set
},
assault = {
name = "entity.rep.clone3",
info = "ifs.freeform.purchase.military.sides.rep.clone3",
sound = "mtg_rep_unit_name_rocketeer",
body = "rep_inf_ep3sniper",
weapon = nil,
anim_set = orden_anim_set
},
assault2 = {
name = "entity.rep.clone3",
info = "ifs.freeform.purchase.military.sides.rep.clone3",
sound = "mtg_rep_unit_name_rocketeer",
body = "rep_inf_Death_Star_Gunner",
weapon = nil,
anim_set = orden_anim_set
},
sniper = {
name = "entity.rep.clone4",
info = "ifs.freeform.purchase.military.sides.rep.clone4",
sound = "mtg_rep_unit_name_sniper",
body = "rep_inf_ep3_Clone_Commander_Faie",
weapon = nil,
anim_set = orden_anim_set
},
sniper2 = {
name = "entity.rep.clone4",
info = "ifs.freeform.purchase.military.sides.rep.clone4",
sound = "mtg_rep_unit_name_sniper",
body = "rep_inf_Clone_Marshall",
weapon = nil,
anim_set = orden_anim_set
},
marine = {
name = "entity.rep.clone5",
info = "ifs.freeform.purchase.military.sides.rep.clone5",
sound = "mtg_rep_unit_name_marine",
body = "rep_inf_Mandalorian_Soldier",
weapon = nil,
anim_set = orden_anim_set
},
marine2 = {
name = "entity.rep.clone5",
info = "ifs.freeform.purchase.military.sides.rep.clone5",
sound = "mtg_rep_unit_name_marine",
body = "rep_inf_AT-RT_Driver",
weapon = nil,
anim_set = orden_anim_set
},
engineer2 = {
name = "entity.rep.clone6",
info = "ifs.freeform.purchase.military.sides.rep.clone6",
sound = "mtg_rep_unit_name_engineer",
body = "rep_inf_TCW_ARF_Recon_Trooper",
weapon = nil,
anim_set = orden_anim_set
},
engineer = {
name = "entity.rep.clone6",
info = "ifs.freeform.purchase.military.sides.rep.clone6",
sound = "mtg_rep_unit_name_engineer",
body = "rep_inf_ARF_trooper",
weapon = nil,
anim_set = orden_anim_set
},
officer = {
name = "entity.rep.clone7",
info = "ifs.freeform.purchase.military.sides.rep.clone7",
sound = "mtg_rep_unit_name_officer",
body = "rep_inf_ARC_Trooper",
weapon = nil,
anim_set = orden_anim_set
},
officer2 = {
name = "entity.rep.clone7",
info = "ifs.freeform.purchase.military.sides.rep.clone7",
sound = "mtg_rep_unit_name_officer",
body = "rep_inf_SandTrooper",
weapon = nil,
anim_set = orden_anim_set
},
special2 = {
name = "entity.rep.clone8",
info = "ifs.freeform.purchase.military.sides.rep.clone8",
sound = "mtg_rep_unit_name_special",
body = "rep_inf_Republic_Clone_Commando",
weapon = nil,
anim_set = orden_anim_set
},
special = {
name = "entity.rep.clone8",
info = "ifs.freeform.purchase.military.sides.rep.clone8",
sound = "mtg_rep_unit_name_special",
body = "imp_inf_Phase3_Imperial_Commando",
weapon = nil,
anim_set = orden_anim_set
},
commander2 = {
name = "entity.rep.clone9",
info = "ifs.freeform.purchase.military.sides.rep.clone9",
sound = "mtg_rep_unit_name_marine",
body = "rep_inf_TCW_ARC_Trooper_Fives_Phase2",
weapon = nil,
anim_set = orden_anim_set
},
commander = {
name = "entity.rep.clone9",
info = "ifs.freeform.purchase.military.sides.rep.clone9",
sound = "mtg_rep_unit_name_marine",
body = "rep_inf_ep3_clone_commander",
weapon = nil,
anim_set = orden_anim_set
},
}
},

cis = {
file = "side\\cisshell.lvl",

classes = {
soldier = {
name = "entity.cis.droid1",
info = "ifs.freeform.purchase.military.sides.cis.soldier",
sound = "mtg_cis_unit_name_rifleman",
body = "cis_inf_sbdroid",
weapon = nil,
anim_set = sbdroid_anim_set
},
pilot = {
name = "entity.cis.droid2",
info = "ifs.freeform.purchase.military.sides.cis.pilot",
sound = "mtg_cis_unit_name_pilot",
body = "cis_inf_bdroid",
weapon = "cis_weap_inf_pistol",
anim_set = bdroid_rifle_anim_set
},
assault = {
name = "entity.cis.droid3",
info = "ifs.freeform.purchase.military.sides.cis.assault",
sound = "mtg_cis_unit_name_rocketeer",
body = "cis_inf_bdroid",
weapon = "cis_weap_inf_launcher",
anim_set = bdroid_bazooka_anim_set
},
sniper = {
name = "entity.cis.droid4",
info = "ifs.freeform.purchase.military.sides.cis.sniper",
sound = "mtg_cis_unit_name_sniper",
body = "cis_inf_bdroid",
weapon = "cis_weap_inf_sniperrifle",
anim_set = bdroid_rifle_anim_set
},
marine = {
name = "entity.cis.droid5",
info = "ifs.freeform.purchase.military.sides.cis.marine",
sound = "mtg_cis_unit_name_marine",
body = "cis_inf_bdroid",
weapon = "cis_weap_inf_rifle",
anim_set = bdroid_rifle_anim_set
},
engineer = {
name = "entity.cis.droid6",
info = "ifs.freeform.purchase.military.sides.cis.engineer",
sound = "mtg_cis_unit_name_engineer",
body = "cis_inf_bdroid",
weapon = "cis_weap_inf_pistol",
anim_set = bdroid_rifle_anim_set
},
officer = {
name = "entity.cis.droid7",
info = "ifs.freeform.purchase.military.sides.cis.officer",
sound = "mtg_cis_unit_name_officer",
body = "cis_inf_magnaguard",
weapon = "com_weap_inf_torpedo",
anim_set = magnaguard_anim_set
},
special = {
name = "entity.cis.droid8",
info = "ifs.freeform.purchase.military.sides.cis.special",
sound = "mtg_cis_unit_name_special",
body = "cis_walk_droideka",
weapon = nil,
anim_set = droideka_anim_set
},
commander = {
name = "entity.cis.droid9",
info = "ifs.freeform.purchase.military.sides.cis.marine",
sound = "mtg_cis_unit_name_marine",
body = "cis_inf_bdroid",
weapon = "cis_weap_inf_rifle",
anim_set = bdroid_rifle_anim_set
},
}
}
}

-- owned units
ifs_purchase_unit_owned = {
[1] = { soldier = true, commander2 = true, commander = true },
[2] = { soldier = true, commander = true }
}

-- use Zer setup
this.Setup = function(this)
print("ifs_freeform_init_abc: ifs_freeform_init_abc(): Setup()")


-- remove unused planets
print("ifs_freeform_init_abc: ifs_freeform_init_abc(): Setup(): Removing unused planets")
DeleteEntity("end")
DeleteEntity("hot")
DeleteEntity("end_system")
DeleteEntity("hot_system")
DeleteEntity("kam_star")
DeleteEntity("geo_star")
DeleteEntity("tantive")

-- create the connectivity graph
this.planetDestination = {
["cor"] = { "star20", "myg", "star17" },
["dag"] = { "star05", "star06", "nab" },
-- ["end_star"] = { "star20", "star18" },
["fel"] = { "star13", "yav"},
["geo"] = { "star07", "tat" },
-- ["hot_star"] = { "star01", "star02" },
["kas"] = { "star12", "star13", "star15", "star17" },
["kam"] = { "star12", "star13", "tat" },
["mus"] = { "star02", "star04", "star05" },
["myg"] = { "star17", "cor", "star15" },
["nab"] = { "star07", "star12", "star17", "dag" },
["pol"] = { "star04", "star02" },
["tat"] = { "geo", "kam" },
["uta"] = { "star04", "star05", "star06" },
["yav"] = { "star15", "fel" },
-- ["star01"] = { "end_star", "star02" },
["star02"] = { "mus", "star20", "pol" },
-- ["star03"] = { "hot_star", "pol" },
["star04"] = { "mus", "pol", "uta" },
["star05"] = { "mus", "uta", "dag" },
["star06"] = { "uta", "dag", "star07" },
["star07"] = { "nab", "geo", "star06" },
-- ["star08"] = { "star06", "geo" },
-- ["star09"] = { "tat", "geo" },
-- ["star10"] = { "star12", "geo", "tat" },
-- ["star11"] = { "tat", "kam" },
["star12"] = { "kam", "nab", "kas" },
["star13"] = { "kas", "kam", "fel" },
-- ["star14"] = { "fel", "yav" },
["star15"] = { "kas", "yav", "myg" },
-- ["star16"] = { "yav", "myg" },
["star17"] = { "cor", "myg", "kas", "nab" },
-- ["star18"] = { "cor", "myg" },
-- ["star19"] = { "end_star", "star18" },
["star20"] = { "star02", "cor" }
}

-- resource value for each planet
this.planetValue = {
["cor"] = { victory = 60, defeat = 20, turn = 3 },
["dag"] = { victory = 50, defeat = 20, turn = 3 },
["fel"] = { victory = 50, defeat = 20, turn = 3 },
["geo"] = { victory = 100, defeat = 35, turn = 10 },
["kas"] = { victory = 50, defeat = 20, turn = 3 },
["kam"] = { victory = 100, defeat = 35, turn = 10 },
["mus"] = { victory = 60, defeat = 20, turn = 3 },
["myg"] = { victory = 50, defeat = 20, turn = 3 },
["nab"] = { victory = 60, defeat = 20, turn = 3 },
["pol"] = { victory = 50, defeat = 20, turn = 3 },
["tat"] = { victory = 50, defeat = 20, turn = 3 },
["uta"] = { victory = 60, defeat = 20, turn = 3 },
["yav"] = { victory = 50, defeat = 20, turn = 3 },
}

this.spaceValue = {
victory = 50, defeat = 20,
}

-- mission to launch for each planet
this.spaceMission = {
["con"] = { "spa3c_Diet Dr. Pepper", "spa6c_Diet Dr. Pepper", "spa7c_Diet Dr. Pepper" }
}
this.planetMission = {
["cor"] = {
["con"] = "cor1y_con",
},
["dag"] = {
["con"] = "dag1y_con",
},
["fel"] = {
["con"] = "fel1y_con",
},
["geo"] = {
["con"] = "geo1y_con",
},
["kam"] = {
["con"] = "kam1y_con",
},
["kas"] = {
["con"] = "kas2y_con",
},
["mus"] = {
["con"] = "mus1y_con",
},
["myg"] = {
["con"] = "myg1y_con",
},
["nab"] = {
["con"] = "nab2y_con",
},
["pol"] = {
["con"] = "pol1y_con",
},
["tat"] = {
["con"] = "tat2y_con",
},
["uta"] = {
["con"] = "uta1y_con",
},
["yav"] = {
["con"] = "yav1y_con",
},
}

-- associate names with teams
this.teamName = {
[REP] = "common.sides.rep.name",
[CIS] = "common.sides.cis.name"
}

-- associate names with team bases
this.baseName = {
[REP] = "ifs.freeform.base.rep",
[CIS] = "ifs.freeform.base.cis"
}

-- associate names with team fleets
this.fleetName = {
[REP] = "ifs.freeform.fleet.rep",
[CIS] = "ifs.freeform.fleet.cis"
}

-- associate entity class with team fleets
this.fleetClass = {
[REP] = "gal_prp_assaultship",
[CIS] = "gal_prp_fedcruiser"
}

-- associate icon textures with team fleets
this.fleetIcon = {
[REP] = "rep_fleet_normal_icon",
[CIS] = "cis_fleet_normal_icon"
}
this.fleetStroke = {
[REP] = "rep_fleet_normal_stroke",
[CIS] = "cis_fleet_normal_stroke"
}

-- set the explosion effect for each team
this.fleetExplosion = {
[REP] = "gal_sfx_assaultship_exp",
[CIS] = "gal_sfx_fedcruiser_exp"
}

-- team base planets
this.planetBase = {
[REP] = "kam",
[CIS] = "geo",
}

-- team potential starting locations
this.planetStart = {
[REP] = { "cor", "kam", "nab" },
[CIS] = { "geo", "uta", "mus" }
}

print("ifs_freeform_init_abc: ifs_freeform_init_abc(): Setup(): Finished")
end
end
[/code]
ifs_freeform_start_abc
Hidden/Spoiler:
[code]print("ifs_freeform_start_abc.lua")
function ifs_freeform_start_abc(this)
print("ifs_freeform_start_abc(): Entered")

-- save scenario type
this.scenario = "abc"

-- assigned teams
local REP = 1
local CIS = 2

-- ZER init
print("ifs_freeform_start_abc(): Init")
ifs_freeform_init_abc(this, REP, CIS)

-- set to co-op play
ifs_freeform_controllers(this, { [0] = REP, [1] = REP, [2] = REP, [3] = REP })

-- REP start
this.Start = function(this)
print("ifs_freeform_start_abc(): Start(): Entered")

-- perform common start
ifs_freeform_start_common(this)

-- set team for each planet
this.planetTeam = {
["cor"] = REP,
["dag"] = CIS,
["fel"] = CIS,
["geo"] = CIS,
["kam"] = REP,
["kas"] = CIS,
["mus"] = CIS,
["myg"] = CIS,
["nab"] = REP,
["pol"] = CIS,
["tat"] = CIS,
["uta"] = CIS,
["yav"] = CIS,
}


-- create starting fleets for each team
this.planetFleet = {}
for team, start in pairs(this.planetStart) do
local planet = start[math.random(table.getn(start))]
this.planetFleet[planet] = team
end
end
print("ifs_freeform_start_abc(): Finished")
end
[/code]
EDIT
fingerfang i tested your files and also work fine :D
Post Reply