Главная » Статьи » Скриптинг/ Статьи/ Мануалы

[TUT] Проверка флагов пользователя
Вот собственно эти флаги. © - amxconst.inc

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", то ему выдается бронежилет!
Категория: Скриптинг/ Статьи/ Мануалы | Добавил: Lacosta (02.06.2012) | Автор: Doomsday (aka Weltgericht) W
Просмотров: 1767 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вверх