Guest User

Speedo

a guest
May 3rd, 2014
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.37 KB | None | 0 0
  1. // Speedometer By Shawn Miller Thanks for use. Please leave the credits !
  2.  
  3. #include <a_samp>
  4. #define MAX_CAR 100000 // Put here your number of maximum cars on your server.
  5. enum pKilometre {Text:Kilometre}
  6. new speedometre[MAX_PLAYERS][pKilometre];
  7. enum pVitesse{Text:Vitesse}
  8. new speedometre1[MAX_PLAYERS][pVitesse];
  9. enum pVehicule{Text:Vehicule}
  10. new speedometre3[MAX_PLAYERS][pVehicule];
  11. new Gas[MAX_CAR];
  12. new speed[MAX_PLAYERS];
  13. new Text:Textdraw1337;
  14. new Text:Textdraw1338;
  15. new Text:Textdraw1339;
  16. new Text:Textdraw1340;
  17. new Text:Textdraw1341;
  18. new Text:Textdraw1342;
  19. new Text:Textdraw1343;
  20. new Text:Textdraw1344;
  21. new Text:Textdraw1345;
  22. new Text:Textdraw1346;
  23. new Text:Textdraw1347;
  24.  
  25. new VehiclesName[][] = {
  26. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  27. "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  28. "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  29. "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  30. "Reefer","Tropic","Sultan","Yankee","Caddy","Solair","Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  31. "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Hustler","ZR3 50","Walton","Regina",
  32. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  33. "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer","Hotring",
  34. "Bloodring","Rancher","Super GT","Elegant","Journey","Bike","Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  35. "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  36. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  37. "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  38. "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  39. "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor",
  40. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car","Police Car",
  41. "Police Car","Police Ranger","Picador","S.W.A.T.","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer","Luggage Trailer",
  42. "Stair Trailer","Boxville","Farm Plow","Utility Trailer" };
  43.  
  44. forward GetVehicleSpeed(vehicleid);
  45. public GetVehicleSpeed(vehicleid)
  46. {
  47. new Float:X, Float:Y, Float:Z;
  48. GetVehicleVelocity(vehicleid, X, Y, Z);
  49. return floatround(floatsqroot(X * X + Y * Y + Z * Z) * 180);
  50. }
  51.  
  52. forward IsASportCar(carid);
  53. public IsASportCar(carid)
  54. {
  55. if(carid==0)
  56. { return 0; }
  57. new car = GetVehicleModel(carid);
  58. if(car == 402 || car == 411 || car == 415 || car == 429 || car == 451 || car == 475 || car == 477 || car == 496 || car == 506 || car == 551 || car == 558 || car == 559 || car == 565 || car == 587 || car == 589)
  59. { return 1; }
  60. else if(car == 602 || car == 603)
  61. {return 1;}
  62. return 0;
  63. }
  64.  
  65. /*forward CarUpdate(i);
  66. public CarUpdate(i)
  67. {
  68. new vid = GetPlayerVehicleID(i);
  69. // Compteur de kilomčtres
  70. CarInfo[vid][cMetre] += (speed[i]*10)/36;
  71. if(CarInfo[vid][cMetre] > 999)
  72. {
  73. CarInfo[vid][cKilometre] += 1;
  74. CarInfo[vid][cMetre] = 0;
  75. }
  76. // Essence
  77. if(IsASportCar(vid))
  78. {
  79. if(speed[vid] == 0)
  80. {
  81. Gas[vid]-=10;
  82. }
  83. else if(speed[vid] > 0 && speed[vid] <= 60)
  84. {
  85. Gas[vid]-=20;
  86. }
  87. else if(speed[vid] > 60 && speed[vid] <= 120)
  88. {
  89. Gas[vid]-=30;
  90. }
  91. else if(speed[vid] > 120 && speed[vid] <= 400)
  92. {
  93. Gas[vid]-=45;
  94. }
  95. }
  96. else
  97. {
  98. if(speed[vid] == 0)
  99. {
  100. Gas[vid]-=5;
  101. }
  102. else if(speed[vid] > 0 && speed[vid] <= 60)
  103. {
  104. Gas[vid]-=10;
  105. }
  106. else if(speed[vid] > 60 && speed[vid] <= 120)
  107. {
  108. Gas[vid]-=15;
  109. }
  110. else if(speed[vid] > 120 && speed[vid] <= 400)
  111. {
  112. Gas[vid]-=25;
  113. }
  114. }
  115. return 1;
  116. }*/
  117. #define MAX_SPEED 300 // Put here the max speed of cars on your server (maximum speed which will be writen on your speedo)
  118. #define SPEED_1 70 // Put here your city max speed
  119. #define SPEED_2 120 // Put here your speedway max speed
  120.  
  121. enum cInfo
  122. {
  123. cKilometer, // Kilometers of the vehicle
  124. cMeter, // Meters of the vehicle
  125. };
  126. new CarInfo[MAX_CAR][cInfo];
  127. stock arrlen(&constinteger)
  128. {
  129. new tmp[12];
  130. format(tmp, 12, "%i", constinteger);
  131. return strlen(tmp);
  132. }
  133.  
  134. public OnFilterScriptInit()
  135. {
  136. print("\n--------------------------------------");
  137. print(" Speedometer by Shawn Miller");
  138. print("--------------------------------------\n");
  139.  
  140. print("Loading Speedometer ...\n");
  141. for(new i = 0; i < MAX_PLAYERS; i++)
  142. {
  143. speedometre[i][Kilometre] = TextDrawCreate(540.000000, 430.000000, "_");
  144. TextDrawBackgroundColor(speedometre[i][Kilometre], 255);
  145. TextDrawFont(speedometre[i][Kilometre], 2);
  146. TextDrawLetterSize(speedometre[i][Kilometre], 0.270000, 1.000000);
  147. TextDrawColor(speedometre[i][Kilometre], -1);
  148. TextDrawSetOutline(speedometre[i][Kilometre], 1);
  149. TextDrawSetProportional(speedometre[i][Kilometre], 1);
  150.  
  151. speedometre1[i][Vitesse] = TextDrawCreate(506.000000,389.000000,"_");
  152. speedometre3[i][Vehicule] = TextDrawCreate(521.000000,369.000000,"_");
  153. TextDrawAlignment(speedometre1[i][Vitesse],0);
  154. TextDrawAlignment(speedometre3[i][Vehicule],0);
  155. TextDrawBackgroundColor(speedometre1[i][Vitesse],0x000000ff);
  156. TextDrawBackgroundColor(speedometre3[i][Vehicule],0xff000066);
  157. TextDrawFont(speedometre1[i][Vitesse],0);
  158. TextDrawLetterSize(speedometre1[i][Vitesse],0.499999,1.300001);
  159. TextDrawFont(speedometre3[i][Vehicule],1);
  160. TextDrawLetterSize(speedometre3[i][Vehicule],0.299999,1.000000);
  161. TextDrawColor(speedometre1[i][Vitesse],0xff00ffff);
  162. TextDrawColor(speedometre3[i][Vehicule],0xffffffff);
  163. TextDrawSetOutline(speedometre1[i][Vitesse],1);
  164. TextDrawSetOutline(speedometre3[i][Vehicule],1);
  165. TextDrawSetProportional(speedometre1[i][Vitesse],1);
  166. TextDrawSetProportional(speedometre3[i][Vehicule],1);
  167. TextDrawSetShadow(speedometre3[i][Vehicule],1);
  168.  
  169. Textdraw1337 = TextDrawCreate(550.000000,364.000000,"_");
  170. TextDrawUseBox(Textdraw1337,1);
  171. TextDrawBoxColor(Textdraw1337,0x00000066);
  172. TextDrawTextSize(Textdraw1337,639.000000,160.000000);
  173. TextDrawAlignment(Textdraw1337,2);
  174. TextDrawBackgroundColor(Textdraw1337,0x00000000);
  175. TextDrawFont(Textdraw1337,3);
  176. TextDrawLetterSize(Textdraw1337,0.599999,8.300000);
  177. TextDrawColor(Textdraw1337,0xffffffff);
  178. TextDrawSetOutline(Textdraw1337,1);
  179.  
  180. Textdraw1339 = TextDrawCreate(473.000000,390.000000,"Speed:");
  181. Textdraw1340 = TextDrawCreate(605.000000,395.500000,"I");
  182. Textdraw1341 = TextDrawCreate(588.000000,401.000000,"I");
  183. Textdraw1342 = TextDrawCreate(571.000000,406.900000,"I");
  184. Textdraw1343 = TextDrawCreate(555.000000,412.400000,"I");
  185. Textdraw1344 = TextDrawCreate(540.000000,416.000000,"I");
  186. Textdraw1345 = TextDrawCreate(473.000000,413.000000,"Fuel:");
  187. Textdraw1346 = TextDrawCreate(472.000000,369.000000,"Vehicle:");
  188. Textdraw1347 = TextDrawCreate(472.000000,430.000000,"Kilometers:");
  189.  
  190. TextDrawUseBox(Textdraw1340,1);
  191. TextDrawBoxColor(Textdraw1340,0x00ffffff);
  192. TextDrawTextSize(Textdraw1340,614.000000,2.000000);
  193. TextDrawUseBox(Textdraw1341,1);
  194. TextDrawBoxColor(Textdraw1341,0x00ffffff);
  195. TextDrawTextSize(Textdraw1341,597.000000,0.000000);
  196. TextDrawUseBox(Textdraw1342,1);
  197. TextDrawBoxColor(Textdraw1342,0x00ffffff);
  198. TextDrawTextSize(Textdraw1342,580.000000,-2.000000);
  199. TextDrawUseBox(Textdraw1343,1);
  200. TextDrawBoxColor(Textdraw1343,0x00ffffff);
  201. TextDrawTextSize(Textdraw1343,564.000000,0.000000);
  202. TextDrawUseBox(Textdraw1344,1);
  203. TextDrawBoxColor(Textdraw1344,0x00ffffff);
  204. TextDrawTextSize(Textdraw1344,548.000000,0.000000);
  205.  
  206.  
  207. TextDrawAlignment(Textdraw1339,0);
  208. TextDrawAlignment(Textdraw1340,0);
  209. TextDrawAlignment(Textdraw1341,0);
  210. TextDrawAlignment(Textdraw1342,0);
  211. TextDrawAlignment(Textdraw1343,0);
  212. TextDrawAlignment(Textdraw1344,0);
  213. TextDrawAlignment(Textdraw1345,0);
  214. TextDrawAlignment(Textdraw1346,0);
  215. TextDrawAlignment(Textdraw1347,0);
  216.  
  217.  
  218. TextDrawBackgroundColor(Textdraw1339,0x000000ff);
  219. TextDrawBackgroundColor(Textdraw1340,0x00ffffff);
  220. TextDrawBackgroundColor(Textdraw1341,0x00ffffff);
  221. TextDrawBackgroundColor(Textdraw1342,0x00ffffff);
  222. TextDrawBackgroundColor(Textdraw1343,0x00ffffff);
  223. TextDrawBackgroundColor(Textdraw1344,0x00ffffff);
  224. TextDrawBackgroundColor(Textdraw1345,0x000000ff);
  225. TextDrawBackgroundColor(Textdraw1346,0x000000ff);
  226. TextDrawBackgroundColor(Textdraw1347,0x000000ff);
  227.  
  228.  
  229. TextDrawFont(Textdraw1339,1);
  230. TextDrawLetterSize(Textdraw1339,0.199999,1.199999);
  231. TextDrawFont(Textdraw1340,3);
  232. TextDrawLetterSize(Textdraw1340,1.000000,2.899999);
  233. TextDrawFont(Textdraw1341,3);
  234. TextDrawLetterSize(Textdraw1341,1.000000,2.299999);
  235. TextDrawFont(Textdraw1342,3);
  236. TextDrawLetterSize(Textdraw1342,1.000000,1.600000);
  237. TextDrawFont(Textdraw1343,3);
  238. TextDrawLetterSize(Textdraw1343,1.000000,1.000000);
  239. TextDrawFont(Textdraw1344,3);
  240. TextDrawLetterSize(Textdraw1344,1.000000,0.599999);
  241. TextDrawFont(Textdraw1345,1);
  242. TextDrawLetterSize(Textdraw1345,0.299999,1.000000);
  243. TextDrawFont(Textdraw1346,2);
  244. TextDrawLetterSize(Textdraw1346,0.199999,1.000000);
  245. TextDrawFont(Textdraw1347,2);
  246. TextDrawLetterSize(Textdraw1347,0.199999,1.000000);
  247.  
  248.  
  249. TextDrawColor(Textdraw1339,0xffffffff);
  250. TextDrawColor(Textdraw1340,0x00ffffff);
  251. TextDrawColor(Textdraw1341,0x00ffffff);
  252. TextDrawColor(Textdraw1342,0x00ffffff);
  253. TextDrawColor(Textdraw1343,0x00ffffff);
  254. TextDrawColor(Textdraw1344,0x00ffffff);
  255. TextDrawColor(Textdraw1345,0xffffffff);
  256. TextDrawColor(Textdraw1346,0xffffffff);
  257. TextDrawColor(Textdraw1347,0xffffffff);
  258.  
  259.  
  260. TextDrawSetOutline(Textdraw1339,1);
  261. TextDrawSetOutline(Textdraw1340,1);
  262. TextDrawSetOutline(Textdraw1341,1);
  263. TextDrawSetOutline(Textdraw1342,1);
  264. TextDrawSetOutline(Textdraw1343,1);
  265. TextDrawSetOutline(Textdraw1344,1);
  266. TextDrawSetOutline(Textdraw1345,1);
  267. TextDrawSetOutline(Textdraw1346,1);
  268. TextDrawSetOutline(Textdraw1347,1);
  269.  
  270.  
  271. TextDrawSetProportional(Textdraw1339,1);
  272. TextDrawSetProportional(Textdraw1340,1);
  273. TextDrawSetProportional(Textdraw1341,1);
  274. TextDrawSetProportional(Textdraw1342,1);
  275. TextDrawSetProportional(Textdraw1343,1);
  276. TextDrawSetProportional(Textdraw1344,1);
  277. TextDrawSetProportional(Textdraw1345,1);
  278. TextDrawSetProportional(Textdraw1346,1);
  279. TextDrawSetProportional(Textdraw1347,1);
  280.  
  281.  
  282. TextDrawSetShadow(Textdraw1339,1);
  283. TextDrawSetShadow(Textdraw1340,1);
  284. TextDrawSetShadow(Textdraw1341,1);
  285. TextDrawSetShadow(Textdraw1342,1);
  286. TextDrawSetShadow(Textdraw1343,1);
  287. TextDrawSetShadow(Textdraw1344,1);
  288. TextDrawSetShadow(Textdraw1345,1);
  289. TextDrawSetShadow(Textdraw1346,1);
  290. TextDrawSetShadow(Textdraw1347,1);
  291. print("Speedometer loaded\n");
  292. return 1;
  293. }
  294. return 1;
  295. }
  296. public OnPlayerStateChange(playerid, newstate, oldstate)
  297. {
  298. if(newstate == PLAYER_STATE_ONFOOT) // A pied
  299. {
  300. TextDrawHideForPlayer(playerid, speedometre[playerid][Kilometre]);
  301. TextDrawHideForPlayer(playerid, speedometre1[playerid][Vitesse]);
  302. TextDrawHideForPlayer(playerid, speedometre3[playerid][Vehicule]);
  303. TextDrawHideForPlayer(playerid, Textdraw1337);
  304. TextDrawHideForPlayer(playerid, Textdraw1338);
  305. TextDrawHideForPlayer(playerid, Textdraw1339);
  306. TextDrawHideForPlayer(playerid, Textdraw1340);
  307. TextDrawHideForPlayer(playerid, Textdraw1341);
  308. TextDrawHideForPlayer(playerid, Textdraw1342);
  309. TextDrawHideForPlayer(playerid, Textdraw1343);
  310. TextDrawHideForPlayer(playerid, Textdraw1344);
  311. TextDrawHideForPlayer(playerid, Textdraw1345);
  312. TextDrawHideForPlayer(playerid, Textdraw1346);
  313. TextDrawHideForPlayer(playerid, Textdraw1347);
  314. return 1;
  315. }
  316. else if(newstate == PLAYER_STATE_DRIVER)
  317. {
  318. new plname[MAX_PLAYER_NAME];
  319. GetPlayerName(playerid, plname, sizeof(plname));
  320. new vehicleid = GetPlayerVehicleID(playerid);
  321. TextDrawShowForPlayer(playerid, speedometre[playerid][Kilometre]);
  322. TextDrawShowForPlayer(playerid, speedometre1[playerid][Vitesse]);
  323. TextDrawShowForPlayer(playerid, speedometre3[playerid][Vehicule]);
  324. TextDrawShowForPlayer(playerid, Text:Textdraw1337);
  325. TextDrawShowForPlayer(playerid, Text:Textdraw1338);
  326. TextDrawShowForPlayer(playerid, Text:Textdraw1339);
  327. TextDrawShowForPlayer(playerid, Text:Textdraw1345);
  328. TextDrawShowForPlayer(playerid, Text:Textdraw1346);
  329. TextDrawShowForPlayer(playerid, Text:Textdraw1347);
  330. if( Gas[vehicleid] >= 8000 && Gas[vehicleid] <= 10000 )
  331. {
  332. TextDrawShowForPlayer(playerid,Text:Textdraw1340);
  333. TextDrawShowForPlayer(playerid,Text:Textdraw1341);
  334. TextDrawShowForPlayer(playerid,Text:Textdraw1342);
  335. TextDrawShowForPlayer(playerid,Text:Textdraw1343);
  336. TextDrawShowForPlayer(playerid,Text:Textdraw1344);
  337. }
  338. if( Gas[vehicleid] >= 6000 && Gas[vehicleid] < 8000 )
  339. {
  340. TextDrawShowForPlayer(playerid,Text:Textdraw1341);
  341. TextDrawShowForPlayer(playerid,Text:Textdraw1342);
  342. TextDrawShowForPlayer(playerid,Text:Textdraw1343);
  343. TextDrawShowForPlayer(playerid,Text:Textdraw1344);
  344. }
  345. if( Gas[vehicleid] >= 4000 && Gas[vehicleid] < 6000 )
  346. {
  347. TextDrawShowForPlayer(playerid,Text:Textdraw1342);
  348. TextDrawShowForPlayer(playerid,Text:Textdraw1343);
  349. TextDrawShowForPlayer(playerid,Text:Textdraw1344);
  350. }
  351. if( Gas[vehicleid] >= 2000 && Gas[vehicleid] < 4000 )
  352. {
  353. TextDrawShowForPlayer(playerid,Text:Textdraw1343);
  354. TextDrawShowForPlayer(playerid,Text:Textdraw1344);
  355. }
  356. if( Gas[vehicleid] > 0 && Gas[vehicleid] < 2000 )
  357. {
  358. TextDrawShowForPlayer(playerid,Text:Textdraw1344);
  359. }
  360. if( Gas[vehicleid] == 0)
  361. {
  362. return 1;
  363. }
  364. }
  365. return 1;
  366. }
  367.  
  368. public OnPlayerUpdate(playerid)
  369. {
  370. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  371. {
  372. new Float:fPos[3],vehicleid,Sspeed[256],string[256],kilo[256];
  373. vehicleid = GetPlayerVehicleID(playerid);
  374. GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
  375. speed[playerid] = GetVehicleSpeed(vehicleid);
  376.  
  377. if( speed[playerid] <= SPEED_1 )
  378. {
  379. format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
  380. }
  381. else if(speed[playerid] <= SPEED_2 )
  382. {
  383. format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
  384. }
  385. else if(speed[playerid] <= MAX_SPEED )
  386. {
  387. format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
  388. }
  389. else
  390. {
  391. format(Sspeed,sizeof(Sspeed),"~R~Too much");
  392. }
  393. new carid=GetPlayerVehicleID(playerid);
  394. if(arrlen(CarInfo[vehicleid][cKilometer]) == 1)
  395. {
  396. format(kilo,sizeof(kilo),"00000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
  397. }
  398. if(arrlen(CarInfo[vehicleid][cKilometer]) == 2)
  399. {
  400. format(kilo,sizeof(kilo),"0000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
  401. }
  402. if(arrlen(CarInfo[vehicleid][cKilometer]) == 3)
  403. {
  404. format(kilo,sizeof(kilo),"000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
  405. }
  406. if(arrlen(CarInfo[vehicleid][cKilometer]) == 4)
  407. {
  408. format(kilo,sizeof(kilo),"00%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
  409. }
  410. if(arrlen(CarInfo[vehicleid][cKilometer]) == 5)
  411. {
  412. format(kilo,sizeof(kilo),"0%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
  413. }
  414. if(arrlen(CarInfo[vehicleid][cKilometer]) == 6)
  415. {
  416. format(kilo,sizeof(kilo),"%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
  417. }
  418. format(string,sizeof(string),"%s",kilo);
  419. TextDrawSetString(speedometre[playerid][Kilometre], string);
  420. format(string,sizeof(string),"%s",Sspeed);
  421. TextDrawSetString(speedometre1[playerid][Vitesse], string);
  422. format(string,sizeof(string),"%s",VehiclesName[GetVehicleModel(carid)-400]);
  423. TextDrawSetString(speedometre3[playerid][Vehicule], string);
  424. }
  425. return 1;
  426. }
Advertisement
Add Comment
Please, Sign In to add comment