Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Выдача денег и переполнение канала

Статус пользователя AndrewZ
сообщение 19.1.2015, 14:47
Сообщение #1


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Привет!
Часто у игроков такая проблема:
минут за 4 накапало
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
}


Спасибо!


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: