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 :)
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]
znam to care, ali ne kontam taj kod
i kako da ga primjenim u svojoj skripti
Svi neki skripteri, a niko da konkretno pomogne. :D
Napravio sam. :)