Detectar tecla al presionarse y soltarse.
#1

Buenas a todos,
estoy haciendo un sistema para mi servidor y me surgio un problema.

El tema es que tengo que detectar cuando apreto una tecla, y volver a detectar cuando la suelto.
Lo que me pasa es que como lo hice, al si apreto la tecla y la suelto, sin apretar nada mas, anda bien.

Yo lo hice poniendo en OnPlayerKeyStateChange que cuando la newkeys es igual a KEY_FIRE (tecla que uso), una variable se ponga en true, y que cuando se suelte (convirtiendose en una oldkey), esta variable se ponga en false.

El problema es que, si yo tengo apretado KEY_FIRE y apreto otra tecla (apuntar por ejemplo), KEY_FIRE pasa a ser oldkey sin que la haya soltado.
Lo que quiero saber es como hacer para que, sin importar que toque teclas, se detecte cuando apreto KEY_FIRE y cuando la suelto.

En definitiva, quiero que mientras que este apretado KEY_FIRE, una variable sea true, y cuando la suelto, esta variable se ponga en false.


No se si se entiende bien,
espero que si y me puedan ayudar!

Saludos!
Reply
#2

Creo que no existe solo esta la funcion que la detecta cuando la presiona que es onplayerkey pero de que cuando la suelte no ahy como tal.
Reply
#3

Quote:
Originally Posted by Daniel_Ruiz
Посмотреть сообщение
Creo que no existe solo esta la funcion que la detecta cuando la presiona que es onplayerkey pero de que cuando la suelte no ahy como tal.
Si que se puede, si vos pones newkey & KEY_FIRE, detectas cuando la apretas.
Y si pones oldkey & KEY_FIRE, detectas cuando la soltas.

Pero esto no funciona si yo apreto una tecla en el medio, porque me detectaria esta tecla como newkey, y KEY_FIRE pasaria a ser oldkey sin soltarla.
Reply
#4

Solucionado..
Reply
#5

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    return true;
}
https://sampwiki.blast.hk/wiki/OnPlayerKeyStateChange_Es

utiliza oldkeys, es para detecta cuando soltas la tecla correspondiente.
mira la wiki.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)