Флаги Sourcebans

Тема в разделе "Программирование / Скриптинг", создана пользователем R1KO, 28 фев 2014.

  1. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.001
    Симпатии:
    2.993
    Пишу один интересный плагин.
    Не знаю кодирование флагов (web) в SB

    Вот что нашел:
    PHP:
    // Web admin-flags
    define('ADMIN_LIST_ADMINS',     (1<<0));
    define('ADMIN_ADD_ADMINS',         (1<<1));
    define('ADMIN_EDIT_ADMINS',     (1<<2));
    define('ADMIN_DELETE_ADMINS',     (1<<3));

    define('ADMIN_LIST_SERVERS',     (1<<4));
    define('ADMIN_ADD_SERVER',         (1<<5));
    define('ADMIN_EDIT_SERVERS',     (1<<6));
    define('ADMIN_DELETE_SERVERS',     (1<<7));

    define('ADMIN_ADD_BAN',         (1<<8));
    define('ADMIN_EDIT_OWN_BANS',     (1<<10));
    define('ADMIN_EDIT_GROUP_BANS', (1<<11));
    define('ADMIN_EDIT_ALL_BANS',     (1<<12));
    define('ADMIN_BAN_PROTESTS',     (1<<13));
    define('ADMIN_BAN_SUBMISSIONS', (1<<14));
    define('ADMIN_DELETE_BAN',        (1<<25));
    define('ADMIN_UNBAN',             (1<<26));
    define('ADMIN_BAN_IMPORT',        (1<<27));
    define('ADMIN_UNBAN_OWN_BANS',    (1<<30));
    define('ADMIN_UNBAN_GROUP_BANS',(1<<31));

    define('ADMIN_LIST_GROUPS',     (1<<15));
    define('ADMIN_ADD_GROUP',         (1<<16));
    define('ADMIN_EDIT_GROUPS',     (1<<17));
    define('ADMIN_DELETE_GROUPS',     (1<<18));

    define('ADMIN_WEB_SETTINGS',     (1<<19));

    define('ADMIN_LIST_MODS',         (1<<20));
    define('ADMIN_ADD_MODS',         (1<<21));
    define('ADMIN_EDIT_MODS',         (1<<22));
    define('ADMIN_DELETE_MODS',     (1<<23));

    define('ADMIN_NOTIFY_SUB',    (1<<28));
    define('ADMIN_NOTIFY_PROTEST',    (1<<29));

    define('ADMIN_OWNER',             (1<<24));

    Кто-то объяснит как получается конечный результат?
     
    pokypka20 нравится это.
  2. NagarD

    NagarD

    Сообщения:
    412
    Симпатии:
    170
    это побитовый сдвиг влево. И выходя из этого
    ADMIN_LIST_ADMINS = 1
    ADMIN_ADD_ADMINS = 01
    ADMIN_LIST_SERVERS = 00001
    и так дальше.
    http://habrahabr.ru/post/134557/
     
    R1KO нравится это.
  3. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.001
    Симпатии:
    2.993
    Как мне на павне узнать флаги игрока?

    Как-то так?
    PHP:
    #define ADMIN_ADD_BAN 8
    #define ADMIN_UNBAN 26
    #define ADMIN_ADD_SERVER 5

    new iFlags 1235487;
    if(
    iFlags ADMIN_ADD_BAN || iFlags ADMIN_UNBAN)
    {
    // админ имеет флаг
    }
     
    Последнее редактирование: 28 фев 2014
    pokypka20 нравится это.
  4. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    можно эти же значения и использовать
    if (iFlags & (1<<24))

    так же как и в php можно сделать в павне define

    #define ADMIN_OWNER (1<<24)
    if (iFlags & ADMIN_OWNER )
     
    R1KO нравится это.
  5. NagarD

    NagarD

    Сообщения:
    412
    Симпатии:
    170
    ой-йой, я там бред написал...
    правильно так
    ADMIN_LIST_ADMINS = 1
    ADMIN_ADD_ADMINS = 10
    ADMIN_LIST_SERVERS = 10000

    узнать
    PHP:
    new iFlags GetUserFlagBits(client);
     
    R1KO нравится это.
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.001
    Симпатии:
    2.993
    Немного не то =)
     
    pokypka20 нравится это.