[pawn]
- new user_flag;
Ей можно присвоить как один, так и несколько флагов, а также получить их.
Флагов всего может быть 32. Флаги представляются как битовые сдвиги влево, где число 1, а количество битов, на которое сдвинуть - буква в английском алфавите минус 1. Например, для флага a макрос будет выглядеть следующим образом:
[pawn]
- #define FLAG_A (1<<0)
А для флага z так:
[pawn]
- #define FLAG_Z (1<<25)
Допустим, у нас есть файл VIP'ов. В нем строки, а строки состоят из аргументов. Мы всё это дело парсим, получаем строку:
[pawn]
- new szArg[16];
- // ваш код для получения из файла
- parse(buffer, ваши аргументы, szArg, 15);
- remove_quotes(szArg); // удаляем кавычки
Итак, в szArg хранится строка ваших флагов. Теперь нам необходимо присвоить переменной user_flag данные флаги. Для этого существует функция Вы должны зарегистрироваться, чтобы видеть ссылки.
[pawn]
- user_flag = read_flags(szArg);
Всё, теперь нашей переменной присвоены флаги, хранящиеся в той строке.
Чтобы проверить переменную на какой-либо флаг, используется конструкция:
[pawn]
- переменная & флаг
На примере:
[pawn]
- if(user_flag & FLAG_A)
С помощью флагов удобно делать плагины, организующие получения привилегий из файла.