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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 12-04-2012, 15:43 Просмотров: 2157

    admins_lookup Функция получает данные о загруженных админах

    С помощью функции admins_lookup, вы можете получить данные о загруженных админах, не тех кто на сервере, а грубо говоря карточки администраторов (логин/пароль или стим и т.п.). При загрузке сервера происходит загрузка админов из user.ini или базы данных,а функция admins_lookup работает непосредственно с уже загруженными данными, что лишает нас геммороя продумывать возможные варианты от куда взялась та или иная запись.

    Инфо из amxmodx.inc:
    /**
    * Gets information about a dynamically stored admin
    * Use the enum AdminProp
    * Returns an integer value: AdminProp_Access, AdminProp_Flags
    * Sets the buffer string: AdminProp_Auth, AdminProp_Password
    */
    native admins_lookup(num, AdminProp:Property, Buffer[]="", BufferSize=0);


    Синтаксис:
    admins_lookup(num, AdminProp:Property, Buffer[]="", BufferSize=0)

    • num - индекс данных
    • AdminProp:Property - Тип авторизации:
      enum AdminProp
      {
          AdminProp_Auth = 0,
          AdminProp_Password,
          AdminProp_Access,
          AdminProp_Flags
      };

    • Buffer[]="" - Массив для полученных данных
    • BufferSize=0 - Максимальный размер массива
    Функция вернет флаг авторизации:
    #define FLAG_KICK        (1<<0)    /* flag "a" */
    #define FLAG_TAG        (1<<1)    /* flag "b" */
    #define FLAG_AUTHID        (1<<2)    /* flag "c" */
    #define FLAG_IP            (1<<3)    /* flag "d" */
    #define FLAG_NOPASS        (1<<4)    /* flag "e" */
    #define FLAG_CASE_SENSITIVE    (1<<10) /* flag "k" */


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

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

    #include <amxmodx>
    #include <amxmisc>

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


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_srvcmd("look_admins","look_admins")
    }
    public look_admins(){


        new Count=admins_num()
        new AuthData[44]
        
        for (new i = 0; i < Count; ++i)
        {
            
            new Flags=admins_lookup(i,AdminProp_Flags);
            
            admins_lookup(i,AdminProp_Auth,AuthData,sizeof(AuthData)-1)
            
            server_print("^n[%d] %s",i,AuthData)

            if (Flags & FLAG_IP)
                server_print("FLAG_IP^n")
        }
        
    }


    Описание:
    Выполните в консоли сервера команду look_admins, которая задействует одноименную функцию ивы увидите примерно следующее ( в зависимости что у вас за админы загружены:
    look_admins

    [0] test

    [1] VALVE_0:0:887164753

    [2] loopback

    [3] 192.168.50.120
    FLAG_IP


    Не сложно догадаться что это 4 админских учетки, где только последняя проверяется по ip, остальные по другим типам.
    Попробуйте получить разные дынные и флаги, так вы быстрее освоите данную функцию, хотя я не думаю что она пригодится большинству читателей
    Описания данной функции так же нету на официальном сайте.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама