[Pomoc] Prebacivanje iz strcmp u zcmd

Započeo kristiankico
15. Apr. 2012. Zaključano
663
pregleda
4
postova
kristiankico
4
Shot Caller
15. Apr. 2012.
Skripta koju koristim: Moja
Detaljan opis problema: Zanima me kako tipa ove komande,prebacit u ZCMD komande,jer mi je ZCMD potpuno nejasan i novi i bas ga ne kuzim pa ako bi mi mogao nekako neko pojasnit kako to prebacivat ili postoji neki program za te stvari.
Dio skripte: NPR komanda
 if(strcmp(cmd, "/setjob", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /setjob [ID Igraca/Dio Imena] [jobid)]");
return 1;
}
new para1;
new jobid;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
jobid = strval(tmp);
if (PlayerInfo >= 1337)
{
    if(IsPlayerConnected(para1))
    {
        if(para1 != INVALID_PLAYER_ID)
        {
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo = jobid;
format(string, 256, "("COL_RED"-team{FFFFFF}!) "COL_RED"%s {FFFFFF}je dodijelio "COL_RED"%s {FFFFFF}posao sa ID brojem "COL_RED"%d.", sendername,giveplayer,jobid);
ABroadCast(WHITE,string,1);
SendClientMessage(playerid, COLOR_GRAD1, "Posao je dodjeljen uspjesno !");
}
}
}
else
{
SendClientMessage(playerid, WHITE, "("COL_RED"team{FFFFFF}!) Niste ovlasteni da koristite tu komandu!");
}
}
return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno): /
dock
5
Crime Lord
15. Apr. 2012.
Uz ZCMD trebas koristiti i sscanf za proveru sta ide posle komande, evo ovako .. prvo skini sscanf i ubaci ga:

http://forum.sa-mp.com/showthread.php?t=120356

E sad,

klasicna komanda bez ikakvih podataka iza primer: /healall izgleda ovako:

CMD:healall(playerid,params[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(IsPlayerConnected(i))
    {
        SetPlayerHealth(i, 100);
        SendClientMessage(i, 0x0000FFAA, "*Izlecen si!");
}
}
return 1;
}


ako ista razumes u tome odlicno je jer se bar malo razumes u skriptanje...

e sad kako napraviti malo kompleksniju komandu, recimo /sethp

playerid = id igraca nad kojim se vrsi komanda
hp = koliki health da mu stavi
poruka = sta da mu ispise

Ovakav tip komande sam uzeo zato sto obuhvata 3 najcesce vrste podataka iza komande (igrac, broj, text)

i komanda bi izgledala ovako:

CMD:heal(playerid,params[])
{
new id, heal, text;
if(sscanf(params, "uis", id, heal, text)) return SendClientMessage(playerid, 0xFFFFFFFF, " *Koristi: /heal ");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xffffffff, " *Igrac nije online!");
SetPlayerHealth(id, hp);
SendClientMessage(id, 0xffffffff, text);
return 1;
}


ova linija ti je najbitnija u sustini...

if(sscanf(params, "uis", id, heal, text)) return SendClientMessage(playerid, 0xFFFFFFFF, " *Koristi: /heal ");


e sad ovoako da ti je objasnim malo bolje..

sscanf(params, "uis", id, heal, text) ti je nacin koriscenja sscanfa,

params = sve sto ide posle komande, parametri komande

"uis" = to su specifieri

u = ime igraca/id igraca
i = broj
s = string(text) u velicini 128 karaktera

od specifiera ti je cesto koriscen i "f" koji oznacava float, u temi gore imas sve specifiere pa ako ti treba nesto opsirnije tu potrazi.

e sad ovo:

,id, hp, text) = to su varijable u koje ce se upisivati parametri redom po specifierima, znaci

za upisan id, id ce se zapisati u varijabli 'id', za health koji upises zapisace se u 'hp' za text koji napises zapisace se u 'text'...

ovo

return SendClientMessage(playerid, 0xFFFFFFFF, " *Koristi: /heal ");

ti je da ukoliko neko ne napise sve parametre da mu izadje string da objasni kako se koristi komanda.

Ako ti nesto dalje nije jasno sscanf je detaljno opisan u temi na vrhu posta.

nadam se da sam ti bar malo pomogao da skontas 🙂
kristiankico
4
Shot Caller
15. Apr. 2012.
hvala na pokusaju,ali neznam,nekuzim jos nikako,probavao sam druge komande prilagodit po tome ali neide..ima li nekakve šanse da STRCMP i ZCMD komande budu u skripti??
SEJFO
5
Godfather
15. Apr. 2012.
Imas tut za ovo prije 2-3 dana lik postavio koristi trazilicu

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha