Jump to content

ZCMD + SSCANF.


Guest PlayON

Recommended Posts

Guest RockStar

Tre sa iti dea o eroare cu "undefined symbol ..cmdtext.."..ceva de genu

Daca iti apare eroarea asta inlocuieste cmdtext cu params.

Uite aici un tutorial

http://forum.sa-mp.com/showthread.php?t=231496&highlight=strcmp+zcmd

Link to comment
Share on other sites

  • Replies 107
  • Created
  • Last Reply

Top Posters In This Topic

Guest PlayON

Tre sa iti dea o eroare cu "undefined symbol ..cmdtext.."..ceva de genu

Daca iti apare eroarea asta inlocuieste cmdtext cu params.

Uite aici un tutorial

http://forum.sa-mp.com/showthread.php?t=231496&highlight=strcmp+zcmd

Neah, el a lasat comenzile CMD: tot sub OnPlayerCommandText.

Comenzile facute cu zcmd, adica cu CMD:comanda, trebuiesc puse ORIUNDE in script!

Link to comment
Share on other sites

Neah, el a lasat comenzile CMD: tot sub OnPlayerCommandText.

Comenzile facute cu zcmd, adica cu CMD:comanda, trebuiesc puse ORIUNDE in script!

exact asa am  facut ....te rog poti fi mai explicit si sa imi spui cum trebuie ?multumesc la amandoi ( da ..imi  da si erori cu cmdtext )

Link to comment
Share on other sites

Guest RockStar

Muta toate comenzile care le ai cu CMD:.... undeva in script , la mijloc , sfarsit etc.. unde vrei tu dar sa nu fie sub un callback.

Si pentru chestia cu cmdtext fa ca in tutorialul ala.

Link to comment
Share on other sites

Muta toate comenzile care le ai cu CMD:.... undeva in script , la mijloc , sfarsit etc.. unde vrei tu dar sa nu fie sub un callback.

Si pentru chestia cu cmdtext fa ca in tutorialul ala.

am facut exact asa:)

dar tot imi apar erori cu tmp,giveplayer,sendername,idx  etc ...ce fac ?

Link to comment
Share on other sites

Imi spuneti ce mai trb sa fac si aici cu erorile astea?

D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9065) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9065) : error 017: undefined symbol "idx"
D:\Jocuri\aSamp.b.Ro\gamemodes\b.pwn(9066) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9071) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9071) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9072) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9072) : error 017: undefined symbol "idx"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9073) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9078) : error 017: undefined symbol "moneys"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9078) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9079) : error 017: undefined symbol "moneys"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9084) : error 017: undefined symbol "moneys"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9089) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9091) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9093) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9098) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : error 017: undefined symbol "giveplayer"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : error 029: invalid expression, assumed zero
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


20 Errors.
Stiti voi dc imi apare aceste erori...deoarece am scos chestia cu
public OnPlayerCommandText(playerid, cmdtext[])
{
	new string[256];
	new playermoney;
	new sendername[MAX_PLAYER_NAME];
	new giveplayer[MAX_PLAYER_NAME];
	new playername[MAX_PLAYER_NAME];
	new cmd[256];
	new tmp[256];
	new giveplayerid, moneys, idx;
	cmd = strtok(cmdtext, idx);

adica callback de la sistemu ala vechi ...strcmp .... ce trb sa fac sa scap de aceste erori ?

Sa pun new .... la fiecare comanda ar merge dar lool frate nu astai solutia ...daca le pun undeva prin mod imi da plin de erori... trb sa fie o modalitate ...care e ?

Link to comment
Share on other sites

Guest PlayON

Imi spuneti ce mai trb sa fac si aici cu erorile astea?

D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9065) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9065) : error 017: undefined symbol "idx"
D:\Jocuri\aSamp.b.Ro\gamemodes\b.pwn(9066) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9071) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9071) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9072) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9072) : error 017: undefined symbol "idx"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9073) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9078) : error 017: undefined symbol "moneys"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9078) : error 017: undefined symbol "tmp"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9079) : error 017: undefined symbol "moneys"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9084) : error 017: undefined symbol "moneys"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9089) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9091) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9093) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9098) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : error 017: undefined symbol "giveplayerid"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : error 017: undefined symbol "giveplayer"
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : error 029: invalid expression, assumed zero
D:\Jocuri\a\Samp.b.Ro\gamemodes\b.pwn(9100) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


