Započeo kristiankico
•15. Apr. 2012.• Zaključano[Pomoc] Prebacivanje iz strcmp u zcmd
682
pregleda
4
postova
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
113
Postovi:
27
Teme:
Pridružio se:Mar. 2010
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
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
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): /
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
762
Postovi:
20
Teme:
Pridružio se:Sep. 2011
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:
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:
ova linija ti je najbitnija u sustini...
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 🙂
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 🙂
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
113
Postovi:
27
Teme:
Pridružio se:Mar. 2010
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??
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,725
Postovi:
152
Teme:
Pridružio se:Apr. 2011
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava