Page 1 of 1

Multiplayer issues

Posted: Tue Apr 22, 2014 10:06 am
by JimmyAngler
So I'm trying to play online with some friends on my mod, but it will not allow it. The map Blood Gulch shows up twice in the multiplayer list, and both are selected when I click on one. My new era doesn't show up, or the game mode. It just displays the basic ones. I also can't find the added era on polis masa. I have no idea about online things, so what needs to be done?

Re: Multiplayer issues

Posted: Tue Apr 22, 2014 10:14 am
by Noobasaurus
If you can't see it on the map list, it's most likely your addme that's causing problems. Post that please.

Re: Multiplayer issues

Posted: Tue Apr 22, 2014 10:22 am
by JimmyAngler
The map is on the list, just not the modes and eras.
Hidden/Spoiler:
[code]--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)
-- recursively merges the second given table into the first given table
function MergeTables( mission, newFlags )
--for each table entry,
local array = type({})
for key,value in pairs(newFlags) do
--check for nested tables
if type(value) == array then
--mission must have this key as a table too
if type(mission[key]) ~= array then
mission[key] = {}
end
--merge these two tables recursively
MergeTables(mission[key], value)
else
--the key is a simple variable, so simply store it
mission[key] = value
end
end
end

--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
MergeTables(mission, newFlags)
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] = { red = 0, blue = 149, green = 110,
isModLevel = 1,
mapluafile = "HLO%s_%s",
era_h = 1,
mode_con_h = 1,
change = {
era_h = { name="Halo Wars", icon2="halo_wars" },
mode_con = {name="Domination", about = "Capture all of the enemy's landing zones to achieve total domination"}

},
}

mp_n = table.getn(mp_missionselect_listbox_contents)
mp_missionselect_listbox_contents[mp_n+1] = sp_missionselect_listbox_contents[sp_n+1]

AddNewGameModes(
sp_missionselect_listbox_contents,
"pol1%s_%s",
{
era_h = 1,
mode_con_h = 1,
change = {
era_h = { name="Halo Wars", icon2="halo_wars" },
mode_con = {name="Conquest", about = "Capture all of the enemy's command points while trying to defend your own!"}

},
}
)

mp_n = table.getn(mp_missionselect_listbox_contents)
mp_missionselect_listbox_contents[mp_n+1] = sp_missionselect_listbox_contents[sp_n+1]

AddNewGameModes(
sp_missionselect_listbox_contents,
"pol1%s_%s",
{
era_h = 1,
mode_ctf_h = 1,
change = {
era_h = { name="Halo Wars", icon2="halo_wars" },
mode_ctf = {name="Capture the Flag", about = "Capture the enemy's flag while trying to defend your own!"}

},
}
)

-- 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("HLO","HLOh_con",4)
AddDownloadableContent("pol1","pol1h_con",4)
AddDownloadableContent("pol1","pol1h_ctf",4)


-- all done
newEntry = nil
n = nil

-- Now load our core.lvl into the shell to add our localize keys
ReadDataFile("..\\..\\addon\\HLO\\data\\_LVL_PC\\core.lvl")
ReadDataFile("..\\..\\addon\\HLO\\data\\_LVL_PC\\ingame.lvl")[/code]

Re: Multiplayer issues

Posted: Wed Apr 23, 2014 1:50 am
by [RDH]Zerted
It shows up twice in MP because you have these lines twice:

Code: Select all

mp_n = table.getn(mp_missionselect_listbox_contents)
mp_missionselect_listbox_contents[mp_n+1] = sp_missionselect_listbox_contents[sp_n+1]
That code 'copies' the map entry in SP to MP. You copy it twice so it shows up twice.

Both of your AddNewGameModes calls add the game mode to sp_missionselect_listbox_contents, which is the singleplayer list. Perhaps you meant to use mp_missionselect_listbox_contents for one of them?

*SP = singleplayer
MP = multiplayer