Deleting
timer doesnt set
myTimer to null.
PHP Code:
public Action SmokeCheckTimer(Handle timer) {
ExecSmoke();
myTimer = null;
//return Plugin_Stop; //Stopping the timer when using TIMER_REPEAT
}
and
delete ignores if a handle is null. And dont use delete/CloseHandle() in timer callbacks to close/stop them.
Use
return Plugin_Stop; instead. See SourceMod Docs.
PHP Code:
public void _Smoke_OnRoundStart() {
delete myTimer;
if(myTimer == null)
myTimer = CreateTimer(gc_iSmokeTimer.FloatValue, SmokeCheckTimer);
}