Pitanje za komande

Započeo Glozx
pre 8 sati
13
pregleda
3
postova
Glozx.skripter
5
Rookie
🔥2
pre 8 sati

CMD:kick(playerid, params[])

{

new id, string[256], razlog [64], pName[MAX_PLAYER_NAME], pKickName[MAX_PLAYER_NAME];

if(PlayerInfo[playerid][pAdmin] < 1) return SCM(playerid, -1, "Niste admin");

if(sscanf(params, "is", id, razlog)) return SCM(playerid, -1, "Komanda: /kick [id] [razlog]");

if(!IsPlayerConnected(id)) return SCM(playerid, -1, "Igrac nije na serveru!");

if(PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin]) return SCM(playerid, -1, "Ne mozete ADMINA veceg od sebe");

GPN(playerid, pName, sizeof(pName));

GPN(id, pKickName, sizeof(pKickName));

format(string, sizeof(string), "Igrac %s je kickovan od strane admina razlog: %s", pName, pKickName, razlog);

SCMTA(-1, string);

Kick(id);

return 1;

}

CMD:ban(playerid,params[])

{

new id, string[256], razlog [64], pName[MAX_PLAYER_NAME], pBanName[MAX_PLAYER_NAME];

if(PlayerInfo[playerid][pAdmin] < 1) return SCM(playerid, -1, "Niste admin");

if(sscanf(params, "is", id, razlog)) return SCM(playerid, -1, "Komanda: /ban [id] [razlog]");

if(!IsPlayerConnected(id)) return SCM(playerid, -1, "Igrac nije na serveru!");

if(PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin]) return SCM(playerid, -1, "Ne mozete ADMINA veceg od sebe");

GPN(playerid, pName, sizeof(pName));

GPN(id, pBanName, sizeof(pBanName));

format(string, sizeof(string), "Igrac %s je banovan od strane admina razlog: %s", pName, pBanName, razlog);

SCMTA(-1, string);

Ban(id);

return 1;

}

da li su ove dve komande dobro napisane i jel ce raditi ako ima nekih gresaka da ste primetili vi recite

Kriso37
2
Rookie
🔥3
pre 6 sati

Omasio si sajt, chatgpt.com kucaj na internetu

ivanboskic1
10
Underboss
🔥128
pre 6 sati

Imaš jednu veliku grešku u format linijama — stavio si pogrešan broj %s parametara i zamijenio si imena igrača.

Trenutno imaš ovo:

format(string, sizeof(string), "Igrac %s je kickovan od strane admina razlog: %s", pName, pKickName, razlog);

A string sadrži samo 2 %s, a ti šalješ 3 argumenta.
Također, nedostaje ime kickanog/bannog igrača u tekstu.

Treba biti ovako:

Kick

CMD:kick(playerid, params[])

{

new id, string[256], razlog[64], pName[MAX_PLAYER_NAME], pKickName[MAX_PLAYER_NAME];

if(PlayerInfo[playerid][pAdmin] < 1)

return SCM(playerid, -1, "Niste admin");

if(sscanf(params, "is[64]", id, razlog))

return SCM(playerid, -1, "Komanda: /kick [id] [razlog]");

if(!IsPlayerConnected(id))

return SCM(playerid, -1, "Igrac nije na serveru!");

if(PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin])

return SCM(playerid, -1, "Ne mozete kickati admina veceg od sebe");

GPN(playerid, pName, sizeof(pName));

GPN(id, pKickName, sizeof(pKickName));

format(string, sizeof(string),

"Igrac %s je kickovan od strane admina %s. Razlog: %s",

pKickName, pName, razlog);

SCMTA(-1, string);

Kick(id);

return 1;

}

Ban

CMD:ban(playerid, params[])

{

new id, string[256], razlog[64], pName[MAX_PLAYER_NAME], pBanName[MAX_PLAYER_NAME];

if(PlayerInfo[playerid][pAdmin] < 1)

return SCM(playerid, -1, "Niste admin");

if(sscanf(params, "is[64]", id, razlog))

return SCM(playerid, -1, "Komanda: /ban [id] [razlog]");

if(!IsPlayerConnected(id))

return SCM(playerid, -1, "Igrac nije na serveru!");

if(PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin])

return SCM(playerid, -1, "Ne mozete banovati admina veceg od sebe");

GPN(playerid, pName, sizeof(pName));

GPN(id, pBanName, sizeof(pBanName));

format(string, sizeof(string),

"Igrac %s je banovan od strane admina %s. Razlog: %s",

pBanName, pName, razlog);

SCMTA(-1, string);

Ban(id);

return 1;

}

Još jedna bitna stvar, "is" u sscanf je bolje napisati kao "is[64]" da ograničiš dužinu razloga i izbjegneš buffer overflow.

Poslednji put izmenio od iv0dev pre 5 sati

Ja sam Ivo Dev, bager koji razgrće sve oko skripti – poznat i kao Zbager

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha