Zaključano
[TuT] SSCANF u ZCMD komandama
9,496
pregleda
36
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 14 godina
U ovom Tutorialu cu pokusati da vam sto bolje objasnim kako koristiti SSCANF.
Pa da pocnemo...
Za ovo ce vam trebati sledece:
Include ZCMD - http://forum.sa-mp.com/showthread.php?t=91354[/url
Include SSCANF - http://forum.sa-mp.com/showthread.php?t=120356[/url
U SSCANFu ne postoji CMDText, while, result itd kao u STRCMP...
Sve sto ima je sscanf i params
Vecina ne shvata parametre i mislim da je to najveci problem.
Sada cu vam pokazati parametre i sta koji parametar sluzi.
Parametri:
"u"
- Za igracev ID/DeoImena + njega mozete koristiti za botove
Primer:
if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "Korištenje: /komanda ");
"r"
- Za igracev ID/DeoImena
Primer:
if(sscanf(params, "r", igrac)) return SendClientMessage(playerid, -1, "Korištenje: /komanda [IgracevID/DeoImena]");
"i"
- Za neki broj
Primer:
if(sscanf(params, "i", broj)) return SendClientMessage(playerid, -1, "Korištenje: /komanda ");
"s"
- Za tekst, uvek morate stavljati velicinu. (Ja uvek stavim s )
Primer:
if(sscanf(params, "s", tekst)) return SendClientMessage(playerid, -1, "Korištenje: /komanda ");
"d"
- integer, isto sto i parametar "i"
Primer:
if (!sscanf(params, "ud", igrac, kolicina)) return SCM(playerid, 0xFFFFFFFF, "Komanda: /givemoney ");//Zanemarite ovo "u", to mora zbog IDa, nmg se setim komande samo za "d"
"f"
- "f" znaci ako koristis neku poziciju tj "Float",u ovom primeru ti napises /visina i portat ce te na isto mesto samo drugu visinu
Primer:
if(sscanf(params,"f",ZPos)) SCM(playerid, boja, "KOMANDA:"C_bijela" /visina");
Sada cemo napraviti za svaki parametar jedan pravi primer(komandu) da bi lakse shvatili.
Parametar "u"
CMD:freeze(playerid, params[])
{
new string, string2, igrac;
if (PlayerInfo >= 1)
{
if(sscanf(params, "u", igrac)) return SendClientMessage(playerid, -1, "Korištenje: /freeze ");
TogglePlayerControllable(igrac, 0);
format(string, sizeof(string), "Freezao si igraca: %s",GetName(igrac));
SendClientMessage(playerid, -1, string);
format(string2, sizeof(string2), "Freezao te je Admin: %s ",GetName(playerid));
SendClientMessage(igrac, -1, string2);
}
return 1;
}
Parametar "r"
CMD:freeze(playerid, params[])
{
new string, string2, igrac;
if (PlayerInfo >= 1)
{
if(sscanf(params, "r", igrac)) return SendClientMessage(playerid, -1, "Korištenje: /freeze [IgracevID/DeoImena]");
TogglePlayerControllable(igrac, 0);
format(string, sizeof(string), "Freezao si igraca: %s",GetName(igrac));
SendClientMessage(playerid, -1, string);
format(string2, sizeof(string2), "Freezao te je Admin: %s ",GetName(playerid));
SendClientMessage(igrac, -1, string2);
}
return 1;
}
Parametar "i"
CMD:tod(playerid, params[])
{
new string, tmp, hour, broj;
hour = strval(tmp);
if(sscanf(params, "i", broj)) return SCM(playerid, -89, "INFO: /tod [0-23]");
if (PlayerInfo >= 1337) return SCM(playerid, COLOR_GRAD1, "Niste ovlasteni da koristite tu komandu !");
{
SetWorldTime(hour);
format(string, sizeof(string), "Vreme je podeseno na %d sati.", hour);
BroadCast(COLOR_GRAD1, string);
}
return 1;
}
Parametar "s"
CMD😮(playerid, params[])
{
new tekst;
new string;
if (PlayerInfo >= 1)
{
if(sscanf(params, "s", tekst)) return SendClientMessage(playerid, -1, "Korištenje: /o ");
format(string, sizeof(string), " Admin: %s kaze: %s " , GetName(playerid), tekst);
SendClientMessageToAll(-1, string);
}
return 1;
}
Parametar "d"
CMD:givemoney(playerid, params[])//Ne mogu se setim komande samo sa parametrom "d" tako da ovde je i parametar "u"
{
new
igrac,
tekst
kolicina;
if (!sscanf(params, "ud", igrac, kolicina)) return SCM(playerid, 0xFFFFFFFF, "Komanda: /givemoney ");
{
if(PlayerInfo >= 1337)
GivePlayerMoney(igrac, kolicina);
format(tekst, sizeof(tekst), "Dobio si $%d od Administratora!", kolicina);
SendClientMessage(igrac, 0x00FF00FF, tekst);
}
return 1;
}
Parametar "f"
CMD:visina(playerid,params[]){
new Float:ZPos;
if(sscanf(params,"f",ZPos)) SCM(playerid, boja, "KOMANDA:"C_bijela" /visina");
else{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
SetPlayerPos(playerid,X,Y,ZPos);
return 1;
}
Credits:
Pacijent_ - Tutorial
System32 - Naucio me je da koristim SSCANF
SlicK - Objasnjenje "f" parametra
pre 14 godina
Odlican Tutorial, samo navedi da treba da imaju sscanf (incude & plugin) i zcmd (include). (stavio sam linkove, samo kliknite na zcmd ili sscanf)
pre 14 godina
No Name wrote on July 25, 2011, 1:05 am:
Odlican Tutorial, samo navedi da treba da imaju sscanf (incude & plugin) i zcmd (include). (stavio sam linkove, samo kliknite na zcmd ili sscanf)
Hvala 🙂 Dodao sam...
pre 14 godina
I brate da objasnis sta je to,ako vec nisi,cim sam vidio da na vrhu nema objasnjenje nisam citao.Ipak hvala ti u ime onih koji znaju sta je to.
pre 14 godina
Da te ispravim:
Skracenica od "user" i kad to koristis nemoras pisat samo id mozes i dio imena,a
"r" ti je isto,samo sta njega mozes koristiti i za igrace,i za botove...
"u"
- Za igracev ID [Samo za ID ne za DeoImena]
Primer:
Kod: (c)
if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "Korištenje: /komanda ");Skracenica od "user" i kad to koristis nemoras pisat samo id mozes i dio imena,a
"r"
- Za igracev ID i DeoImena
Primer:
Kod: (c)
view plaincopy to clipboardprint?
if(sscanf(params, "r", igrac)) return SendClientMessage(playerid, -1, "Korištenje: /komanda [IgracevID/DeoImena]"); "r" ti je isto,samo sta njega mozes koristiti i za igrace,i za botove...
pre 14 godina
SlicK wrote on July 25, 2011, 1:21 am:
Da te ispravim:
Skracenica od "user" i kad to koristis nemoras pisat samo id mozes i dio imena,a
"r" ti je isto,samo sta njega mozes koristiti i za igrace,i za botove...
"u"
- Za igracev ID [Samo za ID ne za DeoImena]
Primer:
Kod: (c)
if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "Korištenje: /komanda ");Skracenica od "user" i kad to koristis nemoras pisat samo id mozes i dio imena,a
"r"
- Za igracev ID i DeoImena
Primer:
Kod: (c)
view plaincopy to clipboardprint?
if(sscanf(params, "r", igrac)) return SendClientMessage(playerid, -1, "Korištenje: /komanda [IgracevID/DeoImena]"); "r" ti je isto,samo sta njega mozes koristiti i za igrace,i za botove...
Fixano!
Hvala na ispravci...
pre 14 godina
EM|Pacino wrote on July 25, 2011, 9:41 am:
Nije lose, ali moglo je bolje.... Gdje su ti npr. Optional arguments, string splitteri, itd itd...
Ovo nije nista sta si sve mogao i trebao staviti da bi ovo bio pravi tut o sscanf-u...
Ovo nije nista sta si sve mogao i trebao staviti da bi ovo bio pravi tut o sscanf-u...
Ovo je nesto sasvim osnovno i dovoljno za koriscenje SSCANFa.
A kao sto sam vec rekao, dodavacu jos dosta toga, samo da ga jos malo proucim.
tbedy.amx wrote on July 25, 2011, 9:45 am:
lijep tutorijal, siguran sam da ce nekom pomoci
Hvala...
pre 14 godina
sscanf se nekoristi samo u komandama... Nisi objasnio sve argumente i nisi naveo razliku između velikih i malih slova...
Nije nešto...
Nije nešto...
pre 14 godina
Quote from July 25, 2011, 3:28 pm:
sscanf se nekoristi samo u komandama... Nisi objasnio sve argumente i nisi naveo razliku između velikih i malih slova...
Nije nešto...
Nije nešto...
Onda nisam stavio dobar naslov, mislio sam SSCANF u komandama. Sad cu ispraviti.
Znam da nije nesto, jel nisam jos sve shvatio, znam da koristim u komandama(te osnovne parametre) Ostalo jos uvek ne shvatam....
Ali pocetnicima je ovo sasvim dovoljno i shvatice lako, tj. lepo je objasnjeno.
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava