Okay so I know there are thousands of posts about this overly common error:
FATAL ERROR (shutting down): SZ_GetSpace: overflow without FSB_ALLOWOVERFLOW set on net_message
The thingy is, I don't use excessive hud messages, or excessive messages at all for that matter. But there are a couple of things on the server I just CAN'T send via unreliable stream because I can't risk the player not getting the message, it would ruin the game
Here are all the messages from the server, see if any of them could be broken.
Code:
stock make_tutor( id, text[ ], color)
{
message_begin( MSG_ONE_UNRELIABLE, g_MsgTutor, _, id )
write_string( text )
write_byte( 0 )
write_short( 0 )
write_short( 0 )
write_short( 1 << color )
message_end()
}
public remove_tutor(id)
{
message_begin( MSG_ONE, g_MsgTutorClose, _, id )
message_end()
}
public unfreeze(id)
{
set_user_maxspeed(id, 250.0);
set_user_gravity(id, 1.0);
give_item(id, "weapon_knife")
message_begin ( MSG_ONE , gmsgScreenFade , _ , id ) ;
write_short ( 1<<2 ) ;
write_short ( 0 ) ;
write_short ( 0 ) ;
write_byte ( 0 ) ;
write_byte ( 0 ) ;
write_byte ( 0 ) ;
write_byte ( 0 ) ;
message_end ( ) ;
}
case CS_TEAM_CT:
{
god_change(iPlayer, 1)
message_begin(MSG_ONE , gmsgScreenFade , _ , iPlayer)
write_short(( 1<<3 ) | ( 1<<8 ) | ( 1<<10 )) ;
write_short(( 1<<3 ) | ( 1<<8 ) | ( 1<<10 )) ;
write_short(( 1<<0 ) | ( 1<<2 )) ;
write_byte(0)
write_byte(255)
write_byte(0)
write_byte(255)
message_end()
set_user_maxspeed(iPlayer, 0.1)
set_task(15.0, "unfreeze", iPlayer)
}
eflash(id, duration, holdtime, flags, red = 255, green = 255, blue = 255, alpha)
{
emessage_begin(MSG_ONE_UNRELIABLE, g_nMsgScreenFade, {0, 0, 0}, id)
ewrite_short(duration)
ewrite_short(holdtime)
ewrite_short(flags)
ewrite_byte(red)
ewrite_byte(green)
ewrite_byte(blue)
ewrite_byte(alpha)
emessage_end()
}
stock chat_color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, ".v", "^4")
replace_all(msg, 190, ".g", "^1")
replace_all(msg, 190, ".e", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
public smoke_effect(id)
{
new origin[3];
get_user_origin(id, origin, 0);
origin[2] = origin[2] - 10;
message_begin(MSG_BROADCAST, SVC_TEMPENTITY); //MSG_BROADCAST sends to all players and doesn't care if it fails.
write_byte(17);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]);
write_short(smokesprite);
write_byte(10);
write_byte(150);
message_end();
}
{
if (strlen(model) < 7)
return;
if (model[7] != 'w' || model[8] != '_')
return;
static Float:dmgtime
pev(entity, pev_dmgtime, dmgtime)
if (dmgtime == 0.0)
return;
if(cs_get_user_team(pev(entity, pev_owner)) == CS_TEAM_CT)
{
if (model[9] == 's' && model[10] == 'm')
{
fm_set_rendering(entity, kRenderFxGlowShell, 100, 100, 100, kRenderNormal, 16);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(entity)
write_short(g_trailSpr)
write_byte(10)
write_byte(10)
write_byte(100)
write_byte(100)
write_byte(100)
write_byte(200)
message_end()
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_SPRAY)
}
}
if(cs_get_user_team(pev(entity, pev_owner)) == CS_TEAM_T)
{
if(model[9] == 'h' && model[10] == 'e')
{
fm_set_rendering(entity, kRenderFxGlowShell, 100, 50, 20, kRenderNormal, 16);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(entity)
write_short(g_trailSpr)
write_byte(10)
write_byte(10)
write_byte(100)
write_byte(50)
write_byte(20)
write_byte(200)
message_end()
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_DAMAGE)
}
else if (model[9] == 'f' && model[10] == 'l')
{
fm_set_rendering(entity, kRenderFxGlowShell, 0, 50, 150, kRenderNormal, 16);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(entity)
write_short(g_trailSpr)
write_byte(10)
write_byte(10)
write_byte(0)
write_byte(50)
write_byte(150)
write_byte(200)
message_end()
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FLASH)
}
}
}
public hud_status(task)
{
new name[32], szStatus[64]
if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2))
g_RoundStarted++
if(!g_Freeday && !g_Simon && g_SimonAllowed && (0.0 < g_SimonRandom < get_gametime()))
{
cmd_simon(random_num(1, g_MaxClients))
}
team_count()
formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "JBE_STATUS", g_TeamAlive[CS_TEAM_T], g_TeamCount[CS_TEAM_T])
message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
write_byte(0)
write_string(szStatus)
message_end()
message_begin(MSG_BROADCAST,gmsgScoreInfo)
write_byte(attacker)
write_short(frags)
write_short(deaths)
write_short(0)
write_short(teams)
message_end()
msg_name_change(id, /* const */ oldname[], /* const */ newname[]) {
message_begin(MSG_BROADCAST, g_msgid_saytext)
write_byte(id)
write_string(g_name_change)
write_string(oldname)
write_string(newname)
message_end()
}
stock msg_create_fog(iRed, iGreen, iBlue, iDensity)
{
new const fog_density[] = { 0, 0, 0, 0, 111, 18, 3, 58, 111, 18, 125, 58, 66, 96, 27, 59, 90, 101, 60, 59, 90,
101, 68, 59, 10, 41, 95, 59, 111, 18, 125, 59, 111, 18, 3, 60, 68, 116, 19, 60 }
new dens
dens = (4 * iDensity)
message_begin(MSG_BROADCAST, get_user_msgid("Fog"), { 0, 0, 0 }, 0)
write_byte(iRed)
write_byte(iGreen)
write_byte(iBlue)
write_byte(fog_density[dens] )
write_byte(fog_density[dens + 1])
write_byte(fog_density[dens + 2])
write_byte(fog_density[dens + 3])
message_end()
}
Now some of these can be unreliable but most can't, I've changed almost every one except the critical ones to unreliable to avoid further crashes, but what can I do?