Y_Less

NOT ACTUALLY MADE BY ME - PROVING A POINT

Feb 23rd, 2012
416
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.12 KB | None | 0 0
  1. //______________________________________________________________________________
  2. #include <a_samp>
  3. //______________________________________________________________________________
  4. #define SLOTS 200
  5. //______________________________________________________________________________
  6. new Text:Vehicle    [MAX_PLAYERS];
  7. new Text:MPH        [MAX_PLAYERS];
  8. new Text:Health     [MAX_PLAYERS];
  9. //______________________________________________________________________________
  10. new SpeedometerActivated[MAX_PLAYERS];
  11. new Float:sVehicle_X[MAX_VEHICLES];
  12. new Float:sVehicle_Y[MAX_VEHICLES];
  13. new Float:sVehicle_Z[MAX_VEHICLES];
  14. //______________________________________________________________________________
  15. enum SpeedometerPosition
  16. {
  17.     Float:sX,
  18.     Float:sY,
  19.     Float:sZ
  20. }
  21. new SavePlayerPos[SLOTS][SpeedometerPosition];
  22. //______________________________________________________________________________
  23. new VehicleNames[][] =
  24. {
  25.     "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
  26.     "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
  27.     "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  28.     "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection",
  29.     "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
  30.     "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
  31.     "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
  32.     "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
  33.     "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
  34.     "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
  35.     "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  36.     "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  37.     "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  38.     "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
  39.     "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin",
  40.     "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
  41.     "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
  42.     "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  43.     "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  44.     "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
  45.     "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  46.     "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
  47.     "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
  48.     "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
  49.     "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  50.     "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
  51.     "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
  52.     "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  53.     "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
  54.     "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
  55.     "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
  56.     "Tiller", "Utility Trailer"
  57. };
  58. //______________________________________________________________________________
  59. forward SpeedometerUpdate();
  60. //______________________________________________________________________________
  61. public OnFilterScriptInit()
  62. {
  63.     print("+----------------------------+");
  64.     print("|     Y_Less' Speedometer    |");
  65.     print("|         WAS LOADED!        |");
  66.     print("+----------------------------+");
  67.     print("|   Copyright @ 2012 Y_Less  |");
  68.     // Not all written by Y_Less.
  69.     print("+----------------------------+");
  70.     SetTimer("SpeedometerUpdate", 200, 1);
  71.     for(new v=0; v<MAX_VEHICLES; v++)
  72.     {
  73.         SaveLastPosition(v);
  74.     }
  75.     for(new i=0; i<SLOTS; i++)
  76.     {
  77.         Vehicle[i] = TextDrawCreate(445.000000, 379.000000," ");
  78.         TextDrawBackgroundColor(Vehicle[i], 255);
  79.         TextDrawFont(Vehicle[i], 1);
  80.         TextDrawLetterSize(Vehicle[i], 0.500000, 1.000000);
  81.         TextDrawColor(Vehicle[i], -1);
  82.         TextDrawSetOutline(Vehicle[i], 0);
  83.         TextDrawSetProportional(Vehicle[i], 1);
  84.         TextDrawSetShadow(Vehicle[i], 1);
  85.         TextDrawUseBox(Vehicle[i], 1);
  86.         TextDrawBoxColor(Vehicle[i], 252645200);
  87.         TextDrawTextSize(Vehicle[i], 661.000000, -33.000000);
  88. //______________________________________________________________________________
  89.         MPH[i] = TextDrawCreate(445.000000, 397.000000," ");
  90.         TextDrawBackgroundColor(MPH[i], 255);
  91.         TextDrawFont(MPH[i], 1);
  92.         TextDrawLetterSize(MPH[i], 0.500000, 1.000000);
  93.         TextDrawColor(MPH[i], -1);
  94.         TextDrawSetOutline(MPH[i], 0);
  95.         TextDrawSetProportional(MPH[i], 1);
  96.         TextDrawSetShadow(MPH[i], 1);
  97.         TextDrawUseBox(MPH[i], 1);
  98.         TextDrawBoxColor(MPH[i], 252645200);
  99.         TextDrawTextSize(MPH[i], 661.000000, -33.000000);
  100. //______________________________________________________________________________
  101.         Health[i] = TextDrawCreate(445.000000,415.000000," ");
  102.         TextDrawBackgroundColor(Health[i], 255);
  103.         TextDrawFont(Health[i], 1);
  104.         TextDrawLetterSize(Health[i], 0.500000, 1.000000);
  105.         TextDrawColor(Health[i], -1);
  106.         TextDrawSetOutline(Health[i], 0);
  107.         TextDrawSetProportional(Health[i], 1);
  108.         TextDrawSetShadow(Health[i], 1);
  109.         TextDrawUseBox(Health[i], 1);
  110.         TextDrawBoxColor(Health[i], 252645200);
  111.         TextDrawTextSize(Health[i], 661.000000, -33.000000);
  112.     }
  113.     return 1;
  114. }
  115. //______________________________________________________________________________
  116. public SpeedometerUpdate()
  117. {
  118.     new Float:Speedo_X,Float:Speedo_Y,Float:Speedo_Z;
  119.     new Float:PlayerSpeedDistance,value;
  120.     new Float:Speedometer_HP;
  121.    
  122.     for(new i=0; i<SLOTS; i++)
  123.     {
  124.         if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
  125.         {
  126.             GetPlayerPos(i, Speedo_X, Speedo_Y, Speedo_Z);
  127.             GetPlayerVehicleID(i);
  128.             GetVehicleHealth(GetPlayerVehicleID(i), Speedometer_HP);
  129.             PlayerSpeedDistance = floatsqroot(floatpower(floatabs(floatsub(Speedo_X,SavePlayerPos[i][sX])),2)+floatpower(floatabs(floatsub(Speedo_Y,SavePlayerPos[i][sY])),2)+floatpower(floatabs(floatsub(Speedo_Z,SavePlayerPos[i][sZ])),2));
  130.             value = floatround(PlayerSpeedDistance * 5000);
  131.            
  132.             new str1[256],str2[256],str3[256];
  133.             if(SpeedometerActivated[i] == 0)
  134.             {
  135.                 TextDrawShowForPlayer(i, Vehicle[i]); TextDrawShowForPlayer(i, MPH[i]);
  136.                 TextDrawShowForPlayer(i, Health[i]);
  137.                 SpeedometerActivated[i] = 1;
  138.             }
  139.             new MPH_Speed = floatround(value/1000);
  140.            
  141.             format(str1,sizeof(str1),"Vehicle: ~y~%s",VehicleNames[GetVehicleModel(GetPlayerVehicleID(i))-400]);
  142.             TextDrawSetString(Vehicle[i], str1);
  143.            
  144.             if(MPH_Speed >= 200)
  145.             {
  146.                 format(str2,sizeof(str2),"MP/H: ~r~%d",MPH_Speed);
  147.                 TextDrawSetString(MPH[i], str2);
  148.             }
  149.             else if(MPH_Speed >= 150)
  150.             {
  151.                 format(str2,sizeof(str2),"MP/H: ~y~%d",MPH_Speed);
  152.                 TextDrawSetString(MPH[i], str2);
  153.             }
  154.             else if(MPH_Speed >= 100)
  155.             {
  156.                 format(str2,sizeof(str2),"MP/H: ~g~%d",MPH_Speed);
  157.                 TextDrawSetString(MPH[i], str2);
  158.             }
  159.             else
  160.             {
  161.                 format(str2,sizeof(str2),"MP/H: ~b~%d",MPH_Speed);
  162.                 TextDrawSetString(MPH[i], str2);
  163.             }
  164.            
  165.             if(Speedometer_HP >= 551)
  166.             {
  167.                 format(str3,sizeof(str3),"Health: ~g~%.2f", Speedometer_HP);
  168.                 TextDrawSetString(Health[i], str3);
  169.             }
  170.             else if(Speedometer_HP >= 361)
  171.             {
  172.                 format(str3,sizeof(str3),"Health: ~y~%.2f", Speedometer_HP);
  173.                 TextDrawSetString(Health[i], str3);
  174.             }
  175.             else
  176.             {
  177.                 format(str3,sizeof(str3),"Health: ~r~%.2f", Speedometer_HP);
  178.                 TextDrawSetString(Health[i], str3);
  179.             }
  180.         }
  181.         SavePlayerPos[i][sX] = Speedo_X, SavePlayerPos[i][sY] = Speedo_Y, SavePlayerPos[i][sZ] = Speedo_Z;
  182.     }
  183.     for(new i=0; i<SLOTS; i++)
  184.     {
  185.         if(!IsPlayerInAnyVehicle(i))
  186.         {
  187.             TextDrawHideForPlayer(i, Vehicle[i]); TextDrawHideForPlayer(i, MPH[i]);
  188.             TextDrawHideForPlayer(i, Health[i]);
  189.             SpeedometerActivated[i] = 0;
  190.         }
  191.     }
  192. }
  193. //______________________________________________________________________________
  194. public OnVehicleSpawn(vehicleid)
  195. {
  196.     SaveLastPosition(vehicleid);
  197.     return 1;
  198. }
  199. //______________________________________________________________________________
  200. stock GetDistanceToLastPoint(vehicleid)
  201. {
  202.     new Float:x2, Float:y2, Float:z2, Float:output;
  203.     GetVehiclePos(vehicleid, x2, y2, z2);
  204.     output = floatsqroot(floatpower(floatabs(floatsub(x2, sVehicle_X[vehicleid])), 2)+floatpower(floatabs(floatsub(y2, sVehicle_Y[vehicleid])), 2)+floatpower(floatabs(floatsub(z2, sVehicle_Z[vehicleid])), 2));
  205.     return floatround(output);
  206. }
  207. //______________________________________________________________________________
  208. stock SaveLastPosition(vehicleid)
  209. {
  210.     new Float:SaveCoord_X, Float:SaveCoord_Y, Float:SaveCoord_Z;
  211.     GetVehiclePos(vehicleid, SaveCoord_X, SaveCoord_Y, SaveCoord_Z);
  212.     sVehicle_X[vehicleid]=SaveCoord_X;
  213.     sVehicle_Y[vehicleid]=SaveCoord_Y;
  214.     sVehicle_Z[vehicleid]=SaveCoord_Z;
  215. }
  216. //______________________________________________________________________________
Advertisement
Add Comment
Please, Sign In to add comment