I came across something like this when I was modifying m0d_sa..
Just use gettickcount, try this pseudo code:
1) at top of script, declare a DWORD variable which will store last tick, set it to -1 default value (DWORD last_tick = -1
![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
2) in your command, set the variable we just created right now value to GetTickCount(); (last_tick = GetTickCount()
![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
3) in the main loop, check if last_tick isnt -1 (last_tick != -1) and if last tick is under the current tick count - 3000, Why 3000? because it should be in MS (milisecond), this is the time you want to be isn't it? 3 seconds = 3000 ms [if(last_tick < (GetTickCount() - 3000))] ( if(last_tick != -1 && last_tick < (GetTickCount() - 3000)) )
4) after the IF, inside it add last_tick = -1; (reset it) and then execute ur code for the command.
if your not having more timers in ur script which uses same method then, add a variable which will be a bool and tell which timer is running right now.