Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 8
    Гостей: 5
    Пользователи: - отсутствуют
    Роботы: Yandex Bot, crawl Bot, robot Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 14-12-2011, 17:59 Просмотров: 6287

    Как узнать FPS игрока на сервере. Готовый скрипт.

    В последнее время стали очень популярными сервера Hide And Seek и DeathRun, на многих серверах установлен плагины с автоматическим bhop, что позволяет игрокам развивать очень большую скорость. В какой то момент, некто рассказал в массы о баге с режимом разработчика developer 1 и возможностью увеличить FPS игрока, что позволят в разы быстрее разгоняться.

    Это дает ощутимое преимущество перед другими игроками и, можно сказать, ставит их в не равное положение, вследствие чего, все друг друга постоянно спрашивают, кто с каким FPS играет. В рунете я не находил ответа на вопрос как узнать fps игрока, но нашел его за бугром.

    Код скрипта узнающего FPS игроков:
    Команда в консоли сервера players, что бы посмотреть таблицу с игроками и их fps.
    #include <amxmodx> 
    #include <engine>

    new g_fps[33][11];
    new g_i[33];
    new g_maxplayers;

    public plugin_init() {
        register_plugin("Как узнать fps игрока", "fps", "fps")
        register_srvcmd("players","show_info")
        
        g_maxplayers = get_maxplayers()
    }

    public show_info()
    {
        new name[32]
        new ping,loss

        server_print("NAME        | FPS    | Ping    | Loss")

        for(new i=1;i<=g_maxplayers;i++)
        {
            if(!is_user_connected(i) || is_user_bot(i))
                continue;
                
            get_user_ping(i,ping,loss)
            get_user_name(i,name,31)
            
            server_print("%s |   %ifps | %iping | %iloss",name,get_user_fps(i),ping,loss)
        }
    }

    //code from get_fps tutorial
    public client_putinserver(id)
        set_task(0.1, "count", id, "", 0, "b");

    public client_disconnect(id)
        remove_task(id);
        
    public client_PreThink(id)
        g_fps[id][10]++;

    public count(id) {

        if ( g_i[id] < 9 )
            g_i[id]++;
        else
            g_i[id] = 0;
            
        g_fps[id][g_i[id]] = g_fps[id][10];
        g_fps[id][10] = 0;
    }

    get_user_fps(id)  
    {
        new i;
        new j = 0;
        
        for ( i = 0; i < 9; i++ )
            j += g_fps[id][i];
        
        return j - 5;
    }

    Если честно,данный код помогает узнать fps игрока, но он далеко не самый оптимальный и будет давать ощутимую нагрузку на сервер, так как постоянно происходит выполнение двух функций с большой частотой, с частотой равной fps игрока.

    Этот код создан для того что бы показать общий принцип как можно узнать fps игрока, если вы хотите его использовать и при этом не навредить серверу, придется подумать над его оптимизацией и продумать алгоритм работы такой, что бы он запускался только в необходимый момент времени и совсем не надолго.

    К стати, когда я на своих двух серверах поставил плагин, который запретил использовать игрокам фпс больше ста, сервера стали работать во много раз стабильнее. О том как можно заблокировать использование developer 1, что бы снизить fps игрока для максимальных 101, напишу в другой раз.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Как узнать FPS игрока на сервере. Готовый скрипт.
    StRiKeR.csF

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Спасибо, доработаю, получится просто отлично!
    l0pa

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    О том как можно заблокировать использование developer 1, что бы снизить fps игрока для максимальных 101, напишу в другой раз.


    Виполняйте обещания.
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Бегу и спотыкаюсь...
    --------------------

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама