09.11.2011, 14:49
Onplayerenter:
OnplayerExit
Код:
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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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(IsAnSASDCar(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_GRAD2, "You are not in the SASD!"); } } 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_GRAD2, "You are not a Trucker!"); } } else if(IsAnSFPDCar(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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GRAD2, "You are not R3+ SANews."); } } 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_GRAD2, "You are not in the NG 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_GRAD2, "You are not in the NG 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_GRAD2, "You are not in the National Guard!"); } } 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_GRAD2, "You are not in the National Guard!"); } } 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_GRAD2, "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_GRAD2, "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_GRAD2, "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_GREY,"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_GREY," 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) { ClearAnimations(playerid); } return 1;
Код:
public OnPlayerExitVehicle(playerid, vehicleid) { if (GetPlayerState(playerid) == 1) { return 1; } switch(Seatbelt[playerid]) { case 1: { new string[128]; if(IsABike(vehicleid)) { SendClientMessageEx(playerid, COLOR_WHITE, "You have taken off your helmet."); format(string, sizeof(string), "* %s reaches for their helmet, and takes it off.", GetPlayerNameEx(playerid)); } else { SendClientMessageEx(playerid, COLOR_WHITE, "You have taken off your seatbelt."); format(string, sizeof(string), "* %s reaches for their seatbelt, and unbuckles it.", GetPlayerNameEx(playerid)); } ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); Seatbelt[playerid] = 0; } } if(GetPVarInt(playerid, "rccam") == 1) { DestroyVehicle(GetPVarInt(playerid, "rcveh")); SetPlayerPos(playerid, GetPVarFloat(playerid, "rcX"), GetPVarFloat(playerid, "rcY"), GetPVarFloat(playerid, "rcZ")); DeletePVar(playerid, "rccam"); KillTimer(GetPVarInt(playerid, "rccamtimer")); } return 1; }