Page 1 of 1

Reasons why custom maps crash online

Posted: Wed Aug 26, 2009 11:05 am
by Executer94
I created a map with a lot of objects and default sides but custom tur sides.

What are often reasons that custom maps crash online?

Re: Reasons why custom maps crash online

Posted: Wed Aug 26, 2009 11:36 am
by Xavious
Put this line in your lua, if you haven't already.

Code: Select all

SetMemoryPoolSize("SoldierAnimation", 2000)

Re: Reasons why custom maps crash online

Posted: Wed Aug 26, 2009 12:58 pm
by Executer94
ok I'll do that

It doesn't crash for me just when a player joined his game crashs

Re: Reasons why custom maps crash online

Posted: Wed Aug 26, 2009 1:02 pm
by Xavious
Yeah, that usually happens when you don't have your SoldierAnimation memory pools filled.

Re: Reasons why custom maps crash online

Posted: Thu Aug 27, 2009 2:42 pm
by Executer94
it crashs also with the soldier animation

maybe there's something wrong with my lua:
Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("LinkedTurrets")

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;


function ScriptPostLoad()





--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}



--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)

conquest:Start()
SetUberMode(1);
EnableSPHeroRules()

end


---------------------------------------------------------------------------
-- 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()

ReadDataFile("ingame.lvl")


SetMaxFlyHeight(100)
SetMaxPlayerFlyHeight (100)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo

ReadDataFile("dc:sound\\uta.lvl;uta1cw")
ReadDataFile("sound\\kas.lvl;kas2cw")
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_sniper_felucia",
"rep_inf_clone_assassin",
"rep_inf_ep3_jettrooper",
"rep_inf_ep3_rifleman",
"rep_hero_yoda",
"rep_inf_ep3_officer",
"rep_inf_ep3_engineer",
"rep_hero_kiyadimundi",
"rep_hover_barcspeeder")
ReadDataFile("SIDE\\cis.lvl",
"cis_tread_snailtank",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_marine",
"cis_inf_magnaguard",
"cis_inf_officer",
"cis_walk_spider",
"cis_hero_grievous",
"cis_inf_droideka")




ReadDataFile("dc:SIDE\\dwa.lvl",
"cis_walk_dwarfspider")

ReadDataFile("dc:SIDE\\ran.lvl",
"ran_inf_rancor")




ReadDataFile("dc:SIDE\\mag.lvl",
"cis_inf_magnaguard")



ReadDataFile("dc:SIDE\\tur.lvl",
"tur_bldg_chaingun_tripod",
"tur_bldg_tower")











SetupTeams{
rep = {
team = REP,
units = 120,
reinforcements = 100,
soldier = { "rep_inf_ep3_rifleman",1, 4},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper_felucia",1, 4},
officer = {"rep_inf_ep3_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},



},
cis = {
team = CIS,
units = 120,
reinforcements = 100,
soldier = { "cis_inf_rifleman",7, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},

}
}




SetHeroClass(CIS, "cis_hero_grievous")
SetHeroClass(REP, "rep_hero_kiyadimundi")


function SetupTurrets()

--CIS turrets
turretLinkageCIS = LinkedTurrets:New{ team = CIS, mainframe = "ddt",
turrets = {"gau1", "gau2", "gau3", "gau4", "gau5", "gau6", "gau7", "gau8", "gau9", "gau10", "gau11", "gau12", "gau13",} }
turretLinkageCIS:Init()

function turretLinkageREP:OnDisableMainframe()
ShowMessageText("level.spa.hangar.mainframe.atk.down", CIS)
ShowMessageText("level.spa.hangar.mainframe.def.down", REP)

BroadcastVoiceOver( "ROSMP_obj_21", REP )
BroadcastVoiceOver( "COSMP_obj_20", CIS )
end
function turretLinkageREP:OnEnableMainframe()
ShowMessageText("level.spa.hangar.mainframe.atk.up", CIS)
ShowMessageText("level.spa.hangar.mainframe.def.up", REP)

BroadcastVoiceOver( "ROSMP_obj_23", REP )
BroadcastVoiceOver( "COSMP_obj_22", CIS )
end
end




-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 4) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("SoldierAnimation", 2000)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityWalker", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 32)
SetMemoryPoolSize("Navigator", 128)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("EntityRemoteTerminal", 12)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 128)
SetMemoryPoolSize("UnitController", 128)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:DDT\\DDT.lvl", "DDT_conquest")
ReadDataFile("dc:DDT\\DDT.lvl", "DDT_conquest")
SetDenseEnvironment("false")




