SA-MP Forums Archive
Como bloquear esto en OnPlayerKeyStateChange ... - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Como bloquear esto en OnPlayerKeyStateChange ... (/showthread.php?tid=414352)



Como bloquear esto en OnPlayerKeyStateChange ... - OTACON - 09.02.2013

Buenas a Todos, Quisiera saber como podria blokear una tecla en OnPlayerKeyStateChange

lo kek iero hacer es ke una tecle , Ejemplo KEY_FIRE lo puedan usar pero cada vez ke lo usen se le vaya restando una variable, y al llegar al tope osea 0 ke no funcione mas la tecla.

no kiero ke me tire algun mensaje ni nada ke no funcione.

el metodo se como hacerlo, pero estoy medio confuso como ubicarlo, seria con un return 0 .

Ojalame entiendan y me puedan ayudar.

Desde ya muchas Gracias.


Respuesta: Como bloquear esto en OnPlayerKeyStateChange ... - Parka - 09.02.2013

pawn Код:
#define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
   
new DISPARO[MAX_PLAYERS];

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{

    if( PRESSED(KEY_FIRE) ) {DISPARO[playerid]++;}
    if( DISPARO[playerid] >= 3 ) return false;


    SendClientMessage(playerid, -1, "Llamo la CallBack 'OnPlayerKeyStateChange' ");

    return 1;
}
bueno probe de esta manera y funciona.

PD: SendClientMessage lo coloque para saber si la llamaba desues de tener la variable en 3, no lo hace.


Respuesta: Como bloquear esto en OnPlayerKeyStateChange ... - OTACON - 09.02.2013

No, no sirve eso por ke hay estas blokeando la funcino de la tecla no la tecla.

lo ke kiero hacer es blokear la tecla de la bocina de los vehciulos.
Yo hice esto pero no funciona :S

pawn Код:
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
        if(variable[vehicleid]<=0)
            if(pressed(KEY_CROUCH)) return false;
        }
    }
    if(pressed(KEY_CROUCH)) {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
            if(variable[vehicleid]>=1) {
                variable[vehicleid]--;
            }
        }
    }



Respuesta: Como bloquear esto en OnPlayerKeyStateChange ... - xSDx - 09.02.2013

Si lo que quieres es que no suene la bocina tienes un grave problema debido a que en pawn no puedes desactivar las funciones nativas de gta asi que es inutil que tanto le intentes poner en esa callback, lo mejor seria la creacion de un plugin aver si edte puede resolver tu problema


Respuesta: Como bloquear esto en OnPlayerKeyStateChange ... - [DOG]irinel1996 - 09.02.2013

Esa callback es llamada despuйs de haber pulsado la tecla, no puedes hacer que no funcione el claxon.


Respuesta: Como bloquear esto en OnPlayerKeyStateChange ... - OTACON - 09.02.2013

Quote:
Originally Posted by [DOG]irinel1996
Посмотреть сообщение
Esa callback es llamada despuйs de haber pulsado la tecla, no puedes hacer que no funcione el claxon.
This callback is called when the state of any key except the movement keys (up, down, left, right) changes (i.e. are pressed or released).

Este callback es llamado cuando el estado de cualquier tecla, excepto las teclas de movimiento (arriba, abajo, izquierda, derecha) cambios (es decir, se presiona o se suelta).


Respuesta: Como bloquear esto en OnPlayerKeyStateChange ... - [DOG]irinel1996 - 09.02.2013

Quote:
Originally Posted by bytytus
Посмотреть сообщение
This callback is called when the state of any key except the movement keys (up, down, left, right) changes (i.e. are pressed or released).

Este callback es llamado cuando el estado de cualquier tecla, excepto las teclas de movimiento (arriba, abajo, izquierda, derecha) cambios (es decir, se presiona o se suelta).
Lo que te intento decir es que primero ejecuta su funciуn y luego llama la callback. Primero hace lo que le indica el San Andreas.


Respuesta: Como bloquear esto en OnPlayerKeyStateChange ... - OTACON - 09.02.2013

Quote:
Originally Posted by [DOG]irinel1996
Посмотреть сообщение
Lo que te intento decir es que primero ejecuta su funciуn y luego llama la callback. Primero hace lo que le indica el San Andreas.
Maldita bocina .

Bueno, Gracias a todos .