Započeo dlitl_yozy
•16. Jul 2018.Pomoc oko Pawn.CMD
930
pregleda
5
postova
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
27
Postovi:
9
Teme:
Pridružio se:Feb. 2018
16. Jul 2018.
Problem(error/warning): Ulg.. radi sve dok ovo ne postavim da mogu iskoristavat flags i tako to hah ak me kontate 🙂 inc ovo se nalazi OnPlayerCommandReceived
Dio skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Errori: https://pastebin.com/CZxLpu6X
Dio skripte:
if ((flags & CMD_ADMIN) && !pAdmin)
return SendErrorMessage(playerid, "Niste ovlasteni!");
//
if ((flags & CMD_GM) && !pGM)
return SendErrorMessage(playerid, "Niste ovlasteni!");
//
if ((flags & CMD_ADMINGM) && !pAdmin && !pGM)
return SendErrorMessage(playerid, "Niste ovlasteni!"); Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Errori: https://pastebin.com/CZxLpu6X
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
2,562
Postovi:
56
Teme:
Pridružio se:Apr. 2016
16. Jul 2018.
public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
///
if(flags)
{
if(flags > varijabla za admin level)
{
SendClientMessage(playerid, -1, "komanda ne postoji");
return 0;
}
if(!varijablazaduznost)
{
SendClientMessage(playerid, 0xFFFFFFFF, "niste na admin duznosti");
return 0;
}
}
return 1;
}public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
{
if(result == -1)
{
SendClientMessage(playerid, -1, "komanda ne postoji");
return 0;
}
return 1;
}medju enumatorima kreiras jos jedan enumator ovog tipa
enum
{
CMD_USER,
CMD_HELPER,
CMD_MODERATOR,
CMD_SUPER_MODERATOR,
CMD_GAME_OPERATOR,
CMD_ADMIN
}i na kraju moda pises ovako
flags:imekomande(CMD_HELPER);nisam ti ja roki najbolji za ova objasnjavanja, bolje procitaj dokumentaciju
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
27
Postovi:
9
Teme:
Pridružio se:Feb. 2018
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
2,562
Postovi:
56
Teme:
Pridružio se:Apr. 2016
16. Jul 2018.
Quote
Using flags
You can set flags for a command.
#include
enum (<<= 1)
{
CMD_ADMIN = 1, // 0b00000000000000000000000000000001
CMD_MODER, // 0b00000000000000000000000000000010
CMD_JR_MODER // 0b00000000000000000000000000000100
};
new pPermissions;
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))
{
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 = CMD_ADMIN | CMD_MODER | CMD_JR_MODER;
pPermissions = CMD_MODER | CMD_JR_MODER;
pPermissions = CMD_JR_MODER;
pPermissions = 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
}
You can set flags for a command.
#include
enum (<<= 1)
{
CMD_ADMIN = 1, // 0b00000000000000000000000000000001
CMD_MODER, // 0b00000000000000000000000000000010
CMD_JR_MODER // 0b00000000000000000000000000000100
};
new pPermissions;
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))
{
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 = CMD_ADMIN | CMD_MODER | CMD_JR_MODER;
pPermissions = CMD_MODER | CMD_JR_MODER;
pPermissions = CMD_JR_MODER;
pPermissions = 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
}
evo procitaj i ovo
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
27
Postovi:
9
Teme:
Pridružio se:Feb. 2018
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava