Система авто репорта за большой пинг

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

Система автоматически сообщает админам о игроках с очень большим пингом.

Подходит для серверов, где важно следить за качеством соединения.


Суть реализации

1. Периодически проверяем пинг всех игроков.

2. Если пинг выше порога, отправляем сообщение в админ-чат.

3. Можно добавить лимит по частоте уведомлений.


Реализация

Код:
forward CheckPing();


public OnGameModeInit()
{
    SetTimer("CheckPing", 30000, true);
    return 1;
}


public CheckPing()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;

        new ping = GetPlayerPing(i);

        if(ping > 300)
        {
            new name[MAX_PLAYER_NAME], msg[64];

            GetPlayerName(i, name, sizeof name);

            format(msg, sizeof msg, "[PING] %s[%d] имеет пинг %d.", name, i, ping);

            for(new a = 0; a < MAX_PLAYERS; a++)
            {
                if(!IsPlayerConnected(a)) continue;
                // здесь предположена система AdminLevel
                // if(AdminLevel[a] <= 0) continue;

                SendClientMessage(a, 0xFF6666FF, msg);
            }
        }
    }

    return 1;
}


Дополнительные идеи

1. Авто кик за пинг выше критического значения.

2. Игнорировать игроков с временно повышенным пингом.

3. Собирать статистику пинга для анализа.
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху