SA-MP Forums Archive
GetPlayerKeys released state - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: GetPlayerKeys released state (/showthread.php?tid=388467)



GetPlayerKeys released state - juraska - 28.10.2012

is there any possible way to check if left, right key been released ?
im using GetPlayerKeys in onplayerupdate callback, not OnPlayerKeyStateChange


Re: GetPlayerKeys released state - SuperViper - 29.10.2012

pawn Код:
new lastKeyStatus[MAX_PLAYERS][2];

public OnPlayerConnect(playerid)
{
    lastKeyStatus[playerid][0] = 0;
    lastKeyStatus[playerid][1] = 0;
    return 1;
}

public OnPlayerUpdate(playerid)
{
    new keys, upDown, leftRight;
    GetPlayerKeys(playerid, keys, upDown, leftRight);

    if(upDown < 0)
    {
        // up
    }
    else if(upDown > 0)
    {
        // down
    }

    if(leftRight < 0)
    {
        // left
    }
    else if(leftRight > 0)
    {
        // right
    }

    if(leftRight == 0 && leftRight != lastKeyStatus[playerid][0])
    {
        if(leftRight < 0)
        {
             // left released
        }
        else if(leftRight > 0)
        {
            // right released
        }
    }

    if(upDown == 0 && upDown != lastKeyStatus[playerid][1])
    {
        if(upDown < 0)
        {
             // up released
        }
        else if(upDown > 0)
        {
            // down released
        }
    }

    lastKeyStatus[playerid][0] = upDown;
    lastKeyStatus[playerid][1] = leftRight;
    return 1;
}
Untested.