Page 1 of 1

Custom mappack conflicting with vanilla levels

Posted: Thu Feb 19, 2015 6:58 pm
by AnthonyBF2
I have a custom map map going on. 18 levels, which are a remake of each regular level. (not every level though) It's a Rise of the Empire revision, to fix crashes, allow team select, fill in missing characters, make the objectives longer or harder. etc... in general make them sort of multiplayer friendly with a bit more stuff to do.

Each addon level is only using conquest era with gcw and cw.(both will load the same thing though, I did this to fill in the opposite eras so you don't play on an empty world with 4 cps)
Example: The addon Coruscant CW/GCW will load the same Coruscant campaign script.

In single player each addon map plays fine. Each addon level runs its own content, as it had been made to(dc: map files, dc:side etc) And each regular levels/modes are listed just fine. There is no issues here.

The issue is in multiplayer. When I try to create a session, only a small amount of stock levels are shown. All of the addon levels are shown. But When I try to play certain addon levels, the game crashes after loading. I think some where it's conflicting with stock levels.
When in MP create screen, the only sock levels that are shown are the stock levels that I have not made an addon for. It seems the only stock levels being listed are the stock levels that did not originally have a campaign. Not every addon campaign mission is crashing, but some. I've not yet marked which ones are working/crashing.

Since this is a MP-specific issue, I don't think the debugger can be used(It doesn't have online function)

Here is the addme script, I will add special comments here to note which addon level is resembling it's vanilla version.
Hidden/Spoiler:
--Search through the missionlist to find a map that matches mapName,
--then insert the new flags into said entry.
--Use this when you know the map already exists, but this content patch is just
--adding new gamemodes (otherwise you should just add whole new entries to the missionlist)
function AddNewGameModes(missionList, mapName, newFlags)
for i, mission in missionList do
if mission.mapluafile == mapName then
for flag, value in pairs(newFlags) do
mission[flag] = value
end
end
end
end




--insert totally new maps here:
local sp_n = 0
local mp_n = 0
sp_n = table.getn(sp_missionselect_listbox_contents)

sp_missionselect_listbox_contents[sp_n+1] = { isModLevel = 1, mapluafile = "CAM%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+2] = { isModLevel = 1, mapluafile = "002%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+3] = { isModLevel = 1, mapluafile = "003%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+4] = { isModLevel = 1, mapluafile = "004%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+5] = { isModLevel = 1, mapluafile = "005%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+6] = { isModLevel = 1, mapluafile = "006%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+7] = { isModLevel = 1, mapluafile = "007%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+8] = { isModLevel = 1, mapluafile = "008%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+9] = { isModLevel = 1, mapluafile = "009%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+10] = { isModLevel = 1, mapluafile = "010%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+11] = { isModLevel = 1, mapluafile = "011%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+12] = { isModLevel = 1, mapluafile = "012%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+13] = { isModLevel = 1, mapluafile = "013%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+14] = { isModLevel = 1, mapluafile = "014%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+15] = { isModLevel = 1, mapluafile = "015%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+16] = { isModLevel = 1, mapluafile = "016%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+17] = { isModLevel = 1, mapluafile = "017%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
sp_missionselect_listbox_contents[sp_n+18] = { isModLevel = 1, mapluafile = "018%s_%s", era_g = 1, era_c = 1, mode_con_g = 1, mode_con_c = 1,}
mp_missionselect_listbox_contents[mp_n+1] = sp_missionselect_listbox_contents[sp_n+1]
mp_missionselect_listbox_contents[mp_n+2] = sp_missionselect_listbox_contents[sp_n+2]
mp_missionselect_listbox_contents[mp_n+3] = sp_missionselect_listbox_contents[sp_n+3]
mp_missionselect_listbox_contents[mp_n+4] = sp_missionselect_listbox_contents[sp_n+4]
mp_missionselect_listbox_contents[mp_n+5] = sp_missionselect_listbox_contents[sp_n+5]
mp_missionselect_listbox_contents[mp_n+6] = sp_missionselect_listbox_contents[sp_n+6]
mp_missionselect_listbox_contents[mp_n+7] = sp_missionselect_listbox_contents[sp_n+7]
mp_missionselect_listbox_contents[mp_n+8] = sp_missionselect_listbox_contents[sp_n+8]
mp_missionselect_listbox_contents[mp_n+9] = sp_missionselect_listbox_contents[sp_n+9]
mp_missionselect_listbox_contents[mp_n+10] = sp_missionselect_listbox_contents[sp_n+10]
mp_missionselect_listbox_contents[mp_n+11] = sp_missionselect_listbox_contents[sp_n+11]
mp_missionselect_listbox_contents[mp_n+12] = sp_missionselect_listbox_contents[sp_n+12]
mp_missionselect_listbox_contents[mp_n+13] = sp_missionselect_listbox_contents[sp_n+13]
mp_missionselect_listbox_contents[mp_n+14] = sp_missionselect_listbox_contents[sp_n+14]
mp_missionselect_listbox_contents[mp_n+15] = sp_missionselect_listbox_contents[sp_n+15]
mp_missionselect_listbox_contents[mp_n+16] = sp_missionselect_listbox_contents[sp_n+16]
mp_missionselect_listbox_contents[mp_n+17] = sp_missionselect_listbox_contents[sp_n+17]
mp_missionselect_listbox_contents[mp_n+18] = sp_missionselect_listbox_contents[sp_n+18]

-- associate this mission name with the current downloadable content directory
-- (this tells the engine which maps are downloaded, so you need to include all new mission lua's here)
-- first arg: mapluafile from above
-- second arg: mission script name
-- third arg: level memory modifier. the arg to LuaScript.cpp: DEFAULT_MODEL_MEMORY_PLUS(x)

AddDownloadableContent("CAM","CAMg_con",4) -- geonosis, base world in the map pack (training mission)
AddDownloadableContent("CAM","CAMc_con",4)
AddDownloadableContent("002","002g_con",4) -- mygeeto
AddDownloadableContent("002","002c_con",4)
AddDownloadableContent("003","003g_con",4) -- space coruscant
AddDownloadableContent("003","003c_con",4)
AddDownloadableContent("004","004g_con",4) -- felucia
AddDownloadableContent("004","004c_con",4)
AddDownloadableContent("005","005g_con",4) -- space kashyyyk
AddDownloadableContent("005","005c_con",4)
AddDownloadableContent("006","006g_con",4) -- kashyyyk
AddDownloadableContent("006","006c_con",4)
AddDownloadableContent("007","007g_con",4) -- utapau
AddDownloadableContent("007","007c_con",4)
AddDownloadableContent("008","008g_con",4) -- coruscant
AddDownloadableContent("008","008c_con",4)
AddDownloadableContent("009","009g_con",4) -- naboo
AddDownloadableContent("009","009c_con",4)
AddDownloadableContent("010","010g_con",4) -- space mustafar
AddDownloadableContent("010","010c_con",4)
AddDownloadableContent("011","011g_con",4) -- mustafar
AddDownloadableContent("011","011c_con",4)
AddDownloadableContent("012","012g_con",4) -- kamino
AddDownloadableContent("012","012c_con",4)
AddDownloadableContent("013","013g_con",4) -- death star
AddDownloadableContent("013","013c_con",4)
AddDownloadableContent("014","014g_con",4) -- polis massa
AddDownloadableContent("014","014c_con",4)
AddDownloadableContent("015","015g_con",4) -- tantive
AddDownloadableContent("015","015c_con",4)
AddDownloadableContent("016","016g_con",4) -- space yavin
AddDownloadableContent("016","016c_con",4)
AddDownloadableContent("017","017g_con",4) -- yavin
AddDownloadableContent("017","017c_con",4)
AddDownloadableContent("018","018g_con",4) -- hoth
AddDownloadableContent("018","018c_con",4)

-- all done
newEntry = nil
n = nil

-- Now load our core.lvl into the shell to add our localize keys
ReadDataFile("..\\..\\addon\\CAM\\data\\_LVL_PC\\core.lvl")
Mission req
Hidden/Spoiler:
ucft
{
REQN
{
"config"
"ingame_movies"
}

REQN
{
"script"
"setup_teams"
"gametype_conquest"
"gametype_capture"
"Objective"
"MultiObjectiveContainer"
"ObjectiveCTF"
"ObjectiveAssault"
"ObjectiveSpaceAssault"
"ObjectiveConquest"
"ObjectiveTDM"
"ObjectiveOneFlagCTF"
"SoundEvent_ctf"
"ObjectiveGoto"
"LinkedShields"
"LinkedDestroyables"
"LinkedTurrets"
"Ambush"
"PlayMovieWithTransition"
}

REQN
{
"lvl"
"CAMg_con"
"CAMc_con"
"002g_con"
"002c_con"
"003g_con"
"003c_con"
"004g_con"
"004c_con"
"005g_con"
"005c_con"
"006g_con"
"006c_con"
"007g_con"
"007c_con"
"008g_con"
"008c_con"
"009g_con"
"009c_con"
"010g_con"
"010c_con"
"011g_con"
"011c_con"
"012g_con"
"012c_con"
"013g_con"
"013c_con"
"014g_con"
"014c_con"
"015g_con"
"015c_con"
"016g_con"
"016c_con"
"017g_con"
"017c_con"
"018g_con"
"018c_con"
}
}
I thought it might been a localize issue, I was using he same level names for each addon as the same on the stock levels. I changed this and the issue persists.

I'm lost at this point. First attempt at a map pack as well.