←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

#define ADMINLEVEL ADMIN_LEVEL_C + inna flaga

  • +
  • -
Taurinn - zdjęcie Taurinn 13.01.2015

Cześć mam coś takiego "#define ADMINLEVEL ADMIN_LEVEL_C" i chciał bym żeby dodać jeszcze flagę ADMIN_LEVEL_E jak to zrobić?
Odpowiedz

  • +
  • -
IntelCom - zdjęcie IntelCom 13.01.2015

Pod spodem dodaj drugą stałą define ADMIN_LEVEL_E.
Odpowiedz

  • +
  • -
XXL - zdjęcie XXL 13.01.2015

#define ADMINLEVEL ADMIN_LEVEL_C
#define ADMINLEVEL ADMIN_LEVEL_E

Lub

#define ADMINLEVEL ADMIN_LEVEL_C && ADMIN_LEVEL_E

Użytkownik XXL edytował ten post 13.01.2015 16:42
Odpowiedz

  • +
  • -
Taurinn - zdjęcie Taurinn 13.01.2015

dzięki wielkie
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 13.01.2015


#define ADMINLEVEL ADMIN_LEVEL_C
#define ADMINLEVEL ADMIN_LEVEL_E

Nie można zdefiniować drugi raz tego samego. Nawet jak kompilator przepuści, w co wątpię, to będzie źle działało.

 

Jeżeli chcesz aby ADMINLEVEL posiadało wartość obu tych flag:

#define ADMINLEVEL (ADMIN_LEVEL_C & ADMIN_LEVEL_E)

natomiast jeśli ma posiadać dowolną z tych flag:

#define ADMINLEVEL (ADMIN_LEVEL_C | ADMIN_LEVEL_E)

Różnica jest taka, że jak będzie sprawdzał czy ktoś ma level ADMINLEVEL :

if(get_user_flags(id) & ADMINLEVEL)

to pierwszym przypadku ze znaczkiem & sprawdzi czy gracz ma obie te flagi, a w drugim ze znaczkiem | sprawdzi czy ma dowolną z tych flag(przynajmniej jedną)

Odpowiedz