diff --git a/CTimer/ctimer.sp b/CTimer/ctimer.sp index 5ce2f892..0781577e 100644 --- a/CTimer/ctimer.sp +++ b/CTimer/ctimer.sp @@ -1,7 +1,7 @@ #pragma semicolon 1 #define PLUGIN_AUTHOR "TRANSLUCENT" -#define PLUGIN_VERSION "0.61r" +#define PLUGIN_VERSION "0.62wtf" #define MAXLENGTH_MESSAGE 256 #define STARTZONE 0 @@ -126,10 +126,10 @@ public void OnPluginStart() g_hCvarLasers.AddChangeHook(OnLazorsChange); } - g_hDrawFullZone = CreateTimer(0.2, DrawFullZoneTimer, INVALID_HANDLE, TIMER_REPEAT); - g_hDrawZone = CreateTimer(1.0, DrawZoneTimer, INVALID_HANDLE, TIMER_REPEAT); - g_hHudLoop = CreateTimer(0.2, HudLoop, INVALID_HANDLE, TIMER_REPEAT); - g_hSideHudLoop = CreateTimer(1.0, SideHudLoop, INVALID_HANDLE, TIMER_REPEAT); + g_hDrawFullZone = CreateTimer(0.2, DrawFullZoneTimer, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); + g_hDrawZone = CreateTimer(1.0, DrawZoneTimer, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); + g_hHudLoop = CreateTimer(0.2, HudLoop, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); + g_hSideHudLoop = CreateTimer(1.0, SideHudLoop, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); for (new i = 1; i <= MaxClients; i++) { diff --git a/CTimer/ctimer/actions.sp b/CTimer/ctimer/actions.sp index dbf930cf..8831f23c 100644 --- a/CTimer/ctimer/actions.sp +++ b/CTimer/ctimer/actions.sp @@ -91,19 +91,39 @@ void CheckDirectories() public void RestartTimers() { - g_hDrawFullZone = INVALID_HANDLE; - g_hDrawZone = INVALID_HANDLE; - g_hHudLoop = INVALID_HANDLE; - g_hSideHudLoop = INVALID_HANDLE; + + if (g_hDrawFullZone != INVALID_HANDLE) + { + CloseHandle(g_hDrawFullZone); + g_hDrawFullZone = INVALID_HANDLE; + } + + if (g_hDrawZone != INVALID_HANDLE) + { + CloseHandle(g_hDrawZone); + g_hDrawZone = INVALID_HANDLE; + } + + if (g_hHudLoop != INVALID_HANDLE) + { + CloseHandle(g_hHudLoop); + g_hHudLoop = INVALID_HANDLE; + } + + if (g_hSideHudLoop != INVALID_HANDLE) + { + CloseHandle(g_hSideHudLoop); + g_hSideHudLoop = INVALID_HANDLE; + } if (g_hDrawFullZone == INVALID_HANDLE) - g_hDrawFullZone = CreateTimer(0.2, DrawFullZoneTimer, INVALID_HANDLE, TIMER_REPEAT); + g_hDrawFullZone = CreateTimer(0.2, DrawFullZoneTimer, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); if (g_hDrawZone == INVALID_HANDLE) - g_hDrawZone = CreateTimer(1.0, DrawZoneTimer, INVALID_HANDLE, TIMER_REPEAT); + g_hDrawZone = CreateTimer(1.0, DrawZoneTimer, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); if (g_hHudLoop == INVALID_HANDLE) - g_hHudLoop = CreateTimer(0.2, HudLoop, INVALID_HANDLE, TIMER_REPEAT); + g_hHudLoop = CreateTimer(0.2, HudLoop, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); if (g_hSideHudLoop == INVALID_HANDLE) - g_hSideHudLoop = CreateTimer(1.0, SideHudLoop, INVALID_HANDLE, TIMER_REPEAT); + g_hSideHudLoop = CreateTimer(1.0, SideHudLoop, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); } public void ClearMapInfo()