Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // SAMP THREAD : http://forum.sa-mp.com/showthread.php?p=2917301
- //Textdraws generated by Zamaroht's TextDraw Editor.
- // Wanna edit it, keep my name on it ;).
- #include <a_samp>
- #define COLOR_RED 0xAA3333AA
- #define COLOR_INDIGO 0x4B00B0AA
- #define SpeedCheck(%0,%1,%2,%3,%4) floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1) ) *%3*1.6)
- // ^^ Made by someone ( I don't know who ) Thanks to him btw :D !
- #define FILTERSCRIPT
- #define TCangear 5000 // 5000 ms ( 5 s ) that you need to wait before gearing up.
- #define TDCangear 2000 // 2000 ms ( 2 s ) that you need to wait before gearing down.
- new Text:Textdraw0;
- new Text:Textdraw1;
- new Text:Textdraw2;
- new Text:Textdraw3;
- new Text:Textdraw5;
- new Text:Textdraw6;
- new Text:Textdraw7;
- new Text:Textdraw8;
- new Text:Textdraw9;
- new PlayerGear[MAX_PLAYERS] = 1;
- new PlayerCGear[MAX_PLAYERS] = 0;
- new PlayerCDGear[MAX_PLAYERS] = 0;
- public OnFilterScriptInit()
- {
- print("[FS]Gear by golimad Loaded.");
- print("---------Enjoy.");
- Textdraw0 = TextDrawCreate(567.000000, 280.000000, "1 2");
- TextDrawBackgroundColor(Textdraw0, 255);
- TextDrawFont(Textdraw0, 3);
- TextDrawLetterSize(Textdraw0, 0.500000, 2.200000);
- TextDrawColor(Textdraw0, -1);
- TextDrawSetOutline(Textdraw0, 1);
- TextDrawSetProportional(Textdraw0, 0);
- TextDrawUseBox(Textdraw0, 1);
- TextDrawBoxColor(Textdraw0, 255);
- TextDrawTextSize(Textdraw0, 620.000000, 0.000000);
- Textdraw1 = TextDrawCreate(567.000000, 300.000000, "3 4");
- TextDrawBackgroundColor(Textdraw1, 255);
- TextDrawFont(Textdraw1, 3);
- TextDrawLetterSize(Textdraw1, 0.500000, 2.000000);
- TextDrawColor(Textdraw1, -1);
- TextDrawSetOutline(Textdraw1, 1);
- TextDrawSetProportional(Textdraw1, 0);
- TextDrawUseBox(Textdraw1, 1);
- TextDrawBoxColor(Textdraw1, 255);
- TextDrawTextSize(Textdraw1, 620.000000, 0.000000);
- Textdraw2 = TextDrawCreate(567.000000, 318.000000, "5");
- TextDrawBackgroundColor(Textdraw2, 255);
- TextDrawFont(Textdraw2, 3);
- TextDrawLetterSize(Textdraw2, 0.500000, 2.000000);
- TextDrawColor(Textdraw2, -1);
- TextDrawSetOutline(Textdraw2, 0);
- TextDrawSetProportional(Textdraw2, 0);
- TextDrawSetShadow(Textdraw2, 0);
- TextDrawUseBox(Textdraw2, 1);
- TextDrawBoxColor(Textdraw2, 255);
- TextDrawTextSize(Textdraw2, 592.000000, 0.000000);
- Textdraw3 = TextDrawCreate(571.000000, 265.000000, "GEAR");
- TextDrawBackgroundColor(Textdraw3, 255);
- TextDrawFont(Textdraw3, 1);
- TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
- TextDrawColor(Textdraw3, -1);
- TextDrawSetOutline(Textdraw3, 1);
- TextDrawSetProportional(Textdraw3, 1);
- Textdraw5 = TextDrawCreate(571.000000, 286.000000, "°");
- TextDrawBackgroundColor(Textdraw5, 255);
- TextDrawFont(Textdraw5, 1);
- TextDrawLetterSize(Textdraw5, 0.500000, 1.000000);
- TextDrawColor(Textdraw5, 65535);
- TextDrawSetOutline(Textdraw5, 0);
- TextDrawSetProportional(Textdraw5, 1);
- TextDrawSetShadow(Textdraw5, 1);
- Textdraw6 = TextDrawCreate(589.500000, 286.000000, "°");
- TextDrawBackgroundColor(Textdraw6, 255);
- TextDrawFont(Textdraw6, 1);
- TextDrawLetterSize(Textdraw6, 0.500000, 1.000000);
- TextDrawColor(Textdraw6, 65535);
- TextDrawSetOutline(Textdraw6, 0);
- TextDrawSetProportional(Textdraw6, 1);
- TextDrawSetShadow(Textdraw6, 1);
- Textdraw7 = TextDrawCreate(271.000000, 305.000000, "°");
- TextDrawBackgroundColor(Textdraw7, 255);
- TextDrawFont(Textdraw7, 1);
- TextDrawLetterSize(Textdraw7, 0.500000, 1.000000);
- TextDrawColor(Textdraw7, 65535);
- TextDrawSetOutline(Textdraw7, 0);
- TextDrawSetProportional(Textdraw7, 1);
- TextDrawSetShadow(Textdraw7, 1);
- Textdraw8 = TextDrawCreate(589.500000, 305.000000, "°");
- TextDrawBackgroundColor(Textdraw8, 255);
- TextDrawFont(Textdraw8, 1);
- TextDrawLetterSize(Textdraw8, 0.500000, 1.000000);
- TextDrawColor(Textdraw8, 65535);
- TextDrawSetOutline(Textdraw8, 0);
- TextDrawSetProportional(Textdraw8, 1);
- TextDrawSetShadow(Textdraw8, 1);
- Textdraw9 = TextDrawCreate(571.000000, 323.000000, "°");
- TextDrawBackgroundColor(Textdraw9, 255);
- TextDrawFont(Textdraw9, 1);
- TextDrawLetterSize(Textdraw9, 0.500000, 1.000000);
- TextDrawColor(Textdraw9, 65535);
- TextDrawSetOutline(Textdraw9, 0);
- TextDrawSetProportional(Textdraw9, 1);
- TextDrawSetShadow(Textdraw9, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- TextDrawHideForAll(Textdraw0);
- TextDrawDestroy(Textdraw0);
- TextDrawHideForAll(Textdraw1);
- TextDrawDestroy(Textdraw1);
- TextDrawHideForAll(Textdraw2);
- TextDrawDestroy(Textdraw2);
- TextDrawHideForAll(Textdraw3);
- TextDrawDestroy(Textdraw3);
- TextDrawHideForAll(Textdraw5);
- TextDrawDestroy(Textdraw5);
- TextDrawHideForAll(Textdraw6);
- TextDrawDestroy(Textdraw6);
- TextDrawHideForAll(Textdraw7);
- TextDrawDestroy(Textdraw7);
- TextDrawHideForAll(Textdraw8);
- TextDrawDestroy(Textdraw8);
- TextDrawHideForAll(Textdraw9);
- TextDrawDestroy(Textdraw9);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- TextDrawHideForPlayer(playerid, Textdraw0);
- TextDrawHideForPlayer(playerid, Textdraw1);
- TextDrawHideForPlayer(playerid, Textdraw2);
- TextDrawHideForPlayer(playerid, Textdraw3);
- TextDrawHideForPlayer(playerid, Textdraw5);
- TextDrawHideForPlayer(playerid, Textdraw6);
- TextDrawHideForPlayer(playerid, Textdraw7);
- TextDrawHideForPlayer(playerid, Textdraw8);
- TextDrawHideForPlayer(playerid, Textdraw9);
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if (newkeys & KEY_YES)
- {
- if (IsPlayerInAnyVehicle(playerid) && !IsVehiclePlane(GetPlayerVehicleID(playerid)))
- {
- new vehicleid;
- vehicleid = GetPlayerVehicleID(playerid);
- if (PlayerGear[playerid] == 5 || IsVehicleDrivingBackwards(vehicleid) || PlayerCGear[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_RED, "You can't gear up.");
- return 1;
- }
- else if (PlayerGear[playerid] == 1)
- {
- PlayerCGear[playerid] = 0;
- SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
- PlayerGear[playerid]++;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw6); //Gear 2
- return 1;
- }
- else if (PlayerGear[playerid] == 2)
- {
- PlayerCGear[playerid] = 0;
- SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
- PlayerGear[playerid]++;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw7); //Gear 3
- return 1;
- }
- else if (PlayerGear[playerid] == 3)
- {
- PlayerCGear[playerid] = 0;
- SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
- PlayerGear[playerid]++;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw8); //Gear 4
- return 1;
- }
- else if (PlayerGear[playerid] == 4)
- {
- PlayerCGear[playerid] = 0;
- SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
- PlayerGear[playerid]++;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw9); //Gear 5
- AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
- SetTimerEx("Addnos", 2000, false, "i", playerid);
- return 1;
- }
- }
- }
- if (newkeys & KEY_NO)
- {
- if (IsPlayerInAnyVehicle(playerid) && !IsVehiclePlane(GetPlayerVehicleID(playerid)))
- {
- new vehicleid;
- vehicleid = GetPlayerVehicleID(playerid);
- if (PlayerGear[playerid] == 1 || IsVehicleDrivingBackwards(vehicleid) || PlayerCDGear[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_INDIGO, "You can't gear down.");
- return 1;
- }
- else if (PlayerGear[playerid] == 2)
- {
- SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
- PlayerCDGear[playerid] = 0;
- PlayerGear[playerid]--;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw5); //Gear 1
- return 1;
- }
- else if (PlayerGear[playerid] == 3)
- {
- SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
- PlayerCDGear[playerid] = 0;
- PlayerGear[playerid]--;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw6); //Gear 2
- return 1;
- }
- else if (PlayerGear[playerid] == 4)
- {
- SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
- PlayerCDGear[playerid] = 0;
- PlayerGear[playerid]--;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw7); //Gear 3
- return 1;
- }
- else if (PlayerGear[playerid] == 5)
- {
- SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
- PlayerCDGear[playerid] = 0;
- PlayerGear[playerid]--;
- hideallgears(playerid);
- TextDrawShowForPlayer(playerid, Textdraw8); //Gear 4
- return 1;
- }
- }
- }
- return 1;
- }
- forward PlayerCTGear(playerid);
- public PlayerCTGear(playerid)
- {
- PlayerCGear[playerid] = 1;
- }
- forward PlayerCDTGear(playerid);
- public PlayerCDTGear(playerid)
- {
- PlayerCDGear[playerid] = 1;
- }
- forward Addnos(playerid);
- public Addnos(playerid)
- {
- RemoveVehicleComponent(GetPlayerVehicleID(playerid),1010);
- }
- stock hideallgears(playerid)
- {
- TextDrawHideForPlayer(playerid, Textdraw5);
- TextDrawHideForPlayer(playerid, Textdraw6);
- TextDrawHideForPlayer(playerid, Textdraw7);
- TextDrawHideForPlayer(playerid, Textdraw8);
- TextDrawHideForPlayer(playerid, Textdraw9);
- }
- IsVehiclePlane(vehicleid)
- {
- switch(GetVehicleModel(vehicleid)) {
- case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 425, 417, 487, 488, 497, 563, 447, 469: return 1;
- }
- return 0;
- }
- public OnPlayerUpdate(playerid)
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !IsVehiclePlane(GetPlayerVehicleID(playerid)))
- {
- if(PlayerGear[playerid] == 5)
- {
- return 1;
- }
- if(GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) > (PlayerGear[playerid] * 35))
- {
- if(!IsVehicleDrivingBackwards(GetPlayerVehicleID(playerid)))
- {
- if(PlayerGear[playerid] == -1) return ModifyVehicleSpeed(GetPlayerVehicleID(playerid), - GetVehicleSpeed(GetPlayerVehicleID(playerid), 0));
- }
- new newspeed;
- newspeed = GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) - (PlayerGear[playerid] * 35);
- ModifyVehicleSpeed(GetPlayerVehicleID(playerid), -newspeed);
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER && !IsVehiclePlane(GetPlayerVehicleID(playerid))) // Player entered a vehicle as a driver
- {
- PlayerCGear[playerid] = 1;
- PlayerCDGear[playerid] = 1;
- PlayerGear[playerid] = 1;
- TextDrawShowForPlayer(playerid, Textdraw0);
- TextDrawShowForPlayer(playerid, Textdraw1);
- TextDrawShowForPlayer(playerid, Textdraw2);
- TextDrawShowForPlayer(playerid, Textdraw3);
- TextDrawShowForPlayer(playerid, Textdraw5);
- }
- else if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
- {
- PlayerCGear[playerid] = 1;
- PlayerCDGear[playerid] = 1;
- PlayerGear[playerid] = 1;
- TextDrawHideForPlayer(playerid, Textdraw0);
- TextDrawHideForPlayer(playerid, Textdraw1);
- TextDrawHideForPlayer(playerid, Textdraw2);
- TextDrawHideForPlayer(playerid, Textdraw3);
- TextDrawHideForPlayer(playerid, Textdraw5);
- TextDrawHideForPlayer(playerid, Textdraw6);
- TextDrawHideForPlayer(playerid, Textdraw7);
- TextDrawHideForPlayer(playerid, Textdraw8);
- TextDrawHideForPlayer(playerid, Textdraw9);
- }
- return 1;
- }
- stock ModifyVehicleSpeed(vehicleid,mph) //Miles Per Hour
- {
- new Float:Vx,Float:Vy,Float:Vz,Float:DV,Float:multiple;
- GetVehicleVelocity(vehicleid,Vx,Vy,Vz);
- DV = floatsqroot(Vx*Vx + Vy*Vy + Vz*Vz);
- if(DV > 0) //Directional velocity must be greater than 0 (display strobes if 0)
- {
- multiple = ((mph + DV * 100) / (DV * 100)); //Multiplying DV by 100 calculates speed in MPH
- return SetVehicleVelocity(vehicleid,Vx*multiple,Vy*multiple,Vz*multiple);
- }
- return 0;
- }
- stock IsVehicleDrivingBackwards(vehicleid) // By Joker
- {
- new
- Float:Float[3]
- ;
- if(GetVehicleVelocity(vehicleid, Float[1], Float[2], Float[0]))
- {
- GetVehicleZAngle(vehicleid, Float[0]);
- if(Float[0] < 90)
- {
- if(Float[1] > 0 && Float[2] < 0) return true;
- }
- else if(Float[0] < 180)
- {
- if(Float[1] > 0 && Float[2] > 0) return true;
- }
- else if(Float[0] < 270)
- {
- if(Float[1] < 0 && Float[2] > 0) return true;
- }
- else if(Float[1] < 0 && Float[2] < 0) return true;
- }
- return false;
- }
- stock GetVehicleSpeed(vehicleid, get3d)
- {
- new Float:x, Float:y, Float:z;
- GetVehicleVelocity(vehicleid, x, y, z);
- return SpeedCheck(x, y, z, 100.0, get3d);
- }
Advertisement
Add Comment
Please, Sign In to add comment