macros

A macro is basically a named set of commands. The simplest kind of macro has a name and a body. The body is a list of one or more commands, separated by '%;' tokens. These commands are executed when the macro is called. For example, if you define a macro like
    /def time_warp = :jumps to the left!%;:steps to the right!
and call it by typing
    /time_warp
you will execute the commands
    :jumps to the left!
    :steps to the right!
A macro name is the way of calling it from the command line or from another macro. You can execute a macro by typing '/' followed by the name of the macro. If a macro and builtin have the same name, the macro will be called. Typing '/@' followed by the name will always call the builtin command.

A macro body, or execution text, is the commands and/or text executed when the macro is called. This text is evaluated according to the rules described under "evaluation".

Macros actually have many more fields, described below. All fields (including name and body) are optional.

name
The name of the macro. Names should begin with a letter, and contain letters, numbers, or '_' characters.

body
One or more commands to be executed when macro is called. The body is compiled to an efficient internal format the first time it is needed, so each future call can execute it more quickly.

number
All macros are automatically numbered sequentially. This field can not be changed.

trigger
when text matches the trigger pattern, the macro may be called.

hook
the macro can be called when a TF hook event occurs.

keybinding
the macro will be called when its keybinding is typed.

shots
the macro will be deleted after it is triggered or hooked a certain number of times.

priority
when multiple triggers match the same text, the one with the highest priority is selected (see "priority").

fall-thru
on a trigger or hook, allows additional macros of lower priority to be run (see "priority").

world
the macro can only be triggered/hooked by text/events from a particular world.

worldtype
the macro can only be triggered/hooked by text/events from a particular type of world.

expression
the macro can only be triggered/hooked if expression is non-zero.

attributes
bold, underline, etc. for displaying trigger text.

probability
when triggered, the macro has a certain probability of being executed.

invisibility
prevents handling of macro by /list, /save, or /purge.
Macros may be called in several ways:

Associated commands:

/def
define a named macro, with any fields
/trig
define a trigger macro
/hilite
define a hilite macro
/gag
define a gag macro
/bind
define a keybinding macro
/hook
define a hook macro
/undef
undefine a named macro
/unhook
undefine a hook macro
/unbind
undefine a keybinding macro
/undefn
undefine a macro by number
/undeft
undefine a macro by trigger
/purge
undefine a set of macros
/list
display a list of macros
/load
load commands from a file
/save
save macro definitions to a file

See also: triggers, gags, hilites, hooks


Back to index
Back to tf home page
Copyright © 1995, 1996, 1997, 1998, 1999, 2002, 2003, 2004, 2005, 2006-2007 Ken Keys