ALARM
Syntax: #ALA id {timepattern} {commands} class
Related: #TRIGGER #SUSPEND #RESUME
Allows you to set up a trigger based upon the time, rather than what is received from the MUD. The timepattern can contain a specific time, or can include wildcards as shown below. If preceded with a minus (-), the connection time is used rather than the current time.
Typically, the timepattern has the format hours:minutes:seconds, although the hours and minutes are optional. If missing, the hours or minute parameter is assumed to be an asterisk * wildcard. In place of a specific numeric value, you can use an asterisk to match any value. You can also use the special wildcard *value which will match when the time MOD the value is zero. E.g. *10 matches 10, 20, 30, etc.
You can also define a temporary, one-time alarm by specifying a plus (+) in front of the time. The command is executed when the alarm goes off and the alarm is then deleted.
A normal alarm cannot match a time smaller than or equal to half a second, so the fastest-repeating alarm you could have would be #alarm 0.501 {commands}. These restrictions don't apply to one-time alarms. The smallest unit of time you can use is a millisecond.
When used with only id and timepattern parameters it changes the pattern of the specified alarm.
Note: #ALARM does not preform any variable or function expansion of the timepattern at the time of creation. If you need the parameter expanded use a syntax similar to the #EXEC example below.
ALARM examples
#ALARM {-30:00} {save}
The hour isn't specified, so it defaults to *. Thus, this trigger saves your game every 30 minutes of connect time.
#ALARM {3:00:00} {gossip "Why aren't you sleeping?"}
This triggers at 3am local time.
#ALARM {+5} {save}
Executes the "save" command in 5 seconds. This is a one-time alarm that deletes itself once it has executed.
#ALARM example {*5} {#ECHO example}
#ALARM example {+3}
Creates an alarm that will fire every 5 seconds then changes the time pattern for that alarm.
#VAR temp 5
#ALARM {+@temp} {@spell}
Executes the command stored in @spell in @temp seconds. This is a one-time alarm that deletes itself once it has executed. Note that @temp is not expanded in the display of the pattern but is expanded internally, so changing temp will not affect when the alarm triggers. In order to change when an alarm triggers try %alarm.
#EXEC {%concat(":Tells:#ALARM +",@temp," {#CLR}")}
A contrived example. This demonstrates how to create an alarm in another window, with a variable from this window. |