Advertisement
RobsonSilva

Velocimetro

Jan 11th, 2012
1,179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.46 KB | None | 0 0
  1. #include a_samp
  2.  
  3. /*
  4.  *
  5.  *   "Velocimetro"
  6.  *  by [S]trong
  7.  *
  8. */
  9.  
  10. #define COL_VEH_NAME 0xFF8C00FF
  11. #define COL_VEH_INFO 0xE3E3E3FF
  12.  
  13. stock const
  14.     vehicleNames[ 212 ][ 18 ] = {
  15.         { !#Landstalker       }, { !#Bravura           }, { !#Buffalo           }, { !#Linerunner        }, // 400, 401, 402, 403
  16.         { !#Perrenial         }, { !#Sentinel          }, { !#Dumper            }, { !#Firetruck         }, // 404, 405, 406, 407
  17.         { !#Trashmaster       }, { !#Stretch           }, { !#Manana            }, { !#Infernus          }, // 408, 409, 410, 411
  18.         { !#Voodoo            }, { !#Pony              }, { !#Mule              }, { !#Cheetah           }, // 412, 413, 414, 415
  19.         { !#Ambulance         }, { !#Leviathan         }, { !#Moonbeam          }, { !#Esperanto         }, // 416, 417, 418, 419
  20.         { !#Taxi              }, { !#Washington        }, { !#Bobcat            }, { !#Mr Whoopee        }, // 420, 421, 422, 423
  21.         { !#BF Injection      }, { !#Hunter            }, { !#Premier           }, { !#Enforcer          }, // 424, 425, 426, 427
  22.         { !#Securicar         }, { !#Banshee           }, { !#Predator          }, { !#Bus               }, // 428, 429, 430, 431
  23.         { !#Rhino             }, { !#Barracks          }, { !#Hotknife          }, { !#Trailer 1         }, // 432, 433, 434, 435
  24.         { !#Previon           }, { !#Coach             }, { !#Cabbie            }, { !#Stallion          }, // 436, 437, 438, 439
  25.         { !#Rumpo             }, { !#RC Bandit         }, { !#Romero            }, { !#Packer            }, // 440, 441, 442, 443
  26.         { !#Monster           }, { !#Admiral           }, { !#Squalo            }, { !#Seasparrow        }, // 444, 445, 446, 447
  27.         { !#Pizzaboy          }, { !#Tram              }, { !#Trailer 2         }, { !#Turismo           }, // 448, 449, 450, 451
  28.         { !#Speeder           }, { !#Reefer            }, { !#Tropic            }, { !#Flatbed           }, // 452, 453, 454, 455
  29.         { !#Yankee            }, { !#Caddy             }, { !#Solair            }, { !#RC Van            }, // 456, 457, 458, 459
  30.         { !#Skimmer           }, { !#PCJ-600           }, { !#Faggio            }, { !#Freeway           }, // 460, 461, 462, 463
  31.         { !#RC Baron          }, { !#RC Raider         }, { !#Glendale          }, { !#Oceanic           }, // 464, 465, 466, 467
  32.         { !#Sanchez           }, { !#Sparrow           }, { !#Patriot           }, { !#Quad              }, // 468, 469, 470, 471
  33.         { !#Coastguard        }, { !#Dinghy            }, { !#Hermes            }, { !#Sabre             }, // 472, 473, 474, 475
  34.         { !#Rustler           }, { !#ZR-350            }, { !#Walton            }, { !#Regina            }, // 476, 477, 478, 479
  35.         { !#Comet             }, { !#BMX               }, { !#Burrito           }, { !#Camper            }, // 480, 481, 482, 483
  36.         { !#Marquis           }, { !#Baggage           }, { !#Dozer             }, { !#Maverick          }, // 484, 485, 486, 487
  37.         { !#News Chopper      }, { !#Rancher           }, { !#FBI Rancher       }, { !#Virgo             }, // 488, 489, 490, 491
  38.         { !#Greenwood         }, { !#Jetmax            }, { !#Hotring           }, { !#Sandking          }, // 492, 493, 494, 495
  39.         { !#Blista            }, { !#Police Maverick   }, { !#Boxville          }, { !#Benson            }, // 496, 497, 498, 499
  40.         { !#Mesa              }, { !#RC Goblin         }, { !#Hotring A         }, { !#Hotring B         }, // 500, 501, 502, 503
  41.         { !#Bloodring Banger  }, { !#Rancher           }, { !#Super GT          }, { !#Elegant           }, // 504, 505, 506, 507
  42.         { !#Journey           }, { !#Bike              }, { !#Mountain Bike     }, { !#Beagle            }, // 508, 509, 510, 511
  43.         { !#Cropdust          }, { !#Stuntplane        }, { !#Tanker            }, { !#Roadtrain         }, // 512, 513, 514, 515
  44.         { !#Nebula            }, { !#Majestic          }, { !#Buccaneer         }, { !#Shamal            }, // 516, 517, 518, 519
  45.         { !#Hydra             }, { !#FCR-900           }, { !#NRG-500           }, { !#HPV1000           }, // 520, 521, 522, 523
  46.         { !#Cement Truck      }, { !#Tow Truck         }, { !#Fortune           }, { !#Cadrona           }, // 524, 525, 526, 527
  47.         { !#FBI Truck         }, { !#Willard           }, { !#Forklift          }, { !#Tractor           }, // 528, 529, 530, 531
  48.         { !#Combine           }, { !#Feltzer           }, { !#Remington         }, { !#Slamvan           }, // 532, 533, 534, 535
  49.         { !#Blade             }, { !#Freight           }, { !#Streak            }, { !#Vortex            }, // 536, 537, 538, 539
  50.         { !#Vincent           }, { !#Bullet            }, { !#Clover            }, { !#Sadler            }, // 540, 541, 542, 543
  51.         { !#Firetruck LA      }, { !#Hustler           }, { !#Intruder          }, { !#Primo             }, // 544, 545, 546, 547
  52.         { !#Cargobob          }, { !#Tampa             }, { !#Sunrise           }, { !#Merit             }, // 548, 549, 550, 551
  53.         { !#Utility           }, { !#Nevada            }, { !#Yosemite          }, { !#Windsor           }, // 552, 553, 554, 555
  54.         { !#Monster           }, { !#Monster           }, { !#Uranus            }, { !#Jester            }, // 556, 557, 558, 559
  55.         { !#Sultan            }, { !#Stratum           }, { !#Elegy             }, { !#Raindance         }, // 560, 561, 562, 563
  56.         { !#RC Tiger          }, { !#Flash             }, { !#Tahoma            }, { !#Savanna           }, // 564, 565, 566, 567
  57.         { !#Bandito           }, { !#Freight Flat      }, { !#Streak Carriage   }, { !#Kart              }, // 568, 569, 570, 571
  58.         { !#Mower             }, { !#Duneride          }, { !#Sweeper           }, { !#Broadway          }, // 572, 573, 574, 575
  59.         { !#Tornado           }, { !#AT-400            }, { !#DFT-30            }, { !#Huntley           }, // 576, 577, 578, 579
  60.         { !#Stafford          }, { !#BF-400            }, { !#Newsvan           }, { !#Tug               }, // 580, 581, 582, 583
  61.         { !#Trailer 3         }, { !#Emperor           }, { !#Wayfarer          }, { !#Euros             }, // 584, 585, 586, 587
  62.         { !#Hotdog            }, { !#Club              }, { !#Freight Carriage  }, { !#Trailer 3         }, // 588, 589, 590, 591
  63.         { !#Andromada         }, { !#Dodo              }, { !#RC Cam            }, { !#Launch            }, // 592, 593, 594, 595
  64.         { !#Police LS         }, { !#Police SF         }, { !#Police LV         }, { !#Police Ranger     }, // 596, 597, 598, 599
  65.         { !#Picador           }, { !#S.W.A.T. Van      }, { !#Alpha             }, { !#Phoenix           }, // 600, 601, 602, 603
  66.         { !#Glendale          }, { !#Sadler            }, { !#Luggage Trailer A }, { !#Luggage Trailer B }, // 604, 605, 606, 607
  67.         { !#Stair Trailer     }, { !#Boxville          }, { !#Farm Plow         }, { !#Utility Trailer   }  // 608, 609, 610, 611
  68.     }
  69. ;
  70.  
  71. enum E_TEXTDRAW
  72. {
  73.     Text:vehicleBox,
  74.     Text:vehicleName[ MAX_PLAYERS ],
  75.     Text:vehicleRight[ MAX_PLAYERS ],
  76.     Text:vehicleLeft[ MAX_PLAYERS ],
  77. };
  78.  
  79. stock
  80.           textDraw[ E_TEXTDRAW ],
  81.     Float:Gas[ MAX_VEHICLES ] = { 100.0, ... }
  82. ;
  83.  
  84. VelocimeterUpdate(playerid, Float:x, Float:y, Float:z);
  85.  
  86. public OnFilterScriptInit( ) {
  87.     textsLoad( );
  88. }
  89.  
  90. public OnFilterScriptExit( ) {
  91.     TextDrawHideForAll(textDraw[vehicleBox]);
  92.    
  93.     for( new i = 0, s = GetMaxPlayers( ); i != s; ++ i) {
  94.         TextDrawHideForAll(textDraw[vehicleName][i]);
  95.         TextDrawHideForAll(textDraw[vehicleLeft][i]);
  96.         TextDrawHideForAll(textDraw[vehicleRight][i]);
  97.     }
  98. }
  99.  
  100. public OnPlayerConnect(playerid) {
  101.     for( new i = 0, s = GetMaxPlayers( ); i != s; ++ i) {
  102.         TextDrawHideForPlayer(playerid, textDraw[vehicleName][i]);
  103.         TextDrawHideForPlayer(playerid, textDraw[vehicleLeft][i]);
  104.         TextDrawHideForPlayer(playerid, textDraw[vehicleRight][i]);
  105.     }
  106. }
  107.  
  108. stock textsLoad( ) {
  109.     textDraw[ vehicleBox ] = TextDrawCreate( 555.0, 360.0, "LD_POKE:cd9d" );
  110.  
  111.     TextDrawLetterSize      ( textDraw[ vehicleBox ], -0.09, -8.3 ),
  112.     TextDrawTextSize        ( textDraw[ vehicleBox ], -130.0, 40.0 ),
  113.     TextDrawBoxColor        ( textDraw[ vehicleBox ], 0x0000000F ),
  114.     TextDrawBackgroundColor ( textDraw[ vehicleBox ], 0x0000000F ),
  115.     TextDrawColor           ( textDraw[ vehicleBox ], 0x0000000F ),
  116.     TextDrawAlignment       ( textDraw[ vehicleBox ], 0x2 ),
  117.     TextDrawFont            ( textDraw[ vehicleBox ], 0x4 ),
  118.     TextDrawSetOutline      ( textDraw[ vehicleBox ], 0x1 ),
  119.     TextDrawSetShadow       ( textDraw[ vehicleBox ], 0x0 ),
  120.     TextDrawUseBox          ( textDraw[ vehicleBox ], 0x1 );
  121.  
  122.     for( new i = 0; i != MAX_PLAYERS; ++ i ) {
  123.         textDraw[ vehicleName ][ i ] = TextDrawCreate( 490.0, 362.0, "~n~ ~n~" );
  124.  
  125.         TextDrawLetterSize      ( textDraw[ vehicleName ][ i ], 0.25, 1.1 ),
  126.         TextDrawBackgroundColor ( textDraw[ vehicleName ][ i ], 0x0000000F ),
  127.         TextDrawColor           ( textDraw[ vehicleName ][ i ], COL_VEH_NAME ),
  128.         TextDrawAlignment       ( textDraw[ vehicleName ][ i ], 0x2 ),
  129.         TextDrawFont            ( textDraw[ vehicleName ][ i ], 0x2 ),
  130.         TextDrawSetOutline      ( textDraw[ vehicleName ][ i ], 0x1 ),
  131.         TextDrawSetShadow       ( textDraw[ vehicleName ][ i ], 0x0 );
  132.  
  133.         textDraw[ vehicleLeft ][ i ] = TextDrawCreate( 433.0, 375.0, "~n~ ~n~" );
  134.  
  135.         TextDrawLetterSize      ( textDraw[ vehicleLeft ][ i ], 0.2, 0.8 ),
  136.         TextDrawBackgroundColor ( textDraw[ vehicleLeft ][ i ], 0x0000001F ),
  137.         TextDrawColor           ( textDraw[ vehicleLeft ][ i ], COL_VEH_INFO ),
  138.         TextDrawAlignment       ( textDraw[ vehicleLeft ][ i ], 0x1 ),
  139.         TextDrawFont            ( textDraw[ vehicleLeft ][ i ], 0x1 ),
  140.         TextDrawSetOutline      ( textDraw[ vehicleLeft ][ i ], 0x1 ),
  141.         TextDrawSetShadow       ( textDraw[ vehicleLeft ][ i ], 0x0 );
  142.  
  143.         textDraw[ vehicleRight ][ i ] = TextDrawCreate( 547.0, 375.0, "~n~ ~n~" );
  144.  
  145.         TextDrawLetterSize      ( textDraw[ vehicleRight ][ i ], 0.2, 0.8 ),
  146.         TextDrawBackgroundColor ( textDraw[ vehicleRight ][ i ], 0x0000001F ),
  147.         TextDrawColor           ( textDraw[ vehicleRight ][ i ], COL_VEH_INFO ),
  148.         TextDrawAlignment       ( textDraw[ vehicleRight ][ i ], 0x3 ),
  149.         TextDrawFont            ( textDraw[ vehicleRight ][ i ], 0x1 ),
  150.         TextDrawSetOutline      ( textDraw[ vehicleRight ][ i ], 0x1 ),
  151.         TextDrawSetShadow       ( textDraw[ vehicleRight ][ i ], 0x0 );
  152.     }
  153. }
  154.  
  155. public OnPlayerStateChange(playerid, newstate, oldstate) {
  156.     if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) {
  157.         new
  158.             Float:_Pos[3]
  159.         ;
  160.  
  161.         GetPlayerPos(playerid, _Pos[0], _Pos[1], _Pos[2]);
  162.  
  163.         VelocimeterUpdate(playerid, _Pos[0], _Pos[1], _Pos[2]);
  164.  
  165.         new
  166.             _Name[18]
  167.         ;
  168.  
  169.         strunpack(_Name, vehicleNames[GetVehicleModel(GetPlayerVehicleID(playerid)) - 400]);
  170.         TextDrawSetString(textDraw[vehicleName][playerid], _Name);
  171.        
  172.         TextDrawShowForPlayer(playerid, textDraw[vehicleBox]);
  173.         TextDrawShowForPlayer(playerid, textDraw[vehicleName][playerid]);
  174.         TextDrawShowForPlayer(playerid, textDraw[vehicleLeft][playerid]);
  175.         TextDrawShowForPlayer(playerid, textDraw[vehicleRight][playerid]);
  176.     }
  177.  
  178.     if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) {
  179.         TextDrawHideForPlayer(playerid, textDraw[vehicleBox]);
  180.         TextDrawHideForPlayer(playerid, textDraw[vehicleName][playerid]);
  181.         TextDrawHideForPlayer(playerid, textDraw[vehicleLeft][playerid]);
  182.         TextDrawHideForPlayer(playerid, textDraw[vehicleRight][playerid]);
  183.     }
  184. }
  185.  
  186. public VelocimeterUpdate(playerid, Float:x, Float:y, Float:z) {
  187.     if(IsPlayerInAnyVehicle(playerid)) {
  188.         new
  189.             Float:_Pos[5],
  190.                   _String[45]
  191.         ;
  192.  
  193.         _Pos[3] = GetPlayerDistanceFromPoint(playerid, x, y, z);
  194.  
  195.         GetPlayerPos(playerid, _Pos[0], _Pos[1], _Pos[2]);
  196.  
  197.         new
  198.             vehicleID = GetPlayerVehicleID(playerid)
  199.         ;
  200.  
  201.         if(_Pos[3]) {
  202.             Gas[vehicleID] -= 0.01;
  203.         }
  204.  
  205.         format(_String, sizeof(_String), "gasolina %d%%~n~altitude %0.2f m", floatround(Gas[vehicleID]), floatmul(_Pos[2], 0.3408));
  206.  
  207.         TextDrawSetString(textDraw[vehicleRight][playerid], _String);
  208.  
  209.         GetVehicleHealth(vehicleID, _Pos[4]);
  210.  
  211.         format(_String, sizeof(_String), "%d km/h~n~lataria %d%%", floatround(floatmul(_Pos[3], 10.0)), floatround(floatdiv(_Pos[4], 10.0)));
  212.  
  213.         TextDrawSetString(textDraw[vehicleLeft][playerid], _String);
  214.  
  215.         SetTimerEx("VelocimeterUpdate", 200, false, "ifff", playerid, _Pos[0], _Pos[1], _Pos[2]);
  216.     }
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement