Ответ прост, воспользоваться функцией is_user_admin. Или функцией get_user_flags, для получения флага игрока.
Инфо из amxmisc.inc:
stock is_user_admin(id)
{
new __flags=get_user_flags(id);
return (__flags>0 && !(__flags&ADMIN_USER));
}
Синтаксис:
is_user_admin ( id )
- id - id проверяемого игрока.
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "Open help MODT window"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init ( )
{
register_plugin ( PLUGIN, VERSION, AUTHOR )
register_clcmd("say /admincmd","admin_cmd")
}
public admin_cmd(id){
if(is_user_admin(id)){ //Если админ то выполняем код ниже
new health[32],name[32]
set_user_health(id, (get_user_health(id)+100))
health[id] = get_user_health(id)
get_user_name(id,name,31)
set_hudmessage(0, 255, 0, 0.05, 0.50, 0, 6.0, 12.0)
show_hudmessage(id, "Admin %s have %d hp",name,health[id])
}else{ // Если это простой игрок, то выполняем этот код:
set_hudmessage(255, 0, 0, 0.05, 0.50, 0, 6.0, 12.0)
show_hudmessage(id, "Xa xa xa, Tbl He agMuH")
}
}
Описание:
Поставим перед собой цель, разрешить какую то команду администратору и сделать так что бы простые игроки не смогли ей воспользоваться.
Регистрировать команды, добавлять жизней и выводить HuD сообщение мы уже умеем. По этому эту часть кода пояснять не буду.
И так, в нашей функции которую вызывает админская команда мы сразу же ставим условие:
Если юзер админ, то выполняем часть кода, если нет то выполняем вторую часть кода ( после else)
Теперь вы знаете, как ограничить использование команд.
Если же вы хотите ограничить доступ некоторым админам, или дать возможность использоваться команду ( часть кода) только админу с определенным флагом, то вам в этом поможет функция get_user_flag
Так же, можно при регистрации команды указать с каким флагом доступа, можно использовать данную функцию. Тогда там используем cmd_access.
Все зависит от того, что за функция и какой доступ нужен.
Может быть так:
Функция должна быть доступна для всех, но для админа она чуть чуть иная ( как у нас в примере), а может быть такая команда, которая нужна только админу, например - смена карты.Вариантов много и решений тоже :)