Guest User

Untitled

a guest
Jul 26th, 2010
1,358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.05 KB | None | 0 0
  1. /*
  2.     @title C-Speedo
  3.     @author Carlton
  4.     @copyright 2010(c)
  5.     @description
  6.         A custom and interesting speedometer that shows alot of your
  7.         vehicle statistics. This was originally going to be used for
  8.         Epic Missions but I decided to release it. (www.epic-missions.com)
  9.  
  10.     - www.volt-host.com
  11. */
  12.  
  13. #include <a_samp>
  14. //=======================================
  15. #define SERVER_WEBSITE "www.volt-host.com"
  16. //#define ENABLEBOX // If this is enabled it will bring a box for the speedometer!
  17. #define STR_SIZE 256
  18. forward UpdateSpeedoMeter();
  19. //=======================================
  20. new
  21.     Text:SpeedBar[MAX_PLAYERS],
  22.     Text:HealthBar[MAX_PLAYERS],
  23.     Text:BoxTextdraw[MAX_PLAYERS],
  24.     Text:SpeedAndHealthText[MAX_PLAYERS],
  25.     Text:TireDamage[MAX_PLAYERS],
  26.     Text:VehicleInformation[MAX_PLAYERS],
  27.     Text:TireDamageText[MAX_PLAYERS],
  28.     Text:ServerWebsite[MAX_PLAYERS],
  29.     Speedostring[STR_SIZE],
  30.     SpeedoTimer;
  31.    
  32. new VehicleNames[][] = {
  33.     "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto",
  34.     "Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion",
  35.     "Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van",
  36.     "Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  37.     "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson",
  38.     "Mesa","RC Goblin","Hotring Racer","Hotring Racer","Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic","Buccaneer","Shamal",
  39.     "Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex",
  40.     "Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster","Monster","Uranus","Jester",
  41.     "Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley",
  42.     "Stafford","BF-400","Newsvan","Tug","Trailer","Emperor","Wayfarer","Euros","Hotdog","Club","Trailer","Trailer","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)","Police Car (LVPD)","Police Ranger",
  43.     "Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer","Luggage Trailer","Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  44. };
  45. //=======================================
  46. public OnFilterScriptInit() {
  47.     for(new i; i < GetMaxPlayers(); i ++ ) {
  48.         SpeedBar[i] = TextDrawCreate(484.000000,305.000000,"~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~");
  49.         HealthBar[i] = TextDrawCreate(584.000000,305.000000,"~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~");
  50.         BoxTextdraw[i] = TextDrawCreate(602.000000,308.000000,"_");
  51.         SpeedAndHealthText[i] = TextDrawCreate(476.000000,408.000000,"Speed                         Health");
  52.         TireDamage[i] = TextDrawCreate(517.000000,402.000000,"~n~~g~| | | |");
  53.         VehicleInformation[i] = TextDrawCreate(494.000000,316.000000,"~y~Model~n~Speed~n~Health");
  54.         TireDamageText[i] = TextDrawCreate(513.000000,402.000000,"Tire Damage");
  55.         ServerWebsite[i] = TextDrawCreate(495.000000,361.000000, SERVER_WEBSITE);
  56.         #if defined ENABLEBOX
  57.             TextDrawUseBox(BoxTextdraw[i], 1);
  58.         #endif
  59.         TextDrawAlignment(SpeedBar[i],0);
  60.         TextDrawAlignment(HealthBar[i],0);
  61.         TextDrawAlignment(BoxTextdraw[i],0);
  62.         TextDrawAlignment(SpeedAndHealthText[i],0);
  63.         TextDrawAlignment(TireDamage[i],0);
  64.         TextDrawAlignment(VehicleInformation[i],0);
  65.         TextDrawAlignment(TireDamageText[i],0);
  66.         TextDrawAlignment(ServerWebsite[i],0);
  67.         TextDrawBackgroundColor(SpeedBar[i],0x000000ff);
  68.         TextDrawBackgroundColor(HealthBar[i],0x000000ff);
  69.         TextDrawBackgroundColor(BoxTextdraw[i],0x000000ff);
  70.         TextDrawBackgroundColor(SpeedAndHealthText[i],0x000000ff);
  71.         TextDrawBackgroundColor(TireDamage[i],0x000000ff);
  72.         TextDrawBackgroundColor(VehicleInformation[i],0x000000ff);
  73.         TextDrawBackgroundColor(TireDamageText[i],0x000000ff);
  74.  
  75.         TextDrawBackgroundColor(ServerWebsite[i],0x000000ff);
  76.         TextDrawFont(SpeedBar[i],1);
  77.         TextDrawLetterSize(SpeedBar[i],0.300000,0.899999);
  78.         TextDrawFont(HealthBar[i],1);
  79.         TextDrawLetterSize(HealthBar[i],0.299999,0.899999);
  80.         TextDrawFont(BoxTextdraw[i],3);
  81.         TextDrawLetterSize(BoxTextdraw[i],1.000000,11.999995);
  82.         TextDrawFont(SpeedAndHealthText[i],1);
  83.         TextDrawLetterSize(SpeedAndHealthText[i],0.199999,1.000000);
  84.         TextDrawFont(TireDamage[i],1);
  85.         TextDrawLetterSize(TireDamage[i],0.299999,1.000000);
  86.         TextDrawFont(VehicleInformation[i],1);
  87.         TextDrawLetterSize(VehicleInformation[i],0.199999,1.000000);
  88.         TextDrawFont(TireDamageText[i],1);
  89.         TextDrawLetterSize(TireDamageText[i],0.199999,1.000000);
  90.         TextDrawFont(ServerWebsite[i],0);
  91.         TextDrawLetterSize(ServerWebsite[i],0.299999,1.200000);
  92.         TextDrawColor(SpeedBar[i],0xffffffff);
  93.         TextDrawColor(HealthBar[i],0xffffffff);
  94.         TextDrawColor(BoxTextdraw[i],0xffffffff);
  95.         TextDrawColor(SpeedAndHealthText[i],0xffffffff);
  96.         TextDrawColor(VehicleInformation[i],0xffffffff);
  97.         TextDrawColor(TireDamageText[i],0xffffffff);
  98.         TextDrawColor(ServerWebsite[i],0xffffffff);
  99.         TextDrawSetOutline(SpeedBar[i],1);
  100.         TextDrawSetOutline(HealthBar[i],1);
  101.         TextDrawSetOutline(BoxTextdraw[i],1);
  102.         TextDrawSetOutline(SpeedAndHealthText[i],1);
  103.         TextDrawSetOutline(TireDamage[i],1);
  104.         TextDrawSetOutline(VehicleInformation[i],1);
  105.         TextDrawSetOutline(TireDamageText[i],1);
  106.         TextDrawSetOutline(ServerWebsite[i],1);
  107.         TextDrawSetProportional(SpeedBar[i],1);
  108.         TextDrawSetProportional(HealthBar[i],1);
  109.         TextDrawSetProportional(BoxTextdraw[i],1);
  110.         TextDrawSetProportional(SpeedAndHealthText[i],1);
  111.         TextDrawSetProportional(TireDamage[i],1);
  112.         TextDrawSetProportional(VehicleInformation[i],1);
  113.         TextDrawSetProportional(TireDamageText[i],1);
  114.         TextDrawSetProportional(ServerWebsite[i],1);
  115.         TextDrawSetShadow(SpeedBar[i],1);
  116.         TextDrawSetShadow(HealthBar[i],1);
  117.         TextDrawSetShadow(BoxTextdraw[i],1);
  118.         TextDrawSetShadow(SpeedAndHealthText[i],1);
  119.         TextDrawSetShadow(TireDamage[i],1);
  120.         TextDrawSetShadow(VehicleInformation[i],1);
  121.         TextDrawSetShadow(TireDamageText[i],1);
  122.         TextDrawSetShadow(ServerWebsite[i],1);
  123.     }
  124.     SpeedoTimer = SetTimer("UpdateSpeedoMeter", 500, 1);
  125.     return 1;
  126. }
  127. public OnFilterScriptExit() {
  128.     KillTimer(SpeedoTimer);
  129.     return 1;
  130. }
  131. public UpdateSpeedoMeter() {
  132.     for(new playerid; playerid < GetMaxPlayers(); playerid++ ){
  133.         if(!IsPlayerConnected(playerid)) continue;
  134.         if(IsPlayerInAnyVehicle(playerid)) {
  135.             new
  136.                 Float:vHealth,
  137.                 Float:vVelocity[3],
  138.                 vname[30];
  139.  
  140.             TextDrawHideForPlayer(playerid, SpeedBar[playerid]);
  141.             TextDrawHideForPlayer(playerid, HealthBar[playerid]);
  142.             TextDrawHideForPlayer(playerid, BoxTextdraw[playerid]);
  143.             TextDrawHideForPlayer(playerid, SpeedAndHealthText[playerid]);
  144.             TextDrawHideForPlayer(playerid, TireDamage[playerid]);
  145.             TextDrawHideForPlayer(playerid, VehicleInformation[playerid]);
  146.             TextDrawHideForPlayer(playerid, TireDamageText[playerid]);
  147.             TextDrawHideForPlayer(playerid, ServerWebsite[playerid]);
  148.             GetVehicleHealth(GetPlayerVehicleID(playerid), vHealth);
  149.             GetVehicleVelocity(GetPlayerVehicleID(playerid), vVelocity[0], vVelocity[1], vVelocity[2]);
  150.             new Float: vSpeed = floatsqroot(floatpower(vVelocity[0], 2) + floatpower(vVelocity[1], 2) + floatpower(vVelocity[2], 2)) * 99;
  151.             GetVehicleName(GetVehicleModel(GetPlayerVehicleID(playerid)), vname, sizeof(vname));
  152.             format(Speedostring, STR_SIZE, "~y~%s~n~%0.0f MPH~n~%0.0f", vname, vSpeed, vHealth);
  153.             TextDrawSetString(VehicleInformation[playerid], Speedostring);
  154.             if(vSpeed <= 5) TextDrawSetString(SpeedBar[playerid], "~g~.");
  155.             if(vSpeed >= 6 && vSpeed <= 10) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.");
  156.             if(vSpeed >= 11 && vSpeed <= 15) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.");
  157.             if(vSpeed >= 16 && vSpeed <= 20) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.");
  158.             if(vSpeed >= 21 && vSpeed <= 25) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.");
  159.             if(vSpeed >= 26 && vSpeed <= 30) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.");
  160.             if(vSpeed >= 31 && vSpeed <= 40) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.");
  161.             if(vSpeed >= 41 && vSpeed <= 50) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  162.             if(vSpeed >= 51 && vSpeed <= 60) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  163.             if(vSpeed >= 61 && vSpeed <= 70) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  164.             if(vSpeed >= 71 && vSpeed <= 80) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  165.             if(vSpeed >= 81 && vSpeed <= 85) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  166.             if(vSpeed >= 86 && vSpeed <= 90) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  167.             if(vSpeed >= 91 && vSpeed <= 100) TextDrawSetString(SpeedBar[playerid], "~g~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  168.             if(vHealth <= 50) TextDrawSetString(SpeedBar[playerid], "~r~."); // 13
  169.             if(vHealth >= 60 && vHealth <= 100) TextDrawSetString(HealthBar[playerid], "~g~.~n~.");
  170.             if(vHealth >= 110 && vHealth <= 150) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.");
  171.             if(vHealth >= 160 && vHealth <= 200) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.");
  172.             if(vHealth >= 210 && vHealth <= 250) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.");
  173.             if(vHealth >= 260 && vHealth <= 300) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.");
  174.             if(vHealth >= 310 && vHealth <= 400) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.");
  175.             if(vHealth >= 410 && vHealth <= 500) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  176.             if(vHealth >= 510 && vHealth <= 600) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  177.             if(vHealth >= 610 && vHealth <= 700) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  178.             if(vHealth >= 710 && vHealth <= 800) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  179.             if(vHealth >= 810 && vHealth <= 850) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  180.             if(vHealth >= 860 && vHealth <= 900) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  181.             if(vHealth >= 910 && vHealth <= 1000) TextDrawSetString(HealthBar[playerid], "~r~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.~n~.");
  182.             new panels,doors,lights,tires;
  183.             GetVehicleDamageStatus(GetPlayerVehicleID(playerid),panels,doors,lights,tires);
  184.             switch(tires) {
  185.                 case 0: TextDrawSetString(TireDamage[playerid], "~n~~g~| | | |");
  186.                 case 1: TextDrawSetString(TireDamage[playerid], "~n~~g~| | | ~r~|");
  187.                 case 2: TextDrawSetString(TireDamage[playerid], "~n~~g~| | ~r~| ~g~|");
  188.                 case 3: TextDrawSetString(TireDamage[playerid], "~n~~g~| | ~r~| |");
  189.                 case 4: TextDrawSetString(TireDamage[playerid], "~n~~g~~r~| ~g~| | |");
  190.                 case 5: TextDrawSetString(TireDamage[playerid], "~n~~r~| | ~g~| |");
  191.                 case 6: TextDrawSetString(TireDamage[playerid], "~n~~g~~r~| ~g~| ~r~| ~g~|");
  192.                 case 7: TextDrawSetString(TireDamage[playerid], "~n~~g~| ~r~| | |");
  193.                 case 8: TextDrawSetString(TireDamage[playerid], "~n~~g~| ~r~| ~g~| |");
  194.                 case 9: TextDrawSetString(TireDamage[playerid], "~n~~g~~g~| ~r~| ~g~| ~r~|");
  195.                 case 10: TextDrawSetString(TireDamage[playerid], "~n~~g~| | ~r~| |");
  196.                 case 11: TextDrawSetString(TireDamage[playerid], "~n~~g~| ~r~| | |");
  197.                 case 12: TextDrawSetString(TireDamage[playerid], "~n~~r~| | ~g~| |");
  198.                 case 13: TextDrawSetString(TireDamage[playerid], "~n~~g~| ~r~| | |");
  199.                 case 14: TextDrawSetString(TireDamage[playerid], "~n~~r~| ~g~| ~r~| |");
  200.                 case 15: TextDrawSetString(TireDamage[playerid], "~n~~r~| | | |");
  201.             }
  202.             TextDrawShowForPlayer(playerid, SpeedBar[playerid]);
  203.             TextDrawShowForPlayer(playerid, HealthBar[playerid]);
  204.             TextDrawShowForPlayer(playerid, BoxTextdraw[playerid]);
  205.             TextDrawShowForPlayer(playerid, SpeedAndHealthText[playerid]);
  206.             TextDrawShowForPlayer(playerid, TireDamage[playerid]);
  207.             TextDrawShowForPlayer(playerid, VehicleInformation[playerid]);
  208.             TextDrawShowForPlayer(playerid, TireDamageText[playerid]);
  209.             TextDrawShowForPlayer(playerid, ServerWebsite[playerid]);
  210.         }
  211.         else {
  212.             TextDrawHideForPlayer(playerid, SpeedBar[playerid]);
  213.             TextDrawHideForPlayer(playerid, HealthBar[playerid]);
  214.             TextDrawHideForPlayer(playerid, BoxTextdraw[playerid]);
  215.             TextDrawHideForPlayer(playerid, SpeedAndHealthText[playerid]);
  216.             TextDrawHideForPlayer(playerid, TireDamage[playerid]);
  217.             TextDrawHideForPlayer(playerid, VehicleInformation[playerid]);
  218.             TextDrawHideForPlayer(playerid, TireDamageText[playerid]);
  219.             TextDrawHideForPlayer(playerid, ServerWebsite[playerid]);
  220.         }
  221.     }
  222. }
  223. //=======================================
  224.  
  225. stock GetVehicleName(modelid,name[],namesize)
  226. {
  227.     if(modelid < 400 || modelid > 611) return 0;
  228.     modelid -= 400;
  229.     for(new i, len = strlen(VehicleNames[modelid]); i < len && i < namesize; i++)
  230.         name[i] = VehicleNames[modelid][i];
  231.     return 1;
  232. }
Advertisement
Add Comment
Please, Sign In to add comment