Привет!
Часто у игроков такая проблема:
SZ_GetSpace: overflow on Client Datagram
WARNING: msg overflowed for Player
SZ_GetSpace: overflow on Client Datagram
WARNING: msg overflowed for Player
SZ_GetSpace: overflow on komar1k
SZ_GetSpace: overflow on komar1k
WARNING: datagram overflowed for komar1k
SZ_GetSpace: overflow on CCCR_Semka_73
WARNING: datagram overflowed for CCCR_Semka_73
Dropped iPlayer from server
Reason: Client sent 'drop'
SZ_GetSpace: overflow on [DS]cs.::kzn::.Lindrik c ak-74
Тут вдруг я предположил, что это может быть из-за такого плагина. Я прав? Если да, то можно ли как-то оптимизировать? (ну или выдавать бабло каждые несколько секунд всем игрокам, например).
Код:
#define OFFSET_CSMONEY 115
#define INFECT_HP_REWARD 350.0
#define HP_LIMIT 7500.0
new g_msg_money
public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR )
g_msg_money = get_user_msgid( "Money" )
RegisterHam( Ham_TakeDamage, "player", "fwd_TakeDamage" )
}
public event_infect( victim, attacker )
{
if( is_user_alive( attacker ) )
{
static Float:health
pev( attacker, pev_health, health )
if( health + INFECT_HP_REWARD > HP_LIMIT )
set_pev( attacker, pev_health, HP_LIMIT )
else
set_pev( attacker, pev_health, health + INFECT_HP_REWARD )
}
}
public fwd_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits )
{
if( is_user_alive( attacker ) && !is_user_zombie( attacker ) && is_user_zombie( victim ) )
fm_set_user_money( attacker, fm_get_user_money( attacker ) + floatround( damage ) )
}
stock fm_get_user_money( id )
return get_pdata_int( id, OFFSET_CSMONEY )
stock fm_set_user_money( id, money, update = 1 )
{
if( money > 16000 )
money = 16000
set_pdata_int( id, OFFSET_CSMONEY, money )
if( update )
{
message_begin( MSG_ONE, g_msg_money, _, id )
write_long( money )
write_byte( 1 )
message_end()
}
return 1
}
Спасибо!