Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #define PARKED 0
- #define DRIVE 1
- #define SLOT 1 //By default uses slot 1, change it if you need slot 1 for other thing.
- #define MSGCASH_COLOR 0x44cc22ff
- #define MSGSUCC_COLOR 0x55ffaaff
- #define MSGFAIL_COLOR 0xff55aaff
- #define MSGCOMM_COLOR 0x55aaffff
- #define MSGINFO_COLOR 0xccff99ff
- #define MSGDBUG_COLOR 0xaa5555ff
- #define MSGCMDS_COLOR 0xafafafff
- #define MSGTITL_COLOR 0xcfcfcfff
- enum VehicleInf
- {
- pDriver,
- pPassenger,
- BeltOn,
- MPH,
- KMH,
- pSeat,
- pVehID,
- pStick,
- VehFroze,
- Engine,
- Alarm,
- Doors,
- };
- new VehicleInfo[MAX_PLAYERS][VehicleInf];
- new LightPwr[MAX_VEHICLES];
- new Flasher[MAX_VEHICLES];
- new FlasherState[MAX_VEHICLES];
- new FlashTimer;
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Seatbelt system by willsuckformoney");
- print("--------------------------------------\n");
- SetTimer("Update",500,true);
- for (new x=0; x<MAX_VEHICLES; x++)
- {
- LightPwr[x]=1;
- Flasher[x]=0;
- FlasherState[x]=0;
- }
- FlashTimer = SetTimer("FlasherFunc",100,1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- KillTimer(FlashTimer);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetPVarInt(playerid,"Alive",0);
- VehicleInfo[playerid][pDriver] = 0;
- VehicleInfo[playerid][pPassenger] = 0;
- VehicleInfo[playerid][BeltOn] = 0;
- VehicleInfo[playerid][MPH] = 0;
- VehicleInfo[playerid][KMH] = 0;
- VehicleInfo[playerid][pSeat] = false;
- VehicleInfo[playerid][pVehID] = false;
- VehicleInfo[playerid][pStick] = 0;
- VehicleInfo[playerid][VehFroze] = 1;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPVarInt(playerid,"Alive",1);
- VehicleInfo[playerid][pDriver] = 0;
- VehicleInfo[playerid][pPassenger] = 0;
- VehicleInfo[playerid][BeltOn] = 0;
- VehicleInfo[playerid][MPH] = 0;
- VehicleInfo[playerid][KMH] = 0;
- VehicleInfo[playerid][pSeat] = false;
- VehicleInfo[playerid][pVehID] = false;
- VehicleInfo[playerid][pStick] = 0;
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- SetPVarInt(playerid,"Alive",0);
- VehicleInfo[playerid][pDriver] = 0;
- VehicleInfo[playerid][pPassenger] = 0;
- VehicleInfo[playerid][BeltOn] = 0;
- VehicleInfo[playerid][MPH] = 0;
- VehicleInfo[playerid][KMH] = 0;
- VehicleInfo[playerid][pSeat] = false;
- VehicleInfo[playerid][pVehID] = false;
- VehicleInfo[playerid][pStick] = 0;
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_SECONDARY_ATTACK)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- if(VehicleInfo[playerid][VehFroze] == 1)
- {
- RemovePlayerFromVehicle(playerid);
- }
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- if(VehicleInfo[playerid][VehFroze] == 1)
- {
- TogglePlayerControllable(playerid,false);
- SendClientMessage(playerid,MSGCOMM_COLOR,"/stick 1 to put the car in Drive.");
- }
- }
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- VehicleInfo[playerid][pDriver] = 1; VehicleInfo[playerid][pPassenger] = 0;
- SendClientMessage(playerid,MSGCOMM_COLOR,"Buckle up! Its the law. (( /seatbelt ))");
- }
- }
- if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- VehicleInfo[playerid][pDriver] = 0; VehicleInfo[playerid][pPassenger] = 1;
- SendClientMessage(playerid,MSGCOMM_COLOR,"Buckle up! Its the law. (( /seatbelt ))");
- }
- }
- if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
- {
- VehicleInfo[playerid][pDriver] = 0; VehicleInfo[playerid][pPassenger] = 0;
- TogglePlayerControllable(playerid,true);
- }
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- if (LightPwr[vehicleid] == 0)
- {
- new panels,doors,lights,tires;
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
- }
- else
- {
- new panels,doors,lights,tires;
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
- }
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- Flasher[vehicleid] = 0;
- if (LightPwr[vehicleid] == 0)
- {
- new panels,doors,lights,tires;
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
- }
- else
- {
- new panels,doors,lights,tires;
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
- }
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- if (LightPwr[vehicleid] == 0)
- {
- new panels,doors,lights,tires;
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
- }
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- if (LightPwr[vehicleid] == 0)
- {
- new panels,doors,lights,tires;
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
- }
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- if (LightPwr[vehicleid] == 0)
- {
- new panels,doors,lights,tires;
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
- }
- return 1;
- }
- public OnVehicleDamageStatusUpdate(vehicleid,playerid)
- {
- new Float:health;
- if(IsPlayerInAnyVehicle(playerid))
- {
- if(VehicleInfo[playerid][BeltOn] == 0)
- {
- if(GetPlayerSpeed(playerid) >= 10)
- {
- GetPlayerHealth(playerid,health);
- SetPlayerHealth(playerid,health-17*3/6);
- }
- }
- }
- return 1;
- }
- CMD:systemhelp(playerid,params[])
- {
- SendClientMessage(playerid,MSGINFO_COLOR,"/lightsflashoff - Flash your head lights like a cop cars.");
- SendClientMessage(playerid,MSGINFO_COLOR,"/lightsflash - Stop flashing your head lights - regular head lights.");
- SendClientMessage(playerid,MSGINFO_COLOR,"/lightson - Turn on your lights to see like at night.");
- SendClientMessage(playerid,MSGINFO_COLOR,"/lightswat - One light on.");
- SendClientMessage(playerid,MSGINFO_COLOR,"/lightsoff - Turn your lights off.");
- return 1;
- }
- CMD:lightsoff(playerid,params[])
- {
- new vehicleid,panels,doors,lights,tires;
- vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
- LightPwr[vehicleid] = 0;
- Flasher[vehicleid] = 0;
- return 1;
- }
- CMD:lightswat(playerid,params[])
- {
- new vehicleid,panels,doors,lights,tires;
- vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 3, tires);
- LightPwr[vehicleid] = 1;
- Flasher[vehicleid] = 0;
- return 1;
- }
- CMD:lightson(playerid,params[])
- {
- new vehicleid,panels,doors,lights,tires;
- vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
- LightPwr[vehicleid] = 1;
- Flasher[vehicleid] = 0;
- return 1;
- }
- CMD:lightsflash(playerid,params[])
- {
- new vehicleid,panels,doors,lights,tires;
- vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- Flasher[vehicleid] = 1;
- return 1;
- }
- CMD:lightsflashoff(playerid,params[])
- {
- new vehicleid,panels,doors,lights,tires;
- vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
- if (LightPwr[vehicleid] == 1)
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 0, tires);
- else
- UpdateVehicleDamageStatus(vehicleid, panels, doors, 5, tires);
- Flasher[vehicleid] = 0;
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 171)
- {
- if(response)
- {
- new Float:x,Float:y,Float:z,Float:ang;
- SetVehicleNumberPlate(GetPlayerVehicleID(playerid), inputtext);
- GetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
- GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
- SetVehicleToRespawn(GetPlayerVehicleID(playerid));
- SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
- PutPlayerInVehicle(playerid,GetPlayerVehicleID(playerid),0);
- SetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
- }
- }
- return 1;
- }
- //
- forward Update(playerid);
- public Update(playerid)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- VehicleInfo[playerid][pSeat] = GetPlayerVehicleSeat(playerid);
- VehicleInfo[playerid][pVehID] = GetPlayerVehicleID(playerid);
- }
- if(!IsPlayerInAnyVehicle(playerid))
- {
- if(VehicleInfo[playerid][BeltOn] == 1)
- {
- SendClientMessage(playerid,MSGFAIL_COLOR,"You cannot leave your car with your seatbelt on. (( /seatbelt ))");
- PutPlayerInVehicle(playerid,VehicleInfo[playerid][pVehID],VehicleInfo[playerid][pSeat]);
- }
- }
- if(IsPlayerAlive(playerid))
- {
- new Float:Health;
- GetPlayerHealth(playerid,Health);
- SetPlayerHealth(playerid,Health+0.25);
- }
- if(IsPlayerInAnyVehicle(playerid))
- {
- if(VehicleInfo[playerid][VehFroze] == 1)
- {
- TogglePlayerControllable(playerid,false);
- } else return TogglePlayerControllable(playerid,true);
- }
- SetWorldTime(24);
- SetPlayerTime(playerid,24,0);
- return 1;
- }
- stock IsPlayerAlive(playerid)
- {
- if(GetPVarInt(playerid, "Alive") == 1) return 1;
- return 0;
- }
- stock IsABike(vehicleid) //Made by me :D
- {
- new result;
- new model = GetVehicleModel(vehicleid);
- switch(model)
- {
- case 509, 481, 510, 462, 448, 581, 522, 461, 521, 523, 463, 586, 468, 471: result = model;
- default: result = 0;
- }
- return result;
- }
- stock GetPlayerSpeed(playerid) //MPH
- {
- new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
- vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
- final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*85.4166672;
- final_speed_int = floatround(final_speed,floatround_round);
- return VehicleInfo[playerid][MPH] = final_speed_int;
- }
- stock GetPlayerSpeedEx(playerid) //KMH
- {
- new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
- vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
- final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667;
- final_speed_int = floatround(final_speed,floatround_round);
- return VehicleInfo[playerid][KMH] = final_speed_int;
- }
- forward FlasherFunc();
- public FlasherFunc() {
- for (new p=0; p<MAX_PLAYERS; p++)
- {
- if (IsPlayerInAnyVehicle(p) && IsPlayerConnected(p) && !IsPlayerNPC(p))
- {
- new id;
- new panelsx,doorsx,lightsx,tiresx;
- id = GetPlayerVehicleID(p);
- if (Flasher[id] == 1)
- {
- if (FlasherState[id] == 1)
- {
- GetVehicleDamageStatus(id,panelsx,doorsx,lightsx,tiresx);
- UpdateVehicleDamageStatus(id, panelsx, doorsx, 4, tiresx);
- FlasherState[id] = 0;
- }
- else {
- GetVehicleDamageStatus(id,panelsx,doorsx,lightsx,tiresx);
- UpdateVehicleDamageStatus(id, panelsx, doorsx, 1, tiresx);
- FlasherState[id] = 1;
- }
- }
- }
- }
- return 1;
- }
- stock DelPrint(string1[])
- {
- strmid(string1, string1, 0, strlen(string1)-1, 255);
- //printf("%s", string1);
- return 1;
- }
- /*
- * First version released by mike, this one created by DracoBlue
- * Has also a fix to use "-" and "+" in the beginning of the number.
- */
- stock IsNumeric(const string[]) {
- new length=strlen(string);
- if (length==0) return false;
- for (new i = 0; i < length; i++) {
- if (
- (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
- || (string[i]=='-' && i!=0) // A '-' but not at first.
- || (string[i]=='+' && i!=0) // A '+' but not at first.
- ) return false;
- }
- if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment