Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Funkcja dla flagi i gracza z danym ID


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 AztekHQS

    Banned

  • Zbanowany

Reputacja: 98
Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Napisano 31.12.2012 23:41

Witam,

Mam pewien problem, nie wiem czemu jak zrobię tak:
if(((!(get_user_flags(id) & 8)) || Prowadzacy != id)) return 1;

//jakis kod


To ta funkcja nie chce działać dla gracza z daną flagą oraz dla gracza z danym ID.
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#2 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 01.01.2013 02:50

Sprawdź:
if((get_user_flags(id) & 8 == 8) && Prowadzacy == id){
    //Kod
}
return 1;

  • +
  • -
  • 0

If you can dream it, you can do it.


#3 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 01.01.2013 02:52

Sprawdź:

if((get_user_flags(id) & 8 == 8) && Prowadzacy == id){
	//Kod
}
return 1;


Zamiast || daj && w if() ;]

@up poprawił się ;]
speedkill (01.01.2013 02:55):
Poprawiłem szybciej niż napisałeś ;)

Użytkownik d0n tHe Pr0oo edytował ten post 01.01.2013 02:52

  • +
  • -
  • 0

#4 AztekHQS

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 98
Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Napisano 01.01.2013 05:08

Czemu ADMIN_BAN == ADMIN_BAN ?

ID gracza (Prowadzący) to CT a z flagą ADMIN_BAN to TT, czyli nie będzie działać.
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#5 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 07.01.2013 06:53

Iloczyn bitowy jest wykonywany w pierwszej kolejności.
Dopiero potem dokonywane jest porównanie wartości.

Porównywanie iloczynu uprawnień gracza i sumy flag z potęgą dwójki faktycznie jest zbędne.
Warunek Prowadzacy == id warto podać na lewą stronę koniunkcji.
if(Prowadzacy == id && get_user_flags(id) & 8){
//Kod
}
return 1;


#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 10.01.2013 02:13

Zacznijmy od tego jaką flagą jest 8 ;) Jest to 4ty bit zaświecony, czyli flaga d.

Wszystkie z kodów zadziałają poprawnie, łącznie z Twoim (tylko dałeś w nim o jedną parę nawiasów za dużo, ale to nie ma znaczenia). W Twoim kodzie dobrze sobie jest rozbić to na 2 warunki:


if (!(get_user_flags(id) & ADMIN_BAN))
return 1;
if (Prowadzacy != id)
return 1;

Wtedy możesz lepiej kontrolować na którym warunku Ci się wysypuje. Myślę, że problem leżał w tym, iż nie do końca wiesz jaka flaga kryje się pod tą ósemką :)
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych