View difference between Paste ID: bS4eTsZz and f12e015b5
SHOW: | | - or go back to the newest paste.
1
#include <a_samp>
2
enum td
3
{
4
	Text:TDSpeedClock[15]
5
}
6
7
new TextDraws[td];
8
new Text:TextDrawsd[MAX_PLAYERS][4];
9
new DeActiveSpeedometer[MAX_PLAYERS];
10
11
public OnFilterScriptInit()
12
{
13
	print("Clock Speedometer load");
14
	
15
	TextDraws[TDSpeedClock][0] = TextDrawCreate(496.000000,400.000000,"~g~20");
16
 	TextDraws[TDSpeedClock][1] = TextDrawCreate(487.000000,388.000000,"~g~40");
17
 	TextDraws[TDSpeedClock][2] = TextDrawCreate(483.000000,375.000000,"~g~60");
18
 	TextDraws[TDSpeedClock][3] = TextDrawCreate(488.000000,362.000000,"~g~80");
19
 	TextDraws[TDSpeedClock][4] = TextDrawCreate(491.000000,349.000000,"~g~100");
20
 	TextDraws[TDSpeedClock][5] = TextDrawCreate(508.000000,336.500000,"~g~120");
21
 	TextDraws[TDSpeedClock][6] = TextDrawCreate(536.000000,332.000000,"~g~140");
22
 	TextDraws[TDSpeedClock][7] = TextDrawCreate(567.000000,337.000000,"~g~160");
23
 	TextDraws[TDSpeedClock][8] = TextDrawCreate(584.000000,348.000000,"~g~180");
24
 	TextDraws[TDSpeedClock][9] = TextDrawCreate(595.000000,360.000000,"~g~200");
25
 	TextDraws[TDSpeedClock][10] = TextDrawCreate(603.000000,374.000000,"~g~220");
26
 	TextDraws[TDSpeedClock][11] = TextDrawCreate(594.000000,386.000000,"~g~240");
27
 	TextDraws[TDSpeedClock][12] = TextDrawCreate(585.000000,399.000000,"~g~260");
28
 	TextDraws[TDSpeedClock][13] = TextDrawCreate(534.000000,396.000000,"~r~/ \\");
29
 	TextDraws[TDSpeedClock][14] = TextDrawCreate(548.000000,401.000000,".");
30
 	TextDrawLetterSize(TextDraws[TDSpeedClock][13], 1.059999, 2.100000);
31
	TextDrawLetterSize(TextDraws[TDSpeedClock][14], 0.73, -2.60);
32
 	for(new i; i < 15; i++)
33
 	{
34
 		TextDrawSetShadow(TextDraws[TDSpeedClock][i], 1);
35
 		TextDrawSetOutline(TextDraws[TDSpeedClock][i], 0);
36
 	}
37
38
	
39
	return 1;
40
}
41
42
public OnFilterScriptExit()
43
{
44
	print("Clock Speedometer unload");
45
	
46
	return 1;
47
}
48
49
public OnPlayerCommandText(playerid, cmdtext[])
50
{
51
	if(strcmp(cmdtext[1], "speedo", false) == 0)
52
	{
53
		new strOptionInfo[2][37]=
54
		    {
55
		        "You have turned on your speedometer",
56
		        "You have turned off your speedometer"
57
		    };
58
		    
59
		DeActiveSpeedometer[playerid] = !DeActiveSpeedometer[playerid];
60
		SendClientMessage(playerid, 0x00AA00FF, strOptionInfo[DeActiveSpeedometer[playerid]]);
61
		if(!DeActiveSpeedometer[playerid])
62
		{
63
			for(new i; i < 15; i++)
64
				TextDrawShowForPlayer(playerid, TextDraws[TDSpeedClock][i]);
65
66
			for(new i; i < 4; i++)
67
		  		TextDrawsd[playerid][i] = TextDrawCreate(555.0, 402.0, "~b~.");
68
		}
69
		else
70
		{
71
			for(new i; i < 4; i++)
72
			    TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
73
			for(new i; i < 15; i++)
74
				TextDrawHideForPlayer(playerid, TextDraws[TDSpeedClock][i]);
75
		}
76
		
77
		return 1;
78
	}
79
	
80
	return 0;
81
}
82
83
public OnPlayerStateChange(playerid, newstate, oldstate)
84
{
85
	if(newstate == PLAYER_STATE_DRIVER && !DeActiveSpeedometer[playerid])
86
	{
87
		for(new i; i < 15; i++)
88
			TextDrawShowForPlayer(playerid, TextDraws[TDSpeedClock][i]);
89
			
90
		for(new i; i < 4; i++)
91
	  		TextDrawsd[playerid][i] = TextDrawCreate(555.0, 402.0, "~b~.");
92
93
	}
94
	else
95
	{
96
		for(new i; i < 4; i++)
97
		    TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
98
		for(new i; i < 15; i++)
99
			TextDrawHideForPlayer(playerid, TextDraws[TDSpeedClock][i]);
100
	}
101
	
102
	return 1;
103
}
104
105
public OnPlayerUpdate(playerid)
106
{
107
	new
108
	    Float:fPos[3],
109
	    Float:Pos[4][2],
110
	    Float:fSpeed;
111
	    
112
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !DeActiveSpeedometer[playerid])
113
	{
114
		GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
115
116
		fSpeed = floatsqroot(floatpower(fPos[0], 2) + floatpower(fPos[1], 2) +
117
		 floatpower(fPos[2], 2)) * 200;
118
		
119
		new Float:alpha = 320 - fSpeed;
120
		if(alpha < 60)
121
		    alpha = 60;
122
123
		for(new i; i < 4; i++)
124
		{
125
		    TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
126
		    TextDrawDestroy(TextDrawsd[playerid][i]);
127
	  		GetDotXY(548, 401, Pos[i][0], Pos[i][1], alpha, (i + 1) * 8);
128
	  		TextDrawsd[playerid][i] = TextDrawCreate(Pos[i][0], Pos[i][1], "~b~.");
129
  			TextDrawLetterSize(TextDrawsd[playerid][i], 0.73, -2.60);
130
			TextDrawSetOutline(TextDrawsd[playerid][i], 0);
131
			TextDrawSetShadow(TextDrawsd[playerid][i], 1);
132
			TextDrawShowForPlayer(playerid, TextDrawsd[playerid][i]);
133
		}
134
	}
135
	
136
	
137
	return 1;
138
}
139
140
stock GetDotXY(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:alpha, Float:dist)
141
{
142
	 NewX = StartPosX + (dist * floatsin(alpha, degrees));
143
	 NewY = StartPosY + (dist * floatcos(alpha, degrees));
144
}