-- Sound

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")

voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)

voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)

OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\kas.lvl", "kas")
OpenAudioStream("sound\\kas.lvl", "kas")


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_kas_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_kas_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2,"rep_kas_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_kas_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_kas_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2,"cis_kas_amb_end", 2,1)



SetVictoryMusic(REP, "rep_kas_amb_victory")
SetDefeatMusic (REP, "rep_kas_amb_defeat")
SetVictoryMusic(CIS, "cis_kas_amb_victory")
SetDefeatMusic (CIS, "cis_kas_amb_defeat")


SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--SetSoundEffect("BirdScatter", "birdsFlySeq1")
--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")


AddDeathRegion("death")


--OpeningSateliteShot
AddCameraShot(0.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);

AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end

Re: Reasons why custom maps crash online

Posted: Fri Aug 28, 2009 12:04 pm
by jangoisbaddest
I can't be too sure, but I seem to recall that having a bunch of errors (even Severity: 2 ones) can eventually cause a crash. Eliminating as many of these as you possibly can may make your map more stable. Also, perhaps you can try cutting the number of objects, AI, vehicles, etc. in your map and see if that helps.

Honestly, I don't know enough about multiplayer mechanics to be able to give you a difinitive answer, but I'm learning from experience that you can solve just about any technical problem without coming to this forum as long as you spend enough time experimenting and using the process of elimination. Believe in yourself!

Good luck! :)

P.S. If you are starting to bash your head against the wall, you can always post your error log for us to review. Whoever looks at it, the error log is your friend.

Re: Reasons why custom maps crash online

Posted: Fri Aug 28, 2009 12:16 pm
by Xavious
jangoisbaddest wrote:Also, perhaps you can try cutting the number of objects, AI, vehicles, etc. in your map and see if that helps.
I'm thinking it might be too many AI. As a test, try setting it at the default (32) and see if it still crashes for whoever joins.

Re: Reasons why custom maps crash online

Posted: Fri Aug 28, 2009 12:51 pm
by Teancum
Maps can crash online for lots of reasons -- the best thing to do is go back through your map and eliminate every single error that you are able to.

Re: Reasons why custom maps crash online

Posted: Thu Sep 03, 2009 12:07 pm
by Executer94
I'll do that

but at the moment i can't test it

I'll report after testing
thank you !

Re: Reasons why custom maps crash online

Posted: Fri Sep 04, 2009 7:25 am
by Rends
wasn´t the ubermode with locals one reason for online crashs too?
Someone mentioned it in an other thread.

Re: Reasons why custom maps crash online

Posted: Fri Sep 04, 2009 9:16 am
by Xavious
Rends wrote:wasn´t the ubermode with locals one reason for online crashs too?
Someone mentioned it in an other thread.
Just having uber mode enabled with locals won't cause a crash. If you hit 200 - 240 bots or so with all the units combined, that would most likely cause a problem.

Re: Reasons why custom maps crash online

Posted: Fri Sep 04, 2009 12:00 pm
by FragMe!
A couple of things to try, if it is easy enough try removing the custom turret side. If they are on a separate layer just copy the lyr file for that layer somewhere else safe, remove the turrets or replace them with stock ones. If they are on the base layer then do the same thing but copy the wld file instead. Remeber to remove the reference to the custom turrets from the lua.
Try that and see if it is better, if not then just copy back the lyr or wld file overwriting when asked. Open ZE and make sure the turrets are back in place, save and remunge remembering to put the turret line back in the lua. If they don't show up in game then do a clean and remunge.

If that doesn't make a difference then it may be an object count thing, also do you have any water or effects in the map like smoke or fog?

Other question and BFII is wierd this way sometimes, can they play the map online if they use a brand new profile, no awards?