SA-MP Forums Archive
On Player Enter Vehicle Not Working? - 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: On Player Enter Vehicle Not Working? (/showthread.php?tid=327866)



On Player Enter Vehicle Not Working? - Robert_Crawford - 22.03.2012

Hey guys i have text draws that show if the engine is on or off and the for the trunk to. When ever if leave the engine on in another car and hop in a different one it still shows the engine as on? Here is my code.

OnPlayerEnterVehicle
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new veh = GetPlayerVehicleID(playerid);
    if(EngineStatus[playerid] == 1) {
        SendClientMessage(playerid,COLOR_HOTORANGE," ------------------------------------------------------------");
        SendClientMessage(playerid, 0xFFFFFFAA, "Vehicle is on, use [/v engine] to turn it {E31919}off!");
        SendClientMessage(playerid, 0xFFFFFFAA, "You can also use [/v] to view your other options.");
        SendClientMessage(playerid,COLOR_HOTORANGE," ------------------------------------------------------------");
    }
    else if(EngineStatus[playerid] == 0) {
        SendClientMessage(playerid,COLOR_HOTORANGE," ------------------------------------------------------------");
        SendClientMessage(playerid, 0xFFFFFFAA, "Vehicle is off, use [/v engine] to turn it {2F991A}on!");
        SendClientMessage(playerid, 0xFFFFFFAA, "You can also use [/v] to view your other options.");
        SendClientMessage(playerid,COLOR_HOTORANGE," ------------------------------------------------------------");
    }
                if(LightsStatus[playerid] == 0)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);

                }
                if(LightsStatus[playerid] == 1)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
                }

    return 1;
}
And the command
pawn Код:
CMD:v(playerid, params[])
{
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new veh = GetPlayerVehicleID(playerid);
    if(strcmp(params, "Engine", true) == 0)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            if(veh != INVALID_VEHICLE_ID)
            {
                if(EngineStatus[playerid] == 0)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
                    EngineStatus[playerid] = 1;
                    TextDrawShowForPlayer(playerid, VEngineOn);
                    TextDrawHideForPlayer(playerid, VEngineOff);
                    SendClientMessage(playerid, 0xFFFFFFAA, "You've turned the vehicle's engine {2F991A}on!");
                }
                else if(EngineStatus[playerid] == 1)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
                    EngineStatus[playerid] = 0;
                    TextDrawShowForPlayer(playerid, VEngineOff);
                    TextDrawHideForPlayer(playerid, VEngineOn);
                    SendClientMessage(playerid, 0xFFFFFFAA, "You've turned the vehicle's engine {E31919}off!");
                }
            }
        }
        else {
        SendClientMessage(playerid, 0x00FF00FF, "{E31919}You are not in a vehicle!");
        }
    }
    else if(strcmp(params, "Lights", true) == 0)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            if(veh != INVALID_VEHICLE_ID)
            {
                if(LightsStatus[playerid] == 0)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
                    LightsStatus[playerid] = 1;
                    TextDrawShowForPlayer(playerid, VLightsOn);
                    TextDrawHideForPlayer(playerid, VLightsOff);
                    SendClientMessage(playerid, 0xFFFFFFAA, "You've turned the vehicle's lights {2F991A}on!");
                }
                else if(LightsStatus[playerid] == 1)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
                    LightsStatus[playerid] = 0;
                    TextDrawShowForPlayer(playerid, VLightsOff);
                    TextDrawHideForPlayer(playerid, VLightsOn);
                    SendClientMessage(playerid, 0xFFFFFFAA, "You've turned the vehicle's lights {E31919}off!");
                }
            }
        }
        else {
        SendClientMessage(playerid, 0x00FF00FF, "{E31919}You are not in a vehicle!");
        }
    }
    else if(strcmp(params, "Doors", true) == 0)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            if(veh != INVALID_VEHICLE_ID)
            {
                if(DoorsStatus[playerid] == 0)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
                    DoorsStatus[playerid] = 1;
                    SendClientMessage(playerid, 0xFFFFFFAA, "The vehicle's doors are now {2F991A}open!");
                }
                else if(DoorsStatus[playerid] == 1)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,lights,alarm,VEHICLE_PARAMS_OFF,bonnet,boot,objective);
                    DoorsStatus[playerid] = 0;
                    SendClientMessage(playerid, 0xFFFFFFAA, "The vehicle's doors are now {E31919}closed!");
                }
            }
        }
        else {
        SendClientMessage(playerid, 0x00FF00FF, "{E31919}You are not in a vehicle!");
        }
    }
    else if(strcmp(params, "Hood", true) == 0)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            if(veh != INVALID_VEHICLE_ID)
            {
                if(BonnetStatus[playerid] == 0)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,lights,alarm,doors,VEHICLE_PARAMS_ON,boot,objective);
                    BonnetStatus[playerid] = 1;
                    SendClientMessage(playerid, 0xFFFFFFAA, "The vehicle's hood is now {2F991A}open!");
                }
                else if(BonnetStatus[playerid] == 1)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,lights,alarm,doors,VEHICLE_PARAMS_OFF,boot,objective);
                    BonnetStatus[playerid] = 0;
                    SendClientMessage(playerid, 0xFFFFFFAA, "The vehicle's hood is now {E31919}closed!");
                }
            }
        }
        else {
        SendClientMessage(playerid, 0x00FF00FF, "{E31919}You are not in a vehicle!");
        }
    }
    else if(strcmp(params, "Trunk", true) == 0)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            if(veh != INVALID_VEHICLE_ID)
            {
                if(BootStatus[playerid] == 0)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,VEHICLE_PARAMS_ON,objective);
                    BootStatus[playerid] = 1;
                    SendClientMessage(playerid, 0xFFFFFFAA, "The vehicle's trunk is now {2F991A}open!");
                    TextDrawShowForPlayer(playerid, VTrunkOpen);
                    TextDrawHideForPlayer(playerid, VTrunkClosed);
                }
                else if(BootStatus[playerid] == 1)
                {
                    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,VEHICLE_PARAMS_OFF,objective);
                    BootStatus[playerid] = 0;
                    TextDrawShowForPlayer(playerid, VTrunkClosed);
                    TextDrawHideForPlayer(playerid, VTrunkOpen);
                    SendClientMessage(playerid, 0xFFFFFFAA, "The vehicle's trunk is now {E31919}closed!");
                }
            }
        }
        else {
        SendClientMessage(playerid, 0x00FF00FF, "{E31919}You are not in a vehicle!");
        }
    }
    else SendClientMessage(playerid, 0xFFFFFFAA, "SYNTAX: /v[function]"),
    SendClientMessage(playerid, 0xFFFFFFAA, "Functions: Engine, Lights, Doors, Hood, Trunk");
    return 1;
}



