Найти функцию для смены клан тега и проверка иммунитета.

oleg_nelasy

Участник
Сообщения
664
Реакции
46
Дабы не плодить много тем задам 2 маленьких вопроса.

Нужна функция на подобии SetClientInfo но для смены клан тега игроку на указанный.
Также нужна функция возвращающая значение иммунитета админа. И сразу вопрос если игрок не админ вернет 0 или будет ошибка?
 

Fanyatsu

Шизофреник со стажем
Сообщения
1,030
Реакции
341
Нужна функция на подобии SetClientInfo но для смены клан тега игроку на указанный.
CS_SetClientClanTag

Также нужна функция возвращающая значение иммунитета админа.
GetAdminImmunityLevel

И сразу вопрос если игрок не админ вернет 0 или будет ошибка?
Не знаю, делай проверку сначала на наличие админки, а потом ищи его иммунитет, если он админ
Сообщения автоматически склеены:

Найти ID админа
AdminId GetUserAdmin(int client)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Сначала получаешь AdminId через GetUserAdmin(int client), если не админ, то вернёт INVALID_ADMIN_ID.
Потом получаешь уровень иммунитета в int с помощью GetAdminImmunityLevel(AdminId id), используя полученный AdminId.
А какие именно права у игрока можно узнать с помощью GetUserFlagBits(int client) в виде битовой строки (это int).

Вот список флагов:
C-подобный:
/**
 * @section Bitwise values definitions for admin flags.
 */
#define ADMFLAG_RESERVATION         (1<<0)      /**< Convenience macro for Admin_Reservation as a FlagBit */
#define ADMFLAG_GENERIC             (1<<1)      /**< Convenience macro for Admin_Generic as a FlagBit */
#define ADMFLAG_KICK                (1<<2)      /**< Convenience macro for Admin_Kick as a FlagBit */
#define ADMFLAG_BAN                 (1<<3)      /**< Convenience macro for Admin_Ban as a FlagBit */
#define ADMFLAG_UNBAN               (1<<4)      /**< Convenience macro for Admin_Unban as a FlagBit */
#define ADMFLAG_SLAY                (1<<5)      /**< Convenience macro for Admin_Slay as a FlagBit */
#define ADMFLAG_CHANGEMAP           (1<<6)      /**< Convenience macro for Admin_Changemap as a FlagBit */
#define ADMFLAG_CONVARS             (1<<7)      /**< Convenience macro for Admin_Convars as a FlagBit */
#define ADMFLAG_CONFIG              (1<<8)      /**< Convenience macro for Admin_Config as a FlagBit */
#define ADMFLAG_CHAT                (1<<9)      /**< Convenience macro for Admin_Chat as a FlagBit */
#define ADMFLAG_VOTE                (1<<10)     /**< Convenience macro for Admin_Vote as a FlagBit */
#define ADMFLAG_PASSWORD            (1<<11)     /**< Convenience macro for Admin_Password as a FlagBit */
#define ADMFLAG_RCON                (1<<12)     /**< Convenience macro for Admin_RCON as a FlagBit */
#define ADMFLAG_CHEATS              (1<<13)     /**< Convenience macro for Admin_Cheats as a FlagBit */
#define ADMFLAG_ROOT                (1<<14)     /**< Convenience macro for Admin_Root as a FlagBit */
#define ADMFLAG_CUSTOM1             (1<<15)     /**< Convenience macro for Admin_Custom1 as a FlagBit */
#define ADMFLAG_CUSTOM2             (1<<16)     /**< Convenience macro for Admin_Custom2 as a FlagBit */
#define ADMFLAG_CUSTOM3             (1<<17)     /**< Convenience macro for Admin_Custom3 as a FlagBit */
#define ADMFLAG_CUSTOM4             (1<<18)     /**< Convenience macro for Admin_Custom4 as a FlagBit */
#define ADMFLAG_CUSTOM5             (1<<19)     /**< Convenience macro for Admin_Custom5 as a FlagBit */
#define ADMFLAG_CUSTOM6             (1<<20)     /**< Convenience macro for Admin_Custom6 as a FlagBit */
Наличие флага проверяется так: if(flags & ADMFLAG_GENERIC), где flags - указанная выше битовая строка, а нужный флаг подставляешь из списка.
Можно сделать проверку наличия одного флага из списка с помощью объединения флагов побитовым ИЛИ: if(flags & (ADMFLAG_KICK|ADMFLAG_SLAY))
 
Сверху Снизу