[help] KeyStateChange
#1

Is it possible to use Shift/KEY_JUMP to start AND stop a engine.

This is my code which doesnt work, completely bugged.

if(newkeys == KEY_JUMP && EngineStatus[GetPlayerVehicleID(playerid)] == 0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
TogglePlayerControllable(playerid, 1);
EnginStatus[GetPlayerVehicleID(playerid)] = 1;
PlayerActionMessage(playerid,15.0,"turns on the engine");
}
}
if(newkeys == KEY_JUMP && EngineStatus[GetPlayerVehicleID(playerid)] != 0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
TogglePlayerControllable(playerid,0);
EngineStatus[GetPlayerVehicleID(playerid)] = 0;
PlayerActionMessage(playerid,15.0,"turns off the engine");
}
}

sorry about no indentation, but indentation is perfect in my .pwn.
Reply
#2

?
Reply
#3

It is possible
I saw it on one GM
Reply
#4

Is there a reason you can't test it ?
Reply
#5

Try this:

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if ((newkeys & KEY_JUMP) && !(oldkeys & KEY_JUMP))
        {
            if(EngineStatus[GetPlayerVehicleID(playerid)] == 0)
            {
                TogglePlayerControllable(playerid, 1);
                EnginStatus[GetPlayerVehicleID(playerid)] = 1;
                PlayerActionMessage(playerid,15.0,"turns on the engine");
            }
            else
            {
                TogglePlayerControllable(playerid,0);
                EngineStatus[GetPlayerVehicleID(playerid)] = 0;
                PlayerActionMessage(playerid,15.0,"turns off the engine");
            }
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)