Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

Flagi

flagi przydatne

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
9 odpowiedzi w tym temacie

#1 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6033
Godlike

  • Postów:10832
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 18.09.2011 11:34

*
Popularny

Flagi dostępne standardowo :
ADMIN_ALL - wszystkie
ADMIN_IMMUNITY - flaga "a"
ADMIN_RESERVATION - flaga "b"
ADMIN_KICK - flaga "c"
ADMIN_BAN - flaga "d"
ADMIN_SLAY - flaga "e"
ADMIN_MAP - flaga "f"
ADMIN_CVAR - flaga "g"
ADMIN_CFG - flaga "h"
ADMIN_CHAT - flaga "i" *
ADMIN_VOTE - flaga "j"
ADMIN_PASSWORD - flaga "k"
ADMIN_RCON - flaga "l"
ADMIN_LEVEL_A - flaga "m"
ADMIN_LEVEL_B - flaga "n"
ADMIN_LEVEL_C - flaga "o"
ADMIN_LEVEL_D - flaga "p"
ADMIN_LEVEL_E - flaga "q"
ADMIN_LEVEL_F - flaga "r"
ADMIN_LEVEL_G - flaga "s"
ADMIN_LEVEL_H - flaga "t"
ADMIN_MENU - flaga "u"
ADMIN_ADMIN - flaga "y"
ADMIN_USER - flaga "z"
Flagi dodatkowe :
ADMIN_FLAG_V - flaga "v"
ADMIN_FLAG_W - flaga "w"
ADMIN_FLAG_X - flaga "x"

żeby ich używać trzeba dodać do pluginu
#define ADMIN_FLAG_V (1<<21)
#define ADMIN_FLAG_W (1<<22)
#define ADMIN_FLAG_X (1<<23)

sprawdzenie czy gracz ma flage
if(get_user_flags(id) & ADMIN_LEVEL_A){
	//gracz ma flage m
}

sprawdzanie czy gracz nie ma flagi
if( !(get_user_flags(id) & ADMIN_LEVEL_A) ){
	//gracz nie ma flagi m
}

sprawdzanie czy gracz ma kilka flag
public has_flags(id,string[])
{
	new ret=1
	new byte
	
	new len = strlen(string)
	new p_flag = get_user_flags(id)
	
	for(new i=0;i<=len;i++)
	{
		if(string[i]>='a' && string[i]<='z') byte = (1<<(string[i]-'a'))
		else if(string[i]>='A' && string[i]<='Z') byte = (1<<(string[i]-'A'))
		else if(string[i]==',' && ret==1) return 1
		else if(string[i]==',') ret=1
		if(byte!=0 && !(p_flag & byte)) ret=0

		byte=0
	}
	
	return ret
}

Przyklady:
Jak ma dzialac na - a lub b lub c - to dajemy
has_flag(id,"a,b,c")
Jak ma dzialac tylko gdy user ma flage - a i b i c - to dajemy
has_flag(id,"abc")
Jak ma dzialac w przypadkach - a i b lub a i c lub b i c - to dajemy
has_flag(id,"ab,ac,bc")

Gracz musi mieć wszystkie 3 flagi
new flaga = (ADMIN_LEVEL_A | ADMIN_LEVEL_B | ADMIN_LEVEL_C)
if((get_user_flags(id) & flaga) == flaga) {
	// KOD
}
lub inaczej
new sprawdz = get_user_flags(id)
if(sprawdz & ADMIN_LEVEL_A && sprawdz & ADMIN_LEVEL_B && sprawdz & ADMIN_LEVEL_C) {
	// KOD
}

Inne przykłady:
if (get_user_flags(id) & DEFINICJA_FLAGI) {
	//osoba ma jakas tam flage
} else {
	//osoba nie ma jakies tam flagi
}

public client_authorized(id)
{
	if( get_user_flags(id) & ADMIN_BAN)
	client_print(0,print_chat,"Admin wchodzi na server")
}

  • +
  • -
  • 54

#2 Drzanas

    Godlike

  • Power User

Reputacja: 328
Wszechpomocny

  • Postów:1283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 18.09.2011 12:06

Klawy poradnik.
Można przynajmniej cosik zrozumieć.
  • +
  • -
  • 0

graphic.png


#3 Vertricus

    Godlike

  • Przyjaciel

Reputacja: 426
Wszechobecny

  • Postów:1549
  • Lokalizacja:.
Offline

Napisano 18.09.2011 12:52

public client_putinserver(id)
{
if( get_user_flags(id) & ADMIN_BAN)
client_print(0,print_chat,"Admin wchodzi na server")
}


putinserver nie zawsze wykonuje się przed client_authorized więc nie zawsze będzie mówić nam prawdę, a dokładniej może nie powiedzieć że wszedł admin ;) mimo iż sekunde poźniej już mieć go będzie
  • +
  • -
  • 1

#4 BaQStiC

    Supra Team

  • Power User

Reputacja: 108
Zaawansowany

  • Postów:628
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Ck / Wroc
Offline

Napisano 18.09.2011 12:53

Byl juz taki z flagami ale nie tak rtozwiniety. Thx na pewno pomocny.

Ps. Cos Ci obiecali ze taki poradniki robisz? :)
  • +
  • -
  • 0

#5 zryty

    Życzliwy

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:24
  • Imię:Krzysiek
  • Lokalizacja:Polska
Offline

Napisano 08.10.2011 08:33

putinserver nie zawsze wykonuje się przed client_authorized

Dlatego używa się authorized do akcji związanych z flagami. Po za tym admini zazwyczaj są anonimowi, bo lubią sobie pobanować :P

Tutek fajny, krótko i zwięźle :) dowiedziałem się też o fagach V,X,W ^^
  • +
  • -
  • 0

#6 Redux

    Zaawansowany

  • Zbanowany

Reputacja: 5
Nowy

  • Postów:109
  • GG:
  • Steam:steam
  • Imię:Redux
  • Lokalizacja:Nie wiem.
Offline

Napisano 01.07.2012 19:39

Którego sposobu użyć w przypadku "#define"? Np. #define DOSTEP Flagi?

#7 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6033
Godlike

  • Postów:10832
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 01.07.2012 20:49

DOSTEP w sensie jakaś flaga
którego chcesz ( ofc oprócz has_flag )
  • +
  • -
  • 0

#8 Redux

    Zaawansowany

  • Zbanowany

Reputacja: 5
Nowy

  • Postów:109
  • GG:
  • Steam:steam
  • Imię:Redux
  • Lokalizacja:Nie wiem.
Offline

Napisano 01.07.2012 22:30

DOSTEP w sensie jakaś flaga
którego chcesz ( ofc oprócz has_flag )

Niee, DOSTEP to po prostu przykładowana nazwa define'a ;P W miejsce "Flagi" powinny znajdować się właśnie flagi, które bym chciał.
#define DOSTEP ADMIN_CFG | ADMIN_IMMUNE | ADMIN_RCON
Tak, czy inaczej?

Użytkownik Redux edytował ten post 01.07.2012 22:31


#9 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 01.07.2012 22:30

Gracz musi mieć wszystkie 3 flagi

new flaga = (ADMIN_LEVEL_A | ADMIN_LEVEL_B | ADMIN_LEVEL_C)
if((get_user_flags(id) & flaga) == flaga) {
    // KOD
}
lub inaczej
new sprawdz = get_user_flags(id)
if(sprawdz & ADMIN_LEVEL_A && sprawdz & ADMIN_LEVEL_B && sprawdz & ADMIN_LEVEL_C) {
    // KOD
}

Ogólnie, chyba wychodzi na to, że te dwa warunki wyżej są inne. Pierwszy warunek jest spełniony, gdy gracz posiada dokładnie te 3 flagi, a w drugim, może mieć tych flag więcej, niż podane 3.
  • +
  • -
  • 0
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#10 Pan PrO

    Wszechpomocny

  • Użytkownik

Reputacja: 98
Zaawansowany

  • Postów:388
  • Lokalizacja:PC
Offline

Napisano 06.01.2013 16:23

Czy read_flags działa na flagi v, w, x ??
(07.01.2013 02:59):
Tak

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: flagi, przydatne

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

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