View difference between Paste ID: Hk82UtDU and 5Z26tvUB
SHOW: | | - or go back to the newest paste.
1
//by Proff116
2
3
#include <a_samp>
4
5
// Ïàðàìåòðû ñòîèìîñòè çàòðàò âûíîñëèâîñòè
6
#define COST_STAMINA1	-5	// óñêîðåíèå íà âåëèêå (ïîñòîÿííîå íàæàòèå W)
7
#define COST_STAMINA2	-15	// ïðûæîê íà âåëèêå
8
#define COST_STAMINA3   -5	// îáû÷íîå óñêîðåíèå íà âåëèêå
9
#define COST_STAMINA4   -5	//ñïðèíò (áûñòðûé áåã) ñ óñêîðåíèåì
10
#define COST_STAMINA5   -5  //ïîñòîÿííûé ñïðèíò
11
#define COST_STAMINA6   -10 //ïðûæîê
12
#define COST_STAMINA7   -5  //áëèæíèé óäàð
13-
#define REG_STAMINA   	5  //îññòàíîâëåíèå âûíîñëèâîñòè â ñåêóíäó
13+
#define REG_STAMINA   	5  //âîññòàíîâëåíèå âûíîñëèâîñòè â ñåêóíäó
14
15
new
16
	timer,
17
	PlayerStamina[MAX_PLAYERS],
18
	PlayerText: StaminaTD[3][MAX_PLAYERS];
19
20
public OnFilterScriptInit()
21
{
22
	for(new i, j = GetMaxPlayers(); i < j; i++)
23
	{
24-
	    PlayerStamina[i] = 100;
24+
	    if(!IsPlayerConnected(i)) continue;
25-
	    CreatePlayerTD(i);
25+
		PlayerStamina[i] = 100;
26
		CreatePlayerTD(i);
27
	}
28
	timer = SetTimer("Timer", 1000, 1);
29
	return 1;
30
}
31
32
public OnFilterScriptExit()
33
{
34
	for(new i, j = GetMaxPlayers(); i < j; i++)
35-
	    DestroyPlayerTD(i);
35+
36
		if(!IsPlayerConnected(i)) continue;
37
		DestroyPlayerTD(i);
38
	}
39
	KillTimer(timer);
40
	return 1;
41
}
42
43
public OnPlayerConnect(playerid)
44
{
45
	PlayerStamina[playerid] = 100;
46
	CreatePlayerTD(playerid);
47
	return 1;
48
}
49
50
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
51
{
52
	if (newkeys & KEY_SPRINT)
53
	{
54
		if(IsPlayerByBicycle(playerid))
55
		{
56
			GivePlayerStamina(playerid, COST_STAMINA1);
57
			if(PlayerStamina[playerid] < 1) RemovePlayerFromVehicle(playerid);
58
			return 1;
59
		}
60-
  	        	GivePlayerStamina(playerid, COST_STAMINA4);
60+
61-
   			if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","IDLE_TIRED",4.0, 0, 1, 0, 0, 2000, 1);
61+
62
			GivePlayerStamina(playerid, COST_STAMINA4);
63
			if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","IDLE_TIRED",4.0, 0, 1, 0, 0, 2000, 1);
64-
		
64+
65
		}
66
	}
67
	else if (oldkeys & KEY_ACTION)
68
	{
69
		if(IsPlayerByBicycle(playerid))
70
		{
71
			GivePlayerStamina(playerid, COST_STAMINA2);
72
			if(PlayerStamina[playerid] < 1) RemovePlayerFromVehicle(playerid);
73
			return 1;
74
		}
75
	}
76-
  	{
76+
77
	{
78
		if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
79-
  			GivePlayerStamina(playerid, COST_STAMINA6);
79+
80-
   			if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","KO_SKID_BACK",4.0, 0, 1, 0, 0, 0, 1);
80+
			GivePlayerStamina(playerid, COST_STAMINA6);
81
			if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","KO_SKID_BACK",4.0, 0, 1, 0, 0, 0, 1);
82
			return 1;
83
		}
84
	}
85-
  	{
85+
86
	{
87
		if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
88
		{
89
			if(IsPlayerMeleeWeapon(playerid))
90-
  				GivePlayerStamina(playerid, COST_STAMINA7);
90+
91-
   				if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","HIT_WALL",4.0, 0, 1, 0, 0, 0, 1);
91+
				GivePlayerStamina(playerid, COST_STAMINA7);
92
				if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","HIT_WALL",4.0, 0, 1, 0, 0, 0, 1);
93
				return 1;
94
			}
95
		}
96
	}
97
	return 1;
98
}
99
100
forward Timer();
101
public Timer()
102
{
103
	for(new i, j = GetMaxPlayers(); i < j; i++)
104
	{
105-
    		new key[3]; GetPlayerKeys(i,key[0],key[1],key[2]);
105+
106
		new key[3]; GetPlayerKeys(i,key[0],key[1],key[2]);
107
		if(key[0] == KEY_SPRINT)
108
		{
109
			if(IsPlayerByBicycle(i))
110
			{
111
				GivePlayerStamina(i, COST_STAMINA3);
112
				if(PlayerStamina[i] < 1) RemovePlayerFromVehicle(i);
113
				continue;
114
			}
115
			if(GetPlayerState(i) == PLAYER_STATE_ONFOOT)
116
			{
117
				GivePlayerStamina(i, COST_STAMINA5);
118
				if(PlayerStamina[i] < 1) ApplyAnimation(i,"PED","IDLE_TIRED",4.0, 0, 1, 0, 0, 2000, 1);
119-
  	    		}
119+
				continue;
120
			}
121
		}
122
		GivePlayerStamina(i, REG_STAMINA);
123
	}
124
	return 1;
125
}
126
127
stock IsPlayerMeleeWeapon(playerid)
128-
    switch(GetPlayerWeapon(playerid))
128+
129
	switch(GetPlayerWeapon(playerid))
130
	{
131
		case 0..15, 43, 46: return 1;
132
	}
133
	return 0;
134
}
135
136
stock IsPlayerByBicycle(playerid)
137
{
138
	switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
139
	{
140
		case 509, 481, 510: return 1;
141
	}
142
	return 0;
143
}
144
145
stock GivePlayerStamina(playerid, stamina)
146
{
147
	PlayerStamina[playerid] += stamina;
148
	if(PlayerStamina[playerid] < 0) PlayerStamina[playerid] = 0;
149
	else if(PlayerStamina[playerid] > 100) PlayerStamina[playerid] = 100;
150
	PlayerTextDrawHide(playerid,StaminaTD[2][playerid]);
151
	PlayerTextDrawTextSize(playerid,StaminaTD[2][playerid], 545.500000 + 0.58 * PlayerStamina[playerid], 0.000000);
152
	PlayerTextDrawShow(playerid,StaminaTD[2][playerid]);
153
	return 1;
154
}
155
156
stock CreatePlayerTD(playerid)
157
{
158
	StaminaTD[0][playerid] = CreatePlayerTextDraw(playerid,547.500000, 58.000000, "_");
159
	PlayerTextDrawBackgroundColor(playerid,StaminaTD[0][playerid], 255);
160
	PlayerTextDrawFont(playerid,StaminaTD[0][playerid], 1);
161
	PlayerTextDrawLetterSize(playerid,StaminaTD[0][playerid], 0.500000, 0.449999);
162
	PlayerTextDrawColor(playerid,StaminaTD[0][playerid], -1);
163
	PlayerTextDrawSetOutline(playerid,StaminaTD[0][playerid], 0);
164
	PlayerTextDrawSetProportional(playerid,StaminaTD[0][playerid], 1);
165
	PlayerTextDrawSetShadow(playerid,StaminaTD[0][playerid], 1);
166
	PlayerTextDrawUseBox(playerid,StaminaTD[0][playerid], 1);
167
	PlayerTextDrawBoxColor(playerid,StaminaTD[0][playerid], 255);
168
	PlayerTextDrawTextSize(playerid,StaminaTD[0][playerid], 605.500000, 0.000000);
169
	PlayerTextDrawSetSelectable(playerid,StaminaTD[0][playerid], 0);
170
171
	StaminaTD[1][playerid] = CreatePlayerTextDraw(playerid,549.500000, 60.500000, "_");
172
	PlayerTextDrawBackgroundColor(playerid,StaminaTD[1][playerid], 255);
173
	PlayerTextDrawFont(playerid,StaminaTD[1][playerid], 1);
174
	PlayerTextDrawLetterSize(playerid,StaminaTD[1][playerid], 0.500000, 0.000000);
175
	PlayerTextDrawColor(playerid,StaminaTD[1][playerid], -1);
176
	PlayerTextDrawSetOutline(playerid,StaminaTD[1][playerid], 0);
177
	PlayerTextDrawSetProportional(playerid,StaminaTD[1][playerid], 1);
178
	PlayerTextDrawSetShadow(playerid,StaminaTD[1][playerid], 1);
179
	PlayerTextDrawUseBox(playerid,StaminaTD[1][playerid], 1);
180
	PlayerTextDrawBoxColor(playerid,StaminaTD[1][playerid], 33023);
181
	PlayerTextDrawTextSize(playerid,StaminaTD[1][playerid], 603.500000, 0.000000);
182
	PlayerTextDrawSetSelectable(playerid,StaminaTD[1][playerid], 0);
183
184
	StaminaTD[2][playerid] = CreatePlayerTextDraw(playerid,549.500000, 60.500000, "_");
185
	PlayerTextDrawBackgroundColor(playerid,StaminaTD[2][playerid], 255);
186
	PlayerTextDrawFont(playerid,StaminaTD[2][playerid], 1);
187
	PlayerTextDrawLetterSize(playerid,StaminaTD[2][playerid], 0.500000, 0.000000);
188
	PlayerTextDrawColor(playerid,StaminaTD[2][playerid], -1);
189
	PlayerTextDrawSetOutline(playerid,StaminaTD[2][playerid], 0);
190
	PlayerTextDrawSetProportional(playerid,StaminaTD[2][playerid], 1);
191
	PlayerTextDrawSetShadow(playerid,StaminaTD[2][playerid], 1);
192
	PlayerTextDrawUseBox(playerid,StaminaTD[2][playerid], 1);
193
	PlayerTextDrawBoxColor(playerid,StaminaTD[2][playerid], 65535);
194
	PlayerTextDrawTextSize(playerid,StaminaTD[2][playerid], 545.500000, 0.000000);
195
	PlayerTextDrawSetSelectable(playerid,StaminaTD[2][playerid], 0);
196
197
	for(new i; i < sizeof(StaminaTD); i++) PlayerTextDrawShow(playerid,StaminaTD[i][playerid]);
198
	return 1;
199
}
200
201
stock DestroyPlayerTD(playerid)
202
{
203
	for(new i; i < sizeof(StaminaTD); i++) PlayerTextDrawDestroy(playerid, StaminaTD[i][playerid]);
204
	return 1;
205
}