Difference between revisions of "Timer"

From Scriptwiki
Jump to: navigation, search
m (added stub)
Line 1: Line 1:
{{Template:Stub}}
 
 
 
Activates the specified timer to perform the specified command at a specified interval, and optionally at a specified time.
 
Activates the specified timer to perform the specified command at a specified interval, and optionally at a specified time.
 
  /timer[N/name] [-ceomhipr] [time] <repetitions> <interval> <command>
 
  /timer[N/name] [-ceomhipr] [time] <repetitions> <interval> <command>
Line 6: Line 4:
 
If you are not connected to a server and a timer is started, it will be an offline timer by default, meaning that it will continue to run whether you are connected to a server on not. If you aren't connected to a server while starting a timer, it will be an online timer, that will stop if you disconnect. You can make a timer being an offline timer by using the -o switch.
 
If you are not connected to a server and a timer is started, it will be an offline timer by default, meaning that it will continue to run whether you are connected to a server on not. If you aren't connected to a server while starting a timer, it will be an online timer, that will stop if you disconnect. You can make a timer being an offline timer by using the -o switch.
  
To make a new timer, you can either use /timer without name/number or you can specify a name or not,  without space between the command and the name (/timerfoo ...). If you do not specify a name/number, mIRC will get the first free timernumber it finds and use this.
+
To make a new timer, you can either use /timer without name/number or you can specify a name,  without space between the command and the name (/timerfoo ...). If you do not specify a name/number, mIRC will get the first free timernumber it finds and use this.
  
 
If you specify a delay of 0 seconds, the timer will trigger immediately after the calling script ends.
 
If you specify a delay of 0 seconds, the timer will trigger immediately after the calling script ends.
Line 14: Line 12:
 
'''Note''' that if you specify 0 repetitions it will continue until you either stop it yourself or you disconnect, in case it is an online timer.
 
'''Note''' that if you specify 0 repetitions it will continue until you either stop it yourself or you disconnect, in case it is an online timer.
  
'''Note''' that identifiers usually '''do not''' get re-evaluated during a timer (see example below). To force this, you have to use an exclamation mark after the ''$'' of an identifier (e.g. $!time or $!me)
+
'''Note''' that identifiers usually '''do not''' get re-evaluated during a timer (see example below). To force this, you have to use an exclamation mark after the ''$'' of an identifier (e.g. [[$time|$!time]] or [[$me|$!me]])
 +
 
 +
You can '''stop''' a timer by using ''/timer<name|N> off'', which will also be able to handle wildcards in the name (see example below).
  
  
Line 28: Line 28:
 
<tr><td valign="top">-i</td><td>will make a timer dynamically associate with whatever happens to be the active connection. If a server window is closed, the timer is associated with the next available server window.</td></tr>
 
<tr><td valign="top">-i</td><td>will make a timer dynamically associate with whatever happens to be the active connection. If a server window is closed, the timer is associated with the next available server window.</td></tr>
 
</table>
 
</table>
 +
 +
== Example ==
 +
In the following, we'll always create an [[alias]] to be able to execute commands directly after creating the timer.
 +
 +
alias timertest {
 +
  timer 2 2 { [[echo]] -a moo! }
 +
}
 +
This alias just creates an timer that will echo ''moo!'' to your active window two times with a delay of 2 seconds.
 +
 +
 +
alias timertest {
 +
  timer1 2 10 { echo -a [[$asctime|$!asctime]] }
 +
  timer2 2 10 { echo -a $asctime }
 +
}
 +
Here we create two timers, one with forcing it to re-evaluate the identifier (the one on top), the other not. You will see the first always echoing the current time, the other always echoing the time when it was started.
 +
 +
 +
alias timertest {
 +
  timermilli -m 10 50 { echo -a The difference are 50 milliseconds. }
 +
}
 +
This timer called milli will echo ''The difference are 50 milliseconds.'' every 0,05 seconds to your active window, all in all 10 times.
 +
 +
 +
alias timertest {
 +
  timertime 14:00 1 1 { echo -a It is 14:00 o'clock. }
 +
}
 +
This one will echo ''It is 14:00 o'clock.'' to the active window when it is 14oclock, as we made the timer trigger then.
 +
 +
 +
timer1* off
 +
We just stop all timers beginning with a 1.
 +
 +
== See Also ==
 +
To stop all timers, take a look at [[timers|/timers]].
 +
 +
You can also get information about a timer, using the [[$timer]] identifier.
 +
[[Category:Timer]]

Revision as of 13:10, 26 November 2005

Activates the specified timer to perform the specified command at a specified interval, and optionally at a specified time.

/timer[N/name] [-ceomhipr] [time] <repetitions> <interval> <command>

If you are not connected to a server and a timer is started, it will be an offline timer by default, meaning that it will continue to run whether you are connected to a server on not. If you aren't connected to a server while starting a timer, it will be an online timer, that will stop if you disconnect. You can make a timer being an offline timer by using the -o switch.

To make a new timer, you can either use /timer without name/number or you can specify a name, without space between the command and the name (/timerfoo ...). If you do not specify a name/number, mIRC will get the first free timernumber it finds and use this.

If you specify a delay of 0 seconds, the timer will trigger immediately after the calling script ends.

You can also specify a time when the timer is supposed to trigger (see example below).

Note that if you specify 0 repetitions it will continue until you either stop it yourself or you disconnect, in case it is an online timer.

Note that identifiers usually do not get re-evaluated during a timer (see example below). To force this, you have to use an exclamation mark after the $ of an identifier (e.g. $!time or $!me)

You can stop a timer by using /timer<name|N> off, which will also be able to handle wildcards in the name (see example below).


You can use the following switches:

switchexplanation
cwill make mIRC "catch up" a timer by executing it more than once during one interval if the real-time interval isn't matching your requested interval.
-m / -hindicates that the interval delay is in milliseconds.
-hmake a high-resolution multimedia timer (uses system resources heavily)
-ewill executes the command associated with the specified timer name (works with wildcard names too).
-pwill pause a timer
-rwill resume a timer
-iwill make a timer dynamically associate with whatever happens to be the active connection. If a server window is closed, the timer is associated with the next available server window.

Example

In the following, we'll always create an alias to be able to execute commands directly after creating the timer.

alias timertest {
 timer 2 2 { echo -a moo! }
}

This alias just creates an timer that will echo moo! to your active window two times with a delay of 2 seconds.


alias timertest {
 timer1 2 10 { echo -a $!asctime }
 timer2 2 10 { echo -a $asctime }
}

Here we create two timers, one with forcing it to re-evaluate the identifier (the one on top), the other not. You will see the first always echoing the current time, the other always echoing the time when it was started.


alias timertest {
 timermilli -m 10 50 { echo -a The difference are 50 milliseconds. }
}

This timer called milli will echo The difference are 50 milliseconds. every 0,05 seconds to your active window, all in all 10 times.


alias timertest {
 timertime 14:00 1 1 { echo -a It is 14:00 o'clock. }
}

This one will echo It is 14:00 o'clock. to the active window when it is 14oclock, as we made the timer trigger then.


timer1* off

We just stop all timers beginning with a 1.

See Also

To stop all timers, take a look at /timers.

You can also get information about a timer, using the $timer identifier.