Согласно из Википедии:
В программировании понятие флаг относится к одному или нескольким битам памяти, используемым для хранения двоичной комбинации или кода, который характеризует состояние некоторого объекта. Флаги обычно входят в определённые структуры данных, такие как записи баз данных, и их значения, как правило, связаны со значением структур данных, частью которых они являются. Во многих случаях двоичное значение флага представляет собой кодированное представление одного из нескольких возможных состояний или статусов объекта. В других случаях двоичные значения флагов могут представлять собой один или несколько атрибутов в битовом поле, зачастую связанных с возможностями или доступом, например, «может быть записано в», или «может быть удалено». Однако флагам могут быть назначены и другие значения. Один из вариантов использования флагов состоит в маркировке для назначения структуры данных к последующей обработке.
Исходя из вашего вопроса, судя по синтаксису вы интересуетесь реализацией флагов в Pawn.CMD.
Ваш код должен иметь примерно такой вид:
PHP код:
#include <Pawn.CMD>
enum(<<=1)
{
ADMIN_LEVEL_1 = 1,
ADMIN_LEVEL_2,
ADMIN_LEVEL_3
};
flags:command_1(ADMIN_LEVEL_1);
cmd:command_1(playerid, params[])
{
// code here
return 1;
}
flags:command_2(ADMIN_LEVEL_2);
cmd:command_2(playerid, params[])
{
// code here
return 1;
}
flags:command_3(ADMIN_LEVEL_3);
cmd:command_3(playerid, params[])
{
// code here
return 1;
}
public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
if ((flags & ADMIN_LEVEL_1) && AdminLevel[playerid] < 1)
return 0;
if ((flags & ADMIN_LEVEL_2) && AdminLevel[playerid] < 2)
return 0;
if ((flags & ADMIN_LEVEL_3) && AdminLevel[playerid] < 3)
return 0;
return 1;
}
public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
{
if(result == -1)
{
if (flags & ADMIN_LEVEL_1)
SendClientMessage(playerid, -1, "Your error text");
if (flags & ADMIN_LEVEL_2)
SendClientMessage(playerid, -1, "Your error text");
if (flags & ADMIN_LEVEL_3)
SendClientMessage(playerid, -1, "Your error text");
return 0;
}
return 1;
}