/**
* © Coffeely, 2014.
* Please leave author's credits.
* This work is licensed under the Creative
* Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
* To view a copy of this license,
* visit http://creativecommons.org/licenses/by-nc-nd/3.0/.
* I'd advice you not to change anything unless you are sure of what you are doing.
**/
#include <a_samp>
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#define VehicleHealthYellow 700
#define VehicleHealthRed 400
#define SpeedCheck(%0,%1,%2,%3,%4) floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1)) *%3*1.6)
forward Speedometer(playerid);
new Text:VehicleName[MAX_PLAYERS], Text:VehicleHealth[MAX_PLAYERS], Text:VehicleSpeed[MAX_PLAYERS], Text:Title, Text:Underline, Text:KMH;
new VehicleNames[][] =
{
"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck",
"Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah",
"Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Mr Whoopee",
"BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
"Rhino", "Barracks", "Hotknife", "Article Trailer", "Previon", "Coach", "Cabbie", "Stallion",
"Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squallo", "Seasparrow",
"Pizzaboy", "Tram", "Article 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",
"SAN News Maverick", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring Racer", "Sandking",
"Blista Compact", "Police Maverick", "Boxville", "Banson", "Mesa", "RC Goblin", "Hotring Racer", "Hotring Racer",
"Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle",
"Cropduster", "Stuntplane", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal",
"Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Towtruck", "Fortune", "Cadrona",
"FBI Truck", "Willard", "Forklift", "Tractor", "Combine Harvester", "Feltzer", "Remington", "Slamvan",
"Blade", "Freight (Train)", "Brownstreak (Train)", "Vortex", "Vincent", "Bullet", "Clover", "Sadler",
"Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
"Utility Van", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester",
"Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna",
"Bandito", "Freight Flat Trailer", "Brownstreak Trailer", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
"Tornado", "AT400", "DFT-30", "Huntley", "Stafford", "BF-400", "Newsvan", "Tug",
"Petrol Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box Trailer", "Article Trailer 3",
"Andromada", "Dodo", "RC Cam", "Launch", "Police Cruiser (LSPD)", "Police Cruiser (SFPD)", "Police Cruiser (LVPD)", "Police Ranger",
"Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale Shit", "Sadler Shit", "Baggage Trailer A", "Baggage Trailer B",
"Tug Stairs Trailer", "Boxville", "Farm Trailer", "Utility Trailer"
};
new PayandSprayLocations[][] =
{
{2065.0664, -1831.5220, 13.5469}, // Willowfield
{1024.9447, -1023.4502, 32.1016}, // Temple
{487.4607, -1741.5581, 11.1342}, // Santa Maria Beach
{720.1347, -457.2606, 16.3359}, // Dillimore
{-1904.5298, 285.6453, 41.0469}, // Doherty
{-2425.7937, 1020.4005, 50.3977}, // Jupiter Hollow
{1975.9966, 2162.3879, 11.0703}, // Las Venturas
{-99.9442, 1119.4694, 19.7417}, // Fort Carson
{-1420.5179, 2583.0898, 55.8433} // El Quebrados
};
public OnFilterScriptInit()
{
print("\n Coffeely's Speedometer loading...");
print("\n \t cSpeedometer Loaded.");
SetTimer("Speedometer", 200, true);
Underline = TextDrawCreate(607.571594, 397.446624, "-");
TextDrawLetterSize(Underline, 0.000000, -0.212750);
TextDrawTextSize(Underline, 537.428588, 0.000000);
TextDrawAlignment(Underline, 1);
TextDrawColor(Underline, 0);
TextDrawUseBox(Underline, true);
TextDrawBoxColor(Underline, 255);
TextDrawSetShadow(Underline, 0);
TextDrawSetOutline(Underline, 0);
TextDrawFont(Underline, 0);
Title = TextDrawCreate(539.428588, 383.573211, "Speedometer");
TextDrawLetterSize(Title, 0.217999, 1.288532);
TextDrawAlignment(Title, 1);
TextDrawColor(Title, -1);
TextDrawSetShadow(Title, 0);
TextDrawSetOutline(Title, 1);
TextDrawBackgroundColor(Title, 51);
TextDrawFont(Title, 2);
TextDrawSetProportional(Title, 1);
KMH = TextDrawCreate(571.428955, 416.426666, "KM/H");
TextDrawLetterSize(KMH, 0.318951, 1.070932);
TextDrawAlignment(KMH, 1);
TextDrawColor(KMH, -1);
TextDrawSetShadow(KMH, 0);
TextDrawSetOutline(KMH, 1);
TextDrawBackgroundColor(KMH, 51);
TextDrawFont(KMH, 2);
TextDrawSetProportional(KMH, 1);
for(new i = 0; i < GetMaxPlayers(); i++)
{
VehicleName[i] = TextDrawCreate(538.285278, 396.800018, " ");
TextDrawLetterSize(VehicleName[i], 0.206952, 1.130664);
TextDrawAlignment(VehicleName[i], 1);
TextDrawColor(VehicleName[i], -1);
TextDrawSetShadow(VehicleName[i], 0);
TextDrawSetOutline(VehicleName[i], 1);
TextDrawBackgroundColor(VehicleName[i], 51);
TextDrawFont(VehicleName[i], 2);
TextDrawSetProportional(VehicleName[i], 1);
VehicleHealth[i] = TextDrawCreate(570.284912, 407.466613, " ");
TextDrawLetterSize(VehicleHealth[i], 0.261808, 1.151998);
TextDrawAlignment(VehicleHealth[i], 1);
TextDrawColor(VehicleHealth[i], -1);
TextDrawSetShadow(VehicleHealth[i], 0);
TextDrawSetOutline(VehicleHealth[i], 1);
TextDrawBackgroundColor(VehicleHealth[i], 51);
TextDrawFont(VehicleHealth[i], 2);
TextDrawSetProportional(VehicleHealth[i], 1);
VehicleSpeed[i] = TextDrawCreate(537.903259, 402.346588, " ");
TextDrawLetterSize(VehicleSpeed[i], 0.435141, 2.909866);
TextDrawAlignment(VehicleSpeed[i], 1);
TextDrawColor(VehicleSpeed[i], -1);
TextDrawSetShadow(VehicleSpeed[i], 0);
TextDrawSetOutline(VehicleSpeed[i], 1);
TextDrawBackgroundColor(VehicleSpeed[i], 51);
TextDrawFont(VehicleSpeed[i], 2);
TextDrawSetProportional(VehicleSpeed[i], 1);
}
return 1;
}
public OnFilterScriptExit()
{
print("\n Coffeely's Speedometer unloading...");
print("\n \t cSpeedometer Unloaded.");
TextDrawHideForAll(Underline);
TextDrawDestroy(Underline);
TextDrawHideForAll(Title);
TextDrawDestroy(Title);
TextDrawHideForAll(KMH);
TextDrawDestroy(KMH);
for(new i = 0; i < GetMaxPlayers(); i++)
{
TextDrawDestroy(VehicleName[i]);
TextDrawDestroy(VehicleHealth[i]);
TextDrawDestroy(VehicleSpeed[i]);
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
TextDrawShowForPlayer(playerid, Underline);
TextDrawShowForPlayer(playerid, Title);
TextDrawShowForPlayer(playerid, KMH);
for(new i = 0; i < GetMaxPlayers(); i++)
{
TextDrawShowForPlayer(playerid, VehicleName[playerid]);
TextDrawShowForPlayer(playerid, VehicleHealth[playerid]);
TextDrawShowForPlayer(playerid, VehicleSpeed[playerid]);
}
}
else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
{
TextDrawHideForPlayer(playerid, Underline);
TextDrawHideForPlayer(playerid, Title);
TextDrawHideForPlayer(playerid, KMH);
for(new i = 0; i < GetMaxPlayers(); i++)
{
TextDrawHideForPlayer(playerid, VehicleName[i]);
TextDrawHideForPlayer(playerid, VehicleHealth[i]);
TextDrawHideForPlayer(playerid, VehicleSpeed[i]);
}
}
}
public Speedometer(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
new string[32], string2[32], string3[10], Float:vhealth;
format(string, sizeof(string), "~g~%s", VehicleNames[GetVehicleModel(GetPlayerVehicleID(i))-400]);
TextDrawSetString(VehicleName[i], string);
format(string2, sizeof(string2), "%d", GetPlayerSpeed(i, 0));
TextDrawSetString(VehicleSpeed[i], string2);
GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
format(string3, sizeof(string3), "~%s~%.0f.0", DamageColor(vhealth), vhealth);
TextDrawSetString(VehicleHealth[i], string3);
}
}
return 1;
}
stock DamageColor(Float: health)
{
new string[5];
if (health <= VehicleHealthRed)
format(string, sizeof(string), "r");
else if (health < VehicleHealthYellow)
format(string, sizeof(string), "y");
else
format(string, sizeof(string), "g");
return string;
}
stock GetPlayerSpeed(playerid, get3d)
{
new Float:x, Float:y, Float:z;
if(IsPlayerInAnyVehicle(playerid))
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
else
GetPlayerVelocity(playerid, x, y, z);
return SpeedCheck(x, y, z, 100.0, get3d);
}
#endif
new
Float:ClosestDistance = 60000.0,
ClosestPayNSpray,
Float:paynspraycords[][3] =
{
{X, Y, Z},
{X, Y, Z},
{X, Y, Z};
};
for(new i=0; i<sizeof(paynspraycords); i++)
{
if(GetPlayerDistanceFromPoint(playerid, paynspraycords[i][0], paynspraycords[i][1], paynspraycords[i][2]) < ClosestDistance)
{
ClosestDistance = GetPlayerDistanceFromPoint(playerid, Hospitals[i][0], Hospitals[i][1], Hospitals[i][2]);
ClosestPayNSpray = i;
}
}
//Use ClosestPayNSpray as the Closest.
I use this method to find the nearest location
pawn Код:
![]() |
Can you give me the Pay'n'Spray coords and I'll try to edit your script with it.
|
new PayandSprayLocations[][] =
{
{2065.0664, -1831.5220, 13.5469}, // Willowfield
{1024.9447, -1023.4502, 32.1016}, // Temple
{487.4607, -1741.5581, 11.1342}, // Santa Maria Beach
{720.1347, -457.2606, 16.3359}, // Dillimore
{-1904.5298, 285.6453, 41.0469}, // Doherty
{-2425.7937, 1020.4005, 50.3977}, // Jupiter Hollow
{1975.9966, 2162.3879, 11.0703}, // Las Venturas
{-99.9442, 1119.4694, 19.7417}, // Fort Carson
{-1420.5179, 2583.0898, 55.8433} // El Quebrados
};
Can you give me the Pay'n'Spray coords and I'll try to edit your script with it.
|
new
Float:ClosestDistance = 60000.0,
closestid,
PayandSprayLocations[][] =
{
{2065.0664, -1831.5220, 13.5469}, // Willowfield
{1024.9447, -1023.4502, 32.1016}, // Temple
{487.4607, -1741.5581, 11.1342}, // Santa Maria Beach
{720.1347, -457.2606, 16.3359}, // Dillimore
{-1904.5298, 285.6453, 41.0469}, // Doherty
{-2425.7937, 1020.4005, 50.3977}, // Jupiter Hollow
{1975.9966, 2162.3879, 11.0703}, // Las Venturas
{-99.9442, 1119.4694, 19.7417}, // Fort Carson
{-1420.5179, 2583.0898, 55.8433} // El Quebrados
};
for(new i; i<sizeof(paynspraycords); i++)
{
if(GetPlayerDistanceFromPoint(playerid, PayandSprayLocations[i][0], PayandSprayLocations[i][1], PayandSprayLocations[i][2]) < ClosestDistance)
{
ClosestDistance = GetPlayerDistanceFromPoint(playerid, PayandSprayLocations[i][0], PayandSprayLocations[i][1], PayandSprayLocations[i][2]);
closestid = i;
}
}
SetPlayerCheckpoint(playerid, PayandSprayLocations[closestid][0], PayandSprayLocations[closestid][1], PayandSprayLocations[closestid][2], 2.5);