[Pomoc] Prebacivanje iz strcmp u zcmd

Započeo kristiankico, April 15, 2012, 16:56:07 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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[playerid][pAdmin] >= 1337)
{
    if(IsPlayerConnected(para1))
    {
        if(para1 != INVALID_PLAYER_ID)
        {
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pJob] = 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): /

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] [hp] [poruka]

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[128];
if(sscanf(params, "uis[128]", id, heal, text)) return SendClientMessage(playerid, 0xFFFFFFFF, " *Koristi: /heal [igrac] [hp] [text]");
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[128]", id, heal, text)) return SendClientMessage(playerid, 0xFFFFFFFF, " *Koristi: /heal [igrac] [hp] [text]");


e sad ovoako da ti je objasnim malo bolje..

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

params = sve sto ide posle komande, parametri komande

"uis[128]" = to su specifieri

u = ime igraca/id igraca
i = broj
s[128] = 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 [igrac] [hp] [text]");

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 :)

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??

Imas tut za ovo prije 2-3 dana lik postavio koristi trazilicu




Balkan Ulice RPG opis servera: Click



-Tutorial za mijesanje ID-ova na vozilima: Click