Pawn.CMD flags


Započeo aaaaaaaaaaaaaa23, Februar 22, 2019, 22:44:48 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Pawn.CMD flags
Dio skripte:
public OnPlayerCommandReceived(playerid, cmd[], params[], flags) 
{ 
    if (!(flags & PlayerInfo[playerid][pAdmin])) 
    { 
        printf("Ne možeÅ¡ koristiti ovu komandu!");
        return 0; 
    } 

    return 1; 
}


Bezvezna komanda na kojoj testiram:

flags:time(CMD_ADMIN);
COMMAND:time(playerid, params[])
{
	new hour, minute, second, name[MAX_PLAYER_NAME], string[256 + MAX_PLAYER_NAME];
	gettime(hour, minute, second);
	GetPlayerName(playerid, name, sizeof(name));
	format(string, sizeof(string), ""INFO"%s trenutno RL vrijeme je: %d:%d:%d", name, hour, minute, second);
	SendClientMessage(playerid, -1, string);
	return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):/
Slika/video ingame problema(obavezno ako je ingame problem): /

Kako da koristim Pawn.CMD flagove umjesto da u komandi provjeravam da li je igrač admin?

Početnik sam i ovo me zbunjuje.

Evo neki dijelovi skripte:


Kako se pravi? Zamolio bih moderatora, ukoliko sam fulio prefix da mi progleda kroz prste ovaj put. Hitno mi je ovo  :)
Poslednja Izmena: Februar 25, 2019, 17:50:05 POSLE PODNE od Bašovski

WTF je ova provera za admina bez uvrede ali ako procitas sta tu pise znacilo bi da ako igrac nije admin da u server logu ispisuje ne mozete koristiti ovu komandu  ???

Znam to, nisam ni pokusao praviti jer sam skroz zbunjen

Ako mi može neko taj 1 flag napravit samo za admina bio bih mu zahvalan

Guglaj malo na SAMP forumu imas sve

#include <Pawn.CMD> 

enum (<<= 1) 
{ 
    CMD_ADMIN = 1, // 0b00000000000000000000000000000001 
    CMD_MODER,     // 0b00000000000000000000000000000010 
    CMD_JR_MODER   // 0b00000000000000000000000000000100 
}; 

new pPermissions[MAX_PLAYERS]; 

flags:ban(CMD_ADMIN); 
cmd:ban(playerid, params[]) 
{ 
    // code here 
    return 1; 
} 
alias:ban("block"); 

flags:kick(CMD_ADMIN | CMD_MODER); 
cmd:kick(playerid, params[]) 
{ 
    // code here 
    return 1; 
} 

flags:jail(CMD_ADMIN | CMD_MODER | CMD_JR_MODER); 
cmd:jail(playerid, params[]) 
{ 
    // code here 
    return 1; 
} 

public OnPlayerCommandReceived(playerid, cmd[], params[], flags) 
{ 
    if (!(flags & pPermissions[playerid])) 
    { 
        printf("player %d doesn’t have access to command '%s'", playerid, cmd); 

        return 0; 
    } 

    return 1; 
} 

public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags) 
{ 
    if(result == -1) 
    { 
        SendClientMessage(playerid, 0xFFFFFFFF, "SERVER: Unknown command."); 

        return 0; 
    } 

    return 1; 
} 

public PC_OnInit() 
{ 
    const testAdminPlayerId = 1, testModerPlayerId = 2, testJrModerPlayerId = 3, testSimplePlayerId = 4; 

    pPermissions[testAdminPlayerId] = CMD_ADMIN | CMD_MODER | CMD_JR_MODER; 
    pPermissions[testModerPlayerId] = CMD_MODER | CMD_JR_MODER; 
    pPermissions[testJrModerPlayerId] = CMD_JR_MODER; 
    pPermissions[testSimplePlayerId] = 0; 

    PC_EmulateCommand(testAdminPlayerId, "/ban 4 some reason"); // ok 
    PC_EmulateCommand(testModerPlayerId, "/ban 8 some reason"); // not ok, moder doesn’t have access to 'ban' 
    PC_EmulateCommand(testModerPlayerId, "/kick 15 some reason"); // ok 
    PC_EmulateCommand(testModerPlayerId, "/jail 16 some reason"); // ok, moder can use commands of junior moderator 
    PC_EmulateCommand(testJrModerPlayerId, "/jail 23 some reason"); // ok 
    PC_EmulateCommand(testSimplePlayerId, "/ban 42 some reason"); // not ok 
} 
HARD WORK BEATS TALENT

znam to care, ali ne kontam taj kod

i kako da ga primjenim u svojoj skripti
Poslednja Izmena: Februar 22, 2019, 23:40:57 POSLE PODNE od v4yne1

Svi neki skripteri, a niko da konkretno pomogne.  :D

Napravio sam.   :)