Jump to content

[CLEO] KeyPressed


Tupi
 Share

Recommended Posts

Deoarece am vazut că mulți dintre voi nu știti cum se poate face ca atunci când apăsați pe o tastă să se trimită o comandă sau să se execute ceva, în acest tutorial vă voi prezenta cum se poate face acest lucru pintr-o metodă simplă.

 

În primul rand opcode-ul 0AB0: poate fi folosit doar în blucle care se repetă la infinit, nu în comenzile simple cum încearcă majoritatea. 

 

Prima metodă (buclă folosind WHILE)

WHILE TRUE
wait 0

if 0AB0: 0x58 //verificam daca tasta X este apasata
then
	if and //verificam daca toate conditiile de mai jos sunt indeplinite
		not SAMP.IsDialogActive(-1) //Nu aveti niciun dialog activ (folosit pentru a nu se executa ce dorim noi cand apasam pe X in momentul in care avem un dialog in care trebuie sa scriem ceva)
		not SAMP.ChatInputOpened($PLAYER_CHAR) //Nu aveti chatul deschis (folosit pentru a nu se executa ce dorim noi cand apasam pe X in momentul in care folosim tasta X sa scriem un mesaj in chat)
		not Actor.Driving($PLAYER_ACTOR) //Nu conduceti un vehicul (nu mai adaugati acest rand daca trebuie sa se execute si cand conduceti un vehicul)
	then
		//aici trecem ce vrem noi sa se execute, cum ar fi

		chatmsg "This is test message" -1 //Un mesaj trimis in chat pe care il vedeti doar voi
		print "This is test message" -1 //Un mesaj pe ecran pe care il vedeti doar voi
		say "/wave" //Executarea animului /wave
		
		wait 1000 //Adaugam un delay de 1 secunda pentru a nu se executa lucrurile de mai sus de mai multe ori la o singura apasare
	end
end

END

 

A doua metodă (buclă folosind JUMP)

:loop

if 0AB0: 0x58 //verificam daca tasta X este apasata
then
	if and //verificam daca toate conditiile de mai jos sunt indeplinite
		not SAMP.IsDialogActive(-1) //Nu aveti niciun dialog activ (folosit pentru a nu se executa ce dorim noi cand apasam pe X in momentul in care avem un dialog in care trebuie sa scriem ceva)
		not SAMP.ChatInputOpened($PLAYER_CHAR) //Nu aveti chatul deschis (folosit pentru a nu se executa ce dorim noi cand apasam pe X in momentul in care folosim tasta X sa scriem un mesaj in chat)
		not Actor.Driving($PLAYER_ACTOR) //Nu conduceti un vehicul (nu mai adaugati acest rand daca trebuie sa se execute si cand conduceti un vehicul)
	then
		//aici trecem ce vrem noi sa se execute, cum ar fi

		chatmsg "This is test message" -1 //Un mesaj trimis in chat pe care il vedeti doar voi
		print "This is test message" -1 //Un mesaj pe ecran pe care il vedeti doar voi
		say "/wave" //Executarea animului /wave
		
		wait 1000 //Adaugam un delay de 1 secunda pentru a nu se executa lucrurile de mai sus de mai multe ori la o singura apasare
	end
end

wait 0
jump @loop

 

Ambele metode fac exact același lucru, rămâne la decizia voastră pe care vreți să o folosiți. Așadar, așa se folosește opcode-ul 0AB0: care verifică dacă o tastă este apăsată în cea mai simplă modalitate. De aici depinde doar de voi unde v-ar putea fi util acest tutorial, un exemplu ar fi la un mod pentru cei din departamente care își setează pe o tastă să se execute comanda /ms, etc. O să vă las aici un LINK către un site unde găsiți toate codurile de taste virtuale (tot ce trebuie să faceți este sa vă uitați la coloana cu descrierea fiecărui cod în funcție de tasta pe care vreți să o folosiți si să copiați valoarea codului (ex: 0x01, 0x02,etc), după care îl treceți în modul vostru după opcode-ul 0AB0 (ex: 0AB0: 0x01, 0AB0: 0x02, etc). Sper că ați înteles ceva și că v-a fost de folos, dacă aveți orice întrebare/nelămurire puteți deschide un topic în secțiunea Help And Discussions sau să îmi trimiteți un PM pe forum.

 

 

Edited by Tupi
Link to comment
Share on other sites

  • Tupi locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • 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.