PDA

Просмотр полной версии : [Вопрос] Проверка на Лицензию



De_Lay
04.06.2016, 21:57
Вот как я хотел сделать!

enum pInfo
{
p_License
}


//OnPlayerConnect
p_Info[playerid][p_License] = 0;

//Проверка
if((p_Info[playerid][p_License] & (1 << 0)) == 0)
return SCM(playerid, White, !"У тебя нет лицензии на ношение оружия.");

if((p_Info[playerid][p_License] & (1 << 1)) == 0)
return SCM(playerid, White, !"У тебя нет лицензии на вождение.");

//Выдаем одну лицензию
p_Info[playerid][p_License] ^= (1<<0);

//Выдаем вторую лицензию
p_Info[playerid][p_License] ^= (1<<1);

//Выдаем все лицензии
p_Info[playerid][p_License] ^= ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4));

По идеи одно должно выглядеть так 00000 нет лицензий, 11111 есть лицензии и 00001 есть только одно лицензия.
Но оно выглядит так 17.

Что я не правильно сделал?

Sp1ke
04.06.2016, 23:40
http://pro-pawn.ru/showthread.php?13834-licenses-inc-%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D0%B9-%D0%B2-%D0%B1%D0%B8%D1%82%D0%BE%D0%B2%D0%BE%D0%B9-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8

De_Lay
05.06.2016, 01:09
Не могли бы посмотреть, что не так в моем коде?

De_Lay
05.06.2016, 13:35
up.

De_Lay
05.06.2016, 17:05
Ждем! :music:

Desulaid
05.06.2016, 20:47
А как вы проверили, что 37? Может надо использовать спецификатор 0b?

De_Lay
05.06.2016, 21:30
Может надо использовать спецификатор 0b?
Тоже пробовал!


А как вы проверили, что 37?

printf("License: %d", p_Info[playerid][p_License]);
И в БД также записывает.

Или может у меня неправильное понятие о выводе?

De_Lay
06.06.2016, 00:53
(up)

De_Lay
08.06.2016, 00:25
(up)