Skip to content

Commit e77cc85

Browse files
committed
v2.0.3
1 parent c69dde3 commit e77cc85

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

scripting/prefog.sma

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ enum E_STATSINFO {
1616
m_iFog,
1717
m_iFogType,
1818
Float:m_flSpeed,
19+
Float:m_flPreSpeed,
1920
Float:m_flOldSpeed,
2021
Float:m_flMaxPreStrafe,
2122
Float:m_flFallTime,
@@ -31,6 +32,7 @@ new g_sStatsInfo[MAX_PLAYERS + 1][E_STATSINFO];
3132

3233
enum E_PLAYERINFO {
3334
m_iFlags,
35+
m_iOldFlags,
3436
m_iMoveType,
3537
m_iButtons,
3638
m_iOldButtons
@@ -39,7 +41,7 @@ enum E_PLAYERINFO {
3941
new g_sPlayerInfo[MAX_PLAYERS + 1][E_PLAYERINFO];
4042

4143
public plugin_init() {
42-
register_plugin("PreFog", "2.0.2", "WessTorn"); // Спасибо: FAME, Destroman, Borjomi, Denzer, Albertio
44+
register_plugin("PreFog", "2.0.3", "WessTorn"); // Спасибо: FAME, Destroman, Borjomi, Denzer, Albertio
4345

4446
register_clcmd("say /showpre", "cmdShowPre")
4547
register_clcmd("say /pre", "cmdShowPre")
@@ -70,15 +72,20 @@ public rgPlayerPreThink(id) {
7072
g_sPlayerInfo[id][m_iOldButtons] = get_entvar(id, var_oldbuttons);
7173
g_sPlayerInfo[id][m_iFlags] = get_entvar(id, var_flags);
7274
g_sPlayerInfo[id][m_iMoveType] = get_entvar(id, var_movetype);
73-
g_sStatsInfo[id][m_flSpeed] = get_speed(id, g_sPlayerInfo[id][m_iFlags]);
7475
g_sStatsInfo[id][m_flMaxPreStrafe] = get_maxspeed(id);
76+
g_sStatsInfo[id][m_flSpeed] = get_speed(id);
7577

7678
new is_spec_user[MAX_PLAYERS + 1];
7779
for (new i = 1; i <= MaxClients; i++) {
7880
is_spec_user[i] = is_user_spectating_player(i, id);
7981
}
8082

8183
if (g_sPlayerInfo[id][m_iFlags] & FL_ONGROUND) {
84+
if (!(g_sPlayerInfo[id][m_iOldFlags] & FL_ONGROUND)) {
85+
g_sStatsInfo[id][m_flPreSpeed] = g_sStatsInfo[id][m_flSpeed];
86+
}
87+
88+
8289
if (g_sStatsInfo[id][m_bFirstFallGround] == true && get_gametime() - g_sStatsInfo[id][m_flFallTime] > 0.5) {
8390
g_sStatsInfo[id][m_bFirstFallGround] = false;
8491
g_sStatsInfo[id][m_bShowFirst] = true;
@@ -188,10 +195,10 @@ public rgPlayerPreThink(id) {
188195
if (i == id || is_spec_user[i]) {
189196
if (g_sStatsInfo[id][m_iFogType] == 1) {
190197
set_hudmessage(0, 250, 60, -1.0, 0.64, 0, 0.0, 1.0, 0.1, 0.0, 2);
191-
ShowSyncHudMsg(i, g_iHudObject, "%d %s^n%.2f", g_sStatsInfo[id][m_iFog], g_szFogType[g_sStatsInfo[id][m_iFogType]], g_sStatsInfo[id][m_flSpeed]);
198+
ShowSyncHudMsg(i, g_iHudObject, "%d %s^n%.2f^n%.2f", g_sStatsInfo[id][m_iFog], g_szFogType[g_sStatsInfo[id][m_iFogType]], g_sStatsInfo[id][m_flPreSpeed], g_sStatsInfo[id][m_flOldSpeed]);
192199
} else {
193200
set_hudmessage(250, 250, 250, -1.0, 0.64, 0, 0.0, 1.0, 0.1, 0.0, 2);
194-
ShowSyncHudMsg(i, g_iHudObject, "%d %s^n%.2f", g_sStatsInfo[id][m_iFog], g_szFogType[g_sStatsInfo[id][m_iFogType]], g_sStatsInfo[id][m_flSpeed]);
201+
ShowSyncHudMsg(i, g_iHudObject, "%d %s^n%.2f^n%.2f", g_sStatsInfo[id][m_iFog], g_szFogType[g_sStatsInfo[id][m_iFogType]],g_sStatsInfo[id][m_flPreSpeed], g_sStatsInfo[id][m_flOldSpeed]);
195202
}
196203
}
197204
}
@@ -201,6 +208,7 @@ public rgPlayerPreThink(id) {
201208
g_sStatsInfo[id][m_iFog] = 0;
202209
}
203210

211+
g_sPlayerInfo[id][m_iOldFlags] = g_sPlayerInfo[id][m_iFlags]
204212
g_sStatsInfo[id][m_flOldSpeed] = g_sStatsInfo[id][m_flSpeed];
205213

206214
return HC_CONTINUE;
@@ -222,23 +230,23 @@ stock is_user_spectating_player(spectator, player) {
222230
return 0;
223231
}
224232

225-
stock Float:get_speed(id, iFlags) {
233+
stock Float:get_speed(id) {
226234
static Float:flVelocity[3];
227235
get_entvar(id, var_velocity, flVelocity);
228236

229-
if (iFlags & FL_ONGROUND && iFlags & FL_INWATER)
230-
flVelocity[2] = 0.0;
231-
if (flVelocity[2] != 0)
232-
flVelocity[2] -= flVelocity[2];
237+
new Float:flNorma = floatpower(flVelocity[0], 2.0) + floatpower(flVelocity[1], 2.0)
238+
239+
if (flNorma > 0.0)
240+
return floatsqroot(flNorma);
233241

234-
return vector_length(flVelocity);
242+
return 0.0
235243
}
236244

237245
stock Float:get_maxspeed(id) {
238-
new iMaxSpeed;
239-
iMaxSpeed = get_entvar(id, var_maxspeed);
246+
new Float:flMaxSpeed;
247+
flMaxSpeed = get_entvar(id, var_maxspeed);
240248

241-
return iMaxSpeed * 1.2;
249+
return flMaxSpeed * 1.2;
242250
}
243251

244252
stock bool:isUserSurfing(id) {

0 commit comments

Comments
 (0)