diff --git a/LagCompensation/scripting/LagCompensation_nide_edit.sp b/LagCompensation/scripting/LagCompensation_nide_edit.sp index c93de20..07b373c 100644 --- a/LagCompensation/scripting/LagCompensation_nide_edit.sp +++ b/LagCompensation/scripting/LagCompensation_nide_edit.sp @@ -5,6 +5,7 @@ #include #include #include +#include #define SetBit(%1,%2) ((%1)[(%2) >> 5] |= (1 << ((%2) & 31))) #define ClearBit(%1,%2) ((%1)[(%2) >> 5] &= ~(1 << ((%2) & 31))) @@ -26,6 +27,7 @@ bool g_bLateLoad = false; bool g_bHasPhysHooks = true; bool g_bHasOnEntitySpawned = false; bool g_bCheckPing = false; +bool g_bMapDisabled = false; int g_iCompenseEntityClass; // Don't change this. @@ -434,6 +436,10 @@ void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue public void OnMapStart() { + char map[128]; + GetCurrentMap(map, sizeof(map)); + g_bMapDisabled = GetMapLagCompensationDisabled(map); + bool bLate = g_bLateLoad; DHookGamerules(g_hEndGameFrame, true); @@ -728,7 +734,8 @@ bool CheckEntityForLagComp(int entity, const char[] classname, bool bRecursive=f return false; // One more than allowed: switch lag compensation off until the next round. - if(g_iNumEntities >= g_iMaxEntities) + //switch lag comp off every round if the map is not allowed to use it + if(g_iNumEntities >= g_iMaxEntities || g_bMapDisabled) { SuspendLagCompensation(); return false; diff --git a/mapchooser_extended/scripting/include/mapchooser_extended.inc b/mapchooser_extended/scripting/include/mapchooser_extended.inc index b67396e..fa411d7 100755 --- a/mapchooser_extended/scripting/include/mapchooser_extended.inc +++ b/mapchooser_extended/scripting/include/mapchooser_extended.inc @@ -124,6 +124,7 @@ native int GetMapLowPopHelpCount(const char[] map); native int GetMapLaserFag(const char[] map); native int GetMapTrails(const char[] map); native int GetMapTickRate(const char[] map); +native int GetMapLagCompensationDisabled(const char[] map); native int GetMapMinTime(const char[] map); native int GetMapMaxTime(const char[] map); native int GetMapMinPlayers(const char[] map); diff --git a/mapchooser_extended/scripting/mapchooser_extended_unloze.sp b/mapchooser_extended/scripting/mapchooser_extended_unloze.sp index 88057db..eaa04bb 100755 --- a/mapchooser_extended/scripting/mapchooser_extended_unloze.sp +++ b/mapchooser_extended/scripting/mapchooser_extended_unloze.sp @@ -481,6 +481,7 @@ public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max CreateNative("GetMapLaserFag", Native_GetMapLaserFag); CreateNative("GetMapTrails", Native_GetMapTrails); CreateNative("GetMapTickRate", Native_GetMapTickRate); + CreateNative("GetMapLagCompensationDisabled", Native_GetMapLagCompensationDisabled); CreateNative("GetMapMinTime", Native_GetMapMinTime); CreateNative("GetMapMaxTime", Native_GetMapMaxTime); CreateNative("GetMapMinPlayers", Native_GetMapMinPlayers); @@ -2701,6 +2702,27 @@ public int Native_GetMapCooldownTime2(Handle plugin, int numParams) return InternalGetMapCooldownTime2(map); } +//GetMapLagCompensationDisabled +public int Native_GetMapLagCompensationDisabled(Handle plugin, int numParams) +{ + int len; + GetNativeStringLength(1, len); + + if(len <= 0) + return false; + + char[] map = new char[len+1]; + GetNativeString(1, map, len+1); + int count = 0; + + if (g_Config && g_Config.JumpToKey(map)) + { + count = g_Config.GetNum("DisableLagComp", count); + g_Config.Rewind(); + } + return count; +} + //GetMapTickRate public int Native_GetMapTickRate(Handle plugin, int numParams) {