Advertisement
Guest User

Спидометр

a guest
Aug 19th, 2015
723
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <a_samp>
  2.  
  3. // #DEFINES
  4. #define FUEL_SYSTEM
  5.  
  6. #define DRAW_HEALTH (13)
  7. #define DRAW_ENGINE (14)
  8. #define DRAW_LIGHTS (15)
  9. #define DRAW_DOORS  (16)
  10. #define DRAW_ALARM  (17)
  11.  
  12. #define DRAW_NAME   (0)
  13. #define DRAW_SPEED  (1)
  14. #define DRAW_FUEL   (2)
  15.  
  16. // #VARIABLES
  17. new Float:v_health;
  18. new engine, lights, alarm, doors, bonnet, boot, objective;
  19.  
  20. new PlayerText:pS_Textdraw[MAX_PLAYERS][3];
  21. new pS_Timer[MAX_PLAYERS];
  22. new Text:gS_Textdraw[18];
  23.  
  24. #if defined FUEL_SYSTEM
  25. new v_Fuel[MAX_VEHICLES];
  26. new Float:v_Pos[MAX_VEHICLES][3];
  27. new Float:v_Dis[MAX_VEHICLES];
  28. #endif
  29.  
  30. new g_VehicleNames[][] = {
  31.     "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
  32.     "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat",
  33.     "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife",
  34.     "Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
  35.     "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
  36.     "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
  37.     "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito",
  38.     "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring",
  39.     "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B",
  40.     "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker",
  41.     "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  42.     "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak",
  43.     "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
  44.     "Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance",
  45.     "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
  46.     "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
  47.     "Club", "Freight Carriage", "Trailer 4", "Andromeda", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car",
  48.     "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
  49.     "Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer"
  50. };
  51.  
  52. new g_NoSpeed[] = {
  53.     417, 425, 447, 460, 469, 476, 487, 488, 497, 511, 512, 513, 519, 520, 548,
  54.     553, 563, 577, 592, 593, 435, 450, 569, 570, 584, 590, 591, 606, 607, 608,
  55.     610, 611, 430, 446, 452, 453, 454, 472, 473, 484, 493, 581, 522, 461, 521,
  56.     523, 463, 468, 471, 586, 441, 464, 465, 501, 564, 594, 509, 481, 510, 448,
  57.     462
  58. };
  59.  
  60. // #FORWARDS
  61. forward OnPlayerDriveVehicle(playerid, vehicleid);
  62.  
  63. // #FUNCTIONS
  64. Float:health_line(vehicleid) {
  65.     GetVehicleHealth(vehicleid, v_health);
  66.     if(v_health > 1000.0) v_health = 1000.0;
  67.     else if(v_health < 0.0) v_health = 0.0;
  68.     return (v_health * 0.07);
  69. }
  70.  
  71. PlayerText:create_speed_text(playerid, Float:x, Float:y, Float:tx, Float:ty, text[]) {
  72.     new PlayerText:text_id = CreatePlayerTextDraw(playerid, x, y, text);
  73.     PlayerTextDrawLetterSize(playerid, text_id, tx, ty);
  74.     PlayerTextDrawSetOutline(playerid, text_id, 0);
  75.     PlayerTextDrawAlignment(playerid, text_id, 2);
  76.     PlayerTextDrawSetShadow(playerid, text_id, 0);
  77.     PlayerTextDrawColor(playerid, text_id, (-1));
  78.     PlayerTextDrawFont(playerid, text_id, 2);
  79.     PlayerTextDrawShow(playerid, text_id);
  80.     return text_id;
  81. }
  82.  
  83. destroy_speed(playerid) {
  84.     if(pS_Timer[playerid] == (-1)) {
  85.         return 0;
  86.     }
  87.  
  88.     for( new i = 0; i < sizeof(pS_Textdraw[]); i ++ ) {
  89.         PlayerTextDrawDestroy(playerid, pS_Textdraw[playerid][i]);
  90.         pS_Textdraw[playerid][i] = PlayerText:(-1);
  91.     }
  92.  
  93.     for( new i = 0; i < sizeof(gS_Textdraw); i ++ ) {
  94.         TextDrawHideForPlayer(playerid, gS_Textdraw[i]);
  95.     }
  96.  
  97.     KillTimer(pS_Timer[playerid]);
  98.     pS_Timer[playerid] = (-1);
  99.     return 1;
  100. }
  101.  
  102. // #CALLBACKS
  103. public OnFilterScriptInit() {
  104.     gS_Textdraw[0] = TextDrawCreate(470.000000, 411.000000, "~n~");
  105.     TextDrawLetterSize(gS_Textdraw[0], 0.500000, 3.099998);
  106.     TextDrawUseBox(gS_Textdraw[0], 1);
  107.     TextDrawBoxColor(gS_Textdraw[0], 85);
  108.     TextDrawTextSize(gS_Textdraw[0], 630.000000, 0.000000);
  109.  
  110.     gS_Textdraw[1] = TextDrawCreate(470.000000, 411.000000, "~n~");
  111.     TextDrawLetterSize(gS_Textdraw[1], 0.000000, -0.349999);
  112.     TextDrawUseBox(gS_Textdraw[1], 1);
  113.     TextDrawBoxColor(gS_Textdraw[1], 1182971050);
  114.     TextDrawTextSize(gS_Textdraw[1], 630.000000, 0.000000);
  115.  
  116.     gS_Textdraw[2] = TextDrawCreate(470.000000, 442.000000, "~n~");
  117.     TextDrawLetterSize(gS_Textdraw[2], 0.000000, -0.349999);
  118.     TextDrawUseBox(gS_Textdraw[2], 1);
  119.     TextDrawBoxColor(gS_Textdraw[2], 1182971050);
  120.     TextDrawTextSize(gS_Textdraw[2], 630.000000, 0.000000);
  121.  
  122.     gS_Textdraw[3] = TextDrawCreate(470.000000, 411.000000, "~n~");
  123.     TextDrawLetterSize(gS_Textdraw[3], 0.000000, 3.049998);
  124.     TextDrawUseBox(gS_Textdraw[3], 1);
  125.     TextDrawBoxColor(gS_Textdraw[3], 1182971050);
  126.     TextDrawTextSize(gS_Textdraw[3], 466.500000, 0.000000);
  127.  
  128.     gS_Textdraw[4] = TextDrawCreate(633.500000, 411.000000, "~n~");
  129.     TextDrawLetterSize(gS_Textdraw[4], 0.000000, 3.049998);
  130.     TextDrawUseBox(gS_Textdraw[4], 1);
  131.     TextDrawBoxColor(gS_Textdraw[4], 1182971050);
  132.     TextDrawTextSize(gS_Textdraw[4], 630.000000, 0.000000);
  133.  
  134.     gS_Textdraw[5] = TextDrawCreate(470.000000, 422.000000, "~n~");
  135.     TextDrawLetterSize(gS_Textdraw[5], 0.000000, -0.349999);
  136.     TextDrawUseBox(gS_Textdraw[5], 1);
  137.     TextDrawBoxColor(gS_Textdraw[5], 1182971050);
  138.     TextDrawTextSize(gS_Textdraw[5], 630.000000, 0.000000);
  139.  
  140.     gS_Textdraw[6] = TextDrawCreate(471.000000, 412.000000, "~n~");
  141.     TextDrawLetterSize(gS_Textdraw[6], 0.000000, 0.649999);
  142.     TextDrawUseBox(gS_Textdraw[6], 1);
  143.     TextDrawBoxColor(gS_Textdraw[6], -205);
  144.     TextDrawTextSize(gS_Textdraw[6], 629.000000, 0.000000);
  145.  
  146.     gS_Textdraw[7] = TextDrawCreate(562.000000, 413.000000, "~n~");
  147.     TextDrawLetterSize(gS_Textdraw[7], 0.000000, 0.449999);
  148.     TextDrawUseBox(gS_Textdraw[7], 1);
  149.     TextDrawBoxColor(gS_Textdraw[7], 85);
  150.     TextDrawTextSize(gS_Textdraw[7], 628.000000, 0.000000);
  151.  
  152.     gS_Textdraw[8] = TextDrawCreate(560.000000, 413.000000, "~n~");
  153.     TextDrawLetterSize(gS_Textdraw[8], 0.000000, 0.449999);
  154.     TextDrawSetShadow(gS_Textdraw[8], 1);
  155.     TextDrawUseBox(gS_Textdraw[8], 1);
  156.     TextDrawBoxColor(gS_Textdraw[8], 170);
  157.     TextDrawTextSize(gS_Textdraw[8], 556.500000, 0.000000);
  158.  
  159.     gS_Textdraw[9] = TextDrawCreate(502.000000, 431.000000, "KM/H");
  160.     TextDrawAlignment(gS_Textdraw[9], 2);
  161.     TextDrawBackgroundColor(gS_Textdraw[9], 255);
  162.     TextDrawFont(gS_Textdraw[9], 2);
  163.     TextDrawLetterSize(gS_Textdraw[9], 0.150000, 0.699999);
  164.     TextDrawColor(gS_Textdraw[9], 170);
  165.     TextDrawSetOutline(gS_Textdraw[9], 0);
  166.     TextDrawSetProportional(gS_Textdraw[9], 1);
  167.     TextDrawSetShadow(gS_Textdraw[9], 0);
  168.  
  169.     gS_Textdraw[10] = TextDrawCreate(517.000000, 421.000000, "/");
  170.     TextDrawAlignment(gS_Textdraw[10], 2);
  171.     TextDrawBackgroundColor(gS_Textdraw[10], 255);
  172.     TextDrawFont(gS_Textdraw[10], 2);
  173.     TextDrawLetterSize(gS_Textdraw[10], 0.290000, 1.300000);
  174.     TextDrawColor(gS_Textdraw[10], -86);
  175.     TextDrawSetOutline(gS_Textdraw[10], 0);
  176.     TextDrawSetProportional(gS_Textdraw[10], 1);
  177.     TextDrawSetShadow(gS_Textdraw[10], 0);
  178.  
  179.     gS_Textdraw[11] = TextDrawCreate(532.000000, 431.000000, "liters");
  180.     TextDrawAlignment(gS_Textdraw[11], 2);
  181.     TextDrawBackgroundColor(gS_Textdraw[11], 255);
  182.     TextDrawFont(gS_Textdraw[11], 2);
  183.     TextDrawLetterSize(gS_Textdraw[11], 0.150000, 0.699999);
  184.     TextDrawColor(gS_Textdraw[11], 170);
  185.     TextDrawSetOutline(gS_Textdraw[11], 0);
  186.     TextDrawSetProportional(gS_Textdraw[11], 1);
  187.     TextDrawSetShadow(gS_Textdraw[11], 0);
  188.  
  189.     gS_Textdraw[12] = TextDrawCreate(570.000000, 425.000000, "~n~");
  190.     TextDrawBackgroundColor(gS_Textdraw[12], 255);
  191.     TextDrawFont(gS_Textdraw[12], 1);
  192.     TextDrawLetterSize(gS_Textdraw[12], 0.000000, 1.150000);
  193.     TextDrawColor(gS_Textdraw[12], -1);
  194.     TextDrawSetOutline(gS_Textdraw[12], 0);
  195.     TextDrawSetProportional(gS_Textdraw[12], 1);
  196.     TextDrawSetShadow(gS_Textdraw[12], 1);
  197.     TextDrawUseBox(gS_Textdraw[12], 1);
  198.     TextDrawBoxColor(gS_Textdraw[12], -13434846);
  199.     TextDrawTextSize(gS_Textdraw[12], 566.500000, 0.000000);
  200.    
  201.     // #INFO TEXTS
  202.     gS_Textdraw[DRAW_HEALTH] = TextDrawCreate(562.000000, 413.000000, "~n~");
  203.     TextDrawLetterSize(gS_Textdraw[DRAW_HEALTH], 0.000000, 0.449999);
  204.     TextDrawUseBox(gS_Textdraw[DRAW_HEALTH], 1);
  205.     TextDrawBoxColor(gS_Textdraw[DRAW_HEALTH], -1879048107);
  206.     TextDrawTextSize(gS_Textdraw[DRAW_HEALTH], 598.000000, 0.000000);
  207.  
  208.     gS_Textdraw[DRAW_ENGINE] = TextDrawCreate(628.000000, 422.000000, "Engine");
  209.     TextDrawAlignment(gS_Textdraw[DRAW_ENGINE], 3);
  210.     TextDrawBackgroundColor(gS_Textdraw[DRAW_ENGINE], 255);
  211.     TextDrawFont(gS_Textdraw[DRAW_ENGINE], 2);
  212.     TextDrawLetterSize(gS_Textdraw[DRAW_ENGINE], 0.200000, 0.899999);
  213.     TextDrawColor(gS_Textdraw[DRAW_ENGINE], -1);
  214.     TextDrawSetOutline(gS_Textdraw[DRAW_ENGINE], 0);
  215.     TextDrawSetProportional(gS_Textdraw[DRAW_ENGINE], 1);
  216.     TextDrawSetShadow(gS_Textdraw[DRAW_ENGINE], 0);
  217.  
  218.     gS_Textdraw[DRAW_LIGHTS] = TextDrawCreate(628.000000, 429.000000, "Lights");
  219.     TextDrawAlignment(gS_Textdraw[DRAW_LIGHTS], 3);
  220.     TextDrawBackgroundColor(gS_Textdraw[DRAW_LIGHTS], 255);
  221.     TextDrawFont(gS_Textdraw[DRAW_LIGHTS], 2);
  222.     TextDrawLetterSize(gS_Textdraw[DRAW_LIGHTS], 0.200000, 0.899999);
  223.     TextDrawColor(gS_Textdraw[DRAW_LIGHTS], 85);
  224.     TextDrawSetOutline(gS_Textdraw[DRAW_LIGHTS], 0);
  225.     TextDrawSetProportional(gS_Textdraw[DRAW_LIGHTS], 1);
  226.     TextDrawSetShadow(gS_Textdraw[DRAW_LIGHTS], 0);
  227.  
  228.     gS_Textdraw[DRAW_DOORS] = TextDrawCreate(598.000000, 422.000000, "Doors");
  229.     TextDrawAlignment(gS_Textdraw[DRAW_DOORS], 3);
  230.     TextDrawBackgroundColor(gS_Textdraw[DRAW_DOORS], 255);
  231.     TextDrawFont(gS_Textdraw[DRAW_DOORS], 2);
  232.     TextDrawLetterSize(gS_Textdraw[DRAW_DOORS], 0.200000, 0.899999);
  233.     TextDrawColor(gS_Textdraw[DRAW_DOORS], 85);
  234.     TextDrawSetOutline(gS_Textdraw[DRAW_DOORS], 0);
  235.     TextDrawSetProportional(gS_Textdraw[DRAW_DOORS], 1);
  236.     TextDrawSetShadow(gS_Textdraw[DRAW_DOORS], 0);
  237.  
  238.     gS_Textdraw[DRAW_ALARM] = TextDrawCreate(598.000000, 429.000000, "Alarm");
  239.     TextDrawAlignment(gS_Textdraw[DRAW_ALARM], 3);
  240.     TextDrawBackgroundColor(gS_Textdraw[DRAW_ALARM], 255);
  241.     TextDrawFont(gS_Textdraw[DRAW_ALARM], 2);
  242.     TextDrawLetterSize(gS_Textdraw[DRAW_ALARM], 0.196999, 0.899999);
  243.     TextDrawColor(gS_Textdraw[DRAW_ALARM], 85);
  244.     TextDrawSetOutline(gS_Textdraw[DRAW_ALARM], 0);
  245.     TextDrawSetProportional(gS_Textdraw[DRAW_ALARM], 1);
  246.     TextDrawSetShadow(gS_Textdraw[DRAW_ALARM], 0);
  247.    
  248.     #if defined FUEL_SYSTEM
  249.     for( new i = 0; i < MAX_VEHICLES; i ++ ) {
  250.         v_Fuel[i] = 100;
  251.     }
  252.     #endif
  253.    
  254.     ManualVehicleEngineAndLights();
  255.     return 1;
  256. }
  257.  
  258. public OnFilterScriptExit() {
  259.     for( new i = 0, s = GetPlayerPoolSize() + 1; i < s; i ++ ) {
  260.         destroy_speed(i);
  261.     }
  262.    
  263.     for( new i = 0; i < sizeof(gS_Textdraw); i ++ ) {
  264.         TextDrawDestroy(gS_Textdraw[i]);
  265.     }
  266.     return 1;
  267. }
  268.  
  269. public OnPlayerConnect(playerid) {
  270.     for( new i = 0; i < sizeof(pS_Textdraw[]); i ++ ) {
  271.         pS_Textdraw[playerid][i] = PlayerText:(-1);
  272.     }
  273.  
  274.     pS_Timer[playerid] = (-1);
  275.     return 1;
  276. }
  277.  
  278. public OnPlayerDisconnect(playerid, reason) {
  279.     destroy_speed(playerid);
  280.     return 1;
  281. }
  282.  
  283. public OnPlayerExitVehicle(playerid, vehicleid) {
  284.     destroy_speed(playerid);
  285.     return 1;
  286. }
  287.  
  288. public OnPlayerStateChange(playerid, newstate, oldstate) {
  289.     if(oldstate == PLAYER_STATE_DRIVER) {
  290.         destroy_speed(playerid);
  291.     }
  292.  
  293.     if(newstate == PLAYER_STATE_DRIVER) {
  294.         new vehicleid = GetPlayerVehicleID(playerid);
  295.         new vehicle_model = GetVehicleModel(vehicleid);
  296.  
  297.         for( new i = 0; i < sizeof(g_NoSpeed); i ++ ) {
  298.             if(vehicle_model != g_NoSpeed[i]) continue;
  299.             return 1;
  300.         }
  301.    
  302.         v_health = health_line(vehicleid);
  303.         GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  304.    
  305.         TextDrawTextSize(gS_Textdraw[DRAW_HEALTH], 558.0 + v_health, 0.0000);
  306.         TextDrawColor(gS_Textdraw[DRAW_ENGINE], (engine == 1) ? (-1) : 0x55);
  307.         TextDrawColor(gS_Textdraw[DRAW_LIGHTS], (lights == 1) ? (-1) : 0x55);
  308.         TextDrawColor(gS_Textdraw[DRAW_DOORS], (doors == 1) ? (-1) : 0x55);
  309.         TextDrawColor(gS_Textdraw[DRAW_ALARM], (alarm == 1) ? (-1) : 0x55);
  310.    
  311.         for( new i = 0; i < sizeof(gS_Textdraw); i ++ ) {
  312.             TextDrawShowForPlayer(playerid, gS_Textdraw[i]);
  313.         }
  314.        
  315.         pS_Textdraw[playerid][DRAW_NAME] = create_speed_text(playerid, 513.0, 410.0, 0.22, 1.0, g_VehicleNames[vehicle_model - 400]);
  316.         pS_Textdraw[playerid][DRAW_SPEED] = create_speed_text(playerid, 502.0, 421.0, 0.29, 1.3, "0");
  317.  
  318.         #if defined FUEL_SYSTEM
  319.         new string[12];
  320.         valstr(string, v_Fuel[vehicleid]);
  321.         pS_Textdraw[playerid][DRAW_FUEL] = create_speed_text(playerid, 532.0, 421.0, 0.29, 1.3, string);
  322.        
  323.         GetVehiclePos(vehicleid, v_Pos[vehicleid][0], v_Pos[vehicleid][1], v_Pos[vehicleid][2]);
  324.         #else
  325.         pS_Textdraw[playerid][DRAW_FUEL] = create_speed_text(playerid, 532.0, 421.0, 0.29, 1.3, "-");
  326.         #endif
  327.        
  328.         pS_Timer[playerid] = SetTimerEx("OnPlayerDriveVehicle", 100, 0, "ii", playerid, vehicleid);
  329.     }
  330.     return 1;
  331. }
  332.  
  333. public OnPlayerCommandText(playerid, cmdtext[]) {
  334.     if(strcmp(cmdtext, "/vehicle", false) == 0) {
  335.         new Float:x, Float:y, Float:z;
  336.         GetPlayerPos(playerid, x, y, z);
  337.         new vehicleid = CreateVehicle(411, x, y, z, 0.0, -1, -1, -1);
  338.         PutPlayerInVehicle(playerid, vehicleid, 0);
  339.         return 1;
  340.     } else {
  341.         new vehicleid = GetPlayerVehicleID(playerid);
  342.         GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  343.         if(strcmp(cmdtext, "/engine", false) == 0) {
  344.             SetVehicleParamsEx(vehicleid, !(engine == 1), -1, -1, -1, -1, -1, -1);
  345.             return 1;
  346.         } else if(strcmp(cmdtext, "/lights", false) == 0) {
  347.             SetVehicleParamsEx(vehicleid, -1, !(lights == 1), -1, -1, -1, -1, -1);
  348.             return 1;
  349.         } else if(strcmp(cmdtext, "/alarm", false) == 0) {
  350.             SetVehicleParamsEx(vehicleid, -1, -1, !(alarm == 1), -1, -1, -1, -1);
  351.             return 1;
  352.         } else if(strcmp(cmdtext, "/doors", false) == 0) {
  353.             SetVehicleParamsEx(vehicleid, -1, -1, -1, !(doors == 1), -1, -1, -1);
  354.             return 1;
  355.         } else if(strcmp(cmdtext, "/fixveh", false) == 0) {
  356.             RepairVehicle(vehicleid);
  357.             return 1;
  358.         }
  359.  
  360.         #if defined FUEL_SYSTEM
  361.         else if(strcmp(cmdtext, "/fuel", false) == 0) {
  362.             v_Fuel[vehicleid] = 100;
  363.             return 1;
  364.         }
  365.         #endif
  366.     }
  367.     return 0;
  368. }
  369.  
  370. public OnPlayerDriveVehicle(playerid, vehicleid) {
  371.     new string[12];
  372.    
  373.     v_health = health_line(vehicleid);
  374.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  375.  
  376.     TextDrawTextSize(gS_Textdraw[DRAW_HEALTH], 558.0 + v_health, 0.0000);
  377.     TextDrawColor(gS_Textdraw[DRAW_ENGINE], (engine == 1) ? (-1) : 0x55);
  378.     TextDrawColor(gS_Textdraw[DRAW_LIGHTS], (lights == 1) ? (-1) : 0x55);
  379.     TextDrawColor(gS_Textdraw[DRAW_DOORS], (doors == 1) ? (-1) : 0x55);
  380.     TextDrawColor(gS_Textdraw[DRAW_ALARM], (alarm == 1) ? (-1) : 0x55);
  381.    
  382.     for( new i = DRAW_HEALTH; i <= DRAW_ALARM; i ++ ) {
  383.         TextDrawShowForPlayer(playerid, gS_Textdraw[i]);
  384.     }
  385.    
  386.     new Float:x, Float:y, Float:z;
  387.     GetVehicleVelocity(vehicleid, x, y, z);
  388.     valstr(string, floatround(VectorSize(x, y, z) * 180.0));
  389.     PlayerTextDrawSetString(playerid, pS_Textdraw[playerid][DRAW_SPEED], string);
  390.     PlayerTextDrawShow(playerid, pS_Textdraw[playerid][DRAW_SPEED]);
  391.    
  392.     #if defined FUEL_SYSTEM
  393.     if(engine && v_Fuel[vehicleid] > 0) {
  394.         GetVehiclePos(vehicleid, x, y, z);
  395.         v_Dis[vehicleid] += VectorSize(x - v_Pos[vehicleid][0], y - v_Pos[vehicleid][1], z - v_Pos[vehicleid][2]);
  396.         if(v_Dis[vehicleid] > 500.0) {
  397.             if(!(-- v_Fuel[vehicleid])) {
  398.                 SetVehicleParamsEx(vehicleid, 0, 0, -1, -1, -1, -1, -1);
  399.             }
  400.  
  401.             v_Dis[vehicleid] = 0.0;
  402.         }
  403.  
  404.         valstr(string, v_Fuel[vehicleid]);
  405.         PlayerTextDrawSetString(playerid, pS_Textdraw[playerid][DRAW_FUEL], string);
  406.         PlayerTextDrawShow(playerid, pS_Textdraw[playerid][DRAW_FUEL]);
  407.  
  408.         v_Pos[vehicleid][0] = x;
  409.         v_Pos[vehicleid][1] = y;
  410.         v_Pos[vehicleid][2] = z;
  411.     }
  412.     #endif
  413.    
  414.     pS_Timer[playerid] = SetTimerEx("OnPlayerDriveVehicle", 100, 0, "ii", playerid, vehicleid);
  415.     return 1;
  416. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement