Главная » Статьи » Скриптинг/ Статьи/ Мануалы |
[TUT] Проверка флагов пользователя
Code flag = буква в users.ini соответствующая этому значению Quote #define ADMIN_ALL 0 /* everyone ( Любой игрок ) */ #define ADMIN_IMMUNITY (1<<0) /* flag "a" */ #define ADMIN_RESERVATION (1<<1) /* flag "b" */ #define ADMIN_KICK (1<<2) /* flag "c" */ #define ADMIN_BAN (1<<3) /* flag "d" */ #define ADMIN_SLAY (1<<4) /* flag "e" */ #define ADMIN_MAP (1<<5) /* flag "f" */ #define ADMIN_CVAR (1<<6) /* flag "g" */ #define ADMIN_CFG (1<<7) /* flag "h" */ #define ADMIN_CHAT (1<<8) /* flag "i" */ #define ADMIN_VOTE (1<<9) /* flag "j" */ #define ADMIN_PASSWORD (1<<10) /* flag "k" */ #define ADMIN_RCON (1<<11) /* flag "l" */ #define ADMIN_LEVEL_A (1<<12) /* flag "m" */ #define ADMIN_LEVEL_B (1<<13) /* flag "n" */ #define ADMIN_LEVEL_C (1<<14) /* flag "o" */ #define ADMIN_LEVEL_D (1<<15) /* flag "p" */ #define ADMIN_LEVEL_E (1<<16) /* flag "q" */ #define ADMIN_LEVEL_F (1<<17) /* flag "r" */ #define ADMIN_LEVEL_G (1<<18) /* flag "s" */ #define ADMIN_LEVEL_H (1<<19) /* flag "t" */ #define ADMIN_MENU (1<<20) /* flag "u" */ #define ADMIN_ADMIN (1<<24) /* flag "y" */ #define ADMIN_USER (1<<25) /* flag "z" */ Теперь нам потребуется сделать проверку. покажу на нескольких примерах. Немного о значениях: Code "&" - значит у этого игрока в флагах присутствует это значение "==" - это точные флаги игрока. Примеры: Code if(get_user_flags(id) & ADMIN_BAN) У игрока в users.ini есть флаг "d" Code if(get_user_flags(id) == ADMIN_LEVEL_H) У игрока во флагах есть ТОЛЬКО флаг "t" Т.Е. на игрока с флагами "at" - эта проверка действовать не будет. Теперь примеры использования: Code public client_putinserver(id) { if(get_user_flags(id) & ADMIN_LEVEL_H) { new name[32] get_user_name(id, name, 31) client_cmd(0, "spk sound/%s", vip_connect) set_hudmessage(255, 255, 0, -0.05, -0.45, 1, 0.0, 5.0, 1.0, 1.0, -1); show_hudmessage(0, "VIP %s Зашел на сервер!", name) } } В этом случае проверка идет, когда подключается игрок, и если в его аккаунте есть флаг "t", то всем игрокам воспроизводится звук, и HUD сообщение. Code public fwHamPlayerSpawnPost(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED; if(get_user_flags(id) == ADMIN_LEVEL_H && ADMIN_BAN) { cs_set_user_armor(id, get_pcvar_num(pcvar[armor]), CS_ARMOR_VESTHELM) } return PLUGIN_HANDLED } В этом случае проверка идет, когда игрок оживает, и если его аккаунт состоит ТОЛЬКО из флагов "dt", то ему выдается бронежилет! | |
Просмотров: 1835 | Рейтинг: 5.0/1 |
Всего комментариев: 0 | |