Posts: 4,930
Threads: 467
Joined: Dec 2010
Buenas a todos, kisiera saber por ke las teclas KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT no responden en OnPlayerKeyStateChange? y como podria hacerlo con GetPlayerKeys en OnPlayerKeyStateChange , para no utilizar timer.
Desde ya muchas Gracias.
Saludos.
Posts: 4,930
Threads: 467
Joined: Dec 2010
Quote:
Originally Posted by PT
usa assi
pawn Код:
new Keys,ud,lr; GetPlayerKeys(playerid,Keys,ud,lr); if(ud == KEY_UP) SendClientMessage(playerid, -1, "UP"); else if(ud == KEY_DOWN) SendClientMessage(playerid, -1, "DOWN"); if(lr == KEY_LEFT) SendClientMessage(playerid, -1, "LEFT"); else if(lr == KEY_RIGHT) SendClientMessage(playerid, -1, "RIGHT");
creditos wiki
|
¬¬, pero como esta en la wiki es para OnPlayerUpdate o un timer, man .
Posts: 170
Threads: 8
Joined: Aug 2013
Reputation:
0
Esa callback no detecta esas teclas, solo las detecta la funcion por eso necesitas estar actualizando para comprobar si se presiona alguna
Posts: 4,930
Threads: 467
Joined: Dec 2010
Quote:
Originally Posted by 0xFFFFFF
Esa callback no detecta esas teclas, solo las detecta la funcion por eso necesitas estar actualizando para comprobar si se presiona alguna
|
ufa, tendre ke usar timer igual XD
bueno, gracias.
Posts: 2,041
Threads: 97
Joined: Jun 2013
Quote:
Originally Posted by zugg48
PHP код:
#define TECLA_PRESIONADA(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (TECLA_PRESIONADA(KEY_UP))
{
SendClientMessage(playerid, -1, "Usted ha presionado KEY_UP.");
}
return 1;
}
|
1°: 'TECLA_PRESIONADA' es 'PRESSED', no sй por quй le cambiaste el macro.
2°: Acaso leiste todo? Por lo que yo sй, tu respuesta no se acerca a nada -.-
Posts: 1,198
Threads: 9
Joined: Dec 2010
Reputation:
0
Podrнas usarlo con otra tecla, de esa forma utilizarнas ningъn timer sino la callback que mencionas.