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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 18-01-2012, 14:14 Просмотров: 6749

    get_user_userid Функция получает userid игрока.

    Все игроки знакомы с командой kick, кто то сам кикал, кого то кикали админы за нарушения правил сервера, или плагин за высокий пинг, суть не в этом, а в том что эта команда, как и многие другие, работают не с индексом игрока, а с userid, что бы получить эти заветные циферки существует функция get_user_userid, которая получает userid игрока из его индекса на сервере. Главное не запутаться.

    Инфо из amxmodx.inc:
    /* Returns player userid. */
    native get_user_userid(index);


    Если выполнить команду amx_who, то консоль нам вернет вот такую таблицу ( завит от количества игроков на сервере и наличие плагина с данной командой, плагин с админскими командами входит в стандартный набор amxmodx)
    Clients on server:
    #  nick             IP                   userid   imm  ViP  access
    1  Admin            192.168.50.120       10       No     Yes
    2  BotName          127.0.0.1            11       No     No     z
    3  (1)BotName       127.0.0.1            12       No     No     z
    4  (2)BotName       127.0.0.1            13       No     No     z
    5  (3)BotName       127.0.0.1            14       No     No     z
    6  (4)BotName       127.0.0.1            15       No     No     z
    7  (5)BotName       127.0.0.1            16       No     No     z
    Total 7
    Грубо говоря, первый столбик это индекс игроков на сервере, а вот колона userid и есть тот идентификатор с которым работают такие команды как kick или amx_ban


    Синтаксис:
    get_user_userid(index)

    • index - id игрока
    Функция возвращает userid игрока.

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

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

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[amxmodx.inc] get_user_menu"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        
        register_plugin(PLUGIN, VERSION, AUTHOR)


        register_clcmd("say /kick","f_KickPlayer")
        
    }
    public f_KickPlayer(id){


        server_print("kick #%d player index != userid",id)
        server_cmd("kick #%d player index != userid",id)
        
        new userid = get_user_userid(id)  
        
        server_print("kick #%d Correct command",userid)
        server_cmd("kick #%d Correct command",userid)
            
    }


    Описание:
    Данный пример сделает из вас мазохистов, не пугайтесь, всего то на пару секунд ( это сделано что бы не нагромождать лишнего и использовать всем привычные функции).

    Выполняя команду say /kick, сервер вас кикнет ив своей консоли напишет вот такое сообщение:
    kick #1 player index != userid
    kick #7 Correct command
    Admin : /kick
    Dropped Admin from server
    Reason:  Kicked :Correct command
    Те кто внимательно смотрели код и это сообщении, думаю уже догадались о всем происходящем, если нет, я поясню.

    Для того что бы кикнуть игрока с сервера, необходимо воспользоваться командой kick, вот ее синтаксис:
    kick
    usage:  kick < name > | < # userid >

    Как видно нам нужно указать или имя или userid, а в примере сначала подставляется индекс игрока, по этому то его и не кикает с сервера.
    Далее, с помощью функции get_user_userid, был получен его userid и подставлен в команду и вас с успехом выкидывает с сервера.

    Надеюсь вы поняли разницу между index и userid. Для понимания вот еще можно что добавить:
    index игрока может быть от 1 до 32,то есть можно сказать индекс это занимаемый слот игроком.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    get_user_userid Функция получает userid игрока.
    golukon

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

    Странно. У меня работает не через kick, а через amx_kick

    Информация

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

Реклама