A sprawdź, czy zadziała:
(kupionehe &= ~(1<<id))
Czyli to, co sugeruje sebul.
Poza tym weź pod uwagę to, co się stanie, jeśli zmienne w
amxx będą 32 bitowe (czyli możesz wykorzystać bity od 0 do 31) i będziesz miał gracza z ID = 32
Lepiej zrobić jedną tablicę 33 elementową dla graczy, a odpowiednie "flagi" przypisywać dla konkretnych przedmiotów, czyli:
sklep[id] |= (1<<kupionehe)
oznacza, że ktoś kupił granat. Również dużo szybciej jest "wyzerować" flagi dla konkretnego gracza:
sklep[id] = 0
albo jeśli chcesz tylko kilka flag wyzerować:
sklep[id] &= ~(1<<kupionekroki) & ~(1<<kupionerender)
Tak samo zainicjować można konkretnymi flagami.
Oczywiście przy tym rozwiązaniu zmienne (lub stałe) kupione* muszą mieć wartości 1, 2, 3... do czego możesz wykorzystać enum
Jeszcze ciekawiej: przypisać im wartości: 1, 2, 4, 8, 16... i używać tak:
sklep[id] &= ~kupionekroki & ~kupionehe
Czyli dosłownie tak, jak flagi admina. I co ciekawe, można to "odpalić" pojedynczym enumem, co w zamierzchłych czasach opisywałem na forum:
http://amxx.pl/topic...um/#entry127116 możesz użyć zamiast mnożenia, przesunięcie bitowe
Ale to na to samo wyjdzie.