Здравствуйте. У меня на боте реализована система доступа к команде с помощью цикла, я уже реализовал добавление в админке IPS, мне нужно сделать функцию, которая определяет к каким командам выставлен доступ.
Начнем с C++, немного расскажу как оно работает там.
Здравствуйте. У меня на боте реализована система доступа к команде с помощью цикла, я уже реализовал добавление в админке IPS, мне нужно сделать функцию, которая определяет к каким командам выставлен доступ.
Начнем с C++, немного расскажу как оно работает там.
Каждая переменная с командой имеет свой ID: http://prntscr.com/nupb8s
Функция проверки доступа к команде:
bool CMDCheck (uint32_t cmd, uint32_t acc) { uint32_t Mask = 1; if (cmd != 0) for (unsigned int k=1;k<=cmd;k++) Mask = Mask * 2; if (acc & Mask) return true; else return false; }Я вывел данные чтобы посмотреть что приходит в них: http://prntscr.com/nupbqo http://prntscr.com/nupbv3
CMD - ID команды.
ACC - доступ админа выставленный в базе данных.
MASK - это ID умноженный на 2.
----------------------------------
Мне нужно вычислить из ACC к каким именно командам есть доступ.
Т.е что-то вроде такого мне нужно:
foreach ( $this->commands() as $key => $value ) { if ($key == 128) { $test[] = $value; } }Где 128 это ACC, здесь оно работает так как выбрана одна команда, если несколько, например 1 и 128 = 129
foreach ( $this->commands() as $key => $value ) { if ($key == 129) { $test[] = $value; } }так уже не определяет к какой команде есть доступ, я так понимаю здесь нужен еще цикл, верно?