OnPlayerKeyStateChange Help
#1

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 ?
Reply
#2

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.
Reply
#3

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 ?
Reply
#4

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 .
Reply
#5

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!
Reply
#6

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 ?
Reply
#7

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)