Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- // #DEFINES
- #define FUEL_SYSTEM
- #define DRAW_HEALTH (13)
- #define DRAW_ENGINE (14)
- #define DRAW_LIGHTS (15)
- #define DRAW_DOORS (16)
- #define DRAW_ALARM (17)
- #define DRAW_NAME (0)
- #define DRAW_SPEED (1)
- #define DRAW_FUEL (2)
- // #VARIABLES
- new Float:v_health;
- new engine, lights, alarm, doors, bonnet, boot, objective;
- new PlayerText:pS_Textdraw[MAX_PLAYERS][3];
- new pS_Timer[MAX_PLAYERS];
- new Text:gS_Textdraw[18];
- #if defined FUEL_SYSTEM
- new v_Fuel[MAX_VEHICLES];
- new Float:v_Pos[MAX_VEHICLES][3];
- new Float:v_Dis[MAX_VEHICLES];
- #endif
- new g_VehicleNames[][] = {
- "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
- "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat",
- "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife",
- "Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
- "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
- "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
- "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito",
- "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring",
- "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B",
- "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker",
- "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "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", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
- "Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance",
- "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
- "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
- "Club", "Freight Carriage", "Trailer 4", "Andromeda", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car",
- "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
- "Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer"
- };
- new g_NoSpeed[] = {
- 417, 425, 447, 460, 469, 476, 487, 488, 497, 511, 512, 513, 519, 520, 548,
- 553, 563, 577, 592, 593, 435, 450, 569, 570, 584, 590, 591, 606, 607, 608,
- 610, 611, 430, 446, 452, 453, 454, 472, 473, 484, 493, 581, 522, 461, 521,
- 523, 463, 468, 471, 586, 441, 464, 465, 501, 564, 594, 509, 481, 510, 448,
- 462
- };
- // #FORWARDS
- forward OnPlayerDriveVehicle(playerid, vehicleid);
- // #FUNCTIONS
- Float:health_line(vehicleid) {
- GetVehicleHealth(vehicleid, v_health);
- if(v_health > 1000.0) v_health = 1000.0;
- else if(v_health < 0.0) v_health = 0.0;
- return (v_health * 0.07);
- }
- PlayerText:create_speed_text(playerid, Float:x, Float:y, Float:tx, Float:ty, text[]) {
- new PlayerText:text_id = CreatePlayerTextDraw(playerid, x, y, text);
- PlayerTextDrawLetterSize(playerid, text_id, tx, ty);
- PlayerTextDrawSetOutline(playerid, text_id, 0);
- PlayerTextDrawAlignment(playerid, text_id, 2);
- PlayerTextDrawSetShadow(playerid, text_id, 0);
- PlayerTextDrawColor(playerid, text_id, (-1));
- PlayerTextDrawFont(playerid, text_id, 2);
- PlayerTextDrawShow(playerid, text_id);
- return text_id;
- }
- destroy_speed(playerid) {
- if(pS_Timer[playerid] == (-1)) {
- return 0;
- }
- for( new i = 0; i < sizeof(pS_Textdraw[]); i ++ ) {
- PlayerTextDrawDestroy(playerid, pS_Textdraw[playerid][i]);
- pS_Textdraw[playerid][i] = PlayerText:(-1);
- }
- for( new i = 0; i < sizeof(gS_Textdraw); i ++ ) {
- TextDrawHideForPlayer(playerid, gS_Textdraw[i]);
- }
- KillTimer(pS_Timer[playerid]);
- pS_Timer[playerid] = (-1);
- return 1;
- }
- // #CALLBACKS
- public OnFilterScriptInit() {
- gS_Textdraw[0] = TextDrawCreate(470.000000, 411.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[0], 0.500000, 3.099998);
- TextDrawUseBox(gS_Textdraw[0], 1);
- TextDrawBoxColor(gS_Textdraw[0], 85);
- TextDrawTextSize(gS_Textdraw[0], 630.000000, 0.000000);
- gS_Textdraw[1] = TextDrawCreate(470.000000, 411.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[1], 0.000000, -0.349999);
- TextDrawUseBox(gS_Textdraw[1], 1);
- TextDrawBoxColor(gS_Textdraw[1], 1182971050);
- TextDrawTextSize(gS_Textdraw[1], 630.000000, 0.000000);
- gS_Textdraw[2] = TextDrawCreate(470.000000, 442.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[2], 0.000000, -0.349999);
- TextDrawUseBox(gS_Textdraw[2], 1);
- TextDrawBoxColor(gS_Textdraw[2], 1182971050);
- TextDrawTextSize(gS_Textdraw[2], 630.000000, 0.000000);
- gS_Textdraw[3] = TextDrawCreate(470.000000, 411.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[3], 0.000000, 3.049998);
- TextDrawUseBox(gS_Textdraw[3], 1);
- TextDrawBoxColor(gS_Textdraw[3], 1182971050);
- TextDrawTextSize(gS_Textdraw[3], 466.500000, 0.000000);
- gS_Textdraw[4] = TextDrawCreate(633.500000, 411.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[4], 0.000000, 3.049998);
- TextDrawUseBox(gS_Textdraw[4], 1);
- TextDrawBoxColor(gS_Textdraw[4], 1182971050);
- TextDrawTextSize(gS_Textdraw[4], 630.000000, 0.000000);
- gS_Textdraw[5] = TextDrawCreate(470.000000, 422.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[5], 0.000000, -0.349999);
- TextDrawUseBox(gS_Textdraw[5], 1);
- TextDrawBoxColor(gS_Textdraw[5], 1182971050);
- TextDrawTextSize(gS_Textdraw[5], 630.000000, 0.000000);
- gS_Textdraw[6] = TextDrawCreate(471.000000, 412.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[6], 0.000000, 0.649999);
- TextDrawUseBox(gS_Textdraw[6], 1);
- TextDrawBoxColor(gS_Textdraw[6], -205);
- TextDrawTextSize(gS_Textdraw[6], 629.000000, 0.000000);
- gS_Textdraw[7] = TextDrawCreate(562.000000, 413.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[7], 0.000000, 0.449999);
- TextDrawUseBox(gS_Textdraw[7], 1);
- TextDrawBoxColor(gS_Textdraw[7], 85);
- TextDrawTextSize(gS_Textdraw[7], 628.000000, 0.000000);
- gS_Textdraw[8] = TextDrawCreate(560.000000, 413.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[8], 0.000000, 0.449999);
- TextDrawSetShadow(gS_Textdraw[8], 1);
- TextDrawUseBox(gS_Textdraw[8], 1);
- TextDrawBoxColor(gS_Textdraw[8], 170);
- TextDrawTextSize(gS_Textdraw[8], 556.500000, 0.000000);
- gS_Textdraw[9] = TextDrawCreate(502.000000, 431.000000, "KM/H");
- TextDrawAlignment(gS_Textdraw[9], 2);
- TextDrawBackgroundColor(gS_Textdraw[9], 255);
- TextDrawFont(gS_Textdraw[9], 2);
- TextDrawLetterSize(gS_Textdraw[9], 0.150000, 0.699999);
- TextDrawColor(gS_Textdraw[9], 170);
- TextDrawSetOutline(gS_Textdraw[9], 0);
- TextDrawSetProportional(gS_Textdraw[9], 1);
- TextDrawSetShadow(gS_Textdraw[9], 0);
- gS_Textdraw[10] = TextDrawCreate(517.000000, 421.000000, "/");
- TextDrawAlignment(gS_Textdraw[10], 2);
- TextDrawBackgroundColor(gS_Textdraw[10], 255);
- TextDrawFont(gS_Textdraw[10], 2);
- TextDrawLetterSize(gS_Textdraw[10], 0.290000, 1.300000);
- TextDrawColor(gS_Textdraw[10], -86);
- TextDrawSetOutline(gS_Textdraw[10], 0);
- TextDrawSetProportional(gS_Textdraw[10], 1);
- TextDrawSetShadow(gS_Textdraw[10], 0);
- gS_Textdraw[11] = TextDrawCreate(532.000000, 431.000000, "liters");
- TextDrawAlignment(gS_Textdraw[11], 2);
- TextDrawBackgroundColor(gS_Textdraw[11], 255);
- TextDrawFont(gS_Textdraw[11], 2);
- TextDrawLetterSize(gS_Textdraw[11], 0.150000, 0.699999);
- TextDrawColor(gS_Textdraw[11], 170);
- TextDrawSetOutline(gS_Textdraw[11], 0);
- TextDrawSetProportional(gS_Textdraw[11], 1);
- TextDrawSetShadow(gS_Textdraw[11], 0);
- gS_Textdraw[12] = TextDrawCreate(570.000000, 425.000000, "~n~");
- TextDrawBackgroundColor(gS_Textdraw[12], 255);
- TextDrawFont(gS_Textdraw[12], 1);
- TextDrawLetterSize(gS_Textdraw[12], 0.000000, 1.150000);
- TextDrawColor(gS_Textdraw[12], -1);
- TextDrawSetOutline(gS_Textdraw[12], 0);
- TextDrawSetProportional(gS_Textdraw[12], 1);
- TextDrawSetShadow(gS_Textdraw[12], 1);
- TextDrawUseBox(gS_Textdraw[12], 1);
- TextDrawBoxColor(gS_Textdraw[12], -13434846);
- TextDrawTextSize(gS_Textdraw[12], 566.500000, 0.000000);
- // #INFO TEXTS
- gS_Textdraw[DRAW_HEALTH] = TextDrawCreate(562.000000, 413.000000, "~n~");
- TextDrawLetterSize(gS_Textdraw[DRAW_HEALTH], 0.000000, 0.449999);
- TextDrawUseBox(gS_Textdraw[DRAW_HEALTH], 1);
- TextDrawBoxColor(gS_Textdraw[DRAW_HEALTH], -1879048107);
- TextDrawTextSize(gS_Textdraw[DRAW_HEALTH], 598.000000, 0.000000);
- gS_Textdraw[DRAW_ENGINE] = TextDrawCreate(628.000000, 422.000000, "Engine");
- TextDrawAlignment(gS_Textdraw[DRAW_ENGINE], 3);
- TextDrawBackgroundColor(gS_Textdraw[DRAW_ENGINE], 255);
- TextDrawFont(gS_Textdraw[DRAW_ENGINE], 2);
- TextDrawLetterSize(gS_Textdraw[DRAW_ENGINE], 0.200000, 0.899999);
- TextDrawColor(gS_Textdraw[DRAW_ENGINE], -1);
- TextDrawSetOutline(gS_Textdraw[DRAW_ENGINE], 0);
- TextDrawSetProportional(gS_Textdraw[DRAW_ENGINE], 1);
- TextDrawSetShadow(gS_Textdraw[DRAW_ENGINE], 0);
- gS_Textdraw[DRAW_LIGHTS] = TextDrawCreate(628.000000, 429.000000, "Lights");
- TextDrawAlignment(gS_Textdraw[DRAW_LIGHTS], 3);
- TextDrawBackgroundColor(gS_Textdraw[DRAW_LIGHTS], 255);
- TextDrawFont(gS_Textdraw[DRAW_LIGHTS], 2);
- TextDrawLetterSize(gS_Textdraw[DRAW_LIGHTS], 0.200000, 0.899999);
- TextDrawColor(gS_Textdraw[DRAW_LIGHTS], 85);
- TextDrawSetOutline(gS_Textdraw[DRAW_LIGHTS], 0);
- TextDrawSetProportional(gS_Textdraw[DRAW_LIGHTS], 1);
- TextDrawSetShadow(gS_Textdraw[DRAW_LIGHTS], 0);
- gS_Textdraw[DRAW_DOORS] = TextDrawCreate(598.000000, 422.000000, "Doors");
- TextDrawAlignment(gS_Textdraw[DRAW_DOORS], 3);
- TextDrawBackgroundColor(gS_Textdraw[DRAW_DOORS], 255);
- TextDrawFont(gS_Textdraw[DRAW_DOORS], 2);
- TextDrawLetterSize(gS_Textdraw[DRAW_DOORS], 0.200000, 0.899999);
- TextDrawColor(gS_Textdraw[DRAW_DOORS], 85);
- TextDrawSetOutline(gS_Textdraw[DRAW_DOORS], 0);
- TextDrawSetProportional(gS_Textdraw[DRAW_DOORS], 1);
- TextDrawSetShadow(gS_Textdraw[DRAW_DOORS], 0);
- gS_Textdraw[DRAW_ALARM] = TextDrawCreate(598.000000, 429.000000, "Alarm");
- TextDrawAlignment(gS_Textdraw[DRAW_ALARM], 3);
- TextDrawBackgroundColor(gS_Textdraw[DRAW_ALARM], 255);
- TextDrawFont(gS_Textdraw[DRAW_ALARM], 2);
- TextDrawLetterSize(gS_Textdraw[DRAW_ALARM], 0.196999, 0.899999);
- TextDrawColor(gS_Textdraw[DRAW_ALARM], 85);
- TextDrawSetOutline(gS_Textdraw[DRAW_ALARM], 0);
- TextDrawSetProportional(gS_Textdraw[DRAW_ALARM], 1);
- TextDrawSetShadow(gS_Textdraw[DRAW_ALARM], 0);
- #if defined FUEL_SYSTEM
- for( new i = 0; i < MAX_VEHICLES; i ++ ) {
- v_Fuel[i] = 100;
- }
- #endif
- ManualVehicleEngineAndLights();
- return 1;
- }
- public OnFilterScriptExit() {
- for( new i = 0, s = GetPlayerPoolSize() + 1; i < s; i ++ ) {
- destroy_speed(i);
- }
- for( new i = 0; i < sizeof(gS_Textdraw); i ++ ) {
- TextDrawDestroy(gS_Textdraw[i]);
- }
- return 1;
- }
- public OnPlayerConnect(playerid) {
- for( new i = 0; i < sizeof(pS_Textdraw[]); i ++ ) {
- pS_Textdraw[playerid][i] = PlayerText:(-1);
- }
- pS_Timer[playerid] = (-1);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason) {
- destroy_speed(playerid);
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid) {
- destroy_speed(playerid);
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate) {
- if(oldstate == PLAYER_STATE_DRIVER) {
- destroy_speed(playerid);
- }
- if(newstate == PLAYER_STATE_DRIVER) {
- new vehicleid = GetPlayerVehicleID(playerid);
- new vehicle_model = GetVehicleModel(vehicleid);
- for( new i = 0; i < sizeof(g_NoSpeed); i ++ ) {
- if(vehicle_model != g_NoSpeed[i]) continue;
- return 1;
- }
- v_health = health_line(vehicleid);
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- TextDrawTextSize(gS_Textdraw[DRAW_HEALTH], 558.0 + v_health, 0.0000);
- TextDrawColor(gS_Textdraw[DRAW_ENGINE], (engine == 1) ? (-1) : 0x55);
- TextDrawColor(gS_Textdraw[DRAW_LIGHTS], (lights == 1) ? (-1) : 0x55);
- TextDrawColor(gS_Textdraw[DRAW_DOORS], (doors == 1) ? (-1) : 0x55);
- TextDrawColor(gS_Textdraw[DRAW_ALARM], (alarm == 1) ? (-1) : 0x55);
- for( new i = 0; i < sizeof(gS_Textdraw); i ++ ) {
- TextDrawShowForPlayer(playerid, gS_Textdraw[i]);
- }
- pS_Textdraw[playerid][DRAW_NAME] = create_speed_text(playerid, 513.0, 410.0, 0.22, 1.0, g_VehicleNames[vehicle_model - 400]);
- pS_Textdraw[playerid][DRAW_SPEED] = create_speed_text(playerid, 502.0, 421.0, 0.29, 1.3, "0");
- #if defined FUEL_SYSTEM
- new string[12];
- valstr(string, v_Fuel[vehicleid]);
- pS_Textdraw[playerid][DRAW_FUEL] = create_speed_text(playerid, 532.0, 421.0, 0.29, 1.3, string);
- GetVehiclePos(vehicleid, v_Pos[vehicleid][0], v_Pos[vehicleid][1], v_Pos[vehicleid][2]);
- #else
- pS_Textdraw[playerid][DRAW_FUEL] = create_speed_text(playerid, 532.0, 421.0, 0.29, 1.3, "-");
- #endif
- pS_Timer[playerid] = SetTimerEx("OnPlayerDriveVehicle", 100, 0, "ii", playerid, vehicleid);
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[]) {
- if(strcmp(cmdtext, "/vehicle", false) == 0) {
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- new vehicleid = CreateVehicle(411, x, y, z, 0.0, -1, -1, -1);
- PutPlayerInVehicle(playerid, vehicleid, 0);
- return 1;
- } else {
- new vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- if(strcmp(cmdtext, "/engine", false) == 0) {
- SetVehicleParamsEx(vehicleid, !(engine == 1), -1, -1, -1, -1, -1, -1);
- return 1;
- } else if(strcmp(cmdtext, "/lights", false) == 0) {
- SetVehicleParamsEx(vehicleid, -1, !(lights == 1), -1, -1, -1, -1, -1);
- return 1;
- } else if(strcmp(cmdtext, "/alarm", false) == 0) {
- SetVehicleParamsEx(vehicleid, -1, -1, !(alarm == 1), -1, -1, -1, -1);
- return 1;
- } else if(strcmp(cmdtext, "/doors", false) == 0) {
- SetVehicleParamsEx(vehicleid, -1, -1, -1, !(doors == 1), -1, -1, -1);
- return 1;
- } else if(strcmp(cmdtext, "/fixveh", false) == 0) {
- RepairVehicle(vehicleid);
- return 1;
- }
- #if defined FUEL_SYSTEM
- else if(strcmp(cmdtext, "/fuel", false) == 0) {
- v_Fuel[vehicleid] = 100;
- return 1;
- }
- #endif
- }
- return 0;
- }
- public OnPlayerDriveVehicle(playerid, vehicleid) {
- new string[12];
- v_health = health_line(vehicleid);
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- TextDrawTextSize(gS_Textdraw[DRAW_HEALTH], 558.0 + v_health, 0.0000);
- TextDrawColor(gS_Textdraw[DRAW_ENGINE], (engine == 1) ? (-1) : 0x55);
- TextDrawColor(gS_Textdraw[DRAW_LIGHTS], (lights == 1) ? (-1) : 0x55);
- TextDrawColor(gS_Textdraw[DRAW_DOORS], (doors == 1) ? (-1) : 0x55);
- TextDrawColor(gS_Textdraw[DRAW_ALARM], (alarm == 1) ? (-1) : 0x55);
- for( new i = DRAW_HEALTH; i <= DRAW_ALARM; i ++ ) {
- TextDrawShowForPlayer(playerid, gS_Textdraw[i]);
- }
- new Float:x, Float:y, Float:z;
- GetVehicleVelocity(vehicleid, x, y, z);
- valstr(string, floatround(VectorSize(x, y, z) * 180.0));
- PlayerTextDrawSetString(playerid, pS_Textdraw[playerid][DRAW_SPEED], string);
- PlayerTextDrawShow(playerid, pS_Textdraw[playerid][DRAW_SPEED]);
- #if defined FUEL_SYSTEM
- if(engine && v_Fuel[vehicleid] > 0) {
- GetVehiclePos(vehicleid, x, y, z);
- v_Dis[vehicleid] += VectorSize(x - v_Pos[vehicleid][0], y - v_Pos[vehicleid][1], z - v_Pos[vehicleid][2]);
- if(v_Dis[vehicleid] > 500.0) {
- if(!(-- v_Fuel[vehicleid])) {
- SetVehicleParamsEx(vehicleid, 0, 0, -1, -1, -1, -1, -1);
- }
- v_Dis[vehicleid] = 0.0;
- }
- valstr(string, v_Fuel[vehicleid]);
- PlayerTextDrawSetString(playerid, pS_Textdraw[playerid][DRAW_FUEL], string);
- PlayerTextDrawShow(playerid, pS_Textdraw[playerid][DRAW_FUEL]);
- v_Pos[vehicleid][0] = x;
- v_Pos[vehicleid][1] = y;
- v_Pos[vehicleid][2] = z;
- }
- #endif
- pS_Timer[playerid] = SetTimerEx("OnPlayerDriveVehicle", 100, 0, "ii", playerid, vehicleid);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement