SA-MP Forums Archive
OnPlayerEnterVehicle Bugg - 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: OnPlayerEnterVehicle Bugg (/showthread.php?tid=530724)



OnPlayerEnterVehicle Bugg - JordanSmith - 08.08.2014

Hey, When I enter a vehicle with my toys attached and they all deattached, How do I fix that?


Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
        Seatbelt[playerid] = 0;
        IsPlayerSteppingInVehicle[playerid] = vehicleid;
        if(PlayerCuffed[playerid] != 0) SetPVarInt( playerid, "ToBeEjected", 1 );
        if(GetPVarInt(playerid, "Injured") == 1) SetPVarInt(playerid, "ToBeEjected", 1);
        SetPVarInt(playerid, "LastWeapon", GetPlayerWeapon(playerid));
 
        new engine,lights,alarm,doors,bonnet,boot,objective;
        GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
        if(engine == VEHICLE_PARAMS_UNSET) switch(GetVehicleModel(vehicleid)) {
                case 509, 481, 510: VehicleFuel[vehicleid] = 100, arr_Engine{vehicleid} = 1, SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
                default: SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective), arr_Engine{vehicleid} = 0;
        }
 
    if(GetVehicleModel(vehicleid) == 519 && ispassenger == 1)
    {
        PutPlayerInVehicle(playerid, vehicleid, 1);
        TogglePlayerControllable(playerid, 1);
        InsideShamal[playerid] = vehicleid;
    }
    if(GetPVarInt(playerid, "Pizza") != 0 && !(IsAPizzaCar(vehicleid)))
        {
            new Float:slx, Float:sly, Float:slz;
                GetPlayerPos(playerid, slx, sly, slz);
                SetPlayerPos(playerid, slx, sly, slz+1.3);
                PlayerPlaySound(playerid, 1130, slx, sly, slz+1.3);
                RemovePlayerFromVehicle(playerid);
                NOPCheck(playerid);
                SendClientMessageEx(playerid, COLOR_WHITE, "You need to be in a PizzaBoy when delivering pizzas!");
                return 1;
        }
        if(!ispassenger)
        {
            SetPlayerArmedWeapon(playerid, 0);
                if(IsVIPcar(vehicleid))
                {
                    if(PlayerInfo[playerid][pDonateRank] == 0)
                        {
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz+1.3);
                                PlayerPlaySound(playerid, 1130, slx, sly, slz+1.3);
                            RemovePlayerFromVehicle(playerid);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not a VIP, this is a vehicle from the VIP Garage!");
                        }
                }
                else if(IsAPizzaCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pJob] != 21 && PlayerInfo[playerid][pJob2] != 21)
                    {
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz+1.3);
                                PlayerPlaySound(playerid, 1130, slx, sly, slz+1.3);
                            RemovePlayerFromVehicle(playerid);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not a Pizza Boy!");
                        }
                }
                else if(IsAnAmbulance(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 4||PlayerInfo[playerid][pLeader] == 4)
                        {
                            if(FDSAVehicles[13] == vehicleid && PlayerInfo[playerid][pRank] < 5)
                            {
                                RemovePlayerFromVehicle(playerid);
                                new Float:slx, Float:sly, Float:slz;
                                        GetPlayerPos(playerid, slx, sly, slz);
                                        SetPlayerPos(playerid, slx, sly, slz);
                                        NOPCheck(playerid);
                                        SendClientMessageEx(playerid, COLOR_WHITE, "Only ranks 5+ can drive this vehicle.");
                            }
                        }
                    else
                        {
                            SendClientMessageEx(playerid,COLOR_GREY,"   You are not in the FDSA!");
                                RemovePlayerFromVehicle(playerid);
                                new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                                NOPCheck(playerid);
                        }
                }
                else if(IsAnSADPSCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7)
                    {
                    }
                    else
                    {
                        RemovePlayerFromVehicle(playerid);
                        new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                        NOPCheck(playerid);
                        SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the SADPS!");
                    }
                }
                else if(IsATruckerCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pJob] == 20 || PlayerInfo[playerid][pJob2] == 20)
                        {
                                new string[128];
 
                                new truckcontents = TruckContents[vehicleid];
                                new truckcontentname[50];
                                if(truckcontents == 0)
                                { format(truckcontentname, sizeof(truckcontentname), "None"); }
                                else if(truckcontents >= 1 && truckcontents <= 3)
                                { format(truckcontentname, sizeof(truckcontentname), "{00F70C}Food & beverages");}
                                else if(truckcontents >= 4 && truckcontents <= 6)
                                { format(truckcontentname, sizeof(truckcontentname), "{00F70C}Clothing"); }
                                else if(truckcontents == 7)
                                { format(truckcontentname, sizeof(truckcontentname), "{00F70C}Legal materials"); }
                                else if(truckcontents >= 8 && truckcontents <= 10)
                                { format(truckcontentname, sizeof(truckcontentname), "{00F70C}24/7 items"); }
                                else if(truckcontents >= 11 && truckcontents <= 15)
                                { format(truckcontentname, sizeof(truckcontentname), "{FF0606}Illegal weapons"); }
                                else if(truckcontents >= 16 && truckcontents <= 20)
                                { format(truckcontentname, sizeof(truckcontentname), "{FF0606}Illegal drugs"); }
                                else if(truckcontents >= 21 && truckcontents <= 25)
                                { format(truckcontentname, sizeof(truckcontentname), "{FF0606}Illegal materials"); }
 
                                format(string, sizeof(string), "TRUCKER JOB: (Truck registration: %s %d) - (Content: %s{FFFF00})", GetVehicleName(vehicleid), vehicleid, truckcontentname);
                                SendClientMessageEx(playerid, COLOR_YELLOW, string);
 
                                if(IsACop(playerid) && truckcontents >= 11)
                                {
                                        SendClientMessageEx(playerid, COLOR_YELLOW, "TRUCKER JOB: To remove the illegal goods type /cleartruck near the Truck.");
                                }
                                if(truckcontents > 0 && TruckUsed[playerid] == INVALID_VEHICLE_ID)
                                {
                                        SendClientMessageEx(playerid, COLOR_YELLOW, "TRUCKER JOB: To deliver the goods type /hijacktruck as the driver.");
                                }
                                else if(TruckUsed[playerid] == INVALID_VEHICLE_ID)
                                {
                                SendClientMessageEx(playerid, COLOR_YELLOW, "TRUCKER JOB: To get goods type /loadtruck as the driver.");
                                }
                                else if(TruckUsed[playerid] == vehicleid && gPlayerCheckpointStatus[playerid] == CHECKPOINT_RETURNTRUCK)
                                {
                                        SendClientMessageEx(playerid, COLOR_YELLOW, "TRUCKER JOB: This is your Truck, you have not returned it to the docks yet for your pay.");
                                }
                                else if(TruckUsed[playerid] == vehicleid)
                                {
                                SendClientMessageEx(playerid, COLOR_YELLOW, "TRUCKER JOB: This is your Truck, you have not delivered your goods yet.");
                        }
                                else if(TruckUsed[playerid] != INVALID_VEHICLE_ID)
                                {
                                SendClientMessageEx(playerid, COLOR_YELLOW, "TRUCKER JOB: You are already on another delivery, type /cancel truck to cancel that delivery.");
                        }
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not a Trucker!");
                        }
                }
                else if(IsAnSASPCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the SFPD!");
                        }
                }
                else if(IsAnEPCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pDivision] == 2 || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pRank] >= 5)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the SFPD Executive Protection Division!");
                        }
                }
                else if(IsAnWPCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pMember] == 7)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                        SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the SASD!");
                        }
                }
                else if(IsANooseCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 13)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not part of the NOOSE!");
                        }
                }
                else if(IsATierraCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pRank] >= 2)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not Tierra Robada rank 2+!");
                        }
                }
                else if(IsATierraARCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pDivision] == 2)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the Tierra Robada Armed Forces Division!");
                        }
                }
                else if(IsATierraESCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pDivision] == 3)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the Tierra Robada Emergency Services Division!");
                        }
                }
                else if(IsAGovCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 6)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the Government Faction!");
                        }
                }
                else if(IsACopCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the LSPD!");
                        }
                }
                else if(IsAFBICar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the FBI!");
                        }
                }
                else if(vehicleid == 378 || vehicleid == 379)
                {
                    if((PlayerInfo[playerid][pMember] == 9||PlayerInfo[playerid][pLeader] == 9) && (PlayerInfo[playerid][pRank] >= 3))
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not R3+ San Andreas News.");
                        }
                }
                else if(IsAnNGAIRCar(vehicleid))
                {
                    if((PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11) && (PlayerInfo[playerid][pDivision] == 1 || PlayerInfo[playerid][pDivision] == 4))
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the SAAS AIR Division!");
                        }
                }
/*              else if(IsAnNGARMCar(vehicleid))
                {
                    if((PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11) && (PlayerInfo[playerid][pDivision] == 2 || PlayerInfo[playerid][pDivision] == 3 || PlayerInfo[playerid][pDivision] == 5 || PlayerInfo[playerid][pDivision] == 6))
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the SAAS ARM Division!");
                        }
                } */
                else if(IsAnNGCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the San Andreas Armed Services!");
                        }
                }
                else if(IsAnDOCCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 11||PlayerInfo[playerid][pLeader] == 11)
                        {
                        }
                    else
                        {
                                NOPCheck(playerid);
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the San Andreas Armed Services!");
                        }
                }
                else if(IsAnMPSCar(vehicleid))
                {
                    if(IsACop(playerid))
                    {
                    }
                    else
                    {
                        RemovePlayerFromVehicle(playerid);
                        new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                        NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You aren't in a LEO Faction.");
                    }
                }
                else if(IsACoastguardCar(vehicleid))
                {
                    if( ( PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4 ) || ( PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pDivision] == 3 ))
                        {
                        }
                        else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the Coastguard division!");
                        }
                }
                else if(IsANewsCar(vehicleid))
                {
                    if(PlayerInfo[playerid][pMember] == 9 ||PlayerInfo[playerid][pLeader] == 9)
                        {
                        }
                    else
                        {
                            RemovePlayerFromVehicle(playerid);
                            new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                            NOPCheck(playerid);
                            SendClientMessageEx(playerid, COLOR_WHITE, "You are not in the SANews!");
                        }
                }
                else if(IsAPlane(vehicleid))
                {
                        if(PlayerInfo[playerid][pFlyLic] != 1)
                        {
                                RemovePlayerFromVehicle(playerid);
                                new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                                NOPCheck(playerid);
                                SendClientMessageEx(playerid,COLOR_WHITE,"You don't have a pilot license!");
                        }
                }
                else if(IsAHelicopter(vehicleid))
                {
                    PlayerInfo[playerid][pAGuns][GetWeaponSlot(46)] = 46;
                        GivePlayerValidWeapon(playerid, 46, 60000);
                }
                else if(IsAnTaxi(vehicleid) || IsAnBus(vehicleid))
                {
                if(PlayerInfo[playerid][pJob] == 17 || PlayerInfo[playerid][pJob2] == 17 || PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10 || PlayerInfo[playerid][pTaxiLicense] == 1)
                        {
                        }
                    else
                        {
                        SendClientMessageEx(playerid, COLOR_WHITE,"You are not a Taxi/Bus Driver!");
                        RemovePlayerFromVehicle(playerid);
                        new Float:slx, Float:sly, Float:slz;
                                GetPlayerPos(playerid, slx, sly, slz);
                                SetPlayerPos(playerid, slx, sly, slz);
                    }
                }
        }
        else if(!IsPlayerInRangeOfVehicle(playerid, vehicleid, 7.5) || LockStatus[vehicleid] >= 1) { // G-bugging fix
                ClearAnimations(playerid);
        }
        return 1;
}