Przydatne do Scriptingu: Flagi

Flagi dostępne standardowo :
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ADMIN_ALL - którakolwiek
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"
ADMIN_ALL - którakolwiek 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"
ADMIN_ALL - którakolwiek
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 :
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ADMIN_FLAG_V - flaga "v"
ADMIN_FLAG_W - flaga "w"
ADMIN_FLAG_X - flaga "x"
ADMIN_FLAG_V - flaga "v" ADMIN_FLAG_W - flaga "w" ADMIN_FLAG_X - flaga "x"
ADMIN_FLAG_V - flaga "v"
ADMIN_FLAG_W - flaga "w"
ADMIN_FLAG_X - flaga "x"
żeby ich używać trzeba dodać do pluginu
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#define ADMIN_FLAG_V (1<<21)
#define ADMIN_FLAG_W (1<<22)
#define ADMIN_FLAG_X (1<<23)
#define ADMIN_FLAG_V (1<<21) #define ADMIN_FLAG_W (1<<22) #define ADMIN_FLAG_X (1<<23)
#define ADMIN_FLAG_V (1<<21)
#define ADMIN_FLAG_W (1<<22)
#define ADMIN_FLAG_X (1<<23)
sprawdzenie czy gracz ma flage
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if(get_user_flags(id) & ADMIN_LEVEL_A){
//gracz ma flage m
}
if(get_user_flags(id) & ADMIN_LEVEL_A){ //gracz ma flage m }
if(get_user_flags(id) & ADMIN_LEVEL_A){
//gracz ma flage m
}
sprawdzanie czy gracz nie ma flagi
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if( !(get_user_flags(id) & ADMIN_LEVEL_A) ){
//gracz nie ma flagi m
}
if( !(get_user_flags(id) & ADMIN_LEVEL_A) ){ //gracz nie ma flagi m }
if( !(get_user_flags(id) & ADMIN_LEVEL_A) ){
//gracz nie ma flagi m
}
sprawdzanie czy gracz ma kilku flag
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
}
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 }
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
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
has_flag(id,"a,b,c")
has_flag(id,"a,b,c")
has_flag(id,"a,b,c")
Jak ma dzialac tylko gdy user ma flage – a i b i c – to dajemy
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
has_flag(id,"abc")
has_flag(id,"abc")
has_flag(id,"abc")
Jak ma dzialac w przypadkach – a i b lub a i c lub b i c – to dajemy
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
has_flag(id,"ab,ac,bc")
has_flag(id,"ab,ac,bc")
has_flag(id,"ab,ac,bc") 
lub
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
new flaga = (ADMIN_LEVEL_A | ADMIN_LEVEL_B | ADMIN_LEVEL_C)
if((get_user_flags(id) & flaga) == flaga) {
// KOD
}
new flaga = (ADMIN_LEVEL_A | ADMIN_LEVEL_B | ADMIN_LEVEL_C) if((get_user_flags(id) & flaga) == flaga) { // KOD }
new flaga = (ADMIN_LEVEL_A | ADMIN_LEVEL_B | ADMIN_LEVEL_C)
if((get_user_flags(id) & flaga) == flaga) {
        // KOD
}
lub
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
new sprawdz = get_user_flags(id)
if(sprawdz & ADMIN_LEVEL_A || sprawdz & ADMIN_LEVEL_B || sprawdz & ADMIN_LEVEL_C) {
// KOD
}
new sprawdz = get_user_flags(id) if(sprawdz & ADMIN_LEVEL_A || sprawdz & ADMIN_LEVEL_B || sprawdz & ADMIN_LEVEL_C) { // KOD }
new sprawdz = get_user_flags(id)
if(sprawdz & ADMIN_LEVEL_A || sprawdz & ADMIN_LEVEL_B || sprawdz & ADMIN_LEVEL_C) {
        // KOD
}
Inne przykłady:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if (get_user_flags(id) & DEFINICJA_FLAGI) {
//osoba ma jakas tam flage
} else {
//osoba nie ma jakies tam flagi
}
if (get_user_flags(id) & DEFINICJA_FLAGI) { //osoba ma jakas tam flage } else { //osoba nie ma jakies tam flagi }
if (get_user_flags(id) & DEFINICJA_FLAGI) {
//osoba ma jakas tam flage
} else {
//osoba nie ma jakies tam flagi
}
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public client_putinserver(id)
{
if( get_user_flags(id) & ADMIN_BAN)
client_print(0,print_chat,"Admin wchodzi na server")
}
public client_putinserver(id) { if( get_user_flags(id) & ADMIN_BAN) client_print(0,print_chat,"Admin wchodzi na server") }
public client_putinserver(id)
{
        if( get_user_flags(id) & ADMIN_BAN)
                client_print(0,print_chat,"Admin wchodzi na server")
}

5 komentarzy o “Przydatne do Scriptingu: Flagi

  1. Świetny artykuł 🙂
    Jeszcze jakbyś mógł dodać wczytywanie vipów z innego pliku .ini
    np. vips.ini to będzie zarąbiscie 😛

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.