View difference between Paste ID: 4wRdvg3p and uT4NKmDn
SHOW: | | - or go back to the newest paste.
1
/*  Speed checking FS
2
	All credits go to Spenzo                   */
3
	
4
	
5
#include <a_samp>
6
7
#define COLOR_YELLOW 0xFFFF00AA
8
9
new VehRadarID [MAX_VEHICLES];
10
new Text: RadarHud;
11
new Text: SpeedAndModel [MAX_VEHICLES];
12
new CheckingSpeed [MAX_VEHICLES];
13
new OldVehID [MAX_PLAYERS];
14
15
forward UpdateSpeed (vehid);
16
forward CheckValidTextDraws();
17
18
19
new VehicleModel[212][] ={
20
"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial","Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
21
"Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance","Leviathan", "Moonbeam", "Esperanto", "Taxi",
22
"Washington", "Bobcat","Whoopee", "BF Injection", "Hunter", "Premier","Enforcer", "Securicar", "Banshee",
23
"Predator", "Bus", "Rhino", "Barracks", "Hotknife","Trailer 1", "Previon", "Coach", "Cabbie", "Stallion",
24
"Rumpo", "RC Bandit", "Romero", "Packer","Monster", "Admiral", "Squalo","Seasparrow", "Pizzaboy", "Tram", "Trailer 2",
25
"Turismo", "Speeder", "Reefer", "Tropic","Flatbed", "Yankee", "Caddy", "Solair","Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio",
26
"Freeway", "RC Baron", "RC Raider","Glendale", "Oceanic", "Sanchez", "Sparrow","Patriot", "Quad", "Coastguard", "Dinghy", "Hermes",
27
"Sabre", "Rustler", "ZR-350","Walton", "Regina", "Comet", "BMX", "Burrito","Camper", "Marquis", "Baggage", "Dozer", "Maverick",
28
"News Chopper", "Rancher","FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring","Sandking", "Blista Compact", "Police Maverick",
29
"Boxvillde", "Benson","Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B","Bloodring Banger", "Rancher", "Super GT", "Elegant",
30
"Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster","Stunt",  "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer",
31
"Shamal", "Hydra","FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune","Cadrona", "FBI Truck", "Willard",
32
"Forklift", "Tractor", "Combine","Feltzer", "Remington", "Slamvan", "Blade", "Freight","Streak","Vortex", "Vincent", "Bullet",
33
"Clover", "Sadler", "Firetruck LA","Hustler", "Intruder", "Primo", "Cargobob", "Tampa","Sunrise", "Merit","Utility", "Nevada",
34
"Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan","Stratum", "Elegy", "Raindance","RC Tiger",
35
"Flash", "Tahoma", "Savanna", "Bandito","Freight Flat", "Streak Carriage", "Kart","Mower", "Dune", "Sweeper", "Broadway",
36
"Tornado", "AT-400", "DFT-30", "Huntley", "Stafford","BF-400", "News Van", "Tug", "Trailer 3", "Emperor","Wayfarer", "Euros",
37
"Hotdog","Club", "Freight Carriage", "Trailer 4","Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)","Police Car (SFPD)",
38
"Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha","Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
39
"Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer" };
40
41
42
public OnFilterScriptInit ()
43
{
44
	printf (" \nCruiser speed radar made by Srdjan loaded.\n");
45
	
46
	SetTimer ("CheckValidTextDraws", 1000, 1);
47
	
48
	RadarHud = TextDrawCreate (495.0, 200.0, "~b~Model: ~n~~r~Speed:         kmph");
49
	TextDrawFont (RadarHud, 2);
50
	TextDrawLetterSize (RadarHud, 0.3, 1.0);
51
    
52
	for (new i = 1; i <= MAX_VEHICLES; i++)
53
	{
54
	    VehRadarID [i] = -1;
55
	    SpeedAndModel [i] = TextDrawCreate (545.0, 200.0, "~b~ ~n~~r~");
56
	    TextDrawFont (SpeedAndModel [i], 2);
57
	    TextDrawLetterSize (SpeedAndModel [i], 0.3, 1.0);
58
	    CheckingSpeed [i] = 0;
59
	}
60
 	
61
	return 1;
62
}
63
64
public OnPlayerCommandText (playerid, cmdtext[])
65
{
66
	if (!strcmp (cmdtext, "/placeradar"))
67
	{
68
		if (IsPlayerInAnyVehicle (playerid))
69
		{
70
		    new vehid = GetPlayerVehicleID (playerid);
71
		    if (VehRadarID [vehid] > -1) return 1;
72
		    
73
            new Float: x, Float: y, Float: z, Float: a;
74
		    GetVehiclePos (vehid, x, y, z);
75
		    GetVehicleZAngle (vehid, a);
76
		    SendClientMessage (playerid, COLOR_YELLOW, "Radar has been added successfully.");
77
		    VehRadarID [vehid] = CreateObject (367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0);
78
		    AttachObjectToVehicle (VehRadarID [vehid], vehid, 0.2, 0.50, 0.3, 0.0, 0.0, 90.0);
79
		    
80
		    for (new i = 0; i < MAX_PLAYERS; i++)
81
		    {
82
		        if (IsPlayerInVehicle (i, vehid))
83
		        {
84
          			TextDrawShowForPlayer (i, RadarHud);
85
				}
86
		    }
87
  		}
88
		return 1;
89
	}
90
	
91
	if (!strcmp (cmdtext, "/removeradar"))
92
	{
93
	    if (IsPlayerInAnyVehicle (playerid))
94
	    {
95
	        new vehid = GetPlayerVehicleID (playerid);
96
	        if (VehRadarID [vehid] == -1) return 1;
97
98
		    DestroyObject (VehRadarID [vehid]);
99
	        SendClientMessage (playerid, COLOR_YELLOW, "Radar has been removed successfully.");
100
	        VehRadarID [vehid] = -1;
101
	        KillTimer (CheckingSpeed [vehid]);
102
         	CheckingSpeed [vehid] = -1;
103
	        
104
	        for (new i = 0; i < MAX_PLAYERS; i++)
105
		    {
106
		        if (IsPlayerInVehicle (i, vehid))
107
		        {
108
					TextDrawHideForPlayer (i, RadarHud);
109
					TextDrawHideForPlayer (playerid, SpeedAndModel [vehid]);
110
		        }
111
		    }
112
	    }
113
	    return 1;
114
	}
115
116
	if (!strcmp (cmdtext, "/checkspeed"))
117
	{
118
	    if (IsPlayerInAnyVehicle (playerid))
119
	    {
120
	        new vehid = GetPlayerVehicleID (playerid);
121
	        if (VehRadarID [vehid] == -1) return 1;
122
	        CheckingSpeed [vehid] = SetTimerEx ("UpdateSpeed", 100, 1, "d", vehid);
123
  	    }
124
	    return 1;
125
	}
126
	
127
	if (!strcmp (cmdtext, "/stopchecking"))
128
	{
129
	    if (IsPlayerInAnyVehicle (playerid))
130
	    {
131
	        new vehid = GetPlayerVehicleID (playerid);
132
	        if (CheckingSpeed [vehid] > 0)
133
	        {
134
	            KillTimer (CheckingSpeed [vehid]);
135
	            CheckingSpeed [vehid] = -1;
136
	        }
137
	        for (new i = 0; i < MAX_PLAYERS; i++)
138
			{
139
				if (IsPlayerInVehicle (i, vehid))
140
	    		{
141
		    		TextDrawHideForPlayer (i, SpeedAndModel [vehid]);
142
 				}
143
			}
144
	    }
145
	    return 1;
146
	}
147
148-
	if (!strcmp (cmdtext, "/issueticket"))
148+
149
}
150
151
GetVehicleInfrontID (vehid)
152
{
153-
	        if (CheckingSpeed [vehid] > -1)
153+
154
	new j = 0;
155-
	            for (new i = 0; i < MAX_PLAYERS; i++)
155+
156-
	            {
156+
157-
	                if (IsPlayerConnected (i) && i != playerid)
157+
158-
	                {
158+
159-
	                    if (IsPlayerInVehicle (i, GetVehicleInfrontID (vehid)))
159+
160-
	                    {
160+
161-
	                        if (GetPlayerVehicleSeat (i) == 0)
161+
162-
	                        {
162+
163-
	                            GivePlayerMoney (i, -1500);
163+
164-
	                        }
164+
165-
	                    }
165+
166-
	                }
166+
167-
	            }
167+
168
				{
169
    				x1 = x1 + (distance * floatsin(-a, degrees));
170
					y1 = y1 + (distance * floatcos(-a, degrees));
171
172
					distance = floatsqroot ((floatpower ((x1 - x2), 2)) + (floatpower ((y1 - y2), 2)));
173
174
					if (temp > distance)
175
					{
176
						temp = distance;
177
						j = i;
178
					}
179
				}
180
			}
