/floodprotect { if %floodProtectEnabled == 1 goto floodProtEnd /inc %floodCounter if %floodCounter == %maxMessages { %time [ $+ [ %floodCounter ] ] = $ctime($asctime) if $calc(%time [ $+ [ %floodCounter ] ] - %time1) <= 3 { /floodProtectOn } :shiftFloodMessageTimes /inc %i if %i == %maxMessages goto endShiftFloodMessageTimes %time [ $+ [ %i ] ] = %time [ $+ [ $calc(%i + 1) ] ] goto shiftFloodMessageTimes :endShiftFloodMessageTimes /unset %i /dec %floodCounter } %time [ $+ [ %floodCounter ] ] = $ctime($asctime) %difference = $calc(%time [ $+ [ %floodCounter ] ] - %time1) /echo the time difference in seconds is %difference :floodProtEnd } /floodProtectOn { %floodProtectEnabled = 1 /timer 1 %floodProtectDuration /floodProtectOff } /floodProtectOff { %floodProtectEnabled = 0 }