diff --git a/ze_icecap_escape_act2_b3s_fix/scripting/ze_icecap_escape_act2_b3s_fix.sp b/ze_icecap_escape_act2_b3s_fix/scripting/ze_icecap_escape_act2_b3s_fix.sp index db1bddf1..a4e09e64 100644 --- a/ze_icecap_escape_act2_b3s_fix/scripting/ze_icecap_escape_act2_b3s_fix.sp +++ b/ze_icecap_escape_act2_b3s_fix/scripting/ze_icecap_escape_act2_b3s_fix.sp @@ -9,6 +9,8 @@ #include #include +bool g_b_is_icecap_act2 = false; + public Plugin myinfo = { name = "icecap_crash_fix_from_roundend", @@ -20,8 +22,17 @@ public Plugin myinfo = //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- + +public void OnMapStart() +{ + char map[PLATFORM_MAX_PATH]; + GetCurrentMap(map, PLATFORM_MAX_PATH); + g_b_is_icecap_act2 = StrEqual(map, "ze_icecap_escape_act2_b3s_fix", false); +} + public void OnPluginStart() { + OnMapStart(); //this makes absolutely no sense, there is no point whatso ever in fucking doing this. //but without this i get the complaint [SM] Plugin maps/test_icecap.smx failed to load: Unable to load plugin (invalid method code end). //is really makes absolutely zero sense why this would be needed @@ -40,11 +51,17 @@ public void OnPluginStart() public Action Command_ztele(int client, const char[] Command, int Args) { + if (!g_b_is_icecap_act2) + { + return Plugin_Handled; + } + if (IsValidClient(client)) { int userid = GetClientUserId(client); ServerCommand("sm_forceinputplayer #%i Clearparent", userid); } + return Plugin_Handled; } public void OnClientPostAdminCheck(int client) @@ -61,6 +78,10 @@ stock bool IsValidClient(int client) //right before round end deactivate gameUI and unparent players from moving vehicles. public void OnRoundEnd(Handle event, const char[] name, bool dontBroadcast) { + if (!g_b_is_icecap_act2) + { + return; + } //its the correct map if it contains icecap_escape_act2 ServerCommand("sm_forceinput Game Deactivate; sm_forceinput Game2 Deactivate;sm_forceinput Game3 Deactivate;sm_forceinput Game4 Deactivate; sm_forceinput Gameleft Deactivate; sm_forceinput Gameright Deactivate; sm_forceinput Gameseat Deactivate; sm_forceinput Gameseat2 Deactivate; sm_forceinput Gameseat3 Deactivate; sm_forceinput Gameseat4 Deactivate; sm_forceinput Gameseat5 Deactivate; sm_forceinput Gameseat6 Deactivate;"); ServerCommand("sm_forceinput player Clearparent;"); @@ -69,6 +90,10 @@ public void OnRoundEnd(Handle event, const char[] name, bool dontBroadcast) public void trigger_teleport(const char[] output, int entity_index, int client, float delay) { + if (!g_b_is_icecap_act2) + { + return; + } if (IsValidClient(client)) { int userid = GetClientUserId(client);