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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 7-12-2012, 14:11 Просмотров: 5117

    is_user_steam Функция проверяет Steam-игрок или нет

    Многие согласны с мнением что игроков с лицензионным клиентом необходимо поощрять, что бы 100% определить со стима игрок или нет поможет функция is_user_steam ( для серверов с установленным dproto)

    stock bool:is_user_steam(id)
    {
    // Author Sh0oter
            static dp_pointer
            if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
            {
                server_cmd("dp_clientinfo %d", id)
                server_exec()
                return (get_pcvar_num(dp_pointer) == 2) ? true : false
            }
            return false
    }


    Синтаксис:
    is_user_steam(id)

    • id - Индекс проверяемого игрока
    Функция вернет false или true ( игрок не стим или стим)

    Тип функции:
    stock

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>


    #define PLUGIN "[http://amxxmodx.ru] is_user_steam"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        
        
    }
    public client_connect(id){
        

        server_print("Client steam? [%s]",is_user_steam(id) ? "Yes":"No")
        
        
    }
    stock bool:is_user_steam(id)
    {
    // Author Sh0oter
            static dp_pointer
            if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
            {
                server_cmd("dp_clientinfo %d", id)
                server_exec()
                return (get_pcvar_num(dp_pointer) == 2) ? true : false
            }
            return false
    }


    Описание:
    В результате работы данного примере, в консоль сервера будет выводиться сообщение о том стим игрок или нет, при каждом коннекте к серверу.


    Пока игрок на сервере - его 'тип' измениться не может. Поэтому функцию is_user_steam() для игрока достаточно вызвать однократно и запомнить результат.
    Новость отредактировал Safety1st - 12-08-2014, 02:05
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    is_user_steam Функция проверяет Steam-игрок или нет
    Sanya

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

    По поводу примера. Разве он сможет определить стим игрок или нет в функции client_connect?
    По-моему нужно поставить проверку в client_authorized, или я ошибаюсь?
    Admin

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

    А попробовать было бы не проще?
    --------------------
    _ck

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

    Цитата: Admin
    Многие согласны с мнением что игроков с лицензионным клиентом необходимо поощрять, что бы 100% определить со стима игрок или нет поможет функция is_user_steam ( для серверов с установленным dp_roto)

    С процентами ты немного преувеличил :) В сети давно есть пиратки,заточенные из-под лицензии(они запускаются через run_cs.exe,а не через hl.exe или cstrike). и они тоже определяются как Steam.

    Admin

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

    _ck, браво! tongue
    --------------------
    Chuvi

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

    _ck,
    Да вот нифига. У пираток пакет авторизации отличается от стимовского. Всё нормально определяется.


    А насчёт client_authorized Sanya, по-хорошему, прав. Могут возникать моменты, когда в connect-е данных авторизации ещё не будет.

    Цитата: Admin
    dp_roto

    Насколько я знаю, DProto=Double Protocol.

    Admin

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

    Chuvi, я не претендую на авторство или истинность в современных реалиях данной функции :) так что, кому надо, разберутся сами :)
    --------------------
    Valer4

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

    Много лет использую подобные функции и нормально работать так они и не стали.
    Может кто-то знает гарантированный способ?
    Radius

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

    Valer4, все эти годы она нормально и работала. По крайней мере в моей практике ни одного сбоя или ложного определения.
    --------------------
    hacker63

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

    При компиляции выбивает ошибку 017 undefined symbol is_user_steam

    Информация

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

Реклама