Pawn.CMD flags

Započeo VAYNE, 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: [pawn]public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
    if (!(flags & PlayerInfo[playerid][pAdmin]))
    {
        printf("Ne možeÅ¡ koristiti ovu komandu!");
        return 0;
    }

    return 1;
} [/pawn]

Bezvezna komanda na kojoj testiram:

[pawn]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;
}[/pawn]
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

[pawn]#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
}  [/pawn]
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.   :)