Scoreboard — реальный пинг вместо задержки

Сообщения
1,672
Реакции
1,497
Помог
24 раз(а)
Тестеры есть? Надо протестировать.

Код:
#pragma semicolon 1

#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
    register_plugin("Fake Ping For Players", "1.0", "fl0wer");

    register_forward(FM_UpdateClientData, "@UpdateClientData_Post", true);
}

@UpdateClientData_Post(id)
{
    static bool:sending;
    static bits, added;
    static ping, loss;
    static i;

    get_user_ping(i, ping, loss);

    sending = false;
    bits = added = 0;

    for (i = 1; i <= MaxClients; i++)
    {
        if (!is_user_connected(i))
            continue;

        if (!sending)
        {
            message_begin(MSG_ONE_UNRELIABLE, SVC_PINGS, _, id);
            sending = true;
        }

        AddBits(bits, added, 1, 1);
        AddBits(bits, added, i - 1, 5);
        AddBits(bits, added, max(ping - 10, 1), 12);
        AddBits(bits, added, 0, 7);
        WriteBytes(bits, added, false);
    }
    
    if (sending)
    {
        AddBits(bits, added, 0, 1);
        WriteBytes(bits, added, true);

        message_end();
    }
}

AddBits(&bits, &added, value, bitCount)
{
    if (bitCount > (32 - added) || bitCount < 1)
        return;

    if (value >= (1<<bitCount))
        value = (1<<bitCount) - 1;

    bits = bits + (value<<added);
    added += bitCount;
}

WriteBytes(&bits, &added, remaining)
{
    while (added >= 8)
    {
        write_byte(bits & ((1<<8) - 1));

        bits = (bits>>8);
        added -= 8;
    }

    if (remaining && added > 0)
    {
        write_byte(bits);

        bits = added = 0;
    }
}
Побочные эффекты: пинг становится +10 из-за нагрузки от плагина.
 

Вложения

Сообщения
28
Реакции
1
fl0wer, разве так будет блокировать отправку SVC_PING движком? Если нет, то при входе на сервер и первом вызове IN_SCORE (Tab) проскочет неизмененный latency.
 
Сообщения
1,672
Реакции
1,497
Помог
24 раз(а)
Sots, о, Вы bionext, тогда да, не ставьте, нойте, не тестируйте, видосы снимайте, команды консольные скидывайте.
 
Последнее редактирование:
Сообщения
28
Реакции
1
fl0wer, нет, я не он. Просто он пишет о том, что таким образом неизменный пинг будет проскакивать. Я ставил как-то PingFaker 1.4, в котором так же реализовано, и там действительно проскакивал пинг. Я, конечно, поставлю. Решил сразу уточнить этот момент.
 
Сообщения
1,672
Реакции
1,497
Помог
24 раз(а)
Sots, а в моем плагине разве проверяются кнопки?
 
Сообщения
2,491
Реакции
2,791
Помог
61 раз(а)
d3m37r4 Sots прекращайте оффтопить на тему влияет ли или нет тикрейт на пинг в скореборде. Тема касательно фейка этого самого пинга. Примеров в нете полно как его фейковать. Либо создавайте отдельную тему во флудилке где один второму доказывайте, иначе за любые дальнейшые оффтопы буду выдавать предупреждения.
 
Сообщения
28
Реакции
1
fl0wer, поставил плагин. У всех клиентов latency в scoreboard равен 1 и не колеблется.
 
Сообщения
1,672
Реакции
1,497
Помог
24 раз(а)
Sots, ну значит пинг у них в пределах 1-10.
 
Сообщения
28
Реакции
1
fl0wer, почему он не колеблется? Если лишь вычитается 10, то колебания должны быть в пределах 0-2, но их нет.
1 Фев 2020
fl0wer, Нет. У всех игроков пинг больше 25. Есть даже с пингом 80, но у всех клиентов отображается единица без колебаний.
 
Сообщения
1,672
Реакции
1,497
Помог
24 раз(а)
Sots, проверь что возвращает get_user_ping и мин.предел сделал 1.
1 Фев 2020
Sots, не туда сунул.
 

Вложения

Сообщения
28
Реакции
1
fl0wer, возвращает неизмененный пинг. Там и так стоит мин. предел 1. Только почему-то не колеблется.
Похоже, что на этом затык идет: AddBits(bits, added, max(ping - 10, 1), 12);
1 Фев 2020
fl0wer, теперь работает. Так и должно быть, что плагин поменял интервал проверки latency? Слишком часто обновляет. Это изменяется?
 
Сообщения
1,672
Реакции
1,497
Помог
24 раз(а)
Sots, сделаешь - будет.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу