From 482cd86c8cbc2c38f5ae4bfc3d23dc5287310bc4 Mon Sep 17 00:00:00 2001 From: shavit Date: Thu, 13 Sep 2018 23:28:45 +0300 Subject: [PATCH] Fixed low gravity styles. thanks @strafe!!! --- addons/sourcemod/scripting/shavit-core.sp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/addons/sourcemod/scripting/shavit-core.sp b/addons/sourcemod/scripting/shavit-core.sp index 5657aa1c..16b643c7 100644 --- a/addons/sourcemod/scripting/shavit-core.sp +++ b/addons/sourcemod/scripting/shavit-core.sp @@ -135,6 +135,7 @@ bool gB_StopChatSound = false; bool gB_HookedJump = false; char gS_LogPath[PLATFORM_MAX_PATH]; int gI_GroundTicks[MAXPLAYERS+1]; +MoveType gMT_MoveType[MAXPLAYERS+1]; // flags int gI_StyleFlag[STYLE_LIMIT]; @@ -797,11 +798,6 @@ void VelocityChanges(int data) return; } - if(view_as(gA_StyleSettings[gI_Style[client]][fGravityMultiplier]) != 1.0) - { - SetEntityGravity(client, view_as(gA_StyleSettings[gI_Style[client]][fGravityMultiplier])); - } - if(view_as(gA_StyleSettings[gI_Style[client]][fSpeedMultiplier]) != 1.0) { SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", view_as(gA_StyleSettings[gI_Style[client]][fSpeedMultiplier])); @@ -1827,6 +1823,17 @@ public void PreThinkPost(int client) { sv_enablebunnyhopping.BoolValue = view_as(gA_StyleSettings[gI_Style[client]][bEnableBunnyhopping]); } + + MoveType mtMoveType = GetEntityMoveType(client); + + if(view_as(gA_StyleSettings[gI_Style[client]][fGravityMultiplier]) != 1.0 && + (mtMoveType == MOVETYPE_WALK || mtMoveType == MOVETYPE_ISOMETRIC) && + (gMT_MoveType[client] == MOVETYPE_LADDER || GetEntityGravity(client) == 1.0)) + { + SetEntityGravity(client, view_as(gA_StyleSettings[gI_Style[client]][fGravityMultiplier])); + } + + gMT_MoveType[client] = mtMoveType; } } @@ -2272,4 +2279,6 @@ void UpdateStyleSettings(int client) char[] sAiraccelerate = new char[8]; FloatToString(gA_StyleSettings[gI_Style[client]][fAiraccelerate], sAiraccelerate, 8); sv_airaccelerate.ReplicateToClient(client, sAiraccelerate); + + SetEntityGravity(client, view_as(gA_StyleSettings[gI_Style[client]][fGravityMultiplier])); }