20 Errors.
Stiti voi dc imi apare aceste erori...deoarece am scos chestia cu
public OnPlayerCommandText(playerid, cmdtext[])
{
	new string[256];
	new playermoney;
	new sendername[MAX_PLAYER_NAME];
	new giveplayer[MAX_PLAYER_NAME];
	new playername[MAX_PLAYER_NAME];
	new cmd[256];
	new tmp[256];
	new giveplayerid, moneys, idx;
	cmd = strtok(cmdtext, idx);

adica callback de la sistemu ala vechi ...strcmp .... ce trb sa fac sa scap de aceste erori ?

Woay, lasa, nu te mai ocupa de ZCMD. Lasa-le asa cum is ele, tu incerci sa modifici comenzi fara a sti ce face.

Link to comment
Share on other sites

Woay, lasa, nu te mai ocupa de ZCMD. Lasa-le asa cum is ele, tu incerci sa modifici comenzi fara a sti ce face.

Nus chiar incepator in scripting ...in zmcd is incepator ... te rog zimi doar ce trb sa fac !! pls

* Stiu ca nu am modificat nimic la comenzi.... incerc sa trec doar pe zcmd si nust cum ,explica-mi pls

Link to comment
Share on other sites

Guest PlayON

Nus chiar incepator in scripting ...in zmcd is incepator ... te rog zimi doar ce trb sa fac !! pls

* Stiu ca nu am modificat nimic la comenzi.... incerc sa trec doar pe zcmd si nust cum ,explica-mi pls

Iti lipsesc alea din comanda.

Link to comment
Share on other sites

Globale ... adica sa le trec acolo la lista cu new ? alea toate ? Imi lasi PM cu idu tau sa ma ajuti te rog ?

ZCMD inlocuieste strcmp

SSCANF inlocuieste ?  Sau?

Care e cel mai rapid ? YCMD sau ZCMD sau care mai exista .... cel mai rapid vreau sa stiu care e... stie cineva ?

Nu mai face 3x post.

ZCMD si YCMD sunt cele mai rapide, dar YCMD are cele mai multe chestii in el, cel mai flexibil procesor de comenzi. Ele inlocuiesc strcmp.

sscanf inlocuieste strtok.

Link to comment
Share on other sites

ms mult :) Imi poti spune care e mai bine sa folosesc ,ycmd sau zcmd? mersi

Edit: Why do we need another command processing system? ZCMD is already very fast!

y_commands is actually now FASTER than ZCMD and is designed to handle huge numbers of commands. Additionally included in that speed is permission checks (to set exactly who can use the command), a help system, command renaming and removal plus more.

Aici zice ca Y_commands e mai rapid decat zcmd .. e adevarat ?

Link to comment
Share on other sites

Guest PlayON

Bine atunci ...ma iau dupa tine si raman la ZCMD ,mersi !

Defapt YCMD este cu unpic mai rapid decat ZCMD desi foloseste aceasi medota ca la ZCMD doar ca YCMD are multe functii folositoare.

Link to comment
Share on other sites

Deci sa o iau cu inceputul tot am auzit de acest "ZCMD + SSCANF" , pana acuma nu am incercat sa fac nimic cu ele , dar vreau sa stiu si eu de unde sa ma apuc sa le invat ? Sau cum sa ma apuc sa le invat?

Link to comment
Share on other sites

Guest PlayON

Deci sa o iau cu inceputul tot am auzit de acest "ZCMD + SSCANF" , pana acuma nu am incercat sa fac nimic cu ele , dar vreau sa stiu si eu de unde sa ma apuc sa le invat ? Sau cum sa ma apuc sa le invat?

Ai postat fix in topicul cu raspuns.

sa-ti explic mai indetaliat ce este ZCMD si SSCANF.

ZCMD

Acest system este total diferit de vechea metoda, adica metoda custrcmp sub OnPlayerCommandText. Vechea metoda consista in a compara ce ai scris in chat ca si comanda cu ce ai insertat tu adica, "/comanda".

Metoda cu ZCMD se foloseste in felu urmator,

tu, prin inserand CMD:comanda( playerid, params[]) automat devine cmd_comanda( playerid, params[]) deoarece CMD: este doar o definite la cuvantul cmd_

si ce vine dupa : este comanda deci CMD: -> cmd_ iar comanda -> cmd_comanda.

tot ce se intampla este sa creeze o functie, sau un public dar este mai degraba o functie deoarece nu are prefixul public.

Acest system tot ce face este sa caute prin functii prin ajutorul prefixului cmd_ pe care il setezi cu CMD: in fata unei comenzi, deoaceea ai nevioie de CMD: .

Dupa ce gaseste, analizeaza parametrii, adica ce este un parametru:

/comanda <id> <value>

id - parametru 1

value - parametru 2

+ faptul ca este mai rapid decat strcmp.

SSCANF

Tot ce face sscanf este sa deformateze un string, adica sa zicem ca avem stirngul "abc 123 2.0"

SSCANF tot ce face este sa preia abc si sa'l stocheze intr-un string, sa preia 123 si sa-l stocheze intr-un integer iar ultimul parametru il ia si il stocheaza intr-un integer de gen float.

string - este un sir de litere si numere la o lalta

integer - este doar numar, gen 12385

float - este tot un numar dar mere folosit si cu virgula, adica 5.3 sau 3.77777

Un exemplu de preluare si deformatare al unui string.

[pawn]

new

string[5], // 5 deoarece abcde are cinci litere

integer,

Float:fInteger // ii dam tagul Float: ca sa fie considerat gen float.

Acum sa deformatam stringul. New de deasupra ajuta la stocarea acelor date.

sscanf( "abcde 2011 9.40", "s[5]df", string, integer, fInteger );

printf(" String:%s Integer:%d Float:%.2f", string, integer, fInteger );

[/pawn]

Acum sa vedeti ce a facut sscanf, a preluat din "abcde 2011 9.40" abcde numarul 2011 si floatul 9.40 si le-a stocat in parametrii corespunzatori.

Sa va explic ce face "s[5]df", s este folosit deoarece primul parametru din acel string este un string, adica abcde si are marimea 5!

d, i inseamna integer, adica numar, si este folosit deoarece, evident este un numar!

f inseamna float desigur, si ca de la sine inteles este flolosit sa preia ultimul parametru adica, 9.40.

acum daca dam compile cu codul dat mai sus, in OnGameModeInit veti vedea ca acele new care le-am creat mai sus vor avea continutul destinat!

Acum nu is acasa, dar sper  ca ti-am dat de inteles.

tine minte, sscanf nu este limitat doar la s i si f, se poate folosi in multe lucruri cu care nu ma complic deoarece esti incepator

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.