Ayuda/Duda Teclas...
#1

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.
Reply
#2

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
Reply
#3

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 .
Reply
#4

Esa callback no detecta esas teclas, solo las detecta la funcion por eso necesitas estar actualizando para comprobar si se presiona alguna
Reply
#5

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.
Reply
#6

PHP код:
#define TECLA_PRESIONADA(%0) \
    
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if (
TECLA_PRESIONADA(KEY_UP))
    {
        
SendClientMessage(playerid, -1"Usted ha presionado KEY_UP.");
    }
    
    return 
1;

SA-MP no detecta cuбl es la tecla que estбs presionando, sуlo detecta la funciуn que tiene asignada. Ya que desde el juego puedes modificar los controles.

Tampoco se puede hacer desde el servidor, la ъnica forma es modificar el cliente para que envнe esa informaciуn.
(Capturar las teclas).
Reply
#7

Quote:
Originally Posted by zugg48
Посмотреть сообщение
PHP код:
#define TECLA_PRESIONADA(%0) \
    
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    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 -.-
Reply
#8

Podrнas usarlo con otra tecla, de esa forma utilizarнas ningъn timer sino la callback que mencionas.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)