[Home] [Downloads] [Search] [Help/forum]


Script function


Read about scripting




Sets the value of a named timer option


long SetTimerOption(BSTR TimerName, BSTR OptionName, BSTR Value);

View list of data type meanings


Sets the current value of a timer option.

You must specify the name of an existing timer, and a timer option from the list given for GetTimerOption. These are the same names as used in the XML world files for timer options.

For a detailed description about the meanings of the fields, see AddTimer.

Note that you can neither get nor set the "name" field. It is listed below for completeness in viewing timers copied to the clipboard or in world files and plugins. You already know the name when getting the timer option (it is TimerName), and this function is provided to modify existing timers, not rename them. To change the name of a timer use ExportXML, modify the XML, and then ImportXML.

If SetTimerOption is called from within a plugin, the timers for the current plugin are used, not the "global" MUSHclient timers.

For numeric options (such as "hour") the supplied string will be converted to a number. It is an error if the string does not consist of digits (0 to 9). For the "user" option an optional leading sign is accepted.

For boolean options (such as "enabled") the supplied string may be:

"y", "Y", or "1" for true
"n", "N", or "0" for false

Also if you are using Lua you can supply simply true or false.

The "offset" options are the time offset within the interval. In other words, if the interval is an hour, but the offset is 45 minutes, then the timer fires 15 minutes into the hour (it still fires every hour, but 45 minutes is subtracted from the fire time). This lets you stagger timer fire times.

The various option names are:

"active_closed": y/n - timer is active when world closed
"at_time": y/n - y=fire *at* time of day, otherwise every interval
"enabled": y/n - timer is enabled
"group": (string - group name)
"hour": hour to fire at (or every hour)
"minute": minute to fire at (or every minute)
"name": (string - name/label of alias)
"offset_hour": offset hour - fire at time *plus* this
"offset_minute": offset minute - fire at time *plus* this
"offset_second": offset second - fire at time *plus* this
"omit_from_log": y/n - omit timer from log file
"omit_from_output": y/n - omit timer output from log file
"one_shot": y/n - delete after firing
"script": (string - name of function to call)
"second": second to fire at (or every second)
"send": (multi-line string - what to send)
"send_to": 0 - 13 - "send to" location (see below)
"user": -2147483647 to 2147483647 - user-defined number
"variable": (string - name of variable to send to)

Send-to locations

"0" - send to MUD
"1" - put in command window
"2" - display in output window
"3" - put in status line
"4" - new notepad
"5" - append to notepad
"6" - put in log file
"7" - replace notepad
"8" - queue it
"9" - set a variable
"10" - re-parse as command
"11" - send to MUD as speedwalk
"12" - send to script engine
"13" - send without queuing
"14" - send to script engine - after omitting from output

Available in MUSHclient version 3.29 onwards.

VBscript example

world.SetTimerOption "mytimer", "minute", "5"

Jscript example

world.SetTimerOption ("mytimer", "minute", "5");

PerlScript example

$world->SetTimerOption ("mytimer", "minute", "5");

Python example

world.SetTimerOption ("mytimer", "minute", "5")

Lua example

SetTimerOption ("mytimer", "minute", "5")

Lua notes

The "send_to" field can be specified using the "sendto" table in the Lua global address space, as follows:

sendto.world = 0
sendto.command = 1
sendto.output = 2
sendto.status = 3
sendto.notepad = 4
sendto.notepadappend = 5
sendto.logfile = 6
sendto.notepadreplace = 7
sendto.commandqueue = 8
sendto.variable = 9
sendto.execute = 10
sendto.speedwalk = 11
sendto.script = 12
sendto.immediate = 13
sendto.scriptafteromit = 14

You can use true, false or nil for boolean options.

Return value

eInvalidObjectLabel: The timer name is not valid
eTimeInvalid: Time is out of range (hours not 0 to 23, minutes/seconds not 0-59)
eScriptNameNotLocated: The script name cannot be located in the script file
eBadRegularExpression: The regular expression could not be evaluated
ePluginCannotSetOption: The option is marked as non-settable (in a plugin or not)
eOK: set OK

View list of return code meanings

See Also ...


Default triggers/aliases/timers/macros/colours
Getting started


(AddTimer) Adds a timer
(DeleteTemporaryTimers) Deletes all temporary timers
(DeleteTimer) Deletes a timer
(DeleteTimerGroup) Deletes a group of timers
(DoAfter) Adds a one-shot, temporary timer - simplified interface
(DoAfterSpecial) Adds a one-shot, temporary, timer to carry out some special action
(DoAfterSpeedWalk) Adds a one-shot, temporary speedwalk timer - simplified interface
(EnableTimer) Enables or disables an timer
(EnableTimerGroup) Enables/disables a group of timers
(GetPluginTimerOption) Gets the value of a named timer option for a specified plugin
(GetPluginTriggerOption) Gets the value of a named trigger option for a specified plugin
(GetTimer) Gets details about a timer
(GetTimerInfo) Gets details about a timer
(GetTimerList) Gets the list of timers
(GetTimerOption) Gets the value of a named timer option
(IsTimer) Tests to see if a timer exists
(ResetTimer) Resets a named timer
(ResetTimers) Resets all timers

(Help topic: function=SetTimerOption)

Documentation contents page

Search ...

Enter a search string to find matching documentation.

Search for:   

Quick links: MUSHclient. MUSHclient help. Forum shortcuts. Posting templates. Lua modules. Lua documentation.

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.


Written by Nick Gammon - 5K   profile for Nick Gammon on Stack Exchange, a network of free, community-driven Q&A sites   Marriage equality

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( https://gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Hosted at FutureQuest]