Keys.
#2

Ya sabes que no lo podes hacer en OnPlayerKeyStateChange porque no detecta el arriba-abajo ni el izquierda-derecha.

Tenes que hacer un timer que puede ser de medio segundo en el cual se encuentre la funcion GetPlayerKeys.

Aca tenes un pequeсo ejempo (no lo uses textual esta aca):

pawn Код:
new numero[MAX_PLAYERS];
forward Timer_Test();
public Timer_Test()
{
    new
        keys,
        arr_ab,
        izq_der;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerKeys(i, keys, arr_ab, izq_der);
            if(arr_ab > 0) {numero[i] = numero[i] + 10;} // esta no es la forma mas simplificada de ponerlo, pero
                                                         // lo hago asi para que lo entiendas sin dificultad.
            else if(arr_ab < 0) {numero[i] = numero[i] - 10;}
            else if(izq_der > 0) {numero[i] = numero[i] + 1;} // (numero = numero + 1) es igual a (numero ++)
            else if(izq_der < 0) {numero[i] = numero[i] - 1;}
        }

    }

}
Aca tenes una funcion que si apretas arriba te suma 10, si apretas abajo te resta 10, si apretas para la derecha te suma 1, y si apretas para la izquierda te suma 1.


Para que funcione tenes que hacer que el temporizador corra:

pawn Код:
public OnGameModeInit()
{
    SetTimer("Timer_Test", 500, true);

    // resto del codigo
}
HASTA ACA LO IMPORTANTE, EL RESTO DEL MENSAJE ES POR LAS DUDAS

Y para ver el resultado:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/resultado", true))
    {
        new s[70];
        format(s, sizeof(s), "Tu resultado es:{FFFF00} %d", numero[playerid]);
        SendClientMessage(playerid, 0xFFFFFFFF, s);
        printf("Id: %d -- Resultado: %d", playerid, numero[playerid]);
        numero[playerid] = 0; // reinicia el contador
        return 1;
    }
    // resto del codigo
}
Y por ultimo si queres que se reinicie cada vez que un jugador entra al juego solo agregas:

pawn Код:
public OnPlayerConnect(playerid)
{
    numero[playerid] = 0;
    // resto del codigo...
}
Aclaro que no esta probado...
Reply


Messages In This Thread
Keys. - by arturo clark - 19.12.2010, 02:56
Re: Keys. - by cocolabush - 19.12.2010, 14:48
Re: Keys. - by arturo clark - 19.12.2010, 18:36
Re: Keys. - by cocolabush - 19.12.2010, 19:19
Re: Keys. - by arturo clark - 20.12.2010, 00:30
Respuesta: Keys. - by [J]ulian - 20.12.2010, 01:01
Re: Keys. - by cocolabush - 20.12.2010, 02:34
Re: Keys. - by arturo clark - 20.12.2010, 03:02
Respuesta: Re: Keys. - by [J]ulian - 20.12.2010, 03:49
Re: Keys. - by arturo clark - 20.12.2010, 04:22

Forum Jump:


Users browsing this thread: 1 Guest(s)