hns_jumpstats_stocks.inc

Original include source with line numbers.

Back Download .inc
1 /* Header generated by AMXX-Studio*/
2
3 new const KZ_DIR[] = "HideNSeek_Stats";
4 new bool:g_userConnected[33],bool:g_alive[33];
5
6 bool:valid_id(id)
7 {
8 if(id>0 && id<33)
9 {
10 return true;
11 }
12
13 return false;
14 }
15
16 stock is_user_spectating_player(spectator, player)
17 {
18 if( !valid_id(spectator) || !valid_id(player) )
19 return 0;
20 if( g_userConnected[spectator]==false || g_userConnected[player]==false )
21 return 0;
22 if( g_alive[spectator] || !g_alive[player] )
23 return 0;
24
25 if( pev(spectator, pev_deadflag) != 2 )
26 return 0;
27
28 static specmode;
29 specmode = pev(spectator, pev_iuser1);
30 if( !(specmode == 1 || specmode == 2 || specmode == 4) )
31 return 0;
32
33 if( pev(spectator, pev_iuser2) == player )
34 return 1;
35
36 return 0;
37 }
38 stock get_spectated_player(spectator)
39 {
40 if( !valid_id(spectator) )
41 return 0;
42 if( !g_userConnected[spectator] )
43 return 0;
44 if( g_alive[spectator] )
45 return 0;
46 if( pev(spectator, pev_deadflag) != 2 )
47 return 0;
48
49 static player, specmode;
50 specmode = pev(spectator, pev_iuser1);
51 if( !(specmode == 1 || specmode == 2 || specmode == 4) )
52 return 0;
53
54 player = pev(spectator, pev_iuser2);
55
56 if( !valid_id(player) )
57 return 0;
58 if( !g_userConnected[player] )
59 return 0;
60 if( !g_alive[player] )
61 return 0;
62
63 return player;
64 }
65 stock Float:UpBhop_calc(Float:height)
66 {
67 if(height<=8 && height>0)
68 {
69 return 227.0;
70 }
71 else if(height<=16 && height>8)
72 {
73 return 225.0;
74 }
75 else if(height<=24 && height>16)
76 {
77 return 223.0;
78 }
79 else if(height<=32 && height>24)
80 {
81 return 221.0;
82 }
83 else if(height<=40 && height>32)
84 {
85 return 219.0;
86 }
87 else if(height<=48 && height>40)
88 {
89 return 217.0;
90 }
91 else if(height<=56 && height>48)
92 {
93 return 215.0;
94 }
95 else if(height<=64 && height>56)
96 {
97 return 213.0;
98 }
99
100 return 0.0;
101 }
102
103 bool:is_user_ducking( id ) {
104 if( !valid_id( id ) )
105 return false;
106
107 new Float:abs_min[3], Float:abs_max[3];
108
109 pev( id, pev_absmin, abs_min );
110 pev( id, pev_absmax, abs_max );
111
112 abs_min[2] += 64.0;
113
114 if( abs_min[2] < abs_max[2] )
115 return false;
116
117 return true;
118 }
119
120 ///exolents fail///
121 stock Float:GetFailedDistance(Float:ExDist, bool:ducking, Float:gravity, Float:jumpoff_origin[3], Float:current_velocity[3], Float:failed_origin[3], Float:failed_velocity[3] )
122 {
123 static Float:airtime, Float:land_origin[3], Float:distance;
124
125 if( ducking ) jumpoff_origin[2] -= 18.0;
126
127 airtime = ((floatsqroot((failed_velocity[2] * failed_velocity[2]) - (2.0 * -gravity * (failed_origin[2] - jumpoff_origin[2])))*-1) - failed_velocity[2] ) / -gravity;
128
129 land_origin[0] = floatabs( failed_origin[0] - jumpoff_origin[0] ) + floatabs( current_velocity[0] * airtime );
130 land_origin[1] = floatabs( failed_origin[1] - jumpoff_origin[1] ) + floatabs( current_velocity[1] * airtime );
131
132 distance = vector_length(land_origin) + ExDist;
133
134 if( ducking ) jumpoff_origin[2] += 18.0;
135
136 return distance;
137 }
138 stock weapon_rank(maxspeed)
139 {
140 new rank;
141
142 switch(maxspeed)
143 {
144 case 210:
145 rank = 0;
146 case 220:
147 rank = 1;
148 case 221:
149 rank = 2;
150 case 230:
151 rank = 3;
152 case 235:
153 rank = 4;
154 case 240:
155 rank = 5;
156 case 245:
157 rank = 6;
158 case 260:
159 rank = 7;
160 }
161
162 return rank;
163 }
164
165 stock weapon_maxspeed(rank)
166 {
167 new maxspeed;
168
169 switch(rank)
170 {
171 case 0:
172 maxspeed = 210;
173 case 1:
174 maxspeed = 220;
175 case 2:
176 maxspeed = 221;
177 case 3:
178 maxspeed = 230;
179 case 4:
180 maxspeed = 235;
181 case 5:
182 maxspeed = 240;
183 case 6:
184 maxspeed = 245;
185 case 7:
186 maxspeed = 260;
187 }
188
189 return maxspeed;
190 }
191 stock Float:LandingCalculate(id,Float:landing_orig[3], Float:jumpoff_origin[3])
192 {
193 new Float:tmplandorg[3],Float:tmplandorigin[3];
194
195 for(new i=0,ii=-18;i<3;i++,ii=ii+18)
196 { if(floatabs(landing_orig[0]-jumpoff_origin[0])>floatabs(landing_orig[1]-jumpoff_origin[1]))
197 {
198 tmplandorigin=landing_orig;
199 tmplandorigin[1]=tmplandorigin[1]+ii;
200
201 if(landing_orig[0]-jumpoff_origin[0]>0)
202 {
203 tmplandorigin[0]=tmplandorigin[0]+16;
204
205
206 tmplandorg[0]=landing_orig[0]-330;
207 tmplandorg[1]=landing_orig[1]+ii;
208 tmplandorg[2]=landing_orig[2];
209 }
210 else if(landing_orig[0]-jumpoff_origin[0]<0)
211 {
212 tmplandorigin[0]=tmplandorigin[0]-16;
213
214
215 tmplandorg[0]=landing_orig[0]+330;
216 tmplandorg[1]=landing_orig[1]+ii;
217 tmplandorg[2]=landing_orig[2];
218 }
219 }
220 else if(floatabs(landing_orig[0]-jumpoff_origin[0])<floatabs(landing_orig[1]-jumpoff_origin[1]))
221 {
222 tmplandorigin=landing_orig;
223 tmplandorigin[0]=tmplandorigin[0]+ii;
224
225 if(landing_orig[1]-jumpoff_origin[1]>0)
226 {
227 tmplandorigin[1]=tmplandorigin[1]+16;
228
229
230 tmplandorg[0]=landing_orig[0]+ii;
231 tmplandorg[1]=landing_orig[1]-330;
232 tmplandorg[2]=landing_orig[2];
233 }
234 else if(landing_orig[1]-jumpoff_origin[1]<0)
235 {
236 tmplandorigin[1]=tmplandorigin[1]-16;
237
238
239 tmplandorg[0]=landing_orig[0]+ii;
240 tmplandorg[1]=landing_orig[1]+330;
241 tmplandorg[2]=landing_orig[2];
242 }
243 }
244 new Float:Orgland[3],Float:startOrgland[3];
245
246 engfunc(EngFunc_TraceLine,tmplandorigin, tmplandorg, IGNORE_GLASS | IGNORE_MONSTERS, id, 0);
247 get_tr2( 0, TR_vecEndPos, Orgland);
248
249 engfunc(EngFunc_TraceLine,Orgland, tmplandorigin, IGNORE_GLASS | IGNORE_MONSTERS, id, 0);
250 get_tr2( 0, TR_vecEndPos, startOrgland);
251
252 if(get_distance_f(tmplandorigin,startOrgland)!=0.0)
253 return get_distance_f(tmplandorigin,startOrgland);
254 }
255 return 0.0;
256 }
257 bool:check_for_bug_distance(Float:check_distance,type,mSpeed)
258 {
259 new minys=floatround((250.0-mSpeed)*0.73,floatround_floor);
260 if(type==1 && check_distance>(260-minys))
261 {
262 return true;
263 }
264 else if(type==2 && check_distance>(277-minys))
265 {
266 return true;
267 }
268 else if(type==3 && check_distance>(253-minys))
269 {
270 return true;
271 }
272 else if(type==4 && check_distance>200)
273 {
274 return true;
275 }
276 else if(type==5 && check_distance>225-minys)
277 {
278 return true;
279 }
280 else if(type==6 && check_distance>180-minys)
281 {
282 return true;
283 }
284
285 return false;
286 }
287 stock kz_get_configsdir(name[], len)
288 {
289 new lalin[64];
290 get_localinfo("amxx_configsdir", lalin,63);
291
292 return formatex(name, len, "%s/%s", lalin, KZ_DIR);
293 }
294 /*
295 stock replace_colors(message[], len)
296 {
297 replace_all(message, len, "!g", "^x04")
298 replace_all(message, len, "!t", "^x03")
299 replace_all(message, len, "!y", "^x01")
300 }
301 */
302