SA-MP Forums Archive
OnPlayerKeyStateChange Help - 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: OnPlayerKeyStateChange Help (/showthread.php?tid=410153)



OnPlayerKeyStateChange Help - Private200 - 24.01.2013

See i need some help with this script here :

pawn Код:
new engine, lights, alarm, doors, bonnet, boot, objective, vehicleid;

    vehicleid = GetPlayerVehicleID(playerid);

    if (AVehicleData[vehicleid][Fuel] > 0)
    {
        if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
            SetVehicleParamsEx(vehicleid, 1, 1, alarm, doors, bonnet, boot, objective);
            SendClientMessage(playerid, COLOR_PINK, "Engine turned on !");
        }
    }
I want to add something like :

pawn Код:
else // when the GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); engine and lights are on
SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);
SendClientMessage(playerid, COLOR_PINK, "Engine turned off!");
But i don't have the idea where i have to put them . Any help please ?


Re: OnPlayerKeyStateChange Help - DaRk_RaiN - 24.01.2013

pawn Код:
new engine, lights, alarm, doors, bonnet, boot, objective, vehicleid;

    vehicleid = GetPlayerVehicleID(playerid);

    if (AVehicleData[vehicleid][Fuel] > 0)
    {
        if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
        if(engine == 1 || lights == 1)
        {
        SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);
        SendClientMessage(playerid, COLOR_PINK, "Engine turned off!");
        return 1;
        }
            GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
            SetVehicleParamsEx(vehicleid, 1, 1, alarm, doors, bonnet, boot, objective);
            SendClientMessage(playerid, COLOR_PINK, "Engine turned on !");
        }
    }
Untested.


Re: OnPlayerKeyStateChange Help - Private200 - 24.01.2013

I think you messed the code up .

This is what i done but the engine doesen't turn off in this case ..

pawn Код:
if (AVehicleData[vehicleid][Fuel] > 0)
    {
        if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            if(engine == 0 || lights == 0)
            {
                GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
                SetVehicleParamsEx(vehicleid, 1, 1, alarm, doors, bonnet, boot, objective);
                SendClientMessage(playerid, COLOR_PINK, "Engine turned on !");
            }
            else if(engine == 1 || lights == 1)
            {
            GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
            SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);
            SendClientMessage(playerid, COLOR_PINK, "Engine turned off !");
            }
        }
    }
Any idea ?


Re: OnPlayerKeyStateChange Help - Private200 - 25.01.2013

pawn Код:
if (AVehicleData[vehicleid][Fuel] > 0)
    {
        if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            if(engine == 0 || lights == 0)
            {
                GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
                SetVehicleParamsEx(vehicleid, 1, 1, alarm, doors, bonnet, boot, objective);
                SendClientMessage(playerid, COLOR_PINK, "Engine turned on !");
            }
            else
               GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
                SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);
                SendClientMessage(playerid, COLOR_PINK, "Engine turned off !");
         }
   
}
Will this be working ? Sorry for bumb because i am not in home and i can't test it .


Re: OnPlayerKeyStateChange Help - denNorske - 25.01.2013

This works: Tested fully.

pawn Код:
if (AVehicleData[vehicleid][Fuel] > 0)
    {
        if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid))
        {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
                if(engine == 0 && lights == 0)
                {
                GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
                SendClientMessage(playerid,COLOR_BLUE,"[CAR] Engine Started!");
                }
                else
                {
                GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
                SendClientMessage(playerid,COLOR_BLUE,"[CAR] Engine stopped!");
                }
        }
    }
}
Good luck!


Re: OnPlayerKeyStateChange Help - Private200 - 26.01.2013

Quote:
Originally Posted by airplanesimen
Посмотреть сообщение
This works: Tested fully.

pawn Код:
if (AVehicleData[vehicleid][Fuel] > 0)
    {
        if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid))
        {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
                if(engine == 0 && lights == 0)
                {
                GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
                SendClientMessage(playerid,COLOR_BLUE,"[CAR] Engine Started!");
                }
                else
                {
                GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
                SendClientMessage(playerid,COLOR_BLUE,"[CAR] Engine stopped!");
                }
        }
    }
}
Good luck!
Not working ... It keeps saying : "[CAR] Engine Started" . It doesen't turns off the vehicle ..

I think i made it a type off work. But there is another issue . I converted the code into this :

pawn Код:
if (AVehicleData[vehicleid][Fuel] > 0)
    {
        if ((newkeys & KEY_SUBMISSION) && !(oldkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid))
        {
            if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                if(engine == 0 || lights == 0)
                {
                    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
                    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
                    SendClientMessage(playerid, COLOR_PINK, "[CAR] Engine Started!");
                }
                if(engine == 1 || lights == 1)
                {
                    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
                    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
                    SendClientMessage(playerid, COLOR_PINK, "[CAR] Engine stopped!");
                }
            }
        }
    }
But now it does both , i mean , i turn on the engine and it turn off because of the code . Any idea ?


Re: OnPlayerKeyStateChange Help - denNorske - 26.01.2013

It was weird it didnt work, as i tested it myself, pretty weird.

Anyways, in your code, you use only "if" on the
pawn Код:
if(engine == 1 || lights == 1)
Try setting it to "else if"
pawn Код:
else if(engine == 1 || lights == 1)
I have an idea to another code if that doesnt work. You'll find me on skype today.