181
		}
182
	}
183
	if (temp < 7.0) return j;
184
	return -1;
185
}
186
187
public UpdateSpeed (vehid)
188
{
189
    new id = GetVehicleInfrontID (vehid);
190
	if (id < 0)
191
	{
192
   		TextDrawSetString (SpeedAndModel [vehid], "~b~N/A ~n~~r~N/A");
193
	}
194
	else
195
	{
196
		new str[32], Float: velocityX, Float: velocityY, Float: velocityZ;
197
	   	GetVehicleVelocity (id, velocityX, velocityY, velocityZ);
198
       	new speed = floatround (floatsqroot (floatpower (velocityX, 2) + floatpower (velocityY, 2) + floatpower (velocityZ, 2)) * 136.666667, floatround_round);
199
		format (str, sizeof (str), "~b~%s ~n~~r~%d", VehicleModel [GetVehicleModel (id) - 400], speed);
200
		TextDrawSetString (SpeedAndModel [vehid], str);
201
	}
202
203
 	for (new i = 0; i < MAX_PLAYERS; i++)
204
	{
205
		if (IsPlayerInVehicle (i, vehid))
206
	    {
207
		    TextDrawShowForPlayer (i, SpeedAndModel [vehid]);
208
 		}
209
	}
210
	return 1;
211
}
212
213
public CheckValidTextDraws()
214
{
215
	for (new i = 0; i < MAX_PLAYERS; i++)
216
	{
217
	    if (IsPlayerConnected (i))
218
	    {
219
			if (IsPlayerInAnyVehicle (i))
220
			{
221
			    new vehid = GetPlayerVehicleID (i);
222
			    if (VehRadarID [vehid] > -1)
223
			    {
224
			        TextDrawShowForPlayer (i, RadarHud);
225
			        if (CheckingSpeed [vehid] > 0)
226
			        {
227
			            TextDrawShowForPlayer (i, SpeedAndModel [vehid]);
228
			        }
229
			        else
230
			        {
231
			            TextDrawHideForPlayer (i, SpeedAndModel [vehid]);
232
			        }
233
			    }
234
			    else
235
			    {
236
			        TextDrawHideForPlayer (i, RadarHud);
237
			    }
238
			}
239
			
240
			else
241
			{
242
			    TextDrawHideForPlayer (i, RadarHud);
243
			    TextDrawHideForPlayer (i, SpeedAndModel [OldVehID[i]]);
244
			    OldVehID [i] = 0;
245
			}
246
	    }
247
	}
248
	return 1;
249
}
250
251
public OnPlayerStateChange (playerid, newstate, oldstate)
252
{
253
	if ((oldstate == PLAYER_STATE_ONFOOT) && (newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER))
254
	{
255
	     OldVehID [playerid] = GetPlayerVehicleID (playerid);
256
	}
257
	return 1;
258
}
259
260
public OnVehicleDeath (vehicleid)
261
{
262
    DestroyObject (VehRadarID [vehicleid]);
263
    VehRadarID [vehicleid] = -1;
264
    KillTimer (CheckingSpeed [vehicleid]);
265
  	CheckingSpeed [vehicleid] = -1;
266
 	for (new i = 0; i < MAX_PLAYERS; i++)
267
	{
268
		if (IsPlayerInVehicle (i, vehicleid))
269
 		{
270
			TextDrawHideForPlayer (i, RadarHud);
271
			TextDrawHideForPlayer (i, SpeedAndModel [vehicleid]);
272
		}
273
	}
274
}