Re: On Player Enter Vehicle Not Working? - Skribblez - 22.03.2012

use this callback:

pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}
under it, hide the textdraw for the player. it's self explanatory - if the player exits the vehicle.


Re: On Player Enter Vehicle Not Working? - Robert_Crawford - 22.03.2012

Well i already have
pawn Код:
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        TextDrawShowForPlayer(playerid, VBlackBox1);
        TextDrawShowForPlayer(playerid, VBlackBox2);
        TextDrawShowForPlayer(playerid, VBlackBox3);
        TextDrawShowForPlayer(playerid, VEngine);
        if(EngineStatus[playerid] == 1) {
            TextDrawShowForPlayer(playerid, VEngineOn);
        }
        if(EngineStatus[playerid] == 0) {
            TextDrawShowForPlayer(playerid, VEngineOff);
        }
        TextDrawShowForPlayer(playerid, VSpeedMPH);
        TextDrawShowForPlayer(playerid, VTrunk);
        if(BootStatus[playerid] == 1) {
            TextDrawShowForPlayer(playerid, VTrunkOpen);
        }
        if(BootStatus[playerid] == 0) {
            TextDrawShowForPlayer(playerid, VTrunkClosed);
        }
        TextDrawShowForPlayer(playerid, VLights);
        if(LightsStatus[playerid] == 1) {
            TextDrawShowForPlayer(playerid, VLightsOn);
        }
        if(LightsStatus[playerid] == 0) {
            TextDrawShowForPlayer(playerid, VLightsOff);
        }
    }


    else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
    {
        TextDrawHideForPlayer(playerid, VBlackBox1);
        TextDrawHideForPlayer(playerid, VBlackBox2);
        TextDrawHideForPlayer(playerid, VBlackBox3);
        TextDrawHideForPlayer(playerid, VEngine);
        TextDrawHideForPlayer(playerid, VEngineOn);
        TextDrawHideForPlayer(playerid, VEngineOff);
        TextDrawHideForPlayer(playerid, VSpeedMPH);
        TextDrawHideForPlayer(playerid, VTrunk);
        TextDrawHideForPlayer(playerid, VTrunkOpen);
        TextDrawHideForPlayer(playerid, VTrunkClosed);
        TextDrawHideForPlayer(playerid, VLights);
        TextDrawHideForPlayer(playerid, VLightsOn);
        TextDrawHideForPlayer(playerid, VLightsOff);
    }