mirror of
https://github.com/scandum/tintin
synced 2026-08-13 20:23:04 -04:00
4780 lines
307 KiB
HTML
4780 lines
307 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv='content-type' content='text/html; charset=utf-8'>
|
|
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
|
<style type='text/css'>
|
|
body {font-family:Consolas;font-size:12pt}
|
|
a {text-decoration:none}
|
|
a:link {color:#06b}
|
|
a:visited {color:#6b0}
|
|
a:hover {text-decoration:underline}
|
|
a:active {color:#b06}
|
|
</style>
|
|
<body bgcolor='#000000'>
|
|
</head>
|
|
<pre>
|
|
<span style='background-color:#000'><span style='color:#FFF'>
|
|
</span><span style='color:#FF5'> ╭──────────────────────────────────────────────────────────────────────╮
|
|
│ <a href='index.html'>Home</a> │
|
|
╰──────────────────────────────────────────────────────────────────────╯
|
|
|
|
<a href='#ACTION'>ACTION </a> <a href='#EDITING'>EDITING </a> <a href='#LOG'>LOG </a> <a href='#SCREEN'>SCREEN </a>
|
|
<a href='#ALIAS'>ALIAS </a> <a href='#ELSE'>ELSE </a> <a href='#LOOP'>LOOP </a> <a href='#SCREEN_READER'>SCREEN READER </a>
|
|
<a href='#ALL'>ALL </a> <a href='#ELSEIF'>ELSEIF </a> <a href='#MACRO'>MACRO </a> <a href='#SCRIPT'>SCRIPT </a>
|
|
<a href='#BELL'>BELL </a> <a href='#END'>END </a> <a href='#MAP'>MAP </a> <a href='#SEND'>SEND </a>
|
|
<a href='#BREAK'>BREAK </a> <a href='#ESCAPE_CODES'>ESCAPE CODES </a> <a href='#MAPPING'>MAPPING </a> <a href='#SESSION'>SESSION </a>
|
|
<a href='#BUFFER'>BUFFER </a> <a href='#EVENT'>EVENT </a> <a href='#MATH'>MATH </a> <a href='#SESSIONNAME'>SESSIONNAME </a>
|
|
<a href='#BUTTON'>BUTTON </a> <a href='#FOREACH'>FOREACH </a> <a href='#MATHEMATICS'>MATHEMATICS </a> <a href='#SHOWME'>SHOWME </a>
|
|
<a href='#CASE'>CASE </a> <a href='#FORMAT'>FORMAT </a> <a href='#MESSAGE'>MESSAGE </a> <a href='#SNOOP'>SNOOP </a>
|
|
<a href='#CAT'>CAT </a> <a href='#FUNCTION'>FUNCTION </a> <a href='#METRIC_SYSTEM'>METRIC SYSTEM </a> <a href='#SPEEDWALK'>SPEEDWALK </a>
|
|
<a href='#CHARACTERS'>CHARACTERS </a> <a href='#GAG'>GAG </a> <a href='#MOUSE'>MOUSE </a> <a href='#SPLIT'>SPLIT </a>
|
|
<a href='#CHAT'>CHAT </a> <a href='#GREETING'>GREETING </a> <a href='#MSDP'>MSDP </a> <a href='#SSL'>SSL </a>
|
|
<a href='#CLASS'>CLASS </a> <a href='#GREP'>GREP </a> <a href='#MSLP'>MSLP </a> <a href='#STATEMENTS'>STATEMENTS </a>
|
|
<a href='#COLORS'>COLORS </a> <a href='#HELP'>HELP </a> <a href='#NOP'>NOP </a> <a href='#SUBSTITUTE'>SUBSTITUTE </a>
|
|
<a href='#COMMANDS'>COMMANDS </a> <a href='#HIGHLIGHT'>HIGHLIGHT </a> <a href='#PARSE'>PARSE </a> <a href='#SUBSTITUTIONS'>SUBSTITUTIONS </a>
|
|
<a href='#CONFIG'>CONFIG </a> <a href='#HISTORY'>HISTORY </a> <a href='#PATH'>PATH </a> <a href='#SUSPEND'>SUSPEND </a>
|
|
<a href='#CONTINUE'>CONTINUE </a> <a href='#IF'>IF </a> <a href='#PATHDIR'>PATHDIR </a> <a href='#SWITCH'>SWITCH </a>
|
|
<a href='#COORDINATES'>COORDINATES </a> <a href='#IGNORE'>IGNORE </a> <a href='#PCRE'>PCRE </a> <a href='#SYSTEM'>SYSTEM </a>
|
|
<a href='#CR'>CR </a> <a href='#INDEX'>INDEX </a> <a href='#PORT'>PORT </a> <a href='#TAB'>TAB </a>
|
|
<a href='#CURSOR'>CURSOR </a> <a href='#INFO'>INFO </a> <a href='#PROMPT'>PROMPT </a> <a href='#TEXTIN'>TEXTIN </a>
|
|
<a href='#DAEMON'>DAEMON </a> <a href='#INTRODUCTION'>INTRODUCTION </a> <a href='#READ'>READ </a> <a href='#TICKER'>TICKER </a>
|
|
<a href='#DEBUG'>DEBUG </a> <a href='#KEYPAD'>KEYPAD </a> <a href='#REGEXP'>REGEXP </a> <a href='#TIME'>TIME </a>
|
|
<a href='#DEFAULT'>DEFAULT </a> <a href='#KILL'>KILL </a> <a href='#REPEAT'>REPEAT </a> <a href='#TRIGGERS'>TRIGGERS </a>
|
|
<a href='#DELAY'>DELAY </a> <a href='#LINE'>LINE </a> <a href='#REPLACE'>REPLACE </a> <a href='#VARIABLE'>VARIABLE </a>
|
|
<a href='#DRAW'>DRAW </a> <a href='#LIST'>LIST </a> <a href='#RETURN'>RETURN </a> <a href='#WHILE'>WHILE </a>
|
|
<a href='#ECHO'>ECHO </a> <a href='#LISTS'>LISTS </a> <a href='#RUN'>RUN </a> <a href='#WRITE'>WRITE </a>
|
|
<a href='#EDIT'>EDIT </a> <a href='#LOCAL'>LOCAL </a> <a href='#SCAN'>SCAN </a> <a href='#ZAP'>ZAP </a>
|
|
|
|
|
|
|
|
<a name='ACTION'></a>
|
|
|
|
ACTION
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>message</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The #action command can be used to respond with one or several
|
|
commands to a specific message sent by the server. The %1-%99
|
|
variables are substituted from the message and can be used in the
|
|
command part of the action.
|
|
|
|
If the message starts with a ~ color codes must be matched. You can
|
|
enable #config {convert meta} on to display meta characters.
|
|
|
|
For more information on pattern matching see the section on PCRE.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {%1 tells you '%2'} {tell %1 I'm afk.}
|
|
|
|
Actions can be triggered by the #show command. If you don't want a
|
|
#show to get triggered use: #line ignore #show {text}
|
|
|
|
Actions are ordered alphabetically and only one action can trigger at
|
|
a time. To change the order you can assign a priority, which defaults
|
|
to 5, with a lower number indicating a higher priority. The priority
|
|
can be a floating point number and should be between 1 and 9.
|
|
|
|
To remove an action with %* as the message, use #unaction {%%*} or
|
|
#unaction {\%*}. Alternatively you could wrap the action inside a
|
|
class, and kill that class when you no longer need the action.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove an action with the #unaction command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PCRE'>pcre</a>, <a href='#GAG'>gag</a>, <a href='#HIGHLIGHT'>highlight</a>, <a href='#PROMPT'>prompt</a> and <a href='#SUBSTITUTE'>substitute</a>.
|
|
<a name='ALIAS'></a>
|
|
|
|
</span><span style='color:#FF5'> ALIAS
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #alias </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The #alias command can be used to shorten up long or oftenly used
|
|
commands. The %1-99 variables are substituted from the arguments when
|
|
using an alias and represent the 1st till 99th word which can be used
|
|
in the commands part of the alias. If %0 is used it will contain all
|
|
arguments. The priority part is optional and determines the priority
|
|
of the alias, it defaults to 5.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {k} {kill %1;kick}
|
|
|
|
Typing 'k orc' would result in attacking the orc followed by a kick.
|
|
|
|
You can create multi-word aliases by using variables in the name
|
|
section.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {k %1 with %2} {draw %2;attack %1;slash %1 with %2;
|
|
kick at %2;strike %1 with %2}
|
|
|
|
Using the above alias you could type k blue smurf with battle axe
|
|
|
|
To have an alias that matches all user input, use %* as the name.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {%*} {#show You wrote: %0}
|
|
|
|
Aliases are ordered alphabetically and only one alias can trigger at
|
|
a time. To change the order you can assign a priority, which defaults
|
|
to 5, with a lower number indicating a higher priority. The priority
|
|
can be a floating point number.
|
|
|
|
To remove an alias with %* as the name, use #unalias {%%*} or #unalias
|
|
{\%*}. Alternatively you can wrap the alias inside a class, and kill
|
|
that class when you no longer need the alias.
|
|
|
|
For more information on pattern matching see the section on PCRE.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove an alias with the #unalias command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CURSOR'>cursor</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
|
|
<a name='ALL'></a>
|
|
|
|
</span><span style='color:#FF5'> ALL
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #all </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> If you have multiple sessions in one terminal you can use #all to
|
|
execute the command with all sessions, excluding the startup session.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #all quit
|
|
|
|
Sends 'quit' to all sessions.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
|
|
<a name='BELL'></a>
|
|
|
|
</span><span style='color:#FF5'> BELL
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #bell </span><span style='color:#FFF'>{</span><span style='color:#AAA'>flash</span><span style='color:#FFF'>|</span><span style='color:#AAA'>focus</span><span style='color:#FFF'>|</span><span style='color:#AAA'>margin</span><span style='color:#FFF'>|</span><span style='color:#AAA'>ring</span><span style='color:#FFF'>|</span><span style='color:#AAA'>volume</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The #bell command without an argument will ring the terminal bell.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {Bubba tells you} {#bell}
|
|
|
|
If you aren't watching the screen this could be useful if you don't
|
|
want to miss out on a conversation with Bubba. Alternatively you can
|
|
use #system to play a sound file.
|
|
|
|
Some terminals will allow you to use VT100 Operating System Commands
|
|
to change the terminal's bell behavior which can be used to flash the
|
|
taskbar icon and or focus the window on receival of a bell.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {Bubba tells you} {#screen save title;#screen set title Tell!;
|
|
#bell ring;#delay 10 #screen load title}
|
|
|
|
The above example will save your window title, change the title to
|
|
'Tell!', ring the bell, next reset the window title after 10 seconds.
|
|
|
|
It's possible to set the terminal to pop to the foreground upon
|
|
ringing of the alarm bell.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #bell focus on;#bell ring;#bell focus off
|
|
|
|
It's possible to adjust the alarm bell volume on some terminals.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop {1} {8} {cnt} {#line substitute variables
|
|
#delay {$cnt} {#show Volume $cnt: #bell volume $cnt;#bell}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SCREEN'>screen</a>
|
|
<a name='BREAK'></a>
|
|
|
|
</span><span style='color:#FF5'> BREAK
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #break
|
|
|
|
The break command can be used inside the #else, #elseif, #if, #foreach,
|
|
#loop, #parse, #switch, and #while statements. When #break is found,
|
|
tintin will stop executing the statement it is currently in and move on
|
|
to the next.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #while {1} {#math cnt $cnt + 1;#if {$cnt == 20} {#break}}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#STATEMENTS'>statements</a>
|
|
<a name='BUFFER'></a>
|
|
|
|
</span><span style='color:#FF5'> BUFFER
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #buffer </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The buffer command has various options to manipulate your scrollback
|
|
buffer.
|
|
|
|
The size of the scrollback buffer can be configured using #config
|
|
buffer_size <size>. The size must be either 100, 1000, 10000, 100000
|
|
or 1000000 lines.
|
|
|
|
While scrolling through the scrollback buffer incoming text is not
|
|
displayed, this can be disabled using #config scroll_lock off. The
|
|
scroll lock is automatically disabled when manual input is received,
|
|
subsequently #buffer up and down only work properly when used in a
|
|
macro or mouse event.
|
|
|
|
</span><span style='color:#FFF'>#buffer {clear} {[lower bound]} {[upper bound]}
|
|
|
|
</span><span style='color:#AAA'> Without an argument this will clear the entire scrollback buffer.
|
|
Otherwise it will clear the given range.
|
|
|
|
Positive numbers are measured from the start of the scrollback buffer,
|
|
negative numbers from the end.
|
|
|
|
</span><span style='color:#FFF'>#buffer {down} [lines]
|
|
|
|
</span><span style='color:#AAA'> Moves your scrollback buffer down one page and displays the page. If
|
|
a line number is provided it will scroll down the given number of
|
|
lines.
|
|
|
|
</span><span style='color:#FFF'>#buffer {end}
|
|
|
|
</span><span style='color:#AAA'> Moves you to the end of your scrollback buffer and displays the page.
|
|
Disables scroll lock mode. Most useful when used in a #macro.
|
|
|
|
</span><span style='color:#FFF'>#buffer {find} {[number]} {<string>} {[variable]}
|
|
|
|
</span><span style='color:#AAA'> Moves the buffer to the given string which can contain a regular
|
|
expression. Optionally you can provide the number of matches to skip,
|
|
allowing you to jump further back in the buffer.
|
|
|
|
A positive number searches from the start of the buffer, a negative
|
|
number from the end. If you provide a variable the location will be
|
|
stored and no jump takes place.
|
|
|
|
</span><span style='color:#FFF'>#buffer {get} {<variable>} {<lower bound>} {[upper bound]}
|
|
|
|
</span><span style='color:#AAA'> Allows you to store one or several lines from your scrollback buffer
|
|
(including color codes) into a variable. The lower and upper bound
|
|
must be between 1 and the size of the buffer. If the upper bound is
|
|
omitted the given line is stored as a standard variable. If an upper
|
|
bound is given the lines between the two bounds are stored as a list.
|
|
|
|
Positive numbers are measured from the start of the scrollback buffer,
|
|
negative numbers from the end.
|
|
|
|
</span><span style='color:#FFF'>#buffer {home}
|
|
|
|
</span><span style='color:#AAA'> Moves you to the top of your scrollback buffer and displays the page.
|
|
Enables scroll lock mode. Most useful when used in a #macro.
|
|
|
|
</span><span style='color:#FFF'>#buffer {info} {[save]} {[variable]}
|
|
|
|
</span><span style='color:#AAA'> Display buffer info, optionally save the data to a variable.
|
|
|
|
</span><span style='color:#FFF'>#buffer {jump} {<location>}
|
|
|
|
</span><span style='color:#AAA'> Moves the buffer to the given location. A positive number jumps from
|
|
the start of the buffer, a negative number from the end.
|
|
|
|
</span><span style='color:#FFF'>#buffer {lock} {on|off}
|
|
|
|
</span><span style='color:#AAA'> Toggles the lock on the scrollback buffer. When locked, newly incoming
|
|
text won't be displayed, any command will disable the lock, though
|
|
several buffer commands will re-enable the lock. When unlocking it'll
|
|
move you to the end of your scrollback buffer and display the page.
|
|
|
|
</span><span style='color:#FFF'>#buffer {refresh}
|
|
|
|
</span><span style='color:#AAA'> Marks the buffer as needing to be refreshed, only useful while in
|
|
vertical split mode.
|
|
|
|
</span><span style='color:#FFF'>#buffer {up} [lines]
|
|
|
|
</span><span style='color:#AAA'> Moves your scrollback buffer up one page and displays the page.
|
|
Enables scroll lock mode. Most useful when used in a #macro. You
|
|
can use #buffer {up} {1} to move the scrollback buffer up 1 line.
|
|
|
|
</span><span style='color:#FFF'>#buffer {write} {<filename>}
|
|
|
|
</span><span style='color:#AAA'> Writes the scrollback buffer to the given file.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {\e[F} {#buffer end}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#GREP'>grep</a>, <a href='#MACRO'>macro</a>, <a href='#SHOWME'>showme</a> and <a href='#SCREEN'>screen</a>.
|
|
<a name='BUTTON'></a>
|
|
|
|
</span><span style='color:#FF5'> BUTTON
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #button </span><span style='color:#FFF'>{</span><span style='color:#AAA'>square</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The #button command can be used to respond with one or several
|
|
commands to a mouse click received within the specified square.
|
|
The click coordinates are stored in %0-%3 and can be used in the
|
|
command part of the button.
|
|
|
|
The square part should exists of two coordinates defining the
|
|
upper left and bottom right corner using row, col, row, col syntax.
|
|
The square arguments should be separated by spaces, semi-colons or
|
|
braces.
|
|
|
|
By default the button is set to respond to a mouse button press, to
|
|
respond to other button presses you must add a 5th argument to the
|
|
square that defines the button press type. You can enable #info
|
|
button on to see button events and their type as they happen.
|
|
|
|
The priority part is optional and determines the priority of the
|
|
button, it defaults to 5.
|
|
|
|
You must enable #config {mouse tracking} on for buttons to work.
|
|
|
|
This command draws no visible button, you'll have to do so separately
|
|
if needed.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #button {1;1;2;2} {#show You clicked the upper left corner.}
|
|
|
|
Buttons are ordered alphabetically and only one button can trigger at
|
|
a time. To change the order you can assign a priority, which defaults
|
|
to 5, with a lower number indicating a higher priority. The priority
|
|
can be a floating point number.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: To see button clicks trigger use #info button on.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a button with the #unbutton command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DELAY'>delay</a>, <a href='#EVENT'>event</a> and <a href='#TICKER'>ticker</a>.
|
|
<a name='CASE'></a>
|
|
|
|
</span><span style='color:#FF5'> CASE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #case </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>arguments</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The case command must be used within the #switch command. When the
|
|
conditional argument of the case command matches the conditional
|
|
argument of the switch command the body of the case is executed.
|
|
|
|
When comparing strings both the switch and case arguments must be
|
|
surrounded in quotes.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
|
|
|
|
#function {reverse_direction}
|
|
{
|
|
#switch {"%1"}
|
|
{
|
|
#case {"north"} {#return south};
|
|
#case {"east"} {#return west};
|
|
#case {"south"} {#return north};
|
|
#case {"west"} {#return east};
|
|
#case {"up"} {#return down};
|
|
#case {"down"} {#return up}
|
|
}
|
|
}
|
|
|
|
This function returns the reverse direction. @reverse_direction{north}
|
|
would return south.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DEFAULT'>default</a>, <a href='#STATEMENTS'>statements</a> and <a href='#SWITCH'>switch</a>.
|
|
<a name='CAT'></a>
|
|
|
|
</span><span style='color:#FF5'> CAT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cat </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The cat command will concatenate the argument to the given variable.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='CHARACTERS'></a>
|
|
|
|
</span><span style='color:#FF5'> CHARACTERS
|
|
|
|
|
|
</span><span style='color:#AAA'> The following special characters are defined:
|
|
|
|
</span><span style='color:#FFF'># </span><span style='color:#AAA'>The hashtag is the default character for starting a command and is
|
|
subsequently known as the command character or tintin character.
|
|
When loading a command file the command character is set to the
|
|
first character in the file. The character can also be redefined
|
|
using #config.
|
|
|
|
</span><span style='color:#FFF'>; </span><span style='color:#AAA'>The semi-colon is used as the command separator and can be used to
|
|
separate two commands. Multiple commands can be strung together as
|
|
well. Trailing semi-colons are ignored when reading a script file
|
|
as this is a common error.
|
|
|
|
</span><span style='color:#FFF'>{ } </span><span style='color:#AAA'>Curly brackets aka braces are used for separating multi word command
|
|
arguments, nesting commands, and nesting variables. Braces cannot
|
|
easily be escaped and must always be used in pairs.
|
|
|
|
</span><span style='color:#FFF'>" " </span><span style='color:#AAA'>Quote characters are used for strings in the #math, #if, #switch,
|
|
and #case commands. It is however suggested to use a set of braces
|
|
{ } to define strings instead, particularly when checking strings
|
|
that may contain quotes.
|
|
|
|
</span><span style='color:#FFF'>! </span><span style='color:#AAA'>The exclamation sign is used to repeat commands, see #help history.
|
|
The character can be redefined using #config.
|
|
|
|
</span><span style='color:#FFF'>\ </span><span style='color:#AAA'>An input line starting with a backslash is sent verbatim if you are
|
|
connected to a server. This character can be configured with
|
|
#config, and is itself sent verbatim when the verbatim config mode
|
|
is enabled.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#COLORS'>colors</a>, <a href='#ESCAPE_CODES'>escape_codes</a>, <a href='#FUNCTION'>function</a>, <a href='#MATHEMATICS'>mathematics</a>, <a href='#PCRE'>pcre</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='CHAT'></a>
|
|
|
|
</span><span style='color:#FF5'> CHAT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #chat </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The #chat command is used to create peer to peer connections to other
|
|
clients, typically for the purpose of chatting and sending files.
|
|
This is a decentralized chat system, meaning you have to exchange ip
|
|
addresses and port numbers with other users in order to connect to
|
|
them. Chat events are triggered in the startup session.
|
|
|
|
</span><span style='color:#FFF'>#chat {init} {port}
|
|
</span><span style='color:#AAA'> #chat initialize launches your chat server. The port number is
|
|
optional, and by default 4050 is used as your port. After using
|
|
this command other people can connect to your chat server using
|
|
your ip address and port number, and in turn you can connect to
|
|
other people.
|
|
</span><span style='color:#FFF'>#chat {name} {name}
|
|
</span><span style='color:#AAA'> By default your name is set to TinTin, but most servers will
|
|
reject you if there is already someone with the name TinTin
|
|
connected, so one of the first things you'd want to do is
|
|
change your chat name. Your name can include color codes. Some
|
|
names aren't accepted by tt++ chat servers, like the name 'all'
|
|
and names longer than 20 characters.
|
|
</span><span style='color:#FFF'>#chat {message} {buddy|all} {text}
|
|
</span><span style='color:#AAA'> This is the main command used for communication. If you use
|
|
#chat message all, the message is marked as public and sent to
|
|
everyone you are connected to.
|
|
</span><span style='color:#FFF'>#chat {accept} {buddy} {boost}
|
|
</span><span style='color:#AAA'> Accept a file transfer from a buddy. The boost is optional and
|
|
must be a value between 1 and 1000.
|
|
</span><span style='color:#FFF'>#chat {call} {address} {port}
|
|
</span><span style='color:#AAA'> #chat call is used to connect to another chat server. If you
|
|
omit the port argument the default port (4050) is used.
|
|
#chat {cancel} {buddy} Cancel a file transfer
|
|
#chat {color} {color names} Set the default color
|
|
#chat {decline} {buddy} Decline a file transfer
|
|
#chat {dnd} Decline new connections
|
|
#chat {download} {directory} Set your download directory
|
|
#chat {emote} {buddy|all} {text} Send an emote message
|
|
#chat {forward} {buddy} Forward all chat messages
|
|
#chat {forwardall} {buddy} Forward all session output
|
|
#chat {filestat} {buddy} Show file transfer data
|
|
#chat {group} {buddy} {name} Assign a chat group
|
|
#chat {ignore} {buddy} Ignores someone
|
|
#chat {info} Displays your info
|
|
#chat {ip} {address} Changes your IP address
|
|
#chat {paste} {buddy|all} {text} Pastes a block of text
|
|
#chat {peek} {buddy} Show one's public connections
|
|
#chat {ping} {buddy} Display response time
|
|
#chat {private} {buddy|all} Make a connection private
|
|
#chat {public} {buddy|all} Make a connection public
|
|
#chat {reply} {text} Reply to last private message
|
|
#chat {request} {buddy} Request one's public connections
|
|
#chat {send} {buddy|all} {text} Sends a raw data string
|
|
#chat {sendfile} {buddy} {filename} Start a file transfer
|
|
#chat {serve} {buddy} Forward all public chat messages
|
|
#chat {uninitialize} Uninitialize the chat port.
|
|
</span><span style='color:#FFF'>#chat {who}
|
|
</span><span style='color:#AAA'> #chat who shows all people you are connected to. The first
|
|
column shows a reference number for the connection, which can be
|
|
used instead of the connection's name when sending someone a message
|
|
The second column shows the connection's name. The third column
|
|
shows flags set for the connection, (P)rivate, (I)gnore, (S)erve,
|
|
Forward(A)ll to user, (F)orward to user, and (f)orward from user.
|
|
The next columns show ip, port, and client name.
|
|
</span><span style='color:#FFF'>#chat {zap} {buddy} Close a connection
|
|
|
|
Related</span><span style='color:#AAA'>: <a href='#PORT'>port</a>
|
|
<a name='CLASS'></a>
|
|
|
|
</span><span style='color:#FF5'> CLASS
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #class </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>arg</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The class command is primarily used to assign groups of triggers and
|
|
variables a label so they can be easily removed.
|
|
|
|
</span><span style='color:#FFF'>#class {<name>} {assign} {<argument>}
|
|
</span><span style='color:#AAA'> Will open the class, execute argument, and close afterwards.
|
|
</span><span style='color:#FFF'>#class {<name>} {clear}
|
|
</span><span style='color:#AAA'> Will delete all triggers associated with the given class.
|
|
</span><span style='color:#FFF'>#class {<name>} {close}
|
|
</span><span style='color:#AAA'> Close the given class, opening the last open class, if any.
|
|
</span><span style='color:#FFF'>#class {<name>} {debug} {on|off}
|
|
</span><span style='color:#AAA'> Toggle debug mode for given class.
|
|
</span><span style='color:#FFF'>#class {<name>} {kill}
|
|
</span><span style='color:#AAA'> Will clear, close, and remove the class.
|
|
</span><span style='color:#FFF'>#class {<name>} {list}
|
|
</span><span style='color:#AAA'> List all triggers associated with the given class.
|
|
</span><span style='color:#FFF'>#class {<name>} {load}
|
|
</span><span style='color:#AAA'> Will load the saved copy of the class from memory.
|
|
</span><span style='color:#FFF'>#class {<name>} {open}
|
|
</span><span style='color:#AAA'> Open a class, closing a previously opened class. All triggers
|
|
added afterwards are assigned to this class.
|
|
</span><span style='color:#FFF'>#class {<name>} {read} {<filename>
|
|
</span><span style='color:#AAA'> Will open the class, read the file, and close afterwards.
|
|
</span><span style='color:#FFF'>#class {<name>} {save}
|
|
</span><span style='color:#AAA'> Will save all triggers of the given class to memory.
|
|
</span><span style='color:#FFF'>#class {<name>} {size} {<variable>}
|
|
</span><span style='color:#AAA'> Will store the size of the class in a variable.
|
|
</span><span style='color:#FFF'>#class {<name>} {write} {<filename>}
|
|
</span><span style='color:#AAA'> Will write all triggers of the given class to file.
|
|
|
|
Keep in mind that you need to use #class save before using
|
|
#class clear and #class load
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #class rich kill;#class rich read poor.tin
|
|
Deletes all triggers of 'rich' class if any. Read 'poor.tin' file,
|
|
all triggers loaded will be assigned to the 'rich' class.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CONFIG'>config</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a>, <a href='#KILL'>kill</a>, <a href='#LINE'>line</a> and <a href='#MESSAGE'>message</a>.
|
|
<a name='COLORS'></a>
|
|
|
|
</span><span style='color:#FF5'> COLORS
|
|
|
|
</span><span style='color:#FFF'>Syntax</span><span style='color:#AAA'>: <xyz> with x, y, z being parameters
|
|
|
|
Parameter 'x': VT100 code
|
|
|
|
0 - Reset all colors and codes to default
|
|
1 - Bold
|
|
2 - Dim
|
|
3 - Italic
|
|
4 - Underscore
|
|
5 - Blink
|
|
7 - Reverse
|
|
8 - Skip (use previous code)
|
|
|
|
Parameter 'y': Foreground color
|
|
Parameter 'z': Background color
|
|
|
|
0 - Black 5 - Magenta
|
|
1 - Red 6 - Cyan
|
|
2 - Green 7 - White
|
|
3 - Yellow 8 - Skip
|
|
4 - Blue 9 - Default
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show <125>Bold green on a magenta background.
|
|
|
|
For xterm 256 colors support use <aaa> to <fff> for RGB foreground
|
|
colors and <AAA> to <FFF> for RGB background colors. For the grayscale
|
|
foreground colors use <g00> to <g23>, for grayscale background colors
|
|
use <G00> to <G23>.
|
|
|
|
The tertiary colors are as follows:
|
|
|
|
<acf> - Azure <afc> - Jade
|
|
<caf> - Violet <cfa> - Lime
|
|
<fac> - Pink <fca> - Orange
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show <acf>Azure <afc>Jade <caf>Violet
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show <cfa>Lime <fac>Pink <fca>Orange
|
|
|
|
For 12 bit truecolor use <F000> to <FFFF> for foreground colors and
|
|
<B000> to <BFFF> for background colors.
|
|
|
|
For 24 bit truecolor use <F000000> to <FFFFFFF> for foreground
|
|
colors and <B000000> to <BFFFFFF> for background colors.
|
|
|
|
If the color code exceeds your configured color mode it will be
|
|
downgraded to the closest match.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#ESCAPE_CODES'>escape_codes</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
|
|
<a name='COMMANDS'></a>
|
|
|
|
</span><span style='color:#FF5'> COMMANDS
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #commands </span><span style='color:#FFF'>{</span><span style='color:#AAA'>abbreviation</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Shows all commands, or all commands starting with the given
|
|
abbreviation.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#HELP'>help</a>, <a href='#INFO'>info</a> and <a href='#STATEMENTS'>statements</a>.
|
|
<a name='CONFIG'></a>
|
|
|
|
</span><span style='color:#FF5'> CONFIG
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #config </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This allows you to configure various settings, the settings can be
|
|
written to file with the #write command.
|
|
|
|
If you configure the global session (the one you see as you start up
|
|
tintin) all sessions started will inherite these settings.
|
|
|
|
It's advised to make a configuration file to read on startup if you
|
|
do not like the default settings.
|
|
|
|
Use #config without an argument to see your current configuration as
|
|
well as a brief explanation of each config option.
|
|
|
|
The following config options are not listed by default:
|
|
|
|
#CONFIG {AUTO TAB} {NUMBER} Buffer lines used for tab completion
|
|
#CONFIG {CHILD LOCK} {ON|OFF} Enable or disable command input.
|
|
#CONFIG {CONNECT RETRY} {NUMBER} Seconds to try to connect on failure.
|
|
#CONFIG {CONVERT META} {ON|OFF} Shows color codes and key bindings.
|
|
#CONFIG {DEBUG TELNET} {ON|OFF} Shows telnet negotiations y/n.
|
|
#CONFIG {HIBERNATE} {ON|OFF} Enable or disable low CPU usage mode.
|
|
#CONFIG {LOG LEVEL} {LOW|HIGH} LOW logs server output before triggers.
|
|
#CONFIG {INHERITANCE} {ON|OFF} Session trigger inheritance y/n.
|
|
#CONFIG {MCCP} {ON|OFF} Enable or disable MCCP support.
|
|
#CONFIG {RANDOM SEED} {NUMBER} Seed value used for random numbers.
|
|
#CONFIG {TAB WIDTH} {NUMBER} Number of spaces used for a tab
|
|
#CONFIG {TINTIN CHAR} {SYMBOL} Character used for TinTin++ commands.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a> and <a href='#LINE'>line</a>.
|
|
<a name='CONTINUE'></a>
|
|
|
|
</span><span style='color:#FF5'> CONTINUE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #continue
|
|
|
|
The continue command can be used inside the #FOREACH, #LOOP, #PARSE,
|
|
#WHILE and #SWITCH commands. When #CONTINUE is found, tintin will go
|
|
to the end of the command and proceed as normal, which may be to
|
|
reiterate the command.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop 1 10 cnt {#if {$cnt % 2 == 0} {#continue} {say $cnt}}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
|
|
<a name='COORDINATES'></a>
|
|
|
|
</span><span style='color:#FF5'> COORDINATES
|
|
|
|
|
|
</span><span style='color:#AAA'> When the 0,0 coordinate is in the upper left corner TinTin++ uses
|
|
a y,x / row,col notation, starting at 1,1. Subsequently -1,-1
|
|
will indicate the bottom right corner. This type of argument is
|
|
used by the #showme command.
|
|
|
|
When the 0,0 coordinate is in the bottom left corner tintin uses
|
|
a standard x,y notation. This type of argument is used by the
|
|
#map jump command.
|
|
|
|
The vast majority of tintin commands use y,x / row,col notation,
|
|
primarily because that is the notation used by the VT100 standard
|
|
used for terminal emulation.
|
|
|
|
</span><span style='color:#5F5'>Squares
|
|
|
|
</span><span style='color:#AAA'> A square argument takes 2 coordinates. The first coordinate defines
|
|
the upper left corner, the last coordinate defines the bottom
|
|
right corner. The upper left corner of the terminal is defined as
|
|
1,1 and the bottom right corner as -1,-1. This type of argument is
|
|
used by #draw, #button and #map offset.
|
|
|
|
</span><span style='color:#5F5'>Panes
|
|
|
|
</span><span style='color:#AAA'> A pane argument takes 4 size values, which are: top pane, bottom
|
|
pane, left pane, right pane. When a negative value is provided the
|
|
size is the maximum size, minus the value. This type of argument
|
|
is used by the #split command.
|
|
|
|
</span><span style='color:#5F5'>Ranges
|
|
|
|
</span><span style='color:#AAA'> A range argument takes 2 values known as the upper bound and lower
|
|
bound. The upper bound (first value) defines the start of the
|
|
range, the lower bound (second value) the end. The first index of
|
|
a range is defined as 1. When a negative value is provides the last
|
|
index is defined as -1. This type of argument is used by #buffer
|
|
and #variable.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#ESCAPE_CODES'>escape_codes</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
|
|
<a name='CR'></a>
|
|
|
|
</span><span style='color:#FF5'> CR
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cr
|
|
|
|
Sends a carriage return to the session. Useful for aliases that need
|
|
extra carriage returns.
|
|
|
|
This command is obsolete as you can accomplish the same using #send
|
|
without an argument or #send {}.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORALL'>forall</a>
|
|
<a name='CURSOR'></a>
|
|
|
|
</span><span style='color:#FF5'> CURSOR
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cursor </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Typing #cursor without an option will show all available cursor
|
|
options, their default binding, and an explanation of their function.
|
|
|
|
The cursor command's primarly goal is adding customizable input editing
|
|
with macros. Subsequently many cursor commands only work properly when
|
|
used within a macro or event.
|
|
|
|
</span><span style='color:#FFF'>#cursor flag
|
|
|
|
</span><span style='color:#AAA'> EOL end of line character(s)
|
|
ECHO local echo
|
|
OVERTYPE overtype mode
|
|
KEYPAD keypad mode
|
|
|
|
</span><span style='color:#FFF'>#cursor macro
|
|
|
|
</span><span style='color:#AAA'> PRESERVE do not erase the macro from the macro input buffer
|
|
RESET erase the macro input buffer
|
|
|
|
</span><span style='color:#FFF'>#cursor tab
|
|
|
|
</span><span style='color:#AAA'> CASELESS makes tab completion caseless
|
|
COMPLETE makes tab completion work while editing
|
|
|
|
DICTIONARY performs tab completion on the dictionary
|
|
INPUT performs tab completion on the input history
|
|
LIST performs tab completion on the tab completion list
|
|
SCROLLBACK performs tab completion on the scrollback buffer
|
|
|
|
BACKWARD specifies tab completion to go backward
|
|
FORWARD specifies tab completion to go forward
|
|
|
|
Multiple options can/must be specified at once.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
|
|
<a name='DAEMON'></a>
|
|
|
|
</span><span style='color:#FF5'> DAEMON
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #daemon </span><span style='color:#FFF'>{</span><span style='color:#AAA'>attach</span><span style='color:#FFF'>|</span><span style='color:#AAA'>detach</span><span style='color:#FFF'>|</span><span style='color:#AAA'>kill</span><span style='color:#FFF'>|</span><span style='color:#AAA'>list</span><span style='color:#FFF'>} [</span><span style='color:#AAA'>name</span><span style='color:#FFF'>]
|
|
|
|
</span><span style='color:#AAA'> #daemon provides functionality similar to that of the screen and tmux
|
|
utilities.
|
|
|
|
</span><span style='color:#FFF'>#daemon attach [name]
|
|
</span><span style='color:#AAA'> The attach option will try to find a daemonized tintin instance and
|
|
take over control. The name argument is optional.
|
|
|
|
</span><span style='color:#FFF'>#daemon detach [name]
|
|
</span><span style='color:#AAA'> The detach option will daemonize tintin, turning it into a background
|
|
process. The name argument is optional and is useful if you have
|
|
several daemonized tt++ instances running so you can keep them apart.
|
|
|
|
</span><span style='color:#FFF'>#daemon kill [name]
|
|
</span><span style='color:#AAA'> Kills all daemons or daemons with matching name.
|
|
|
|
</span><span style='color:#FFF'>#daemon list [name]
|
|
</span><span style='color:#AAA'> List all daemons or daemons with matching name.
|
|
|
|
You can launch tintin and attach the first daemonized instance using
|
|
tt++ -R. To attach a named instance use tt++ -R<name>.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SCRIPT'>script</a>, <a href='#SYSTEM'>system</a> and <a href='#RUN'>run</a>.
|
|
<a name='DEBUG'></a>
|
|
|
|
</span><span style='color:#FF5'> DEBUG
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #debug </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>|</span><span style='color:#AAA'>log</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Toggles a list on or off. With no argument it shows your current
|
|
settings, as well as the list names that you can debug.
|
|
|
|
If you for example set ACTIONS to ON you will get debug information
|
|
whenever an action is triggered.
|
|
|
|
#debug {listname} {log} will silently write debugging information to
|
|
the log file, you must be logging in order for this to work.
|
|
|
|
Not every list has debug support yet.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a>, <a href='#KILL'>kill</a> and <a href='#MESSAGE'>message</a>.
|
|
<a name='DEFAULT'></a>
|
|
|
|
</span><span style='color:#FF5'> DEFAULT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #default </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The default command can only be used within the switch command. When
|
|
the conditional argument of non of the case commands matches the switch
|
|
command's conditional statement the default command is executed.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSE'>else</a>, <a href='#ELSEIF'>elseif</a>, <a href='#IF'>if</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
|
|
<a name='DELAY'></a>
|
|
|
|
</span><span style='color:#FF5'> DELAY
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #delay </span><span style='color:#FFF'>{</span><span style='color:#AAA'>seconds</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>command</span><span style='color:#FFF'>}
|
|
Command</span><span style='color:#AAA'>: #delay </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>command</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>seconds</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Delay allows you to have tintin wait the given amount of seconds
|
|
before executing the given command.
|
|
|
|
Nanosecond floating point precision is allowed. Delays will fire in
|
|
0.01 second intervals.
|
|
|
|
Named delays are treated as one-shot tickers, see #help tick.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #delay {1} {#show last};#show first
|
|
This will print 'first', and 'last' around one second later.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: If you want to remove a delay with the #undelay command you can add
|
|
a name as the first argument, be aware this changes the syntax. If
|
|
the name is a number keep in mind that delays with the same numeric
|
|
name will not be overwritten
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#EVENT'>event</a> and <a href='#TICKER'>ticker</a>.
|
|
<a name='DRAW'></a>
|
|
|
|
</span><span style='color:#FF5'> DRAW
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #draw </span><span style='color:#FFF'>[</span><span style='color:#AAA'>line color</span><span style='color:#FFF'>] [</span><span style='color:#AAA'>options</span><span style='color:#FFF'>] <</span><span style='color:#AAA'>type</span><span style='color:#FFF'>> <</span><span style='color:#AAA'>square</span><span style='color:#FFF'>> {</span><span style='color:#AAA'>text</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The draw commands allows you to draw various types of lines and shapes
|
|
on the screen. The types with a brief description are provided when you
|
|
type #draw without an argument.
|
|
|
|
The <square> arguments should exists of two coordinates defining the
|
|
upper left and bottom right corner using row, col, row, col syntax.
|
|
|
|
The square arguments can be negative, in which case the coordinates
|
|
are calculated from the opposite side of the screen. In the case the
|
|
screen is 80 columns wide using #draw box 1 60 10 70 will be the
|
|
equivalent of #draw box 1 -21 10 -11, but with different screen
|
|
widths the boxes would be drawn in different places.
|
|
|
|
You can prefix the option with a color code or color name to color the
|
|
lines and shapes.
|
|
|
|
You can further prefix the option as following:
|
|
|
|
ASCII draw in ASCII mode.
|
|
BALIGN bottom align text.
|
|
BLANKED blank the lines and corners.
|
|
BOTTOM draw on the bottom side if possible.
|
|
BOXED draw a box along the square.
|
|
BUMPED precede the draw with an enter.
|
|
CALIGN both LALIGN and RALIGN to center text.
|
|
CIRCLED circle the corners.
|
|
CONVERT draw text with meta conversion.
|
|
CROSSED cross the corners.
|
|
CURSIVE draw text with cursive letters.
|
|
FAT draw text with fat letters.
|
|
FILLED fill circles and jewels.
|
|
FOREGROUND draw even if session is not active.
|
|
GRID draw TABLE as a grid.
|
|
HORIZONTAL draw horizontal if possible.
|
|
HUGE draw text in huge letters.
|
|
JEWELED diamond the corners.
|
|
JOINTED draw corners.
|
|
LALIGN left align text.
|
|
LEFT draw on the left side if possible.
|
|
NUMBERED draw numbers instead of lines.
|
|
PRUNED prune the corners.
|
|
RALIGN right align text.
|
|
RIGHT draw on the right side if possible.
|
|
ROUNDED round the corners.
|
|
SANSSERIF draw text with sansserif letters.
|
|
SCALED fit the square to the text size.
|
|
SCROLL draw in the scrolling region.
|
|
SHADOWED shadow HUGE text.
|
|
TALIGN top align text too large to fit.
|
|
TEED tee the corners.
|
|
TOP draw on the top side if possible.
|
|
TRACED trace HUGE text.
|
|
TUBED draw tubes instead of lines.
|
|
UALIGN unwrap and rewrap text.
|
|
UNICODE draw in unicode mode.
|
|
VERTICAL draw vertical if possible.
|
|
|
|
The following types are available.
|
|
|
|
[HORIZONTAL] </span><span style='color:#FFF'>BAR</span><span style='color:#AAA'> {<MIN>;<MAX>;[COLOR]}
|
|
will draw a bar, use two 256 color codes for a color gradient.
|
|
[ASCII|UNICODE|HUGE] </span><span style='color:#FFF'>BOX</span><span style='color:#AAA'> {[TEXT1]} {[TEXT2]}
|
|
will draw a box.
|
|
[BOXED|FOREGROUND] </span><span style='color:#FFF'>BUFFER
|
|
</span><span style='color:#AAA'> will draw the scrollback buffer.
|
|
[BLANKED|CIRCLED|CROSSED|JEWELED|ROUNDED|TEED|PRUNED] </span><span style='color:#FFF'>CORNER
|
|
</span><span style='color:#AAA'> will draw a corner.
|
|
[BLANKED|HORIZONTAL|NUMBERED|TUBED|VERTICAL] </span><span style='color:#FFF'>LINE</span><span style='color:#AAA'> {[TEXT]}
|
|
will draw a line.
|
|
[BOXED] </span><span style='color:#FFF'>MAP
|
|
</span><span style='color:#AAA'> will draw the map
|
|
</span><span style='color:#FFF'>RAIN</span><span style='color:#AAA'> {<VARIABLE>} {[SPAWN]} {[FADE]} {[LEGEND]}
|
|
will draw digital rain SPAWN (0.01-100) FADE (1-100).
|
|
[JOINTED|TOP|LEFT|BOTTOM|RIGHT] </span><span style='color:#FFF'>SIDE
|
|
</span><span style='color:#AAA'> will draw one or more sides of a box.
|
|
[GRID] </span><span style='color:#FFF'>TABLE</span><span style='color:#AAA'> {[LIST1]} {[LIST2]}
|
|
will draw a table.
|
|
[CURSIVE|FAT|HUGE|SANSSERIF] </span><span style='color:#FFF'>TILE</span><span style='color:#AAA'> {[TEXT1]} {[TEXT2]}
|
|
will draw a tile
|
|
|
|
All draw types take an optional text argument as long as a valid
|
|
square with enough space has been defined. Text is automatically
|
|
word wrapped and text formatting can be customized with the
|
|
BALIGN, TALIGN, LALIGN, RALIGN, and UALIGN options.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #draw Blue box 1 1 3 20 {Hello world!}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#ECHO'>echo</a>, <a href='#GREP'>grep</a> and <a href='#SHOWME'>showme</a>.
|
|
<a name='ECHO'></a>
|
|
|
|
</span><span style='color:#FF5'> ECHO
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #echo </span><span style='color:#FFF'>{</span><span style='color:#AAA'>format</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument1</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument2</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>etc</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Echo command displays text on the screen with formatting options. See
|
|
the help file for the format command for more information.
|
|
|
|
The echo command does not trigger actions.
|
|
|
|
As with the #show command you can split the {format} argument up into
|
|
two braced arguments, in which case the 2nd argument is the row number.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #echo {The current date is %t.} {%Y-%m-%d %H:%M:%S}
|
|
#echo {[%38s][%-38s]} {Hello World} {Hello World}
|
|
#echo {{this is %s on the top row} {1}} {printed}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#FORMAT'>format</a>, <a href='#GREP'>grep</a> and <a href='#SHOWME'>showme</a>.
|
|
<a name='EDIT'></a>
|
|
|
|
</span><span style='color:#FF5'> EDIT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #edit </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} [</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>]
|
|
|
|
</span><span style='color:#AAA'> The edit command can be used to turn the default line editor into a
|
|
text editor.
|
|
|
|
</span><span style='color:#FFF'>#edit create [filename] [arguments]
|
|
</span><span style='color:#AAA'> Create an editor, initialize using the provided arguments.
|
|
|
|
</span><span style='color:#FFF'>#edit load <variable>
|
|
</span><span style='color:#AAA'> Create an editor, initialize using the provided list variable.
|
|
|
|
</span><span style='color:#FFF'>#edit read <filename>
|
|
</span><span style='color:#AAA'> Create an editor, initialize using the provided file.
|
|
|
|
</span><span style='color:#FFF'>#edit resume
|
|
</span><span style='color:#AAA'> Resume editing after a suspension.
|
|
|
|
</span><span style='color:#FFF'>#edit save <variable>
|
|
</span><span style='color:#AAA'> Save the editor to the provided variable.
|
|
|
|
</span><span style='color:#FFF'>#edit suspend
|
|
</span><span style='color:#AAA'> Suspend editing, similar to pressing enter except that no
|
|
events are triggered.
|
|
|
|
</span><span style='color:#FFF'>#edit write [filename]
|
|
</span><span style='color:#AAA'> Write the editor content to file.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #edit create {bla.txt} {line 1} {line 2}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CURSOR'>cursor</a> and <a href='#MACRO'>macro</a>.
|
|
<a name='EDITING'></a>
|
|
|
|
</span><span style='color:#FF5'> EDITING
|
|
|
|
|
|
</span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>alt b </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor backward word </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>alt f </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor forward word </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>ctrl a </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor home </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl b </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor backward </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl c </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl d </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete or exit </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl e </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor end </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl f </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor forward </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl g </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl h </span><span style='color:#0AA'>││</span><span style='color:#FFF'>backspace </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl i </span><span style='color:#0AA'>││</span><span style='color:#FFF'>tab </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl j </span><span style='color:#0AA'>││</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl k </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line right </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl l </span><span style='color:#0AA'>││</span><span style='color:#FFF'>redraw input </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl m </span><span style='color:#0AA'>││</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl n </span><span style='color:#0AA'>││</span><span style='color:#FFF'>input history next </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl o </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl p </span><span style='color:#0AA'>││</span><span style='color:#FFF'>input history prev </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl q </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl r </span><span style='color:#0AA'>││</span><span style='color:#FFF'>input history search </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl s </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl t </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer lock </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl u </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line left </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl v </span><span style='color:#0AA'>││</span><span style='color:#FFF'>convert meta characters </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl w </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete word left </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl x </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl y </span><span style='color:#0AA'>││</span><span style='color:#FFF'>paste </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl z </span><span style='color:#0AA'>││</span><span style='color:#FFF'>suspend </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>arrow left </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor left </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>arrow right </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor right </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>arrow up </span><span style='color:#0AA'>││</span><span style='color:#FFF'>previous input line </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>arrow down </span><span style='color:#0AA'>││</span><span style='color:#FFF'>next input line </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>ctrl arrow left </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor left word </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl arrow right </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor right word </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>backspace </span><span style='color:#0AA'>││</span><span style='color:#FFF'>backspace </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>alt backspace </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line left </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl backspace </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>delete </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl delete </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete word right </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>end </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor end </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl end </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer end </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>││</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>shift-enter </span><span style='color:#0AA'>││</span><span style='color:#FFF'>soft enter </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>home </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor home </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>ctrl home </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer home </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>page up </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer up </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>page down </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer down </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
┌─────────────────────────┐┌────────────────────────────────────────────┐
|
|
│</span><span style='color:#FFF'>tab </span><span style='color:#0AA'>││</span><span style='color:#FFF'>complete word forward </span><span style='color:#0AA'>│
|
|
├─────────────────────────┤├────────────────────────────────────────────┤
|
|
│</span><span style='color:#FFF'>shift-tab </span><span style='color:#0AA'>││</span><span style='color:#FFF'>complete word backward </span><span style='color:#0AA'>│
|
|
└─────────────────────────┘└────────────────────────────────────────────┘
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CURSOR'>cursor</a>, <a href='#EDIT'>edit</a> and <a href='#MACRO'>macro</a>.
|
|
<a name='ELSE'></a>
|
|
|
|
</span><span style='color:#FF5'> ELSE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #else </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The else statement should follow an #IF or #ELSEIF statement and is
|
|
only called if the proceeding #IF or #ELSEIF is false.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #if {1d2 == 1} {smile};#else {grin}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSEIF'>elseif</a>, <a href='#IF'>if</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
|
|
<a name='ELSEIF'></a>
|
|
|
|
</span><span style='color:#FF5'> ELSEIF
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #elseif </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The elseif statement should follow an #IF or #ELSEIF statement and is
|
|
only called when the statement is true and the proceeding #IF and
|
|
#ELSEIF statements are false.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #if {1d3 == 1} {smirk};#elseif {1d2 == 1} {snicker}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSE'>else</a>, <a href='#IF'>if</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
|
|
<a name='END'></a>
|
|
|
|
</span><span style='color:#FF5'> END
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #end {<message>}
|
|
|
|
Terminates tintin and return to unix. On most systems, ctrl-c has
|
|
the same result.
|
|
|
|
The message is optional and is printed before tintin exits. When
|
|
using #end {\} tintin will terminate silently.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ZAP'>zap</a>
|
|
<a name='ESCAPE_CODES'></a>
|
|
|
|
</span><span style='color:#FF5'> ESCAPE CODES
|
|
|
|
</span><span style='color:#AAA'> You may use the escape character \ for various special characters.
|
|
|
|
\a beep the terminal.
|
|
\c send a control character, \ca for ctrl-a.
|
|
\e start an escape sequence.
|
|
\f send a form feed.
|
|
\n send a line feed.
|
|
\r send a carriage return.
|
|
\t send a horizontal tab.
|
|
\x print an 8 bit character using hexadecimal, \xFF for example.
|
|
\x7B send the '{' character.
|
|
\x7D send the '}' character.
|
|
\u print a 16 bit unicode character, \uFFFD for example.
|
|
\u{} print a 8-21 bit unicode character, \u{2AF21} for example.
|
|
\U print a 21 bit unicode character, \U02AF21 for example.
|
|
\v send a vertical tab
|
|
|
|
Ending a line with \ will stop tintin from appending a line feed.
|
|
To escape arguments in an alias or action use %%0 %%1 %%2 etc.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
|
|
<a name='EVENT'></a>
|
|
|
|
</span><span style='color:#FF5'> EVENT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #event </span><span style='color:#FFF'>{</span><span style='color:#AAA'>event type</span><span style='color:#FFF'>}</span><span style='color:#AAA'> </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Events allow you to create triggers for predetermined client events.
|
|
|
|
Use #event without an argument to see a list of possible events with
|
|
a brief description. Use #event %* to see the current list of defined
|
|
events. Use #info {events} {on} to see events get thrown.
|
|
|
|
Events, like triggers in general, are case sensitive and event names
|
|
must be defined using all upper case letters. Only one event can be
|
|
defined for each event type.
|
|
|
|
To enable mouse events use #config mouse_tracking on, to see mouse
|
|
events use #config mouse_tracking info.
|
|
|
|
</span><span style='color:#5F5'>CATCH EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>CATCH <EVENT>
|
|
</span><span style='color:#AAA'> Some events can be prefixed with CATCH to interrupt default
|
|
behavior.
|
|
|
|
</span><span style='color:#5F5'>CLASS EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>CLASS ACTIVATED [CLASS], CLASS_CLEAR [CLASS], CLASS CREATED [CLASS],
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>CLASS DEACTIVATED [CLASS], CLASS DESTROYED [CLASS],
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>CLASS_LOAD [CLASS]
|
|
</span><span style='color:#AAA'> %0 class name
|
|
|
|
</span><span style='color:#5F5'>FORMAT EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>REFORMAT <MESSAGE> </span><span style='color:#AAA'>Use #return to change MESSAGE
|
|
|
|
</span><span style='color:#5F5'>GAG EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>GAG <EVENT>
|
|
</span><span style='color:#AAA'> Some events can be prefixed with GAG to gag default system
|
|
messages.
|
|
|
|
</span><span style='color:#5F5'>INPUT EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>EDIT STARTED, EDIT FINISHED
|
|
</span><span style='color:#AAA'> %0 name %1 lines %2 size %3 data
|
|
|
|
</span><span style='color:#FFF'>EDIT RESUMED, EDIT SUSPENDED
|
|
</span><span style='color:#AAA'> %0 name
|
|
|
|
</span><span style='color:#FFF'>HISTORY UPDATE
|
|
</span><span style='color:#AAA'> %0 command
|
|
|
|
</span><span style='color:#FFF'>RECEIVED KEYPRESS, PROCESSED KEYPRESS
|
|
</span><span style='color:#AAA'> %0 character %1 unicode index %2 edit row %3 edit column
|
|
|
|
</span><span style='color:#FFF'>RECEIVED INPUT [NAME]
|
|
</span><span style='color:#AAA'> %0 raw text
|
|
|
|
</span><span style='color:#FFF'>RECEIVED INPUT CHARACTER
|
|
</span><span style='color:#AAA'> %0 character %1 unicode index %2 size %3 width
|
|
|
|
</span><span style='color:#FFF'>NO SESSION ACTIVE</span><span style='color:#AAA'> %0 raw text %1 size
|
|
</span><span style='color:#FFF'>SEND OUTPUT</span><span style='color:#AAA'> %0 raw text %1 size
|
|
</span><span style='color:#FFF'>SENT OUTPUT</span><span style='color:#AAA'> %0 raw text %1 size
|
|
|
|
</span><span style='color:#5F5'>MAP EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>END OF PATH, END OF RUN, MAP UPDATED VTMAP
|
|
</span><span style='color:#AAA'> These events have no additional arguments.
|
|
|
|
</span><span style='color:#FFF'>MAP CREATE EXIT, MAP DELETE EXIT
|
|
</span><span style='color:#AAA'> %0 vnum %1 exit name %2 exit cmd %3 exit vnum
|
|
|
|
</span><span style='color:#FFF'>MAP CREATE ROOM, MAP DELETE ROOM
|
|
</span><span style='color:#AAA'> %0 vnum %1 name
|
|
|
|
</span><span style='color:#FFF'>MAP ENTER MAP, MAP EXIT MAP
|
|
</span><span style='color:#AAA'> %0 vnum
|
|
|
|
</span><span style='color:#FFF'>MAP ENTER ROOM [VNUM]
|
|
</span><span style='color:#AAA'> %0 new vnum %1 old vnum %2 direction
|
|
|
|
</span><span style='color:#FFF'>MAP EXIT ROOM [VNUM]
|
|
</span><span style='color:#AAA'> %0 old vnum %1 new vnum %2 direction
|
|
|
|
</span><span style='color:#FFF'>MAP FOLLOW MAP, MAP FOLLOW GLOBAL
|
|
</span><span style='color:#AAA'> %0 old vnum %1 new vnum %2 exit name
|
|
|
|
</span><span style='color:#FFF'>MAP REGION <MOUSE>, MAP ROOM <MOUSE>
|
|
</span><span style='color:#AAA'> %0 row %1 col %2 -row %3 -col %4 vnum %5 info
|
|
|
|
</span><span style='color:#5F5'>MOUSE EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>DOUBLE-CLICKED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
</span><span style='color:#FFF'>LONG-CLICKED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
</span><span style='color:#FFF'>MOVED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
</span><span style='color:#FFF'>PRESSED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
</span><span style='color:#FFF'>SHORT-CLICKED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
</span><span style='color:#FFF'>RELEASED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
</span><span style='color:#FFF'>SCROLLED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
</span><span style='color:#FFF'>TRIPLE-CLICKED <MOUSE> </span><span style='color:#AAA'>%0 row %1 col %2 -row %3 -col %4 word %5 line
|
|
|
|
</span><span style='color:#FFF'>MAP <MOUSE EVENT>
|
|
</span><span style='color:#AAA'> Mouse events can be prefixed with MAP to only trigger when the mouse
|
|
event occurs inside the VT100 map region.
|
|
|
|
</span><span style='color:#FFF'>SWIPED [DIR]
|
|
</span><span style='color:#AAA'> %0 dir %1 button %2 row %3 col %4 -row %5 -col
|
|
%6 row %7 col %8 -row %9 -col %10 rows %11 cols
|
|
|
|
</span><span style='color:#5F5'>OUTPUT EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>BUFFER UPDATE</span><span style='color:#AAA'>, </span><span style='color:#FFF'>DISPLAY UPDATE
|
|
</span><span style='color:#AAA'> These events have no additional arguments.
|
|
|
|
</span><span style='color:#FFF'>PROCESSED LINE </span><span style='color:#AAA'>%0 raw text %1 plain text %2 prompt (0 or 1)
|
|
|
|
</span><span style='color:#FFF'>RECEIVED LINE </span><span style='color:#AAA'>%0 raw text %1 plain text
|
|
</span><span style='color:#FFF'>RECEIVED OUTPUT </span><span style='color:#AAA'>%0 raw text %1 plain text
|
|
</span><span style='color:#FFF'>RECEIVED PROMPT </span><span style='color:#AAA'>%0 raw text %1 plain text
|
|
|
|
</span><span style='color:#5F5'>PORT EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>CHAT MESSAGE </span><span style='color:#AAA'>%0 raw text %1 plain text
|
|
</span><span style='color:#FFF'>CHAT SNOOP REQUEST </span><span style='color:#AAA'>%0 name %1 ip %2 port
|
|
|
|
</span><span style='color:#FFF'>PORT CONNECTION </span><span style='color:#AAA'>%0 name %1 ip %2 port
|
|
</span><span style='color:#FFF'>PORT DISCONNECTION </span><span style='color:#AAA'>%0 name %1 ip %2 port
|
|
</span><span style='color:#FFF'>PORT LOG MESSAGE </span><span style='color:#AAA'>%0 name %1 ip %2 port %3 data %4 plain data
|
|
</span><span style='color:#FFF'>PORT MESSAGE </span><span style='color:#AAA'>%0 raw text %1 plain text
|
|
</span><span style='color:#FFF'>PORT RECEIVED MESSAGE </span><span style='color:#AAA'>%0 name %1 ip %2 port %3 data %4 plain data
|
|
</span><span style='color:#FFF'>PORT RECEIVED DATA </span><span style='color:#AAA'>%0 name %1 ip %2 port %3 data %4 size
|
|
|
|
</span><span style='color:#5F5'>SCAN EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>SCAN CSV HEADER </span><span style='color:#AAA'>%0 all args %1 arg1 %2 arg2 .. %99 arg99
|
|
</span><span style='color:#FFF'>SCAN CSV LINE </span><span style='color:#AAA'>%0 all args %1 arg1 %2 arg3 .. %99 arg99
|
|
</span><span style='color:#FFF'>SCAN TSV HEADER </span><span style='color:#AAA'>%0 all args %1 arg1 %2 arg3 .. %99 arg99
|
|
</span><span style='color:#FFF'>SCAN TSV LINE </span><span style='color:#AAA'>%0 all args %1 arg1 %2 arg3 .. %99 arg99
|
|
|
|
</span><span style='color:#5F5'>SCREEN EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>SCREEN DIMENSIONS </span><span style='color:#AAA'>%0 height %1 width
|
|
</span><span style='color:#FFF'>SCREEN FOCUS </span><span style='color:#AAA'>%0 focus (0 or 1)
|
|
</span><span style='color:#FFF'>SCREEN LOCATION </span><span style='color:#AAA'>%0 rows %1 cols %2 height %3 width
|
|
|
|
</span><span style='color:#FFF'>SCREEN MOUSE LOCATION
|
|
</span><span style='color:#AAA'> %0 row %1 col %2 -row %3 -col %4 pix row %5 pix col
|
|
%6 -pix row %7 -pix col %8 location
|
|
|
|
</span><span style='color:#FFF'>SCREEN RESIZE </span><span style='color:#AAA'>%0 rows %1 cols %2 height %3 width
|
|
</span><span style='color:#FFF'>SCREEN SIZE </span><span style='color:#AAA'>%0 rows %1 cols
|
|
</span><span style='color:#FFF'>SCREEN SPLIT </span><span style='color:#AAA'>%0 top row %1 top col %2 bot row %3 bot col
|
|
</span><span style='color:#FFF'>SCREEN UNSPLIT </span><span style='color:#AAA'>%0 top row %1 top col %2 bot row %3 bot col
|
|
|
|
</span><span style='color:#5F5'>SESSION EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>SESSION ACTIVATED </span><span style='color:#AAA'>%0 name
|
|
</span><span style='color:#FFF'>SESSION CONNECTED </span><span style='color:#AAA'>%0 name %1 host %2 ip %3 port %4 file
|
|
</span><span style='color:#FFF'>SESSION CREATED </span><span style='color:#AAA'>%0 name %1 host %2 ip %3 port %4 file
|
|
</span><span style='color:#FFF'>SESSION DEACTIVATED </span><span style='color:#AAA'>%0 name
|
|
</span><span style='color:#FFF'>SESSION DISCONNECTED </span><span style='color:#AAA'>%0 name %1 host %2 ip %3 port
|
|
</span><span style='color:#FFF'>SESSION TIMED OUT </span><span style='color:#AAA'>%0 name %1 host %2 ip %3 port
|
|
|
|
</span><span style='color:#5F5'>SYSTEM EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>CONFIG </span><span style='color:#AAA'>%0 name %1 value
|
|
|
|
</span><span style='color:#FFF'>DAEMON ATTACH TIMEOUT </span><span style='color:#AAA'>%0 file %1 pid
|
|
</span><span style='color:#FFF'>DAEMON ATTACHED </span><span style='color:#AAA'>%0 file %1 pid
|
|
</span><span style='color:#FFF'>DAEMON DETACHED </span><span style='color:#AAA'>%0 file %1 pid
|
|
</span><span style='color:#FFF'>PROGRAM START </span><span style='color:#AAA'>%0 startup arguments
|
|
</span><span style='color:#FFF'>PROGRAM TERMINATION </span><span style='color:#AAA'>%0 goodbye message
|
|
|
|
</span><span style='color:#FFF'>READ ERROR </span><span style='color:#AAA'>%0 filename %1 error message
|
|
</span><span style='color:#FFF'>READ FILE </span><span style='color:#AAA'>%0 filename
|
|
</span><span style='color:#FFF'>WRITE ERROR </span><span style='color:#AAA'>%0 filename %1 error message
|
|
</span><span style='color:#FFF'>WRITE FILE </span><span style='color:#AAA'>%0 filename
|
|
|
|
</span><span style='color:#FFF'>RECEIVED ERROR </span><span style='color:#AAA'>%0 message
|
|
</span><span style='color:#FFF'>SYSTEM CRASH </span><span style='color:#AAA'>%0 message
|
|
</span><span style='color:#FFF'>SYSTEM ERROR </span><span style='color:#AAA'>%0 name %1 system msg %2 error %3 error msg
|
|
</span><span style='color:#FFF'>UNKNOWN COMMAND </span><span style='color:#AAA'>%0 raw text
|
|
</span><span style='color:#FFF'>SIGUSR </span><span style='color:#AAA'>%0 signal
|
|
|
|
</span><span style='color:#5F5'>TELNET EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>IAC <EVENT>
|
|
</span><span style='color:#AAA'> IAC TELNET events are made visible using #config telnet info.
|
|
|
|
</span><span style='color:#FFF'>IAC SB GMCP </span><span style='color:#AAA'>%0 module %1 data %2 plain data
|
|
</span><span style='color:#FFF'>IAC SB GMCP <MODULE> </span><span style='color:#AAA'> %1 data %2 plain data
|
|
</span><span style='color:#FFF'>IAC SB MSSP </span><span style='color:#AAA'>%0 variable %1 data
|
|
</span><span style='color:#FFF'>IAC SB MSDP </span><span style='color:#AAA'>%0 variable %1 data %2 plain data
|
|
</span><span style='color:#FFF'>IAC SB MSDP [VAR] </span><span style='color:#AAA'>%0 variable %1 data %2 plain data
|
|
</span><span style='color:#FFF'>IAC SB NEW-ENVIRON </span><span style='color:#AAA'>%0 variable %1 data %2 plain data
|
|
</span><span style='color:#FFF'>IAC SB ZMP <VAR> </span><span style='color:#AAA'>%0 variable %1 data
|
|
</span><span style='color:#FFF'>IAC SB <VAR> </span><span style='color:#AAA'>%0 variable %1 raw data %2 plain data
|
|
|
|
</span><span style='color:#5F5'>TIME EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>DATE <MONTH-DAY OF MONTH> [HOUR:MINUTE], DAY [DAY OF MONTH],
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>HOUR [HOUR], MONTH [DAY OF MONTH], TIME <HOUR:MINUTE>[:SECOND],
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>WEEK [DAY OF WEEK], YEAR [YEAR]
|
|
</span><span style='color:#AAA'> %0 year %1 month %2 day of week %3 day of month %4 hour
|
|
%5 minute %6 second
|
|
|
|
</span><span style='color:#5F5'>VARIABLE EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>VARIABLE UPDATE <VAR> </span><span style='color:#AAA'>%0 name %1 new value %2 path
|
|
</span><span style='color:#FFF'>VARIABLE UPDATED <VAR> </span><span style='color:#AAA'>%0 name %1 new value %2 path
|
|
|
|
</span><span style='color:#5F5'>VT100 EVENTS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>VT100 SCROLL REGION </span><span style='color:#AAA'>%0 top row %1 bot row %2 rows %3 cols %4 wrap
|
|
|
|
To see all events trigger use #info event on. Since this can get
|
|
rather spammy it's possible to gag event info messages.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {SESSION CONNECTED} {#read mychar.tin}
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove an event with the #unevent command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUTTON'>button</a>, <a href='#DELAY'>delay</a> and <a href='#TICKER'>ticker</a>.
|
|
<a name='FOREACH'></a>
|
|
|
|
</span><span style='color:#FF5'> FOREACH
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #foreach </span><span style='color:#FFF'>{</span><span style='color:#AAA'>list</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> For each item in the provided list the foreach statement will update
|
|
the given variable and execute the command part of the statement. List
|
|
elements must be separated by braces or semicolons.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #foreach {bob;tim;kim} {name} {tell $name Hello}
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #foreach {{bob}{tim}{kim}} {name} {tell $name Hello}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
|
|
<a name='FORMAT'></a>
|
|
|
|
</span><span style='color:#FF5'> FORMAT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #format </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>format</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument1</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument2</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>etc</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Allows you to store a string into a variable in the exact same way
|
|
C's sprintf works with a few enhancements and limitations like a
|
|
maximum of 30 arguments.
|
|
|
|
If you use #format inside an alias or action you must escape %1s as
|
|
%+1s or %%1s or %\1s so the %1 isn't substituted by the trigger.
|
|
|
|
#format {test} {%+9s} {string} pad string with up to 9 spaces
|
|
#format {test} {%-9s} {string} post pad string with up to 9 spaces
|
|
#format {test} {%.8s} {string} copy at most 8 characters
|
|
#format {test} {%a} {number} print corresponding charset character
|
|
#format {test} {%c} {string} use a highlight color name
|
|
#format {test} {%d} {number} print a number with integer formatting
|
|
#format {test} {%f} {string} perform floating point math
|
|
#format {test} {%g} {number} perform thousand grouping on {number}
|
|
#format {test} {%h} {string} turn text into a header line
|
|
#format {test} {%l} {string} lowercase text
|
|
#format {test} {%m} {string} perform mathematical calculation
|
|
#format {test} {%n} {name} capitalize the first letter
|
|
#format {test} {%p} {string} strip leading and trailing spaces
|
|
#format {test} {%r} {string} reverse text, hiya = ayih
|
|
#format {test} {%s} {string} print given string
|
|
#format {test} {%t} {format} display time with strftime format
|
|
optional {{format}{time}} syntax
|
|
#format {test} {%u} {string} uppercase text
|
|
#format {list} {%w} {string} store word wrapped text in {list}
|
|
optional {{string}{width}} syntax
|
|
#format {test} {%x} {hex} print corresponding charset character
|
|
#format {test} {%A} {char} store corresponding character value
|
|
#format {test} {%D} {hex} convert hex to decimal in {test}
|
|
#format {hash} {%H} {string} store a 64 bit string hash in {hash}
|
|
#format {test} {%L} {string} store the string length in {test}
|
|
#format {test} {%M} {number} convert number to metric in {test}
|
|
#format {test} {%S} {string} store the number of spelling errors
|
|
#format {time} {%T} {} store the epoch time in {time}
|
|
#format {time} {%U} {} store the micro epoch time in {time}
|
|
#format {test} {%X} {dec} convert dec to hexadecimal in {test}
|
|
|
|
#format {test} {%%} a literal % character
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See #help TIME for help on the %t argument.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#ECHO'>echo</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a>, <a href='#TIME'>time</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='FUNCTION'></a>
|
|
|
|
</span><span style='color:#FF5'> FUNCTION
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #function </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>operation</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Functions allow you to execute a script within a line of text, and
|
|
replace the function call with the line of text generated by the
|
|
function.
|
|
|
|
Be aware that each function should use the #return command at the
|
|
end of the function with the result, or set the {result} variable.
|
|
|
|
To use a function use the @ character before the function name.
|
|
The function arguments should be placed between braces behind the
|
|
function name with argument separated by semicolons.
|
|
|
|
Functions can be escaped by adding additional @ signs.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function test #return 42;#showme @@test{}
|
|
|
|
The function itself can use the provided arguments which are stored
|
|
in %1 to %99, with %0 holding all arguments.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function {rnd} {#math {result} {1 d (%2 - %1 + 1) + %1 - 1}}
|
|
#show A random number between 100 and 200: @rnd{100;200}
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function gettime {#format result %t %H:%M}
|
|
#show The current time is @gettime{}
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a function with the #unfunction command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='GAG'></a>
|
|
|
|
</span><span style='color:#FF5'> GAG
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #gag </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Removes any line that contains the string.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help action', for more information about triggers.
|
|
|
|
There are a system messages that can be gagged using gag events.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a gag with the #ungag command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#HIGHLIGHT'>highlight</a>, <a href='#PROMPT'>prompt</a> and <a href='#SUBSTITUTE'>substitute</a>.
|
|
<a name='GREETING'></a>
|
|
|
|
</span><span style='color:#FF5'> GREETING
|
|
|
|
</span><span style='color:#0AA'> ####################################################################
|
|
#</span><span style='color:#AAA'> </span><span style='color:#0AA'>#
|
|
#</span><span style='color:#AAA'> T I N T I N + + 2.02.51 </span><span style='color:#0AA'>#
|
|
#</span><span style='color:#AAA'> </span><span style='color:#0AA'>#
|
|
#</span><span style='color:#AAA'> Code by Peter Unold, Bill Reis, and Igor van den Hoven </span><span style='color:#0AA'>#
|
|
#</span><span style='color:#AAA'> </span><span style='color:#0AA'>#
|
|
####################################################################
|
|
|
|
<a name='GREP'></a>
|
|
|
|
</span><span style='color:#FF5'> GREP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #grep </span><span style='color:#FFF'>[</span><span style='color:#AAA'>page</span><span style='color:#FFF'>] {</span><span style='color:#AAA'>search string</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This command allows you to search for matching lines in your scroll
|
|
back buffer. The amount of matches shown equals your screen size. If
|
|
you want to search back further use the optional page number. You can
|
|
use wildcards for better search results. Be aware the search string
|
|
is case sensitive, which can be disabled by using %i.
|
|
|
|
By default grep searches from the end of the scrollback buffer to the
|
|
beginning, this can be reversed by using a negative page number.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #grep Bubba tells you
|
|
This will show all occasions where bubba tells you something.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#ECHO'>echo</a> and <a href='#SHOWME'>showme</a>.
|
|
<a name='HELP'></a>
|
|
|
|
</span><span style='color:#FF5'> HELP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #help </span><span style='color:#FFF'>{</span><span style='color:#AAA'>subject</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Without an argument #help will list all available help subjects.
|
|
|
|
Using #help %* will display all help entries.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#COMMANDS'>commands</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a>, <a href='#MESSAGE'>message</a> and <a href='#STATEMENTS'>statements</a>.
|
|
<a name='HIGHLIGHT'></a>
|
|
|
|
</span><span style='color:#FF5'> HIGHLIGHT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #highlight </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>color names</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The highlight command is used to change the color of incoming text.
|
|
|
|
Available color options are:
|
|
|
|
reset - resets the color state to default
|
|
light - turns the color light.
|
|
dark - turns the color dark.
|
|
underscore - underscores the text.
|
|
blink - makes the text blink.
|
|
reverse - reverse foreground and background color.
|
|
b - makes next color the background color.
|
|
|
|
Available color names are:
|
|
|
|
<abd> - azure <acf> - Azure
|
|
<aad> - blue <aaf> - Blue
|
|
<add> - cyan <aff> - Cyan
|
|
<aaa> - ebony <bbb> - Ebony
|
|
<ada> - green <afa> - Green
|
|
<adb> - jade <afc> - Jade
|
|
<bda> - lime <cfa> - Lime
|
|
<dad> - magenta <faf> - Magenta
|
|
<dba> - orange <fca> - Orange
|
|
<dab> - pink <fac> - Pink
|
|
<daa> - red <faa> - Red
|
|
<ccc> - silver <eee> - Silver
|
|
<cba> - tan <eda> - Tan
|
|
<bad> - violet <caf> - Violet
|
|
<ddd> - white <fff> - White
|
|
<dda> - yellow <ffa> - Yellow
|
|
|
|
Colors can be provided as either a color code or one of the valid color
|
|
names. If the color name is in all lower case a dark color is printed.
|
|
If the first letter of the color name is capitalized a light color is
|
|
printed.
|
|
|
|
The %1-99 variables can be used as 'wildcards' that will match with any
|
|
text. They are useful for highlighting a complete line. The %0 variable
|
|
should never be used in highlights.
|
|
|
|
You may start the string to highlight with a ^ to only highlight text
|
|
if it begins the line.
|
|
|
|
Besides color names also <abc> color codes can be used.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high {Valgar} {reverse underscore Jade}
|
|
Prints every occurrence of 'Valgar' in underscored reverse video Jade.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high {^You{|r} %1} {light cyan}
|
|
Prints every line that starts with 'You' in light cyan.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high {Bubba} {red underscore b Green}
|
|
Highlights the name Bubba as red underscored text on green background.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help action', for more information about triggers.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help substitute', for more advanced color substitution.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: This command only works with ANSI/VT100 terminals or emulators.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a highlight with the #unhighlight command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#GAG'>gag</a>, <a href='#PROMPT'>prompt</a> and <a href='#SUBSTITUTE'>substitute</a>.
|
|
<a name='HISTORY'></a>
|
|
|
|
</span><span style='color:#FF5'> HISTORY
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>delete</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Delete the last command.
|
|
#history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>get</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>range</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Store list in variable.
|
|
#history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>insert</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>command</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Insert a command.
|
|
#history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>list</span><span style='color:#FFF'>} </span><span style='color:#AAA'> Display the command history.
|
|
#history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>read</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Read a command history from file.
|
|
#history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>write</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Write a command history to file.
|
|
|
|
Without an argument all available options are shown.
|
|
|
|
By default all commands are saved to the history list and the history
|
|
list is saved between sessions in the ~/.tintin/history.txt file.
|
|
|
|
You can set the character to repeat a command in the history with the
|
|
#config {REPEAT CHAR} {<character>} configuration option, by default
|
|
this is set to the exclamation mark.
|
|
|
|
You can use ! by itself to repeat the last command, or !<text> to
|
|
repeat the last command starting with the given text.
|
|
|
|
You can use #config {REPEAT ENTER} {ON} to repeat the last command
|
|
when you press enter on an empty line.
|
|
|
|
You can press ctrl-r to enter an interactive regex enabled history
|
|
search mode, or by issuing #cursor {history search}.
|
|
|
|
TinTin++ tries to bind the arrow up and down keys to scroll through
|
|
the history list by default. You can bind these with a macro yourself
|
|
using #cursor {history next} and #cursor {history prev}. Many #cursor
|
|
commands only work properly when bound with a macro.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#CURSOR'>cursor</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
|
|
<a name='IF'></a>
|
|
|
|
</span><span style='color:#FF5'> IF
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #if </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands if true</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands if false</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The #if command works similar to an if statement in other languages,
|
|
and is based on the way C handles its conditional statements.
|
|
When an #if command is encountered, the conditional statement is
|
|
evaluated, and if TRUE (any non-zero result) the commands are executed.
|
|
|
|
The conditional is evaluated exactly the same as in the #math command,
|
|
if the conditional evaluates as anything except 0 the commands are
|
|
executed. See the 'math' helpfile for more information.
|
|
|
|
To handle the case where an if statement is false it can be followed
|
|
by the #else command. Alternatively, the else can be provided as the
|
|
third argument.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {%0 gives you %1 gold coins.} {#if {%1 > 5000} {thank %0}}
|
|
If someone gives you more than 5000 coins, thank them.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {k} {#if {"%0" == ""} {kill $target};#else {kill %0}}
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #if {"%0" == "{bli|bla}"} {#showme %0 is either bli or bla.}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSE'>else</a>, <a href='#ELSEIF'>elseif</a>, <a href='#MATH'>math</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
|
|
<a name='IGNORE'></a>
|
|
|
|
</span><span style='color:#FF5'> IGNORE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ignore </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Toggles a list on or off. With no arguments it shows your current
|
|
settings, as well as the list names that you can ignore.
|
|
|
|
If you for example use #IGNORE ACTIONS ON actions will no longer
|
|
trigger. Not every list can be ignored.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#INFO'>info</a>, <a href='#KILL'>kill</a> and <a href='#MESSAGE'>message</a>.
|
|
<a name='INDEX'></a>
|
|
|
|
</span><span style='color:#FF5'> INDEX
|
|
|
|
</span><span style='color:#08F'> ████████┐██████┐███┐ ██┐████████┐██████┐███┐ ██┐
|
|
└──██┌──┘└─██┌─┘████┐ ██│└──██┌──┘└─██┌─┘████┐ ██│
|
|
██│ ██│ ██┌██┐ ██│ ██│ ██│ ██┌██┐ ██│
|
|
██│ ██│ ██│└██┐██│ ██│ ██│ ██│└██┐██│
|
|
██│ ██████┐██│ └████│ ██│ ██████┐██│ └████│
|
|
└─┘ └─────┘└─┘ └───┘ └─┘ └─────┘└─┘ └───┘
|
|
██┐ ██┐
|
|
██│ ██│
|
|
████████┐████████┐
|
|
└──██┌──┘└──██┌──┘
|
|
██│ ██│
|
|
└─┘ └─┘
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#08F'>(</span><span style='color:#06B'>T</span><span style='color:#08F'>)</span><span style='color:#06B'>he K</span><span style='color:#08F'>(</span><span style='color:#06B'>I</span><span style='color:#08F'>)</span><span style='color:#06B'>cki</span><span style='color:#08F'>(</span><span style='color:#06B'>N</span><span style='color:#08F'>)</span><span style='color:#06B'> </span><span style='color:#08F'>(</span><span style='color:#06B'>T)ickin D</span><span style='color:#08F'>(</span><span style='color:#06B'>I</span><span style='color:#08F'>)</span><span style='color:#06B'>kumud Clie</span><span style='color:#08F'>(</span><span style='color:#06B'>N</span><span style='color:#08F'>)</span><span style='color:#06B'>t
|
|
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#5F5'>What is TinTin++?
|
|
|
|
</span><span style='color:#AAA'> TinTin++ is a client program specialized to help playing muds. This is
|
|
a souped up version of TINTIN III with many new features.
|
|
|
|
</span><span style='color:#5F5'>Giving Credit Where Credit is Due
|
|
|
|
</span><span style='color:#AAA'> None of this work would be possible, without the work done by Peter
|
|
Unold. He was the author of TINTIN III, the base of TinTin++. Hats off
|
|
to ya Peter. You started the ball rolling.
|
|
|
|
</span><span style='color:#5F5'>Introduction
|
|
|
|
</span><span style='color:#AAA'> If you're new to TinTin++ a good place to start is the introduction,
|
|
which should be linked below.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#INTRODUCTION'>introduction</a>
|
|
<a name='INFO'></a>
|
|
|
|
</span><span style='color:#FF5'> INFO
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #info </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>LIST</span><span style='color:#FFF'>|</span><span style='color:#AAA'>ON</span><span style='color:#FFF'>|</span><span style='color:#AAA'>OFF</span><span style='color:#FFF'>|</span><span style='color:#AAA'>SAVE</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Without an argument info displays the settings of every tintin list.
|
|
|
|
By providing the name of a list and the LIST option it shows all
|
|
triggers/variables associated with that list. With the SAVE option
|
|
this data is written to the info variable.
|
|
|
|
#info arguments will show matched trigger arguments.
|
|
#info big5toutf will show the big5 to utf8 translation table.
|
|
#info cpu will show information about tintin's cpu usage.
|
|
#info environ will show the environment variables.
|
|
#info input will show information about the input line.
|
|
#info matches will show matched command arguments.
|
|
#info mccp will show information about data compression.
|
|
#info memory will show information about the memory stack.
|
|
#info output will show information about the mud output buffers.
|
|
#info stack will show the low level debugging stack.
|
|
#info session will show information on the session.
|
|
#info sessions will show information on all sessions.
|
|
#info system will show some system information.
|
|
#info tokenizer will show information about the script stack.
|
|
#info unicode will show information on the provided character.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#KILL'>kill</a> and <a href='#MESSAGE'>message</a>.
|
|
<a name='INTRODUCTION'></a>
|
|
|
|
</span><span style='color:#FF5'> INTRODUCTION
|
|
|
|
</span><span style='color:#AAA'> On this page you'll find an introduction to using TinTin++. Additional
|
|
information can be found in the individual help sections.
|
|
|
|
</span><span style='color:#5F5'>Starting and Ending
|
|
|
|
</span><span style='color:#AAA'> The syntax for starting TinTin++ is: ./tt++ [command file]
|
|
|
|
Read more about the command file in the files section below. Remember
|
|
one thing though. All actions, aliases, substitutions, etc, defined
|
|
when starting up TinTin++ are inherited by all sessions.
|
|
|
|
If you want to exit TinTin++ type '#end' or press ctrl-d on an empty
|
|
line.
|
|
|
|
For the WinTin++ users, if you want to paste text use shift-insert,
|
|
text is automatically copied upon selection. This is typical Linux
|
|
behavior, but it can take some getting used to.
|
|
|
|
|
|
</span><span style='color:#5F5'>Basic features
|
|
|
|
</span><span style='color:#AAA'> I'll start by explaining some of the very basic and important features:
|
|
|
|
All TinTin++ commands starts with a '#'.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #help -- #help is a client command, and isn't sent to the server.
|
|
|
|
All TinTin++ commands can be abbreviated when typed.
|
|
|
|
#he -- Typing #he is the same as typing #help though it's suggested to
|
|
use at least 3 letter abbreviations just in case another command is
|
|
added that starts with 'he'.
|
|
|
|
All commands can be separated with a ';'.
|
|
|
|
n;l dragon;s;say Dan Dare is back! -- do these 4 commands
|
|
There are 3 ways ';'s can be overruled.
|
|
|
|
\say Hello ;) -- Lines starting with a '\' aren't parsed by TinTin++.
|
|
say Hello \;) -- The escape character can escape 1 letter.
|
|
#config verbatim on -- Everything is sent as is except '#' commands.
|
|
|
|
</span><span style='color:#5F5'>Connecting to a server
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #session </span><span style='color:#FFF'>{</span><span style='color:#AAA'>session name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>server address</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>port</span><span style='color:#FFF'>}
|
|
|
|
Example</span><span style='color:#AAA'>: #session someone tintin.sourceforge.net 4321
|
|
|
|
You can have more than one session, in which case you can switch
|
|
between sessions typing #<session name>.
|
|
|
|
You can get a list of all sessions by typing: #session. The current
|
|
active session is marked with (active). Snooped sessions with
|
|
(snooped). MCCP sessions (compression) with (mccp 2) and (mccp 3).
|
|
|
|
|
|
</span><span style='color:#5F5'>Split
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #split
|
|
|
|
The split command will create a separated input and output area.
|
|
|
|
Using the #prompt command you can capture the prompt and place it on
|
|
the split line. To get rid of the split interface you can use #unsplit
|
|
which will restore the terminal settings to default.
|
|
|
|
|
|
</span><span style='color:#5F5'>Alias
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #alias </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The syntax of the #alias command is almost like alias in csh.
|
|
Use this command to define aliases. The variables %0, %1.. %9 contain
|
|
the arguments to the aliased command as follows:
|
|
the %0 variable contains all the arguments.
|
|
the %1 variable contains the 1st argument
|
|
....
|
|
the %9 variable contains the 9th argument
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias greet say Greetings, most honorable %1
|
|
|
|
If you want an alias to execute more commands, you must use braces.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias ws </span><span style='color:#FFF'>{</span><span style='color:#AAA'>wake;stand</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> To delete an alias use the #unalias command.
|
|
|
|
WARNING! TinTin++ doesn't baby sit, and hence does not check for
|
|
recursive aliases! You can avoid recursion by escaping the entire
|
|
line.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias put \put %1 in %2
|
|
|
|
Or by using the send command.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias put #send put %1 in %2
|
|
|
|
|
|
</span><span style='color:#5F5'> Action
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>action-text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Use this command to define an action to take place when a particular
|
|
text appears on your screen. There are 99 variables you can use as
|
|
wildcards in the action-text.
|
|
|
|
These variables are %1, %2, %3 .... %9, %10, %11 ... %97, %98, %99.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>You are hungry</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>get bread bag;eat bread</span><span style='color:#FFF'>}
|
|
|
|
Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>%1 has arrived.</span><span style='color:#FFF'>}</span><span style='color:#AAA'> shake %1 -- shake hands with people arriving.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>%1 tells you '%2'</span><span style='color:#FFF'>}
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>{</span><span style='color:#AAA'>tell bob %1 told me '%2'</span><span style='color:#FFF'>}</span><span style='color:#AAA'> -- forward tells.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>tells you</span><span style='color:#FFF'>}</span><span style='color:#AAA'> #bell -- beep on tell.
|
|
|
|
You can have TinTin++ ignore actions if you type '#ignore actions on'.
|
|
|
|
You can see what commands TinTin++ executes when an action triggers
|
|
by typing '#debug actions on'.
|
|
|
|
You can remove actions with the #unaction command.
|
|
|
|
|
|
</span><span style='color:#5F5'>Command files
|
|
|
|
</span><span style='color:#AAA'> When you order TinTin++ to read a command file, it parses all the text
|
|
in the file. You can use command files to keep aliases/actions in,
|
|
login to a server (name, password etc..) and basically all kinds of
|
|
commands.
|
|
|
|
You can make the command files with either a text editor (suggested),
|
|
or use the #write command to write out a file.
|
|
|
|
Commands for files:
|
|
|
|
#read filename -- read and execute the file.
|
|
|
|
#write filename -- write all actions/aliases/substitutes/etc known for
|
|
the current session to a file.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
|
|
#session x mymud.com 1234
|
|
myname
|
|
mypassword
|
|
#split
|
|
#action {^You are hungry.} {eat bread}
|
|
|
|
If you save the above five lines to a file named 'mymud.tin' you can
|
|
use 'tt++ mymud.tin' to start tintin and execute the file, connecting
|
|
you to your mud, logging in, enabling split mode, and setting an action
|
|
to eat a bread whenever you go hungry.
|
|
|
|
</span><span style='color:#5F5'>Highlight
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #highlight </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>color</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This command works a bit like #action. The purpose of this command is
|
|
to substitute text from the server with color you provide. This command
|
|
is a simplified version of the #substitute command.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high </span><span style='color:#FFF'>{</span><span style='color:#AAA'>Snowy</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>light yellow</span><span style='color:#FFF'>}
|
|
|
|
Example</span><span style='color:#AAA'>: #high </span><span style='color:#FFF'>{</span><span style='color:#AAA'>%*Snowy%*</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>light yellow</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Use #unhigh to delete highlights.
|
|
|
|
|
|
</span><span style='color:#5F5'> Speedwalk
|
|
|
|
</span><span style='color:#AAA'> If you type a command consisting ONLY of letters and numbers n, e, s,
|
|
w, u, d - then this command can be interpreted as a serie of movement
|
|
commands.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: ssw2n -- go south, south, west, north, north
|
|
|
|
If you have problems with typing some commands that actually ONLY
|
|
consists of these letters, then type them in CAPS. For example when
|
|
checking the NEWS or when asked to enter NEW as your name.
|
|
|
|
You must enable speedwalking with: #config speedwalk on.
|
|
|
|
|
|
</span><span style='color:#5F5'>Ticker
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ticker </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>seconds</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The name can be whatever you want it to be, and is only required for
|
|
the unticker command. The commands will be executed every x amount of
|
|
seconds, which is specified in the interval part.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #tick </span><span style='color:#FFF'>{</span><span style='color:#AAA'>tick</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>#delay 50 #show 10 SECONDS TO TICK!;#show TICK!!!</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>60</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This creates a ticker with the name </span><span style='color:#FFF'>{</span><span style='color:#AAA'>tick</span><span style='color:#FFF'>}</span><span style='color:#AAA'> which will print TICK!!!,
|
|
as well as print a warning when the next tick will occure.
|
|
|
|
You can remove tickers with #untick
|
|
|
|
|
|
</span><span style='color:#5F5'>Repeating Commands
|
|
|
|
</span><span style='color:#AAA'> You can repeat a command, the syntax is: #number command
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #5 cackle -- if you just killed bob the wizard.
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #10 </span><span style='color:#FFF'>{</span><span style='color:#AAA'>buy bread;put bread bag</span><span style='color:#FFF'>}</span><span style='color:#AAA'> -- repeat these 2 commands 10 times.
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #100 ooc w00t w00t!!!!! -- nochannel yourself.
|
|
|
|
|
|
</span><span style='color:#5F5'>History
|
|
|
|
</span><span style='color:#AAA'> TinTin++ has a limited subset of the csh history features.
|
|
|
|
! -- repeat the last command
|
|
!cast -- repeat the last command starting with cast
|
|
ctrl-r -- enter the reverse history search mode.
|
|
|
|
|
|
</span><span style='color:#5F5'>Map commands
|
|
|
|
</span><span style='color:#AAA'> TinTin++ has a powerful highly configurable automapper. Whenever
|
|
you type n/ne/e/se/s/sw/w/nw/n/u/d tt++ tries to keep track of your
|
|
movement.
|
|
|
|
Commands for map:
|
|
|
|
#map create -- create a map.
|
|
#map goto 1 -- go to the first room in the map, created by default.
|
|
#map map -- display the map.
|
|
#map undo -- undo your last map alteration.
|
|
#map write <filename> -- save the map to file.
|
|
#map read <filename> -- load a map from file.
|
|
|
|
There are many other map options and it's beyond the scope of this
|
|
help section to explain everything there is to know, but I'll give
|
|
a set of commands that will get most people started.
|
|
|
|
#map create
|
|
#split 12 1
|
|
#map flag unicode on
|
|
#map flag vt on
|
|
#map goto 1
|
|
|
|
These commands will create a 12 row vt100 split section at the top of
|
|
your screen where a map drawn using unicode characters is displayed.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>There is no exit in that direction.</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>#map undo</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The map will be automatically created as you move around.
|
|
|
|
|
|
</span><span style='color:#5F5'>Help
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #help </span><span style='color:#FFF'>{</span><span style='color:#AAA'>subject</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The help command is your friend and contains the same helpfiles
|
|
inside TinTin++ as are available on the website. If you type #help
|
|
without an argument you will see the various available help subjects
|
|
which try to explain the TinTin++ commands and features in greater
|
|
detail. Entries in cyan describe commands, while entries in white
|
|
describe various features, often in greater detail.
|
|
|
|
|
|
</span><span style='color:#5F5'>That's all for the introduction, enjoy
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#EDITING'>editing</a>, <a href='#ESCAPE_CODES'>escape_codes</a>, <a href='#GREETING'>greeting</a>, <a href='#KEYPAD'>keypad</a>, <a href='#LISTS'>lists</a>, <a href='#MAPPING'>mapping</a>, <a href='#MATHEMATICS'>mathematics</a>, <a href='#SCREEN_READER'>screen_reader</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SPEEDWALK'>speedwalk</a>, <a href='#STATEMENTS'>statements</a>, <a href='#SUSPEND'>suspend</a> and <a href='#TIME'>time</a>.
|
|
<a name='KEYPAD'></a>
|
|
|
|
</span><span style='color:#FF5'> KEYPAD
|
|
|
|
</span><span style='color:#AAA'> When TinTin++ starts up it sends \e= to the terminal to enable the
|
|
terminal's application keypad mode, which can be disabled using
|
|
#cursor flag keypad off.
|
|
|
|
</span><span style='color:#FFF'> Configuration A Configuration B Configuration C
|
|
</span><span style='color:#0AA'> ╭─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────╮
|
|
│</span><span style='color:#FFF'>num</span><span style='color:#0AA'> │</span><span style='color:#FFF'>/</span><span style='color:#0AA'> │</span><span style='color:#FFF'>*</span><span style='color:#0AA'> │</span><span style='color:#FFF'>-</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>num</span><span style='color:#0AA'> │</span><span style='color:#FFF'>/</span><span style='color:#0AA'> │</span><span style='color:#FFF'>*</span><span style='color:#0AA'> │</span><span style='color:#FFF'>-</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>Num</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp/</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp*</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp-</span><span style='color:#0AA'> │
|
|
├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤
|
|
│</span><span style='color:#FFF'>7</span><span style='color:#0AA'> │</span><span style='color:#FFF'>8</span><span style='color:#0AA'> │</span><span style='color:#FFF'>9</span><span style='color:#0AA'> │</span><span style='color:#FFF'>+</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>Home</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Up</span><span style='color:#0AA'> │</span><span style='color:#FFF'>PgUp</span><span style='color:#0AA'> │</span><span style='color:#FFF'>+</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>nkp7</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp8</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp9</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp+</span><span style='color:#0AA'> │
|
|
├─────┼─────┼─────┤ │ ├─────┼─────┼─────┤ │ ├─────┼─────┼─────┤ │
|
|
│</span><span style='color:#FFF'>4</span><span style='color:#0AA'> │</span><span style='color:#FFF'>5</span><span style='color:#0AA'> │</span><span style='color:#FFF'>6</span><span style='color:#0AA'> │ │ │</span><span style='color:#FFF'>Left</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Cntr</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Right</span><span style='color:#0AA'>│ │ │</span><span style='color:#FFF'>nkp4</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp5</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp6</span><span style='color:#0AA'> │ │
|
|
├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤
|
|
│</span><span style='color:#FFF'>1</span><span style='color:#0AA'> │</span><span style='color:#FFF'>2</span><span style='color:#0AA'> │</span><span style='color:#FFF'>3</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Enter</span><span style='color:#0AA'>│ │</span><span style='color:#FFF'>End</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Down</span><span style='color:#0AA'> │</span><span style='color:#FFF'>PgDn</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Enter</span><span style='color:#0AA'>│ │</span><span style='color:#FFF'>nkp1</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp2</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp3</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkpEn</span><span style='color:#0AA'>│
|
|
├─────┴─────┼─────┤ │ ├─────┴─────┼─────┤ │ ├─────┴─────┼─────┤ │
|
|
│</span><span style='color:#FFF'>0</span><span style='color:#0AA'> │</span><span style='color:#FFF'>.</span><span style='color:#0AA'> │ │ │</span><span style='color:#FFF'>Ins</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Del</span><span style='color:#0AA'> │ │ │</span><span style='color:#FFF'>nkp0</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp.</span><span style='color:#0AA'> │ │
|
|
╰───────────┴─────┴─────╯ ╰───────────┴─────┴─────╯ ╰───────────┴─────┴─────╯
|
|
|
|
</span><span style='color:#AAA'> With keypad mode disabled numlock on will give you configuration A,
|
|
and numlock off will give you configuration B. With keypad mode
|
|
enabled you'll get configuration C.
|
|
|
|
</span><span style='color:#FFF'> Terminals that support keypad mode
|
|
|
|
</span><span style='color:#AAA'> Linux Console, PuTTY, MinTTY, Eterm, aterm.
|
|
|
|
</span><span style='color:#FFF'> Terminals that do not support keypad mode
|
|
|
|
</span><span style='color:#AAA'> RXVT on Cygwin, Windows Console, Gnome Terminal, Konsole.
|
|
|
|
</span><span style='color:#FFF'> Peculiar Terminals
|
|
|
|
</span><span style='color:#AAA'> RXVT requires turning off numlock to enable configuration C.
|
|
|
|
Xterm may require disabling Alt/NumLock Modifiers (num-lock) in the
|
|
ctrl left-click menu. Or edit ~/.Xresources and add
|
|
XTerm*VT100.numLock:false
|
|
|
|
Mac OS X Terminal requires enabling 'strict vt100 keypad behavior' in
|
|
Terminal -> Window Settings -> Emulation.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#COLORS'>colors</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#ESCAPE_CODES'>escape_codes</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
|
|
<a name='KILL'></a>
|
|
|
|
</span><span style='color:#FF5'> KILL
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #kill </span><span style='color:#FFF'>{</span><span style='color:#AAA'>list</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>pattern</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Without an argument, the kill command clears all lists. Useful if
|
|
you don't want to exit tintin to reload your command files.
|
|
|
|
With one argument a specific list can be cleared.
|
|
|
|
With two arguments the triggers in the chosen list that match the
|
|
given pattern will be removed.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #kill alias %*test*
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a> and <a href='#MESSAGE'>message</a>.
|
|
<a name='LINE'></a>
|
|
|
|
</span><span style='color:#FF5'> LINE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #line </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#5F5'>Line options that alter the argument.
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>#line json <variable> <argument>
|
|
</span><span style='color:#AAA'> The variable is translated to json and the argument is executed
|
|
with &0 holding the json data.
|
|
|
|
</span><span style='color:#FFF'>#line strip <argument>
|
|
</span><span style='color:#AAA'> Argument is executed with all color codes stripped.
|
|
|
|
</span><span style='color:#FFF'>#line substitute <options> <argument>
|
|
</span><span style='color:#AAA'> Argument is executed using the provided substitutions, available
|
|
options are: arguments, braces, colors, escapes, functions, secure,
|
|
and variables.
|
|
|
|
</span><span style='color:#5F5'>Line options that alter how the line is executed.
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>#line background <argument>
|
|
</span><span style='color:#AAA'> Prevent new session activation.
|
|
|
|
</span><span style='color:#FFF'>#line benchmark <argument>
|
|
</span><span style='color:#AAA'> Argument is executed and the elapsed time is reported after.
|
|
|
|
</span><span style='color:#FFF'>#line capture <variable> <argument>
|
|
</span><span style='color:#AAA'> Argument is executed and output stored in <variable>.
|
|
|
|
</span><span style='color:#FFF'>#line convert <argument>
|
|
</span><span style='color:#AAA'> Argument is executed with escaped meta characters.
|
|
|
|
</span><span style='color:#FFF'>#line debug <argument>
|
|
</span><span style='color:#AAA'> Argument is executed in debug mode.
|
|
|
|
</span><span style='color:#FFF'>#line gag [amount]
|
|
</span><span style='color:#AAA'> Gag the next line, or given lines. Use + or - to increase
|
|
or decrease the current amount.
|
|
|
|
</span><span style='color:#FFF'>#line ignore {argument}
|
|
</span><span style='color:#AAA'> Argument is executed without any triggers being checked.
|
|
|
|
</span><span style='color:#FFF'>#line local {argument}
|
|
</span><span style='color:#AAA'> Argument is executed with all newly and indirectly
|
|
created variables being local.
|
|
|
|
</span><span style='color:#FFF'>#line log <filename> [text]
|
|
</span><span style='color:#AAA'> Log the next line to file unless the [text] argument is
|
|
provided.
|
|
|
|
</span><span style='color:#FFF'>#line logmode <option> <argument>
|
|
</span><span style='color:#AAA'> Argument is executed using the provided logmode, available
|
|
modes are: html, plain, raw, and stamp.
|
|
|
|
</span><span style='color:#FFF'>#line msdp <argument>
|
|
</span><span style='color:#AAA'> Turn the argument into an msdp telnet sequence, starting at the
|
|
first opening brace. Will turn tintin tables into msdp tables,
|
|
with semicolons being used to create msdp arrays.
|
|
|
|
</span><span style='color:#FFF'>#line multishot <number> <argument>
|
|
</span><span style='color:#AAA'> Argument is executed in multishot mode, all triggers created
|
|
will only fire the given number of times.
|
|
|
|
</span><span style='color:#FFF'>#line oneshot <argument>
|
|
</span><span style='color:#AAA'> Argument is executed in oneshot mode, all triggers created will
|
|
only fire once.
|
|
|
|
</span><span style='color:#FFF'>#line quiet <argument>
|
|
</span><span style='color:#AAA'> Argument is executed with suppression of most system messages.
|
|
|
|
</span><span style='color:#FFF'>#line verbatim <argument>
|
|
</span><span style='color:#AAA'> Argument is executed verbatim, prohibiting variable and function
|
|
substitutions.
|
|
|
|
</span><span style='color:#FFF'>#line verbose <argument>
|
|
</span><span style='color:#AAA'> Argument is executed with most system messages enabled.
|
|
|
|
When using #line log and logging in html format use \c< \c> \c& \c" to
|
|
log a literal < > & and ".
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a> and <a href='#CONFIG'>config</a>.
|
|
<a name='LIST'></a>
|
|
|
|
</span><span style='color:#FF5'> LIST
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #list </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> #list {var} {add} <items> Add <items> to the list
|
|
#list {var} {clear} Empty the given list
|
|
#list {var} {collapse} <separator> Turn list into a variable
|
|
#list {var} {copy} <variable> Copy variable to the list
|
|
#list {var} {create} <items> Create a list using <items>
|
|
#list {var} {delete} <index> [amount] Delete the item at <index>,
|
|
the [amount] is optional.
|
|
#list {var} {explode} <separator> Turn variable into a list
|
|
#list {var} {indexate} [key] Index a list table for sorting
|
|
#list {var} {insert} <index> <item> Insert <item> at given index
|
|
#list {var} {filter} <keep> [remove] Filter with keep / remove regex
|
|
#list {var} {find} <regex> <variable> Return the found index
|
|
#list {var} {get} <index> <variable> Copy an item to {variable}
|
|
#list {var} {numerate} Renumber a table or list
|
|
#list {var} {order} [items] Sort list alphanumerically
|
|
#list {var} {refine} <keep> [remove] Filter with keep / remove math
|
|
with &0 holding the value
|
|
#list {var} {reverse} Reverse the list
|
|
#list {var} {shuffle} Shuffle the list
|
|
#list {var} {set} <index> <item> Change the item at {index}
|
|
#list {var} {simplify} [items] Turn list into a simple list
|
|
#list {var} {size} <variable> Copy list size to {variable}
|
|
#list {var} {sort} [items] Sort list alphabetically, if
|
|
an item is given it's added.
|
|
#list {var} {swap} <index> <index> Swap two items
|
|
#list {var} {tokenize} <string> Create a character list
|
|
|
|
The index should be between +1 and the list's size. You can also give
|
|
a negative value, in which case -1 equals the last item in the list,
|
|
-2 the second last, etc.
|
|
|
|
When inserting an item a positive index will prepend the item at the
|
|
given index, while a negative index will append the item.
|
|
|
|
The add and create options allow using multiple items, as well
|
|
as semicolon separated items.
|
|
|
|
The get option will return the item or the indexation. Use
|
|
$var[<index>] to retrieve the nested data of a list table.
|
|
|
|
The order, sort and simplify options will perform the operation on
|
|
the given list. Optional items can be provided which are added to
|
|
the new or existing list before the operation is executed. Sorting
|
|
and ordering are stable.
|
|
|
|
The indexate option prepares a table or list table for order, sort,
|
|
filter, refine, and find operations for the given key. It is similar
|
|
to the SELECT option in SQL. All entries must contain the given key.
|
|
|
|
A size of 0 is returned for an empty or non-existent list. You can
|
|
directly access the size of a list using &var[].
|
|
|
|
You can directly access elements in a list variable using $var[+1],
|
|
$var[+2], $var[-1], etc.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
|
|
<a name='LISTS'></a>
|
|
|
|
</span><span style='color:#FF5'> LISTS
|
|
|
|
</span><span style='color:#AAA'> There are several different types of lists in tintin which behave in a
|
|
fairly universal manner. To properly explain lists it's easiest to
|
|
explain the most basic variable type first before discussing more
|
|
complex types.
|
|
|
|
- Basic variable: The standard key = value variable.
|
|
|
|
- Simple list: A string that contains semicolon delimited fields.
|
|
{a;b;c}. Can be saved as a variable.
|
|
|
|
- Brace list: A string in which fields are delimited with braces.
|
|
{a}{b}{c}. Brace lists cannot be stored as a variable because tables
|
|
use braces as well, they must be stored as a simple list instead.
|
|
|
|
- Table: Think of this as variables nested within another variable. Or
|
|
as variables contained within another variable.
|
|
|
|
- List: A table that uses integers for its indexes. Also known as an
|
|
array. The #list command is a utility command for using tables as
|
|
arrays.
|
|
|
|
</span><span style='color:#5F5'> Simple Variables
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
|
|
#variable {simple} {Hello World!}
|
|
#show $simple
|
|
|
|
To see if the 'simple' variable exists you can use &{simple} which
|
|
will display 0 if the variable does not exist, or the variable's index
|
|
if it exists.
|
|
|
|
If you have multiple variables they are sorted alphabetically and
|
|
numerically. While it's not all that relevant for simple variables,
|
|
the first variable has index 1, the second variable index 2, and so
|
|
on.
|
|
|
|
Variable names need to start with a letter and only exist of letters,
|
|
numbers, and underscores. If you need to use a non standard variable
|
|
name this is possible using braces.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #variable {:)} {Happy Happy!};#show ${:)}
|
|
|
|
Variables can be accessed using their index. While primarily useful
|
|
for tables it is possible to do this for simple variables. Use +1 for
|
|
the first variable, +2 for the second variable, etc. Use -1 for the
|
|
last variable, -2 for the second last variable, etc.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show The first variable is: *{+1} with value: ${+1}
|
|
|
|
</span><span style='color:#5F5'> Removing Variables
|
|
|
|
</span><span style='color:#AAA'> To remove a variable, use #unvariable or #unvar (every command can be
|
|
abbreviated). It's possible to remove multiple variables at once
|
|
using #unvar {var 1} {var 2} {etc}
|
|
|
|
Variables are unique to each session, so if you have multiple
|
|
sessions, removing a variable from one session won't remove it from
|
|
other sessions.
|
|
|
|
If you remove a table variable, all variables contained within that
|
|
table variable are removed as well.
|
|
|
|
</span><span style='color:#5F5'> Simple Lists
|
|
|
|
</span><span style='color:#AAA'> A simple list is a string that contains semicolon delimited fields.
|
|
Commands can be entered as simple lists, for example:
|
|
#show {a};#show {b} will execute a single line as two commands.
|
|
|
|
Several commands take a simple list as their input, these are:
|
|
#foreach, #line substitute, #path load, #list create, and #highlight.
|
|
|
|
</span><span style='color:#5F5'> Brace Lists
|
|
|
|
</span><span style='color:#AAA'> A brace list is a string in which fields are delimited with braces.
|
|
Most commands take a brace list for their arguments, for example:
|
|
#session {x} {mud.com} {1234} {mud.tin}. The session command takes
|
|
4 arguments, the 4th argument (command file) is optional.
|
|
|
|
Commands that take a simple list as their input will also accept a
|
|
brace list, keep in mind you'll have to embed the brace list in an
|
|
extra set of braces, for example: #path load {{n}{s}{w}{w}}, which is
|
|
identical to: #path load {n;s;w;w}.
|
|
|
|
Brace lists cannot be stored as variables because TinTin++ will
|
|
confuse them with tables. You can convert a brace list to a table
|
|
variable using: #list {bracelist} {create} {{a}{b}{c}} this will look
|
|
internally as: {{1}{a}{2}{b}{3}{c}}. You can then convert this table
|
|
back to a simple list using: #list {bracelist} {simplify} which will
|
|
change it to {a;b;c}.
|
|
|
|
Braces cannot easily be escaped in TinTin++. Using \{ or \} will not
|
|
work. The reason for this is due to several factors, but primarily
|
|
backward compatibility. To escape braces you must define them using
|
|
hexadecimal notation using \x7B and \x7D. See #help escape for a list
|
|
of escape options, and the help file will also remind you of how to
|
|
escape braces.
|
|
|
|
</span><span style='color:#5F5'> Tables
|
|
|
|
</span><span style='color:#AAA'> Tables are key/value pairs stored within a variable. Tables are also
|
|
known as associative arrays, dictionaries, maps, nested variables,
|
|
structures, and probably a couple of other names. There are several
|
|
ways to create and access tables.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #variable {friendlist} {{bob}{bob@mail.com} {bubba}{sunset@gmail.com}}
|
|
|
|
This will create a friendlist with two entries, the key is the name of
|
|
the friend, the value is the email address of the friend. You can see
|
|
the email address of bob using: #show {$friendlist[bob]}. You can
|
|
also define this table as following:
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
|
|
#variable {friendlist[bob]} {bob@mail.com}
|
|
#variable {friendlist[bubba]} {sunset@gmail.com}
|
|
|
|
This would create the exact same table as the single line declaration
|
|
used previously. To see the first key in the table use:
|
|
*friendlist[+1], to see the first value in the table use:
|
|
$friendlist[+1]. To see the size of the table use &friendlist[]. To
|
|
print a bracelist of all friends use *friendlist[], to print a
|
|
bracelist of all friends whose name starts with the letter 'a' you
|
|
would use: *friendlist[a%*]. Similarly to see the number of friends
|
|
you have whose name ends with the letter 'b' you would use:
|
|
&friendlist[%*b].
|
|
|
|
See #help regexp for a brief overview of regular expression options.
|
|
While TinTin++ supports PCRE (perl-compatible regular expressions), it
|
|
embeds them within its own regular expression syntax that is simpler
|
|
and less invasive, while still allowing the full power of PCRE for
|
|
those who need it.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #unvariable {friendlist[bubba]}
|
|
|
|
This would remove {bubba} from the friendlist. To remove the entire
|
|
friendlist you would use: #unvariable {friendlist}.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #variable {friendlist} {{bob} {{email}{bob@ma.il} {phone}{123456789}}}
|
|
|
|
There is no limit to the number of nests, simply add more braces. To
|
|
see Bob's email in this example you would use:
|
|
#show {$friendlist[bob][email]}.
|
|
|
|
To merge two tables the #cat command can be used.
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
|
|
#variable {bli} {{a}{1}{b}{2}}
|
|
#variable {blo} {{c}{3}{d}{4}}
|
|
#cat {blo} {$bli}
|
|
|
|
</span><span style='color:#5F5'> Lists
|
|
|
|
</span><span style='color:#AAA'> Tables are sorted alphabetically with the exception of numbers which
|
|
are sorted numerically. If you want to determine the sorting order
|
|
yourself you can use use the #list command which helps you to use
|
|
tables as arrays.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {%1 chats %2} {#list chats add {%0}}
|
|
|
|
Each time a chat is received it's added to the end of the 'chats' list
|
|
variable. If you type #variable chats this might look like:
|
|
|
|
</span><span style='color:#FF5'>#</span><span style='color:#5FF'>VARIABLE </span><span style='color:#A0A'>{</span><span style='color:#FFF'>chats</span><span style='color:#A0A'>}
|
|
</span><span style='color:#AAA'> </span><span style='color:#A0A'>{
|
|
</span><span style='color:#AAA'> </span><span style='color:#A0A'>{</span><span style='color:#FFF'>1</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bubba chats Hi</span><span style='color:#A0A'>}
|
|
</span><span style='color:#AAA'> </span><span style='color:#A0A'>{</span><span style='color:#FFF'>2</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bob chats Hi bub</span><span style='color:#A0A'>}
|
|
</span><span style='color:#AAA'> </span><span style='color:#A0A'>{</span><span style='color:#FFF'>3</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bubba chats Bye</span><span style='color:#A0A'>}
|
|
</span><span style='color:#AAA'> </span><span style='color:#A0A'>{</span><span style='color:#FFF'>4</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bob chats bub bye</span><span style='color:#A0A'>}
|
|
</span><span style='color:#AAA'> </span><span style='color:#A0A'>}
|
|
|
|
</span><span style='color:#5F5'> Parsing
|
|
|
|
</span><span style='color:#AAA'> There are various ways to parse lists and tables, using either #loop,
|
|
#foreach, #while, or #<number>.
|
|
|
|
#loop takes two numeric arguments, incrementing or decrementing the
|
|
first number until it matches the second number. The value of the loop
|
|
counter is stored in the provided variable.
|
|
|
|
#foreach takes either a simple list or a brace list as its first
|
|
argument. Foreach will go through each item in the list and store the
|
|
value in the provided variable.
|
|
|
|
#while will perform an if check on the first argument, if the result
|
|
is true it will execute the commands in the second argument. Then it
|
|
performs an if check on the first argument again. It will continue to
|
|
repeat until the if check returns 0 or the loop is interrupted with a
|
|
control flow command. It takes special care to avoid infinite loops.
|
|
|
|
#<number> will execute the provided argument 'number' times. For
|
|
example: #4 {#show beep! \a}
|
|
|
|
Here are some examples.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #list friends create {bob;bubba;zorro}
|
|
|
|
Internally this looks like {{1}{bob}{2}{bubba}{3}{zorro}} and the
|
|
list can be parsed in various ways.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #foreach {$friends[%*]} {name} {#show $name}
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #foreach {*friends[%*]} {i} {#show $friends[$i]}
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop {1} {&friends[]} {i} {#show $friends[+$i]}
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #math i 1;#while {&friends[+$i]} {#show $friends[+$i];
|
|
#math i $i + 1}
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #math i 1;#&friends[] {#show $friends[+$i];#math i $i + 1}
|
|
|
|
Each of the five examples above performs the same task; printing the
|
|
three names in the friends list.
|
|
|
|
If you want to get a better look at what goes on behind the scenes
|
|
while executing scripts you can use '#debug all on'. To stop seeing
|
|
debug information use '#debug all off'.
|
|
|
|
</span><span style='color:#5F5'> List Tables
|
|
|
|
</span><span style='color:#AAA'> List tables are also known as databases and the #list command has
|
|
several options to manipulate them.
|
|
|
|
For these options to work properly all tables need to have identical
|
|
keys. Here is an example list table.
|
|
|
|
#var {friendlist}
|
|
{
|
|
{1}{{name}{bob} {age}{54}}
|
|
{2}{{name}{bubba} {age}{21}}
|
|
{3}{{name}{pamela} {age}{36}}
|
|
}
|
|
|
|
To sort the list table by age you would use:
|
|
|
|
#list friendlist indexate age
|
|
#list friendlist order
|
|
|
|
To remove everyone whose name starts with a 'b' you would use:
|
|
|
|
#list friendlist indexate name
|
|
#list friendlist filter {} {b%*}
|
|
|
|
The filter option only supports regular expressions. To filter
|
|
using mathematics you would loop through the list backwards:
|
|
|
|
#loop &friendlist[] 1 index
|
|
{
|
|
#if {$friendlist[+$index][age] < 30}
|
|
{
|
|
#list friendlist delete $index
|
|
}
|
|
}
|
|
|
|
Alternatively you can use the refine option.
|
|
|
|
#list friendlist indexate age
|
|
#list friendlist refine {&0 >= 30}
|
|
|
|
To add an item to a list table there are two options:
|
|
|
|
#list friendlist add {{{name}{hobo} {age}{42}}}
|
|
#list friendlist insert -1 {{name}{hobo} {age}{42}}
|
|
|
|
</span><span style='color:#5F5'> Optimization
|
|
|
|
</span><span style='color:#AAA'> TinTin++ tables are exceptionally fast while they remain under 100
|
|
items. Once a table grows beyond 10000 items there can be performance
|
|
issues when inserting and removing items in the beginning or middle of
|
|
the table.
|
|
|
|
The plan is to eventually implement an indexable and flexible data
|
|
structure for large tables.
|
|
|
|
If you load a large table from file it's important to make sure it's
|
|
sorted, when using #write to save a table it's automatically sorted.
|
|
|
|
If you notice performance issues on large tables it's relatively easy
|
|
to create a hash table.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
|
|
|
|
#alias {sethash}
|
|
{
|
|
#format hash %H %1;
|
|
#math hash1 $hash % 100;
|
|
#math hash2 $hash / 100 % 100;
|
|
#var hashtable[$hash1][$hash2][%1] %2
|
|
}
|
|
|
|
#function {gethash}
|
|
{
|
|
#format hash %H %1;
|
|
#math hash1 $hash % 100;
|
|
#math hash2 $hash / 100 % 100;
|
|
#return $hashtable[$hash1][$hash2][%1]
|
|
}
|
|
|
|
#alias {test}
|
|
{
|
|
sethash bli hey;
|
|
sethash bla hi;
|
|
sethash blo hello;
|
|
#show The value of bla is: @gethash{bla}
|
|
}
|
|
|
|
The above script will rapidly store and retrieve over 1 million items.
|
|
Looping through a hash table is relatively easy as well.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
|
|
|
|
#alias {showhash}
|
|
{
|
|
#foreach {*hashtable[%*]} {hash1}
|
|
{
|
|
#foreach {*hashtable[$hash1][%*]} {hash2}
|
|
{
|
|
#echo {%-20s = %s}
|
|
{hashtable[$hash1][$hash2]}
|
|
{$hashtable[$hash1][$hash2]}
|
|
}
|
|
}
|
|
}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
|
|
<a name='LOCAL'></a>
|
|
|
|
</span><span style='color:#FF5'> LOCAL
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #local </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>text to fill variable</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The local command sets a local variable. Unlike a regular variable
|
|
a local variable will only stay in memory for the duration of the
|
|
event that created it. They are accessed in the same way as a
|
|
regular variable.
|
|
|
|
Commands that store information to a variable will use a local variable
|
|
if it exists.
|
|
|
|
Avoid setting the result variable as local in a function. Similarly,
|
|
it is best to avoid setting a local variable that is identical to an
|
|
existing regular variable.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {swap} {#local x %0;#replace x {e} {u};#show $x}
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a local variable with the #unlocal command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='LOG'></a>
|
|
|
|
</span><span style='color:#FF5'> LOG
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #log </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The log command allows logging session output to file.
|
|
|
|
</span><span style='color:#FFF'>#config log_level <low|high>
|
|
</span><span style='color:#AAA'> Default is high. Low, logs server output before triggers.
|
|
|
|
</span><span style='color:#FFF'>#config log_mode <html|plain|raw>
|
|
</span><span style='color:#AAA'> Set the log's data type to either html, plain, or raw.
|
|
|
|
</span><span style='color:#FFF'>#log append <filename>
|
|
</span><span style='color:#AAA'> Start logging to the given file, if the file already exists it won't
|
|
be overwritten and data will be appended to the end.
|
|
|
|
</span><span style='color:#FFF'>#log make <directory>
|
|
</span><span style='color:#AAA'> Create the given directory.
|
|
|
|
</span><span style='color:#FFF'>#log move <filename_1> <filename_2>
|
|
</span><span style='color:#AAA'> Move filename_1 to filename_2. This can be any file and doesn't need
|
|
to be a log file.
|
|
|
|
</span><span style='color:#FFF'>#log overwrite <filename>
|
|
</span><span style='color:#AAA'> Start logging to the given file, if the file already exists it will
|
|
be overwritten.
|
|
|
|
</span><span style='color:#FFF'>#log off
|
|
</span><span style='color:#AAA'> Stop logging.
|
|
|
|
</span><span style='color:#FFF'>#log remove <filename>
|
|
</span><span style='color:#AAA'> Remove the file. This can be any file and doesn't need to be a log
|
|
file.
|
|
|
|
</span><span style='color:#FFF'>#log timestamp <format>
|
|
</span><span style='color:#AAA'> When set the timestamp will be prepended to each line logged to file.
|
|
The format will be formatted as a date using the strftime format
|
|
specifiers as described in #help time.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#READ'>read</a>, <a href='#SCAN'>scan</a>, <a href='#TEXTIN'>textin</a>, <a href='#TIME'>time</a> and <a href='#WRITE'>write</a>.
|
|
<a name='LOOP'></a>
|
|
|
|
</span><span style='color:#FF5'> LOOP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #loop </span><span style='color:#FFF'>{</span><span style='color:#AAA'><start></span><span style='color:#FFF'>} {</span><span style='color:#AAA'><finish></span><span style='color:#FFF'>} {</span><span style='color:#AAA'><variable></span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Like a for statement, loop will loop from start to finish incrementing
|
|
or decrementing by 1 each time through. The value of the loop counter
|
|
is stored in the provided variable, which you can use in the commands.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop 1 3 loop {get all $loop.corpse}
|
|
This equals 'get all 1.corpse;get all 2.corpse;get all 3.corpse'.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop 3 1 cnt {drop $cnt\.key}
|
|
This equals 'drop 3.key;drop 2.key;drop 1.key'.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
|
|
<a name='MACRO'></a>
|
|
|
|
</span><span style='color:#FF5'> MACRO
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #macro </span><span style='color:#FFF'>{</span><span style='color:#AAA'>key sequence</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Macros allow you to make tintin respond to function keys.
|
|
|
|
The key sequence sent to the terminal when pressing a function key
|
|
differs for every OS and terminal. To find out what sequence is sent
|
|
you can enable the CONVERT META config option.
|
|
|
|
Another option is pressing ctrl-v, which will enable CONVERT META for
|
|
the next key pressed.
|
|
|
|
If you only want a key sequence to trigger at the start of an input
|
|
line prefix the key sequence with ^.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {(press ctrl-v)(press F1)} {#show \e[2J;#buffer lock}
|
|
Clear the screen and lock the window when you press F1, useful when the
|
|
boss is near.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {\eOM} {#cursor enter}
|
|
Makes the keypad's enter key work as an enter in keypad mode.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {^nn} {n}
|
|
Makes pressing n twice on an empty line execute north.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: Not all terminals properly initialize the keypad key sequences.
|
|
If this is the case you can still use the keypad, but instead of the
|
|
arrow keys use ctrl b, f, p, and n.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a macro with the #unmacro command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#CURSOR'>cursor</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
|
|
<a name='MAP'></a>
|
|
|
|
</span><span style='color:#FF5'> MAP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #map
|
|
|
|
The map command is the backbone of the auto mapping feature.
|
|
|
|
</span><span style='color:#FFF'>#map at <exit|vnum> <command>
|
|
</span><span style='color:#AAA'> Execute the command at the given exit or vnum.
|
|
|
|
</span><span style='color:#FFF'>#map center <x> <y> <z>
|
|
</span><span style='color:#AAA'> Sets displaying center of the map viewer, default is 0 0 0.
|
|
|
|
</span><span style='color:#FFF'>#map color <field> [value]
|
|
</span><span style='color:#AAA'> Sets the map color for the given color field. Use #map color reset
|
|
to restore colors to default.
|
|
|
|
</span><span style='color:#FFF'>#map create <size>
|
|
</span><span style='color:#AAA'> Creates a new map and room 1. The default size is 50000 rooms.
|
|
|
|
</span><span style='color:#FFF'>#map destroy {area|world} <name>
|
|
</span><span style='color:#AAA'> Deletes the map or given area.
|
|
|
|
</span><span style='color:#FFF'>#map delete <exit|vnum>
|
|
</span><span style='color:#AAA'> Deletes the room for the given exit or vnum.
|
|
|
|
</span><span style='color:#FFF'>#map dig <exit|vnum> [new|<vnum>]
|
|
</span><span style='color:#AAA'> Creates an exit for the given exit name. If no valid exit name
|
|
is given or no existing room is found a new room is created.
|
|
Useful for portal links and other alternative forms of
|
|
transportation. If the 'new' argument is provided all existing
|
|
rooms are ignored and a new room is created. If a room vnum is
|
|
given as the second argument an exit will be created leading
|
|
to the given room vnum. If the room vnum doesn't exist a new
|
|
room is created.
|
|
|
|
</span><span style='color:#FFF'>#map entrance <exit> <option> <arg> [both]
|
|
</span><span style='color:#AAA'> Set the entrance data for the given exit. You must specify a
|
|
valid two-way exit for this to work.
|
|
|
|
</span><span style='color:#FFF'>#map exit <exit> <option> <arg> [both]
|
|
</span><span style='color:#AAA'> Set the exit data. Useful with a closed door where you can
|
|
set the exit command: '#map exit e command {open east;e}'.
|
|
Use #map exit <exit> for a list of available options.
|
|
Use #map exit <exit> save to save all exit data.
|
|
|
|
</span><span style='color:#FFF'>#map exitflag <exit> <AVOID|BLOCK|HIDE|INVIS> [on|off]
|
|
</span><span style='color:#AAA'> Set exit flags. See #map roomflag for more info.
|
|
|
|
</span><span style='color:#FFF'>#map explore <exit>
|
|
</span><span style='color:#AAA'> Explores the given exit until a dead end or an
|
|
intersection is found. The route is stored in #path and can
|
|
subsequently be used with #walk. Useful for long roads.
|
|
|
|
</span><span style='color:#FFF'>#map find <name> <exits> <desc> <area> <note> <terrain> <flag>
|
|
</span><span style='color:#AAA'> searches for the given room name. If found the shortest path
|
|
from your current location to the destination is calculated.
|
|
The route is stored in #path and can subsequently be used with
|
|
the various #path commands. If #map flag nofollow is set it
|
|
will store the exit commands instead of the exit names.
|
|
|
|
If <exits> is provided all exits must be matched, if
|
|
<roomdesc>, <roomarea> or <roomnote> or <roomterrain> or
|
|
<roomflag> is provided these are matched as well against the
|
|
room to be found.
|
|
|
|
These search options are also available for the at, delete,
|
|
goto, link, list and run commands.
|
|
|
|
</span><span style='color:#FFF'>#map flag asciigraphics
|
|
</span><span style='color:#AAA'> Takes up more space but draws a more detailed
|
|
map that displays the ne se sw nw exits and room symbols.
|
|
|
|
</span><span style='color:#FFF'>#map flag asciivnums
|
|
</span><span style='color:#AAA'> Display room vnums if asciigraphics is enabled.
|
|
|
|
</span><span style='color:#FFF'>#map flag direction
|
|
</span><span style='color:#AAA'> Display an arrow on the map showing the direction of your
|
|
last movement command.
|
|
|
|
</span><span style='color:#FFF'>#map flag fast
|
|
</span><span style='color:#AAA'> Limit coordinate searches to a 50 room radius. Useful to
|
|
speed up map drawing and room creation on large maps.
|
|
|
|
</span><span style='color:#FFF'>#map flag nofollow
|
|
</span><span style='color:#AAA'> When you enter movement commands the map will no longer
|
|
automatically follow along. Useful for MSDP and GMCP
|
|
automapping scripts. When you use #map find in nofollow
|
|
mode it will store the exit command instead of the exit
|
|
name into the path.
|
|
|
|
</span><span style='color:#FFF'>#map flag pancake
|
|
</span><span style='color:#AAA'> Makes the map display rooms above or below you. You can use
|
|
#map color room </span><span style='color:#000'></span><span style='color:#FFF'> for a color gradient.
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>#map flag quiet
|
|
</span><span style='color:#AAA'> Silence map messages when creating new rooms through movement.
|
|
|
|
</span><span style='color:#FFF'>#map flag static
|
|
</span><span style='color:#AAA'> Will make the map static so new rooms are no longer
|
|
created when walking into an unmapped direction. Useful when
|
|
you're done mapping and regularly bump into walls accidentally
|
|
creating a new room. #map dig etc will still work.
|
|
|
|
</span><span style='color:#FFF'>#map flag symbolgraphics
|
|
</span><span style='color:#AAA'> Draw a 1x1 map using the defined room symbols.
|
|
|
|
</span><span style='color:#FFF'>#map flag terrain
|
|
</span><span style='color:#AAA'> Fill up empty space surrounding rooms with terrain symbols
|
|
|
|
</span><span style='color:#FFF'>#map flag vtgraphics
|
|
</span><span style='color:#AAA'> Enables vt line drawing on some terminals
|
|
|
|
</span><span style='color:#FFF'>#map flag vtmap
|
|
</span><span style='color:#AAA'> Will enable the vtmap which is shown in the top split
|
|
screen if you have one. You can create a 16 rows high top
|
|
screen by using '#split 16 1'.
|
|
|
|
</span><span style='color:#FFF'>#map get <option> <variable> [vnum]
|
|
</span><span style='color:#AAA'> Store a map value into a variable, if no vnum is given the
|
|
current room is used. Use 'all' as the option to store all
|
|
values as a table.
|
|
|
|
</span><span style='color:#FFF'>#map get roomexits <variable>
|
|
</span><span style='color:#AAA'> Store all room exits into variable.
|
|
|
|
</span><span style='color:#FFF'>#map global <room vnum>
|
|
</span><span style='color:#AAA'> Set the vnum of a room that contains global
|
|
exits, for example an exit named 'recall' that leads to the
|
|
recall location. The room can contain multiple exits, in case
|
|
there are multiple commands that are similar to recall.
|
|
|
|
</span><span style='color:#FFF'>#map goto <room vnum> [dig]
|
|
</span><span style='color:#AAA'> Takes you to the given room vnum, with the
|
|
dig argument a new room will be created if none exists.
|
|
|
|
</span><span style='color:#FFF'>#map goto <name> <exits> <desc> <area> <note> <terrain>
|
|
</span><span style='color:#AAA'> Takes you to the given room name, if you provide exits those
|
|
must match.
|
|
|
|
</span><span style='color:#FFF'>#map info [save]
|
|
</span><span style='color:#AAA'> Gives information about the map and room you are in. If the save
|
|
argument is given the map data is saved to the info[map] variable.
|
|
|
|
</span><span style='color:#FFF'>#map insert <direction> [roomflag]
|
|
</span><span style='color:#AAA'> Insert a room in the given direction. Most useful for inserting
|
|
void rooms.
|
|
|
|
</span><span style='color:#FFF'>#map jump <x> <y> <z>
|
|
</span><span style='color:#AAA'> Jump to the given coordinate, which is relative
|
|
to your current room.
|
|
|
|
</span><span style='color:#FFF'>#map landmark <name> <vnum> [description] [size]
|
|
</span><span style='color:#AAA'> Creates an alias to target the provided room vnum. The
|
|
description is optional and should be brief. The size
|
|
determines from how many rooms away the landmark can be
|
|
seen.
|
|
|
|
</span><span style='color:#FFF'>#map leave
|
|
</span><span style='color:#AAA'> Makes you leave the map. Useful when entering a maze. You
|
|
can return to your last known room using #map return.
|
|
|
|
</span><span style='color:#FFF'>#map legend <legend> [symbols|reset]
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>#map legend <legend> <index> [symbol]
|
|
</span><span style='color:#AAA'> There are several legends and sub-legends available for
|
|
drawing maps to suit personal preference and character sets.
|
|
Use #map legend all to see the legend as currently defined.
|
|
Use #map legend <legend> <reset> to set the default legend.
|
|
Use #map legend <legend> <character list> to create a custom
|
|
legend. Custom legends are stored in the map file and can be
|
|
saved and loaded using #map write and #map read.
|
|
|
|
</span><span style='color:#FFF'>#map link <direction> <room name> [both]
|
|
</span><span style='color:#AAA'> Links two rooms. If the both
|
|
argument and a valid direction is given the link is two ways.
|
|
|
|
</span><span style='color:#FFF'>#map list <name> <exits> <desc> <area> <note> <terrain>
|
|
</span><span style='color:#AAA'> Lists all matching rooms and their distance. The following
|
|
search keywords are supported.
|
|
|
|
{distance} <arg> will list rooms within given distance.
|
|
{roomarea} <arg> will list rooms with matching area name.
|
|
{roomdesc} <arg> will list rooms with matching room desc.
|
|
{roomexits} <arg> will list rooms with identical room exits.
|
|
Use * as an exit to ignore non pathdir exits.
|
|
{roomflag} <arg> will list rooms with matching room flags.
|
|
{roomid} <arg> will list rooms with identical id name.
|
|
{roomname} <arg> will list rooms with matching room name.
|
|
{roomnote} <arg> will list rooms with matching room note.
|
|
{roomterrain} <arg> will list rooms with matching room terrain.
|
|
{variable} <arg> will save the output to given variable.
|
|
|
|
</span><span style='color:#FFF'>#map map <rows> <cols> <append|overwrite|list|variable> <name>
|
|
</span><span style='color:#AAA'> Display a drawing of the map of the given height and width.
|
|
All arguments are optional. If {rows} or {cols} are set to {}
|
|
or {0} they will use the scrolling window size as the default.
|
|
If {rows} or {cols} are a negative number this number is
|
|
subtracted from the scrolling window size.
|
|
|
|
</span><span style='color:#FFF'>#map map <rows> <cols> draw <square>
|
|
</span><span style='color:#AAA'> Display a drawing of the map of the given height and width.
|
|
The square argument exists of 4 numbers formulating the top
|
|
left corner and bottom right corner of a square.
|
|
|
|
If you use {append|overwrite} the map is written to the specified
|
|
file name which must be given as the 4th argument.
|
|
If you use {list|variable} the map is saved to the specified
|
|
variable name.
|
|
|
|
</span><span style='color:#FFF'>#map move <direction>
|
|
</span><span style='color:#AAA'> This does the same as an actual movement command, updating your
|
|
location on the map and creating new rooms. Useful when you are
|
|
following someone and want the map to follow along. You will need
|
|
to create actions using '#map move', for this to work.
|
|
|
|
</span><span style='color:#FFF'>#map offset <row> <col> <row> <col>
|
|
</span><span style='color:#AAA'> Define the offset of the vtmap as a square. Without an argument
|
|
it defaults to the entire top split region.
|
|
|
|
</span><span style='color:#FFF'>#map read <filename>
|
|
</span><span style='color:#AAA'> Will load the given map file.
|
|
|
|
</span><span style='color:#FFF'>#map resize <size>
|
|
</span><span style='color:#AAA'> Resize the map, setting the maximum number of rooms.
|
|
|
|
</span><span style='color:#FFF'>#map return
|
|
</span><span style='color:#AAA'> Returns you to your last known room after leaving the map
|
|
or loading a map.
|
|
|
|
</span><span style='color:#FFF'>#map roomflag <flags> <get|on|off>
|
|
</span><span style='color:#AAA'>
|
|
</span><span style='color:#FFF'>#map roomflag avoid
|
|
</span><span style='color:#AAA'> When set, '#map find' will avoid a route leading
|
|
through that room. Useful for locked doors, etc.
|
|
</span><span style='color:#FFF'>#map roomflag block
|
|
</span><span style='color:#AAA'> When set the automapper will prevent movement into or through
|
|
the room. Useful for death traps.
|
|
</span><span style='color:#FFF'>#map roomflag hide
|
|
</span><span style='color:#AAA'> When set, '#map' will not display the map beyond
|
|
this room. When mapping overlapping areas or areas that aren't
|
|
build consistently you need this flag as well to stop
|
|
auto-linking, unless you use void rooms.
|
|
</span><span style='color:#FFF'>#map roomflag invis
|
|
</span><span style='color:#AAA'> When set the room will be colored with the INVIS color.
|
|
</span><span style='color:#FFF'>#map roomflag leave
|
|
</span><span style='color:#AAA'> When entering a room with this flag, you will
|
|
automatically leave the map. Useful when set at the entrance
|
|
of an unmappable maze.
|
|
</span><span style='color:#FFF'>#map roomflag noglobal
|
|
</span><span style='color:#AAA'> This marks a room as not allowing global
|
|
transportation, like norecall rooms that block recall.
|
|
</span><span style='color:#FFF'>#map roomflag void
|
|
</span><span style='color:#AAA'> When set the room becomes a spacing room that can
|
|
be used to connect otherwise overlapping areas. A void room
|
|
should only have two exits. When entering a void room you are
|
|
moved to the connecting room until you enter a non void room.
|
|
</span><span style='color:#FFF'>#map roomflag static
|
|
</span><span style='color:#AAA'> When set the room will no longer be autolinked
|
|
when walking around. Useful for mapping mazes.
|
|
|
|
</span><span style='color:#FFF'>#map run <room name> [delay]
|
|
</span><span style='color:#AAA'> Calculates the shortest path to the destination and walks you
|
|
there. The delay is optional and requires using braces. Besides
|
|
the room name a list of exits can be provided for more precise
|
|
matching.
|
|
|
|
</span><span style='color:#FFF'>#map set <option> <value> [vnum]
|
|
</span><span style='color:#AAA'> Set a map value for your current room, or given room if a room
|
|
vnum is provided.
|
|
|
|
</span><span style='color:#FFF'>#map sync <filename>
|
|
</span><span style='color:#AAA'> Similar to #map read except the current map won't be unloaded
|
|
or overwritten.
|
|
|
|
</span><span style='color:#FFF'>#map terrain <name> <symbol> [flag]
|
|
</span><span style='color:#AAA'> Set the terrain symbol and flag.
|
|
|
|
</span><span style='color:#FFF'>#map terrain <name> <symbol> [DENSE|SPARSE|SCANT]
|
|
</span><span style='color:#AAA'> Determine symbol density, omit for the default.
|
|
|
|
</span><span style='color:#FFF'>#map terrain <name> <symbol> [NARROW|WIDE|VAST]
|
|
</span><span style='color:#AAA'> Determine symbol spread range, omit for the default.
|
|
|
|
</span><span style='color:#FFF'>#map terrain <name> <symbol> [FADEIN|FADEOUT]
|
|
</span><span style='color:#AAA'> Determine symbol spread density, omit for the default.
|
|
|
|
</span><span style='color:#FFF'>#map terrain <name> <symbol> [DOUBLE]
|
|
</span><span style='color:#AAA'> You're using two characters for the symbol.
|
|
|
|
</span><span style='color:#FFF'>#map travel <direction> <delay>
|
|
</span><span style='color:#AAA'> Follows the direction until a dead end or an intersection is
|
|
found. Use braces around the direction if you use the delay,
|
|
which will add the given delay between movements.
|
|
Use #path stop to stop a delayed run.
|
|
|
|
</span><span style='color:#FFF'>#map undo
|
|
</span><span style='color:#AAA'> Will undo your last move. If this created a room or a link
|
|
they will be deleted, otherwise you'll simply move back a
|
|
room. Useful if you walked into a non-existent direction.
|
|
|
|
</span><span style='color:#FFF'>#map uninsert <direction>
|
|
</span><span style='color:#AAA'> Exact opposite of the insert command.
|
|
|
|
</span><span style='color:#FFF'>#map unlandmark <name>
|
|
</span><span style='color:#AAA'> Removes a landmark.
|
|
|
|
</span><span style='color:#FFF'>#map unlink <direction> [both]
|
|
</span><span style='color:#AAA'> Will remove the exit, this isn't two way so you can have the
|
|
properly display no exit rooms and mazes.
|
|
If you use the both argument the exit is removed two-ways.
|
|
|
|
</span><span style='color:#FFF'>#map unterrain <name>
|
|
</span><span style='color:#AAA'> Removes a terrain.
|
|
|
|
</span><span style='color:#FFF'>#map update [now]
|
|
</span><span style='color:#AAA'> Sets the vtmap to update within the next 0.1 seconds, or
|
|
instantly with the now argument.
|
|
|
|
</span><span style='color:#FFF'>#map vnum <low> [high]
|
|
</span><span style='color:#AAA'> Change the room vnum to the given number, if a range is
|
|
provided the first available room in that range is selected.
|
|
|
|
</span><span style='color:#FFF'>#map write <filename> [force]
|
|
</span><span style='color:#AAA'> Will save the map, if you want to save a map to a .tin file
|
|
you must provide the {force} argument.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PATH'>path</a>, <a href='#PATHDIR'>pathdir</a> and <a href='#SPEEDWALK'>speedwalk</a>.
|
|
<a name='MAPPING'></a>
|
|
|
|
</span><span style='color:#FF5'> MAPPING
|
|
|
|
|
|
</span><span style='color:#AAA'> TinTin++ has a powerful automapper that uses a room system similar to
|
|
Diku MUDs which means that odd map layouts and weird exit
|
|
configurations aren't a problem. The mapper provides tools to improve
|
|
the visual map display. For basic path tracking see #help PATH.
|
|
|
|
</span><span style='color:#FFF'> #map create [size]
|
|
|
|
</span><span style='color:#AAA'> This command creates the initial map. The size is 50,000 by default
|
|
and can be changed at any time with the #map resize command. If you
|
|
play a MUD that uses MSDP or GMCP to provide room numbers you'll have
|
|
to increase it to the highest reported room number. Increasing the
|
|
size of the map doesn't decrease performance.
|
|
|
|
</span><span style='color:#FFF'> #map goto <location>
|
|
|
|
</span><span style='color:#AAA'> When you create the map you are not automatically inside the map. By
|
|
default room number (vnum) 1 is created, so you can go to it using
|
|
#map goto 1. Once you are inside the map new rooms are automatically
|
|
created as you move around. Movement commands are defined with the
|
|
#pathdir command. By default n, ne, e, se, s, sw, w, nw, u, d are
|
|
defined.
|
|
|
|
</span><span style='color:#FFF'>#map map <rows> <cols> <append|overwrite|list|variable> <name>
|
|
|
|
</span><span style='color:#AAA'> To see the map you can use #map map. It's annoying to have to
|
|
constantly type #map map however. Instead it's possible to use #split
|
|
to display a vt100 map. To do so execute:
|
|
|
|
</span><span style='color:#FFF'>#split 16 1
|
|
</span><span style='color:#AAA'> #map flag vtmap on
|
|
|
|
The first command sets the top split lines to 16 and the bottom split
|
|
line to 1. If you want a smaller or larger map display you can use a
|
|
different value than 16.
|
|
|
|
If you don't need to display diagonal exits and prefer a more compact
|
|
look you can use #map flag AsciiGraphics off. This will enable the
|
|
standard display which uses UTF-8 box drawing characters, results may
|
|
vary depending on the font used.
|
|
|
|
If your terminal supports UTF-8 you can also give #map flag unicode on
|
|
a try.
|
|
|
|
If you want to display the map in a different location of the screen
|
|
use something like:
|
|
|
|
</span><span style='color:#FFF'>#split 0 1 0 -80
|
|
</span><span style='color:#AAA'> #map offset 1 81 -4 -1
|
|
|
|
This will display the map on the right side of the screen, if the
|
|
width of the screen is wide enough.
|
|
|
|
</span><span style='color:#FFF'>#map undo
|
|
|
|
</span><span style='color:#AAA'> If you accidentally walk into the wall on your MUD the mapper will
|
|
still create a new room. You can easily fix this mistake by using
|
|
#map undo. If you want to move around on the map without moving around
|
|
on the MUD you can use: #map move {direction}. To delete a room
|
|
manually you can use: #map delete {direction}. To create a room
|
|
manually you can use: #map dig {direction}.
|
|
|
|
</span><span style='color:#FFF'>#map write <filename>
|
|
|
|
</span><span style='color:#AAA'> You can save your map using #map write, to load a map you can use
|
|
#map read <filename>. You can return to the room you were in when
|
|
the map was last saved by using #map return. You can use #event to
|
|
automatically read and write the map on session start and end.
|
|
|
|
</span><span style='color:#FFF'>#map set <option> <value>
|
|
|
|
</span><span style='color:#AAA'> You can set the room name using #map set roomname <name>. You either
|
|
have to do this manually or create triggers to set the room name
|
|
automatically. Once the room name is set you can use #map goto with
|
|
the room name to visit it. If there are two rooms with the same name
|
|
#map goto will go to the most nearby room. If you want to always go
|
|
to the same room you should memorize the room number or create a
|
|
landmark.
|
|
|
|
</span><span style='color:#FFF'>#map landmark firstroom 1
|
|
|
|
</span><span style='color:#AAA'> You can further narrow down the matches by providing additional
|
|
arguments, for example:
|
|
|
|
</span><span style='color:#FFF'>#map goto {dark alley} {roomexits} {n;e} {roomarea} {Haddock Ville}
|
|
|
|
</span><span style='color:#AAA'> You can set the room weight using #map set roomweight {value}. The
|
|
weight by default is set to 1.0 and it represents the difficulty of
|
|
traversing the room. If you have a lake as an alternative route, and
|
|
traversing water rooms is 4 times slower than regular rooms, then you
|
|
could set the weight of the lake rooms to 4.0. If the lake is 3 rooms
|
|
wide the total weight is 12. If walking around the lake has a weight
|
|
less than 12 the mapper will go around the lake, if the weight is
|
|
greater than 12 the mapper will take a route through the lake.
|
|
|
|
You can set the room symbol using #map set roomsymbol {value}. The
|
|
symbol should be one, two, or three characters, which can be
|
|
colorized. You can for example mark shops with an 'S' and colorize the
|
|
'S' depending on what type of shop it is.
|
|
|
|
</span><span style='color:#FFF'>#map run <location> <delay>
|
|
|
|
</span><span style='color:#AAA'> The run command will have tintin find the shortest path to the given
|
|
location and execute the movement commands to get there. You can
|
|
provide a delay in seconds with floating point precision, for example:
|
|
|
|
</span><span style='color:#FFF'>#map run {dark alley} {0.5}
|
|
|
|
</span><span style='color:#AAA'> This will make you walk towards the nearest dark alley with 0.5 second
|
|
intervals. Typical MUDs accept commands at 0.25 second intervals.
|
|
|
|
</span><span style='color:#FFF'>#map insert {direction} {flag}
|
|
|
|
</span><span style='color:#AAA'> The insert command is useful for adding spacer rooms called void rooms.
|
|
Often rooms overlap, and by adding void rooms you can stretch out
|
|
exits. For example: #map insert north void. You cannot enter void rooms
|
|
once they've been created, so you'll have to use #map info in an
|
|
adjacent room to find the room vnum, then use #map goto {vnum} to
|
|
visit.
|
|
|
|
It's also possible to align rooms using void rooms. This is easily
|
|
done using #map insert north void.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a>, <a href='#PATH'>path</a> and <a href='#PATHDIR'>pathdir</a>.
|
|
<a name='MATH'></a>
|
|
|
|
</span><span style='color:#FF5'> MATH
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #math </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>expression</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Performs math operations and stores the result in a variable. The math
|
|
follows a C-like precedence, as follows, with the top of the list
|
|
having the highest priority.
|
|
|
|
Operators Priority Function
|
|
------------------------------------------------
|
|
! 0 logical not
|
|
~ 0 bitwise not
|
|
d 1 integer random dice
|
|
* 2 integer multiply
|
|
** 2 integer power
|
|
/ 2 integer divide
|
|
// 2 integer sqrt // 2 or cbrt // 3
|
|
% 2 integer modulo
|
|
+ 3 integer addition
|
|
- 3 integer subtraction
|
|
<< 4 bitwise shift
|
|
>> 4 bitwise shift
|
|
.. 4 integer range
|
|
> 5 logical greater than
|
|
>= 5 logical greater than or equal
|
|
< 5 logical less than
|
|
<= 5 logical less than or equal
|
|
== 6 logical equal (can use regex)
|
|
=== 6 logical equal (never regex)
|
|
!= 6 logical not equal (can use regex)
|
|
!== 6 logical not equal (never regex)
|
|
& 7 bitwise and
|
|
^ 8 bitwise xor
|
|
| 9 bitwise or
|
|
&& 10 logical and
|
|
^^ 11 logical xor
|
|
|| 12 logical or
|
|
? 13 logical ternary if (unfinished code)
|
|
: 14 logical ternary else
|
|
|
|
True is any non-zero number, and False is zero. Parentheses () have
|
|
highest precedence, so inside the () is always evaluated first.
|
|
|
|
Strings must be enclosed in " " or { } and in the case of an == or
|
|
!= operation a regex is performed with the regular expression in the
|
|
right-hand string. In the case of a <= or >= operation the alphabetic
|
|
order is compared.
|
|
|
|
The #if and #switch commands use #math. Several commands accepting
|
|
numeric input allow math operations as well, such as #delay.
|
|
|
|
Floating point precision is added by using the decimal . operator or
|
|
using #format with the %f flag character.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #math {heals} {$mana / 40}
|
|
Assuming there is a variable $mana, divides its value by 40 and stores
|
|
the result in $heals.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {^You receive %0 experience} {updatexp %0}
|
|
#alias updatexp {#math {xpneed} {$xpneed - %0}
|
|
Let's say you have a variable which stores xp needed for your next
|
|
level. The above will modify that variable after every kill, showing
|
|
the amount still needed.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {%0 tells %1}
|
|
{#if {{%0} == {Bubba} && $afk} {reply I'm away, my friend.}}
|
|
When you are away from keyboard, it will only reply to your friend.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATHEMATICS'>mathematics</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='MATHEMATICS'></a>
|
|
|
|
</span><span style='color:#FF5'> MATHEMATICS
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>Number operations
|
|
|
|
</span><span style='color:#AAA'> Operators Priority Function
|
|
------------------------------------------------
|
|
! 0 logical not
|
|
~ 0 bitwise not
|
|
* 1 integer multiply
|
|
** 1 integer power
|
|
/ 1 integer divide
|
|
// 1 integer sqrt // 2 or cbrt // 3
|
|
% 1 integer modulo
|
|
d 1 integer random dice roll
|
|
+ 2 integer addition
|
|
- 2 integer subtraction
|
|
<< 3 bitwise shift
|
|
>> 3 bitwise shift
|
|
> 4 logical greater than
|
|
>= 4 logical greater than or equal
|
|
< 4 logical less than
|
|
<= 4 logical less than or equal
|
|
== 5 logical equal
|
|
!= 5 logical not equal
|
|
& 6 bitwise and
|
|
^ 7 bitwise xor
|
|
| 8 bitwise or
|
|
&& 9 logical and
|
|
^^ 10 logical xor
|
|
|| 11 logical or
|
|
|
|
Operator priority can be ignored by using parentheses, for example
|
|
(1 + 1) * 2 equals 4, while 1 + 1 * 2 equals 3.
|
|
|
|
</span><span style='color:#FFF'>String operations
|
|
|
|
</span><span style='color:#AAA'> Operators Priority Function
|
|
------------------------------------------------
|
|
> 4 alphabetical greater than
|
|
>= 4 alphabetical greater than or equal
|
|
< 4 alphabetical less than
|
|
<= 4 alphabetical less than or equal
|
|
== 5 alphabetical equal using regex
|
|
!= 5 alphabetical not equal using regex
|
|
=== 5 alphabetical equal
|
|
!== 5 alphabetical not equal
|
|
|
|
Strings must be encased in double quotes or braces. The > >= < <=
|
|
operators perform basic string comparisons. The == != operators perform
|
|
regular expressions, with the argument on the left being the string,
|
|
and the argument on the right being the regex. For example
|
|
{bla} == {%*a} would evaluate as 1.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MATH'>math</a> and <a href='#REGEXP'>regexp</a>.
|
|
<a name='MESSAGE'></a>
|
|
|
|
</span><span style='color:#FF5'> MESSAGE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #message </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This will show the message status of all your lists if typed without an
|
|
argument. If you set for example VARIABLES to OFF you will no longer be
|
|
spammed when correctly using the #VARIABLE and #UNVARIABLE commands.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a> and <a href='#KILL'>kill</a>.
|
|
<a name='METRIC_SYSTEM'></a>
|
|
|
|
</span><span style='color:#FF5'> METRIC SYSTEM
|
|
|
|
</span><span style='color:#AAA'> The #math command supports using 1K, 1M, 1m, and 1u to make large and
|
|
small number handling a little easier. These are case sensitive. Only
|
|
four symbols are supported to keep false positives to a minimum.
|
|
|
|
</span><span style='color:#0AA'> ╭─────────┬────────┬─────────────────────────────────╮
|
|
│</span><span style='color:#FFF'> Name </span><span style='color:#0AA'>│</span><span style='color:#FFF'> Symbol </span><span style='color:#0AA'>│</span><span style='color:#FFF'> Factor</span><span style='color:#0AA'>│
|
|
├─────────┼────────┼─────────────────────────────────┤
|
|
│</span><span style='color:#FFF'> Mega </span><span style='color:#0AA'>│</span><span style='color:#FFF'> M </span><span style='color:#0AA'>│</span><span style='color:#FFF'> 1 000 000</span><span style='color:#0AA'>│
|
|
│</span><span style='color:#FFF'> Kilo </span><span style='color:#0AA'>│</span><span style='color:#FFF'> K </span><span style='color:#0AA'>│</span><span style='color:#FFF'> 1 000</span><span style='color:#0AA'>│
|
|
│</span><span style='color:#FFF'> </span><span style='color:#0AA'>│</span><span style='color:#FFF'> </span><span style='color:#0AA'>│</span><span style='color:#FFF'> </span><span style='color:#0AA'>│
|
|
│</span><span style='color:#FFF'> milli </span><span style='color:#0AA'>│</span><span style='color:#FFF'> m </span><span style='color:#0AA'>│</span><span style='color:#FFF'> 0.001</span><span style='color:#0AA'>│
|
|
│</span><span style='color:#FFF'> micro </span><span style='color:#0AA'>│</span><span style='color:#FFF'> u </span><span style='color:#0AA'>│</span><span style='color:#FFF'> 0.000 001</span><span style='color:#0AA'>│
|
|
╰─────────┴────────┴─────────────────────────────────╯
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#FORMAT'>format</a> and <a href='#MATH'>math</a>.
|
|
<a name='MOUSE'></a>
|
|
|
|
</span><span style='color:#FF5'> MOUSE
|
|
|
|
|
|
</span><span style='color:#AAA'> To enable xterm mouse tracking use #CONFIG MOUSE ON.
|
|
|
|
To see mouse events as they happen use #CONFIG MOUSE INFO. This
|
|
information can then be used to create mouse events with the #event
|
|
command and buttons with the #button command.
|
|
|
|
Visual buttons and pop-ups can be drawn on the screen with the #draw
|
|
command.
|
|
|
|
The input field can be changed and renamed using #screen inputregion,
|
|
which allows creating named events for enter handling.
|
|
|
|
Links can be created using the MSLP protocol which will generate link
|
|
specific events when clicked.
|
|
|
|
In order to copy/paste, most terminals require that you press the shift
|
|
key during selection.
|
|
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUTTON'>button</a>, <a href='#DRAW'>draw</a>, <a href='#EVENT'>event</a> and <a href='#MSLP'>mslp</a>.
|
|
<a name='MSDP'></a>
|
|
|
|
</span><span style='color:#FF5'> MSDP
|
|
|
|
|
|
</span><span style='color:#AAA'> MSDP (Mud Server Data Protocol) is part of the #port functionality.
|
|
See #help event for additional documentation as all MSDP events are
|
|
available as regular events.
|
|
|
|
Available MSDP events can be queried using the MSDP protocol
|
|
as described in the specification.
|
|
|
|
</span><span style='color:#5FF'>https://tintin.mudhalla.net/protocols/msdp
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#EVENT'>event</a> and <a href='#PORT'>port</a>.
|
|
<a name='MSLP'></a>
|
|
|
|
</span><span style='color:#FF5'> MSLP
|
|
|
|
|
|
</span><span style='color:#AAA'> MSLP (Mud Server Link Protocol) requires enabling #config mouse on,
|
|
and creating the appropriate LINK events.
|
|
|
|
The simplest link can be created by surrounding a keyword with the
|
|
\e[4m and \e[24m tags.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #substitute {\b{n|e|s|w|u|d}\b} {\e[4m%1\e[24m}
|
|
|
|
This would display 'Exits: n, e, w.' as 'Exits: n, e, w.'.
|
|
|
|
When clicked this would trigger the PRESSED LINK MOUSE BUTTON ONE
|
|
event of which %4 will hold the link command and %6 holds the
|
|
link name, which in the case of a simple link will be empty.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {PRESSED LINK MOUSE BUTTON ONE} {#send {%4}}
|
|
|
|
Keep in mind that if you change PRESSED to DOUBLE-CLICKED the link
|
|
will only work if the text does not scroll in between clicks.
|
|
|
|
If you want to create a complex link use an OSC code.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {\bsmurf\b} {\e]68;1;;say I hate smurfs!\a\e[4m%0\e[24m}
|
|
|
|
If you have the LINK event of the previous example set, the %4
|
|
argument will contain 'say I hate smurfs!'.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {\bgoblin\b} {\e]68;1;SEND;kill goblin\a\e[4m%0\e[24m}
|
|
|
|
Notice the previous instance of ;; has been replaced with ;SEND;
|
|
which will name the link. This will generate a named event.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {PRESSED LINK SEND MOUSE BUTTON ONE} {#send {%4}}
|
|
|
|
By naming links you can organize things a little bit better instead
|
|
of tunneling everything through the same event.
|
|
|
|
Keep in mind that the server is allowed to use \e]68;1;\a as well,
|
|
subsequently various security measures are in place.
|
|
|
|
To create secure links, which are filtered out when sent by a server,
|
|
you need to use \e]68;2;\a, and they instead trigger the SECURE LINK
|
|
event.
|
|
|
|
To create a link that is not underlined, use \e]4;24m text \e]24m.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {%* tells %*} {\e]68;2;EXEC;#cursor set tell %1 \a\e[4;24m%0\e[24m}
|
|
</span><span style='color:#FFF'> </span><span style='color:#AAA'> #event {PRESSED SECURE LINK EXEC MOUSE BUTTON ONE} {%4}
|
|
|
|
This would make you start a reply when clicking on a tell.
|
|
|
|
</span><span style='color:#FFF'>Website</span><span style='color:#AAA'>: https://tintin.mudhalla.net/protocols/mslp
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#EVENT'>event</a> and <a href='#PORT'>port</a>.
|
|
<a name='NOP'></a>
|
|
|
|
</span><span style='color:#FF5'> NOP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #nop </span><span style='color:#FFF'>{</span><span style='color:#AAA'>whatever</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Short for 'no operation', and is ignored by the client. It is useful
|
|
for commenting in your coms file, any text after the nop and before a
|
|
semicolon or end of line is ignored. You shouldn't put braces { } in it
|
|
though, unless you close them properly.
|
|
|
|
A valid alternative for #nop is #0.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: By using braces you can comment out multiple lines of code in a script
|
|
file.
|
|
|
|
For commenting out an entire trigger and especially large sections of
|
|
triggers you would want to use /* text */
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #nop This is the start of my script file.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#READ'>read</a>
|
|
<a name='PARSE'></a>
|
|
|
|
</span><span style='color:#FF5'> PARSE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #parse </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Like the loop statement, parse will loop from start to finish through
|
|
the given string. The value of the current character is stored in the
|
|
provided variable.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #parse {hello world} {char} {#show $char}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
|
|
<a name='PATH'></a>
|
|
|
|
</span><span style='color:#FF5'> PATH
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #path </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> create Will clear the path and start path mapping.
|
|
delete Will delete the last move of the path.
|
|
describe Describe the path and current position.
|
|
destroy Will clear the path and stop path mapping.
|
|
get Will get either the length or position.
|
|
goto Go the the start, end, or given position index.
|
|
insert Add the given argument to the path.
|
|
load Load the given variable as the new path.
|
|
map Display the map and the current position.
|
|
move Move the position forward or backward. If a number is given
|
|
the position is changed by the given number of steps.
|
|
run Execute the current path, with an optional floating point
|
|
delay in seconds as the second argument.
|
|
save Save the path to a variable. You must specify whether you
|
|
want to save the path 'forward' or 'backward'.
|
|
start Start path mapping.
|
|
stop Stop path mapping, can also abort #path run.
|
|
swap Switch the forward and backward path.
|
|
unzip Load the given speedwalk as the new path.
|
|
walk Take one step forward or backward.
|
|
zip Turn the path into a speedwalk.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #path ins {unlock n;open n} {unlock s;open s}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a>, <a href='#PATHDIR'>pathdir</a> and <a href='#SPEEDWALK'>speedwalk</a>.
|
|
<a name='PATHDIR'></a>
|
|
|
|
</span><span style='color:#FF5'> PATHDIR
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #pathdir </span><span style='color:#FFF'>{</span><span style='color:#AAA'>dir</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>reversed dir</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>coord</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> By default tintin sets the most commonly used movement commands
|
|
meaning you generally don't really have to bother with pathdirs.
|
|
Pathdirs are used by the #path and #map commands.
|
|
|
|
The first argument is a direction, the second argument is the reversed
|
|
direction. The reverse direction of north is south, etc.
|
|
|
|
The third argument is a spatial coordinate which is a power of two.
|
|
'n' is 1, 'e' is 2, 's' is 4, 'w' is '8', 'u' is 16, 'd' is 32. The
|
|
exception is for compound directions, whose value should be the sum
|
|
of the values of each cardinal direction it is composed of. For
|
|
example, 'nw' is the sum of 'n' and 'w' which is 1 + 8, so 'nw'
|
|
needs to be given the value of 9. This value is required for the
|
|
#map functionality to work properly.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #pathdir {ue} {dw} {18}
|
|
#pathdir {dw} {ue} {40}
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a pathdir with the #unpathdir command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a> and <a href='#PATH'>path</a>.
|
|
<a name='PCRE'></a>
|
|
|
|
</span><span style='color:#FF5'> PCRE
|
|
|
|
|
|
</span><span style='color:#AAA'> A regular expression, regex or regexp is a sequence of characters that
|
|
defines a search pattern. Since the 1980s, different syntaxes for
|
|
writing regular expressions exist, the two most widely used ones being
|
|
the POSIX syntax and the similar but more advanced Perl standard.
|
|
TinTin++ supports the Perl standard known as PCRE (Perl Compatible
|
|
Regular Expressions).
|
|
|
|
Regular expressions are an integral part of TinTin++, but keep in mind
|
|
that tintin doesn't allow you to use regular expressions directly,
|
|
instead it uses a simpler intermediate syntax that still allows more
|
|
complex expressions when needed.
|
|
|
|
Commands that utilize regular expressions are: action, alias, elseif,
|
|
gag, grep, highlight, if, kill, local, math, prompt, regexp, replace,
|
|
substitute, switch, variable and while. Several other commands use
|
|
regular expressions in minor ways. Fortunately the basics are very
|
|
easy to learn.
|
|
|
|
</span><span style='color:#5F5'> TinTin++ Regular Expression
|
|
|
|
</span><span style='color:#AAA'> The following support is available for regular expressions.
|
|
|
|
</span><span style='color:#FFF'> ^ </span><span style='color:#AAA'>match start of line.
|
|
</span><span style='color:#FFF'> $ </span><span style='color:#AAA'>match of end of line.
|
|
</span><span style='color:#FFF'> \ </span><span style='color:#AAA'>escape one character.
|
|
|
|
</span><span style='color:#FFF'> %1-%99 </span><span style='color:#AAA'>match of any text, stored in the corresponding index.
|
|
</span><span style='color:#FFF'> %0 </span><span style='color:#AAA'>should be avoided in the regex, contains all matched text.
|
|
</span><span style='color:#FFF'> { } </span><span style='color:#AAA'>embed a perl compatible regular expression, matches are stored.
|
|
</span><span style='color:#FFF'> %!{ } </span><span style='color:#AAA'>embed a perl compatible regular expression, matches are not stored.
|
|
|
|
[ ] . + | ( ) ? * are treated as normal text unless used within braces.
|
|
Keep in mind that { } is replaced with ( ) automatically unless %!{ }
|
|
is used.
|
|
|
|
</span><span style='color:#FFF'>TinTin++ Description POSIX
|
|
%a </span><span style='color:#AAA'>Match zero or more characters including newlines ([^\0]*?)
|
|
</span><span style='color:#FFF'> %A </span><span style='color:#AAA'>Match zero or more newlines ([\n]*?)
|
|
</span><span style='color:#FFF'> %c </span><span style='color:#AAA'>Match zero or more ansi color codes ((?:\e\[[0-9;]*m)*?)
|
|
</span><span style='color:#FFF'> %d </span><span style='color:#AAA'>Match zero or more digits ([0-9]*?)
|
|
</span><span style='color:#FFF'> %D </span><span style='color:#AAA'>Match zero or more non-digits ([^0-9]*?)
|
|
</span><span style='color:#FFF'> %i </span><span style='color:#AAA'>Matches become case insensitive (?i)
|
|
</span><span style='color:#FFF'> %I </span><span style='color:#AAA'>Matches become case sensitive (default) (?-i)
|
|
</span><span style='color:#FFF'> %s </span><span style='color:#AAA'>Match zero or more spaces ([\r\n\t ]*?)
|
|
</span><span style='color:#FFF'> %S </span><span style='color:#AAA'>Match zero or more non-spaces ([^\r\n\t ]*?)
|
|
</span><span style='color:#FFF'> %w </span><span style='color:#AAA'>Match zero or more word characters ([A-Za-z0-9_]*?)
|
|
</span><span style='color:#FFF'> %W </span><span style='color:#AAA'>Match zero or more non-word characters ([^A-Za-z0-9_]*?)
|
|
</span><span style='color:#FFF'> %? </span><span style='color:#AAA'>Match zero or one character (.??)
|
|
</span><span style='color:#FFF'> %. </span><span style='color:#AAA'>Match one character (.)
|
|
</span><span style='color:#FFF'> %+ </span><span style='color:#AAA'>Match one or more characters (.+?)
|
|
</span><span style='color:#FFF'> %* </span><span style='color:#AAA'>Match zero or more characters excluding newlines (.*?)
|
|
|
|
</span><span style='color:#5F5'>Ranges
|
|
|
|
</span><span style='color:#AAA'> If you want to match 1 digit use %+1d, if you want to match between 3
|
|
and 5 spaces use %+3..5s, if you want to match 1 or more word
|
|
characters use %+1..w, etc.
|
|
|
|
</span><span style='color:#5F5'>Variables
|
|
|
|
</span><span style='color:#AAA'> If you use %1 in an action to perform a match the matched string is
|
|
stored in the %1 variable which can be used in the action body.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #act {%1 says 'Tickle me'} {tickle %1}
|
|
|
|
If you use %2 the match is stored in %2, etc. If you use an unnumbered
|
|
match like %* or %S the match is stored at the last used index
|
|
incremented by one.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #act {%3 says '%*'} {#if {"%4" == "Tickle me"} {tickle %3}}
|
|
|
|
The maximum variable index is 99. If you begin an action with %* the
|
|
match is stored in %1. You should never use %0 in the trigger part of
|
|
an action, when used in the body of an action %0 contains all the parts
|
|
of the string that were matched.
|
|
|
|
To prevent a match from being stored use %!*, %!w, etc.
|
|
|
|
</span><span style='color:#5F5'>Perl Compatible Regular Expressions
|
|
|
|
</span><span style='color:#AAA'> You can embed a PCRE (Perl Compatible Regular Expression) using curley
|
|
braces { }, these braces are replaced with parentheses ( ) unless you
|
|
use %!{ }.
|
|
|
|
</span><span style='color:#5F5'>Or
|
|
|
|
</span><span style='color:#AAA'> You can separate alternatives within a PCRE using the | character.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #act {%* raises {his|her|its} eyebrows.} {say 42..}
|
|
|
|
</span><span style='color:#5F5'>Brackets
|
|
|
|
</span><span style='color:#AAA'> You can group alternatives and ranges within a PCRE using brackets.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #act {%* says 'Who is number {[1-9]}?} {say $number[%2] is number %2}
|
|
|
|
The example only triggers if someone provides a number between 1 and
|
|
9. Any other character will cause the action to not trigger.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #act {%* says 'Set password to {[^0-9]*}$} {say The password must
|
|
contain at least one number, not for security reasons, but just to
|
|
annoy you.} {4}
|
|
|
|
When the ^ character is used within brackets it creates an inverse
|
|
search, [^0-9] matches every character except for a number between 0
|
|
and 9.
|
|
|
|
</span><span style='color:#5F5'>Quantification
|
|
|
|
</span><span style='color:#AAA'> A quantifier placed after a match specifies how often the match is
|
|
allowed to occur.
|
|
|
|
</span><span style='color:#FFF'> ? </span><span style='color:#AAA'>repeat zero or one time.
|
|
</span><span style='color:#FFF'> * </span><span style='color:#AAA'>repeat zero or multiple times.
|
|
</span><span style='color:#FFF'> + </span><span style='color:#AAA'>repeat once or multiple times.
|
|
</span><span style='color:#FFF'> {n} </span><span style='color:#AAA'>repeat exactly n times, n must be a number.
|
|
</span><span style='color:#FFF'> {n,} </span><span style='color:#AAA'>repeat at least n times, n must be a number.
|
|
</span><span style='color:#FFF'> {n,o} </span><span style='color:#AAA'>repeat between n and o times, n and o must be a number.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #act {%* says 'Who is number {[1-9][0-9]{0,2}}?} {Say $number[%2] is
|
|
number %2}
|
|
|
|
The example only triggers if someone provides a number between 1 and
|
|
999.
|
|
|
|
</span><span style='color:#5F5'>Parantheses
|
|
|
|
</span><span style='color:#AAA'> TinTin Regular Expressions automatically add parenthesis, for example
|
|
%* translates to (.*?) in PCRE unless the %* is found at the start or
|
|
end of the line, in which cases it translates to (.*). Paranthesis in
|
|
PCRE causes a change in execution priority similar to mathematical
|
|
expressions, but parentheses also causes the match to be stored to a
|
|
variable.
|
|
|
|
When nesting multiple sets of parentheses each nest is assigned its
|
|
numerical variable in order of appearance.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #act {%* chats '{Mu(ha)+}'} {chat %2ha!}
|
|
|
|
If someone chats Muha you will chat Muhaha! If someone chats Muhaha
|
|
you will chat Muhahaha!
|
|
|
|
</span><span style='color:#5F5'>Lazy vs Greedy
|
|
|
|
</span><span style='color:#AAA'> By default regex matches are greedy, meaning {.*} will capture as much
|
|
text as possible.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #regex {bli bla blo} {^{.*} {.*}$} {#show Arg1=(&1) Arg2=(&2)}
|
|
|
|
This will display: Arg1=(bli bla) Arg2=(blo)
|
|
|
|
By appending a ? behind a regex it becomes lazy, meaning {.*?} will
|
|
capture as little text as possible.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #regex {bli bla blo} {^{.*?} {.*?}$} {#show Arg1=(&1) Arg2=(&2)}
|
|
|
|
This will display: Arg1=(bli) Arg2=(bla blo).
|
|
|
|
</span><span style='color:#5F5'>Escape Codes
|
|
|
|
</span><span style='color:#AAA'> PCRE support the following escape codes.
|
|
|
|
</span><span style='color:#FFF'> PCRE Description POSIX
|
|
\A </span><span style='color:#AAA'>Match start of string ^
|
|
</span><span style='color:#FFF'> \b </span><span style='color:#AAA'>Match word boundaries (^|\r|\n|\t| |$)
|
|
</span><span style='color:#FFF'> \B </span><span style='color:#AAA'>Match non-word boundaries [^\r\n\t ]
|
|
</span><span style='color:#FFF'> \c </span><span style='color:#AAA'>Insert control character \c
|
|
</span><span style='color:#FFF'> \d </span><span style='color:#AAA'>Match digits [0-9]
|
|
</span><span style='color:#FFF'> \D </span><span style='color:#AAA'>Match non-digits [^0-9]
|
|
</span><span style='color:#FFF'> \e </span><span style='color:#AAA'>Insert escape character \e
|
|
</span><span style='color:#FFF'> \f </span><span style='color:#AAA'>Insert form feed character \f
|
|
</span><span style='color:#FFF'> \n </span><span style='color:#AAA'>Insert line feed character \n
|
|
</span><span style='color:#FFF'> \r </span><span style='color:#AAA'>Insert carriage return character \r
|
|
</span><span style='color:#FFF'> \s </span><span style='color:#AAA'>Match spaces [\r\n\t ]
|
|
</span><span style='color:#FFF'> \S </span><span style='color:#AAA'>Match non-spaces [^\r\n\t ]
|
|
</span><span style='color:#FFF'> \t </span><span style='color:#AAA'>Insert tab character \t
|
|
</span><span style='color:#FFF'> \w </span><span style='color:#AAA'>Match letters, numbers, and underscores [A-Za-z0-9_]
|
|
</span><span style='color:#FFF'> \W </span><span style='color:#AAA'>Match non-letters, numbers, and underscores [^A-Za-z0-9_]
|
|
</span><span style='color:#FFF'> \x </span><span style='color:#AAA'>Insert hex character \x
|
|
</span><span style='color:#FFF'> \Z </span><span style='color:#AAA'>Match end of string $
|
|
</span><span style='color:#FFF'> \\ </span><span style='color:#AAA'>Match a backslash \\
|
|
|
|
\s matches one space, \s+ matches one or multiple spaces, the use
|
|
of {\s+} is required for this sequence to work in tintin, \s by
|
|
itself will work outside of a set of braces.
|
|
|
|
Use \% to forcibly match a literal % character.
|
|
|
|
</span><span style='color:#5F5'>Color triggers
|
|
|
|
</span><span style='color:#AAA'> To make matching easier text triggers (Actions, Gags, Highlights,
|
|
Prompts, and Substitutes) have their color codes stripped. If you
|
|
want to create a color trigger you must start the triggers with a ~
|
|
(tilde). To make escape codes visible use #config {convert meta} on.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {~\e[1;37m%1} {#var roomname %1}
|
|
|
|
If the room name is the only line on the server in bright white
|
|
white color trigger will save the roomname.
|
|
|
|
|
|
This covers the basics. PCRE has more options, most of which are
|
|
somewhat obscure, so you'll have to read a PCRE manual for additional
|
|
information.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a> and <a href='#PATH'>path</a>.
|
|
<a name='PORT'></a>
|
|
|
|
</span><span style='color:#FF5'> PORT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #port </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#FFF'>#port {init} {name} {port} {file}
|
|
</span><span style='color:#AAA'> Initilize a port session.
|
|
|
|
</span><span style='color:#FFF'>#port {call} {address} {port}
|
|
</span><span style='color:#AAA'> Connect to a remote socket.
|
|
|
|
</span><span style='color:#FFF'>#port {color} {color names}
|
|
</span><span style='color:#AAA'> Set the default color of port messages.
|
|
|
|
</span><span style='color:#FFF'>#port {dnd}
|
|
</span><span style='color:#AAA'> Do Not Disturb. Decline new connections
|
|
|
|
</span><span style='color:#FFF'>#port {group} {name} {group}
|
|
</span><span style='color:#AAA'> Assign a socket group.
|
|
|
|
</span><span style='color:#FFF'>#port {ignore} {name}
|
|
</span><span style='color:#AAA'> Ignore a socket
|
|
|
|
</span><span style='color:#FFF'>#port {info}
|
|
</span><span style='color:#AAA'> Display information about the port session.
|
|
|
|
</span><span style='color:#FFF'>#port {name} {name}
|
|
</span><span style='color:#AAA'> Change socket name.
|
|
|
|
</span><span style='color:#FFF'>#port {prefix} {text}
|
|
</span><span style='color:#AAA'> Set prefix before each message.
|
|
|
|
</span><span style='color:#FFF'>#port {send} {name|all} {text}
|
|
</span><span style='color:#AAA'> Send data to socket
|
|
|
|
</span><span style='color:#FFF'>#port {uninitialize}
|
|
</span><span style='color:#AAA'> Uninitialize the port session.
|
|
|
|
</span><span style='color:#FFF'>#port {who}
|
|
</span><span style='color:#AAA'> Show all connections
|
|
|
|
</span><span style='color:#FFF'>#port {zap} {name}
|
|
</span><span style='color:#AAA'> Close a connection
|
|
|
|
The port command is very similar to chat except that it creates a
|
|
new session dedicated to receiving socket connections at the given
|
|
port number without built-in support for a communication protocol.
|
|
|
|
You can init with 0 as the port number to create a dummy session.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#CHAT'>chat</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
|
|
<a name='PROMPT'></a>
|
|
|
|
</span><span style='color:#FF5'> PROMPT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #prompt </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>new text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>row #</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>col #</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Prompt is a feature for split window mode, which will capture a line
|
|
received from the server and display it on the status bar of your
|
|
split screen terminal. You would define <text> and <new text> the
|
|
same way as you would with #substitute.
|
|
|
|
The row number is optional and useful if you use a non standard split
|
|
mode. A positive row number draws #row lines from the top while a
|
|
negative number draws #row lines from the bottom. Without an argument
|
|
#prompt will write to the default split line, which is one row above
|
|
the input line, typically at row -2.
|
|
|
|
If the row number is set to 0, #prompt will behave like #substitute.
|
|
This is useful to let tintin know that a prompt was received so you
|
|
can use #config packet_patch with minimal interference.
|
|
|
|
The col number is optional and can be used to set the column index.
|
|
A positive col number draws the given number of columns from the left,
|
|
while a negative col number draws from the right. If you leave the
|
|
col number empty tintin will clear the row before printing at the
|
|
start of the row.
|
|
|
|
The #show command takes a row and col argument as well so it's also
|
|
possible to place text on your split lines using #show.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #prompt {[%*] %* (%*) > } {[%1] %2 (%3)}
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #prompt {[%*] %* (%*) > } {} {-2}
|
|
If the <new text> argument is left empty the original text is used,
|
|
including colors. Use {\} for a blank line.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See </span><span style='color:#FFF'>#help split</span><span style='color:#AAA'> for more information on split mode.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See </span><span style='color:#FFF'>#help substitute</span><span style='color:#AAA'> for more information on text
|
|
substitutions.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a prompt with the #unprompt command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#GAG'>gag</a>, <a href='#HIGHLIGHT'>highlight</a> and <a href='#SUBSTITUTE'>substitute</a>.
|
|
<a name='READ'></a>
|
|
|
|
</span><span style='color:#FF5'> READ
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #read </span><span style='color:#FFF'>{</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Reads a commands file into memory. The commands are merged with the
|
|
currently loaded commands. Duplicate commands are overwritten.
|
|
|
|
If you uses braces you can use several lines for each command. You
|
|
must match every { with a } for the read command to work.
|
|
|
|
You can comment out triggers using /* text */
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#LOG'>log</a>, <a href='#SCAN'>scan</a>, <a href='#TEXTIN'>textin</a> and <a href='#WRITE'>write</a>.
|
|
<a name='REGEXP'></a>
|
|
|
|
</span><span style='color:#FF5'> REGEXP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #regexp </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>expression</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>true</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>false</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Compares the string to the given regular expression.
|
|
|
|
The expression can contain escapes, and if you want to match a literal
|
|
\ character you'll have to use \\ to match a single backslash.
|
|
|
|
Variables are stored in &1 to &99 with &0 holding the matched
|
|
substring.
|
|
|
|
The #regex command is not a proper statement like #if, when using
|
|
#return or #break in the {true} argument it won't terminate any loop
|
|
the #regex command is nested within.
|
|
|
|
</span><span style='color:#FFF'> ^ </span><span style='color:#AAA'>force match of start of line.
|
|
</span><span style='color:#FFF'> $ </span><span style='color:#AAA'>force match of end of line.
|
|
</span><span style='color:#FFF'> \ </span><span style='color:#AAA'>escape one character.
|
|
</span><span style='color:#FFF'> %1-%99 </span><span style='color:#AAA'>lazy match of any text, available at %1-%99.
|
|
</span><span style='color:#FFF'> %0 </span><span style='color:#AAA'>should be avoided in triggers, and if left alone lists all matches.
|
|
</span><span style='color:#FFF'> { } </span><span style='color:#AAA'>embed a raw regular expression, matches are stored to %1-%99.
|
|
</span><span style='color:#FFF'> %!{ } </span><span style='color:#AAA'>embed a raw regular expression, matches are not stored.
|
|
|
|
</span><span style='color:#FFF'> </span><span style='color:#AAA'>[ ] . + | ( ) ? * are treated as normal text unlessed used within
|
|
</span><span style='color:#FFF'> </span><span style='color:#AAA'>braces. Keep in mind that { } is replaced with ( ) automatically
|
|
</span><span style='color:#FFF'> </span><span style='color:#AAA'>unless %!{ } is used.
|
|
|
|
Of the following the (lazy) match is available at %1-%99 + 1
|
|
|
|
</span><span style='color:#FFF'> %a </span><span style='color:#AAA'>match zero or more characters including newlines.
|
|
</span><span style='color:#FFF'> %A </span><span style='color:#AAA'>match zero or more newlines.
|
|
</span><span style='color:#FFF'> %c </span><span style='color:#AAA'>match zero or more ansi color codes.
|
|
</span><span style='color:#FFF'> %d </span><span style='color:#AAA'>match zero or more digits.
|
|
</span><span style='color:#FFF'> %D </span><span style='color:#AAA'>match zero or more non digits.
|
|
</span><span style='color:#FFF'> %s </span><span style='color:#AAA'>match zero or more spaces.
|
|
</span><span style='color:#FFF'> %S </span><span style='color:#AAA'>match zero or more non spaces.
|
|
</span><span style='color:#FFF'> %w </span><span style='color:#AAA'>match zero or more word characters.
|
|
</span><span style='color:#FFF'> %W </span><span style='color:#AAA'>match zero or more non word characters.
|
|
|
|
Experimental (subject to change) matches are:
|
|
|
|
</span><span style='color:#FFF'> %p </span><span style='color:#AAA'>match zero or more printable characters.
|
|
</span><span style='color:#FFF'> %P </span><span style='color:#AAA'>match zero or more non printable characters.
|
|
</span><span style='color:#FFF'> %u </span><span style='color:#AAA'>match zero or more unicode characters.
|
|
</span><span style='color:#FFF'> %U </span><span style='color:#AAA'>match zero or more non unicode characters.
|
|
|
|
If you want to match 1 digit use %+1d, if you want to match between 3
|
|
and 5 spaces use %+3..5s, if you want to match 0 or more word
|
|
characters use %+0..w, etc.
|
|
|
|
</span><span style='color:#FFF'> %+ </span><span style='color:#AAA'>match one or more characters.
|
|
</span><span style='color:#FFF'> %? </span><span style='color:#AAA'>match zero or one character.
|
|
</span><span style='color:#FFF'> %. </span><span style='color:#AAA'>match one character.
|
|
</span><span style='color:#FFF'> %* </span><span style='color:#AAA'>match zero or more characters.
|
|
|
|
</span><span style='color:#FFF'> %i </span><span style='color:#AAA'>matching becomes case insensitive.
|
|
</span><span style='color:#FFF'> %I </span><span style='color:#AAA'>matching becomes case sensitive (default).
|
|
|
|
The match is automatically stored to a value between %1 and %99
|
|
starting at %1 and incrementing by 1 for every regex. If you use
|
|
%15 as a regular expression, the next unnumbered regular expression
|
|
would be %16. To prevent a match from being stored use %!*, %!w, etc.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #regexp {bli bla blo} {bli {.*} blo} {#show &1}
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: Like an alias or function #regex has its own scope.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PCRE'>pcre</a> and <a href='#REPLACE'>replace</a>.
|
|
<a name='REPEAT'></a>
|
|
|
|
</span><span style='color:#FF5'> REPEAT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #</span><span style='color:#FFF'>[</span><span style='color:#AAA'>number</span><span style='color:#FFF'>] {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>..</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Sometimes you want to repeat the same command multiple times. This is
|
|
the easiest way to accomplish that.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #10 {buy bread}
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #2 {buy bread} {buy apple}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MATHEMATICS'>mathematics</a> and <a href='#STATEMENTS'>statements</a>.
|
|
<a name='REPLACE'></a>
|
|
|
|
</span><span style='color:#FF5'> REPLACE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #replace </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>oldtext</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>newtext</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Searches the given variable, replacing each occurrence of 'oldtext'
|
|
with 'newtext'. The 'oldtext' argument is a regular expression.
|
|
|
|
Variables are stored in &1 to &99 with &0 holding the entire matched
|
|
substring.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function rnd #math result 1d9;#replace test {%.} {@rnd{}}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='RETURN'></a>
|
|
|
|
</span><span style='color:#FF5'> RETURN
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #return </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This command can be used to break out of a command string being
|
|
executed.
|
|
|
|
If used inside a #function you can use #return with an argument to both
|
|
break out of the function and set the result variable.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a> and <a href='#WHILE'>while</a>.
|
|
<a name='RUN'></a>
|
|
|
|
</span><span style='color:#FF5'> RUN
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #run </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>shell command</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>file</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The run command works much like the system command except that it
|
|
runs the command in a pseudo terminal. The run command also creates
|
|
a session that treats the given shell command as a server. This
|
|
allows you to run ssh, as well as any other shell application, with
|
|
full tintin scripting capabilities. If a file name is given the file
|
|
is loaded prior to execution.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #run {somewhere} {ssh someone@somewhere.com}
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #run {something} {tail -f chats.log}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
|
|
<a name='SCAN'></a>
|
|
|
|
</span><span style='color:#FF5'> SCAN
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #scan </span><span style='color:#FFF'>{</span><span style='color:#AAA'>abort</span><span style='color:#FFF'>|</span><span style='color:#AAA'>csv</span><span style='color:#FFF'>|</span><span style='color:#AAA'>tsv</span><span style='color:#FFF'>|</span><span style='color:#AAA'>txt</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The scan command is a file reading utility.
|
|
|
|
</span><span style='color:#FFF'>#scan {abort}
|
|
</span><span style='color:#AAA'> This command must be called from with a SCAN event and will
|
|
abort the scan if one is in progress.
|
|
|
|
</span><span style='color:#FFF'>#scan {csv} <filename>
|
|
</span><span style='color:#AAA'> The scan csv command reads in a comma separated value file
|
|
without printing the content to the screen. Instead it triggers one
|
|
of two events.
|
|
|
|
The SCAN CSV HEADER event is triggered on the first line of the csv
|
|
file. The SCAN CSV LINE event is triggered on the second and each
|
|
subsequent line of the csv file. The %0 argument contains the entire
|
|
line, with %1 containing the first value, %2 the second value, etc,
|
|
all the way up to %99.
|
|
|
|
Values containing spaces must be surrounded with quotes, keep in mind
|
|
newlines within quotes are not supported. Use two quotes to print one
|
|
literal quote character.
|
|
|
|
</span><span style='color:#FFF'> #scan {dir} <filename> <variable>
|
|
|
|
</span><span style='color:#AAA'> The scan dir command will read the given filename or directory and
|
|
store any gathered information into the provided variable.
|
|
|
|
</span><span style='color:#FFF'> #scan {json} <filename> <variable>
|
|
</span><span style='color:#AAA'> The scan json command will read the given filename and store the data
|
|
in the provided tintin variable.
|
|
|
|
</span><span style='color:#FFF'>#scan {tsv} <filename>
|
|
|
|
</span><span style='color:#AAA'> The scan tsv <filename> command reads in a tab separated value file
|
|
without printing the content to the screen. Instead it triggers the
|
|
SCAN TSV HEADER event for the first line and SCAN TSV LINE for all
|
|
subsequent lines.
|
|
|
|
</span><span style='color:#FFF'>#scan {file} <filename> {commands}
|
|
|
|
</span><span style='color:#AAA'> The scan file command reads the given files and executes the
|
|
commands argument. &0 contains the raw content of the file and
|
|
&1 contains the plain content. &2 contains the raw byte size of the
|
|
file and &3 the plain byte size. &5 contains the line count.
|
|
|
|
</span><span style='color:#FFF'>#scan {txt} <filename>
|
|
|
|
</span><span style='color:#AAA'> The scan txt <filename> command reads in a file and sends its content
|
|
to the screen as if it was sent by a server. After using scan you can
|
|
use page-up and down to view the file.
|
|
|
|
This command is useful to convert ansi color files to html or viewing
|
|
raw log files.
|
|
|
|
Actions, highlights, and substitutions will trigger as normal, and it
|
|
is possible to create an action to execute #scan abort to prematurely
|
|
stop the scan.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#READ'>read</a> and <a href='#TEXTIN'>textin</a>.
|
|
<a name='SCREEN'></a>
|
|
|
|
</span><span style='color:#FF5'> SCREEN
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #screen </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The screen command offers a variety of screen manipulation
|
|
commands and utilities.
|
|
|
|
</span><span style='color:#FFF'>#screen blur
|
|
</span><span style='color:#AAA'> Move the terminal to the back of the stack.
|
|
|
|
</span><span style='color:#FFF'>#screen clear [all|scroll region|square] <args>
|
|
</span><span style='color:#AAA'> Provide 4 arguments defining the top left and bottom right corner
|
|
when erasing a square.
|
|
|
|
</span><span style='color:#FFF'>#screen focus
|
|
</span><span style='color:#AAA'> Move the terminal to the front of the stack.
|
|
|
|
</span><span style='color:#FFF'>#screen fullscreen [on|off]
|
|
</span><span style='color:#AAA'> Toggles fullscreen mode when used without an argument.
|
|
|
|
</span><span style='color:#FFF'>#screen get <option> <var>
|
|
</span><span style='color:#AAA'> Get various screen options and save them to <var>. Use #screen
|
|
get without an argument to see all available options.
|
|
|
|
</span><span style='color:#FFF'>#screen info
|
|
</span><span style='color:#AAA'> Debugging information.
|
|
|
|
</span><span style='color:#FFF'>#screen inputregion <square> [name]
|
|
</span><span style='color:#AAA'> Set the input region. The name argument is optional and can be
|
|
used to create named RECEIVED INPUT [NAME] events.
|
|
|
|
</span><span style='color:#FFF'>#screen load <both|label|title>
|
|
</span><span style='color:#AAA'> Reload the saved title, label, or both.
|
|
|
|
</span><span style='color:#FFF'>#screen minimize <on|off>
|
|
</span><span style='color:#AAA'> Minimize with on, restore with off.
|
|
|
|
</span><span style='color:#FFF'>#screen maximize [on|off]
|
|
</span><span style='color:#AAA'> Maximize with on, restore with off.
|
|
|
|
</span><span style='color:#FFF'>#screen move <height> <width>
|
|
</span><span style='color:#AAA'> Move the upper left corner of the terminal to pixel coordinate.
|
|
|
|
</span><span style='color:#FFF'>#screen raise <event>
|
|
</span><span style='color:#AAA'> This will raise several screen events with %1 and %2 arguments.
|
|
|
|
</span><span style='color:#FFF'>#screen refresh
|
|
</span><span style='color:#AAA'> Terminal dependant, may do nothing.
|
|
|
|
</span><span style='color:#FFF'>#screen rescale <height> <width>
|
|
</span><span style='color:#AAA'> Resize the screen to the given height and width in pixels.
|
|
|
|
</span><span style='color:#FFF'>#screen resize <rows> <cols>
|
|
</span><span style='color:#AAA'> Resize the screen to the given height and width in characters.
|
|
|
|
</span><span style='color:#FFF'>#screen save <both|label|title>
|
|
</span><span style='color:#AAA'> Save the title, label, or both.
|
|
|
|
</span><span style='color:#FFF'>#screen scroll <square>
|
|
</span><span style='color:#AAA'> Set the scrolling region, changes the split setting.
|
|
|
|
</span><span style='color:#FFF'>#screen set <both|label|title>
|
|
</span><span style='color:#AAA'> Set the title, label, or both. Only title works on Windows.
|
|
|
|
</span><span style='color:#FFF'>#screen swap
|
|
</span><span style='color:#AAA'> Swap the input and scroll region.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BELL'>bell</a>
|
|
<a name='SCREEN_READER'></a>
|
|
|
|
</span><span style='color:#FF5'> SCREEN READER
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #config </span><span style='color:#FFF'>{</span><span style='color:#AAA'>SCREEN READER</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>ON|OFF</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Screen reader mode is enabled by using #config screen on. One purpose
|
|
of the screen reader mode is to report to servers that a screen reader
|
|
is being used by utilizing the MTTS standard. The MTTS specification
|
|
is available at:
|
|
|
|
https://tintin.mudhalla.net/protocols/mtts
|
|
|
|
With the screen reader mode enabled TinTin++ will try to remove or
|
|
alter visual elements where possible.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CONFIG'>config</a>
|
|
<a name='SCRIPT'></a>
|
|
|
|
</span><span style='color:#FF5'> SCRIPT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #script </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>shell command</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The script command works much like the system command except that it
|
|
treats the generated echos as commands if no variable is provided.
|
|
|
|
This is useful for running php, perl, ruby, and python scripts. You
|
|
can run these scripts either from file or from within tintin if the
|
|
scripting language allows this.
|
|
|
|
If you provide a variable the output of the script is stored as a list.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {ruby -e 'print "#show hello world"'}
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {python -c 'print "#show hello world"'}
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {php -r 'echo "#show hello world"'}
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {path} {pwd};#show The path is $path[1].
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a> and <a href='#VARIABLE'>variable</a>.
|
|
<a name='SEND'></a>
|
|
|
|
</span><span style='color:#FF5'> SEND
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #send </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Sends the text directly to the server, useful if you want to start
|
|
with an escape code.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#TEXTIN'>textin</a>
|
|
<a name='SESSION'></a>
|
|
|
|
</span><span style='color:#FF5'> SESSION
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #session </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>host</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>port</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>file</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Starts a telnet session with the given name, host, port, and optional
|
|
file name. The name can be anything you want, except the name of an
|
|
already existing session, a number, or the keywords '+' and '-'.
|
|
|
|
If a file name is given the file is only read if the session
|
|
succesfully connects.
|
|
|
|
Without an argument #session shows the currently defined sessions.
|
|
|
|
If you have more than one session, you can use the following commands:
|
|
|
|
#session {-} Switch to the previous session.
|
|
#session {+} Switch to the next session.
|
|
#session {<number>} Switch to the given session. Session 0 is the
|
|
startup session, +1 the first, +2 the second, and
|
|
-1 is the last session. Sessions are (currently)
|
|
sorted in order of creation.
|
|
#gts Switch to the startup session. The name gts stands
|
|
for global tintin session.
|
|
#ats Switch to the active session. The name ats stands
|
|
for active tintin session.
|
|
not necessarily the calling session.
|
|
#{name} Activates to the session with the given name.
|
|
#{name} {command}: Executes a command with the given session without
|
|
changing the active session.
|
|
@<name>{text}: Parse text in the given session, substituting the
|
|
variables and functions, and print the result in
|
|
the current active session.
|
|
|
|
The startup session is named 'gts' and can be used for relog scripts.
|
|
Do keep in mind that tickers do not work in the startup session.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {SESSION DISCONNECTED} {#gts #delay 10 #ses %0 tintin.net 4321}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
|
|
<a name='SESSIONNAME'></a>
|
|
|
|
</span><span style='color:#FF5'> SESSIONNAME
|
|
|
|
</span><span style='color:#FFF'>Syntax</span><span style='color:#AAA'>: #[sessionname] </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> You can create multiple sessions with the #session command. By default
|
|
only one session is active, meaning commands you input are executed in
|
|
the active session. While all sessions receive output, only output sent
|
|
to the active session is displayed.
|
|
|
|
When you create a session with the #session command you must specify a
|
|
session name, the session name, prepended with a hashtag, can be used
|
|
to activate the session when used without an argument. If an argument
|
|
is given it will be executed by that session as a command, the session
|
|
will not be activated.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #ses one tintin.net 23;#ses two tintin.net 23;#one;#two grin
|
|
|
|
This will create two sessions, the session that was created last (two
|
|
in this case) will be automatically activated upon creation. Using
|
|
#one, session one is activated. Using #two grin, the grin social will
|
|
be executed by session two, session one will remain the active session.
|
|
|
|
If you send a variable to another session it will be substituted before
|
|
being passed. If you want the variable value of the receiving session
|
|
to be used you need to use '$${variable}' to properly escape it.
|
|
|
|
</span><span style='color:#FFF'>Syntax</span><span style='color:#AAA'>: @[sessionname]</span><span style='color:#FFF'>{</span><span style='color:#AAA'>substitution</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> If you want to pull the value of a variable from another session you
|
|
can do so in a similar way as you would use a #function call. Using
|
|
#showme {@two{$test}} in session one would print the value of $test,
|
|
as defined by session two.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SUSPEND'>suspend</a>
|
|
<a name='SHOWME'></a>
|
|
|
|
</span><span style='color:#FF5'> SHOWME
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #show </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>row</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>col</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Display the string to the terminal, do not send to the server. Useful
|
|
for status, warnings, etc. The {row} and col number are optional and
|
|
work the same way as the row number of the #prompt trigger.
|
|
|
|
Actions can be triggered by the show command. If you want to avoid
|
|
this from happening use: #line ignore #show {<string>}.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #tick {TICK} {#delay 50 #show 10 SECONDS TO TICK!!!} {60}
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: The #prompt helpfile contains more information on using the
|
|
option {row} and {col} arguments.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#DRAW'>draw</a>, <a href='#ECHO'>echo</a>, <a href='#GREP'>grep</a> and <a href='#PROMPT'>prompt</a>.
|
|
<a name='SNOOP'></a>
|
|
|
|
</span><span style='color:#FF5'> SNOOP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #snoop </span><span style='color:#FFF'>{</span><span style='color:#AAA'>session name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>|</span><span style='color:#AAA'>scroll</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> If there are multiple sessions active, this command allows you to
|
|
monitor what is going on in the sessions that are not currently active.
|
|
The line of text from other sessions will be prefixed by the session's
|
|
name.
|
|
|
|
You can toggle off snoop mode by executing #snoop a second time.
|
|
|
|
By using the scroll argument you will snoop the session's scroll
|
|
region which will overwrite the display of whichever session is active.
|
|
You can change the size and location of a session's scroll region by
|
|
using the #split and #screen scrollregion commands.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
|
|
<a name='SPEEDWALK'></a>
|
|
|
|
</span><span style='color:#FF5'> SPEEDWALK
|
|
|
|
</span><span style='color:#5F5'> SPEEDWALK V1
|
|
|
|
</span><span style='color:#AAA'> Speedwalking allows you to enter multiple directions without using
|
|
semicolons. Directions should be prefixed with a number and will be
|
|
executed the given number of times.
|
|
|
|
You can enable speedwalking with #CONFIG {SPEEDWALK} {ON}.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: Without speedwalk, you have to type:
|
|
</span><span style='color:#FFF'>s;s;w;w;w;w;w;s;s;s;w;w;w;n;n;w
|
|
</span><span style='color:#AAA'> With speedwalk, you only have to type:
|
|
</span><span style='color:#FFF'>2s5w3s3w2nw
|
|
|
|
</span><span style='color:#AAA'> </span><span style='color:#5F5'>SPEEDWALK V2
|
|
|
|
</span><span style='color:#AAA'> Modern MUDs have increasingly adopted the use of diagonal exits, like
|
|
ne, nw, sw, and se. To make accomodations for this the #map and #path
|
|
command no longer interpret nesw as a speedwalk and require this to
|
|
be written as 1n1e1s1w, which then allows 2ne2e to execute ne;ne;e;e.
|
|
|
|
Speedwalks entered on the input line continue to use the v1 system.
|
|
|
|
The #path load command is backward compatible with v1 speedwalks and
|
|
to load v2 speedwalks the #path unzip command needs to be used, unless
|
|
the speedwalk was saved using #path save in which case a v2 compatible
|
|
format is used that can also contain timing data.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #path unzip 3n1e2nw
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #map move 3ne1d
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#KEYPAD'>keypad</a>, <a href='#MAPPING'>mapping</a> and <a href='#REPEAT'>repeat</a>.
|
|
<a name='SPLIT'></a>
|
|
|
|
</span><span style='color:#FF5'> SPLIT
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #split </span><span style='color:#FFF'>{</span><span style='color:#AAA'>top bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>bottom bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>left bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>right bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>input bar</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This option requires for your terminal to support VT100 emulation.
|
|
|
|
#split allows the creation of a top status bar, a left and right status
|
|
bar, a scrolling region, a bottom status bar, and an input line.
|
|
|
|
</span><span style='color:#0AA'>╭────────────────────────────────╮
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>│</span><span style='color:#FFF'> top bar </span><span style='color:#0AA'> │
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>├──────┬──────────────────┬──────┤
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>│</span><span style='color:#FFF'> left </span><span style='color:#0AA'>│</span><span style='color:#FFF'> scrolling </span><span style='color:#0AA'>│</span><span style='color:#FFF'> right</span><span style='color:#0AA'>│
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>│</span><span style='color:#FFF'> bar </span><span style='color:#0AA'>│</span><span style='color:#FFF'> region </span><span style='color:#0AA'>│</span><span style='color:#FFF'> bar </span><span style='color:#0AA'>│
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>├──────┴──────────────────┴──────┤
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>│</span><span style='color:#FFF'> bottom bar </span><span style='color:#0AA'> │
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>├────────────────────────────────┤
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>│</span><span style='color:#FFF'> input bar </span><span style='color:#0AA'> │
|
|
</span><span style='color:#AAA'> </span><span style='color:#0AA'>╰────────────────────────────────╯
|
|
|
|
</span><span style='color:#AAA'> By default the bottom status bar is filled with dashes --- and
|
|
subsequently it is also known as the split line. The scrolling
|
|
region is also known as the main screen and this is where all
|
|
incoming text is displayed by default.
|
|
|
|
If you use #split without an argument it will set the height of the
|
|
top status bar to 0 lines and the bottom status bar to 1 line.
|
|
|
|
If you use #split with one argument it will set the height of the top
|
|
status bar to the given number of lines and the bottom status bar will
|
|
be set to 1 line.
|
|
|
|
If you use two arguments the first argument is the height of the top
|
|
status bar and the second argument the height of the bottom status bar.
|
|
|
|
The third and fourth argument are optional and default to 0.
|
|
|
|
The fifth argument is optional and sets the size of the input bar, it
|
|
defaults to 1.
|
|
|
|
It is possible to use negative arguments in which case the bar width
|
|
defines the minimum width of the scrolling region.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #split 0 0
|
|
This will create a split screen with just a scrolling region and an
|
|
input line. Great for the minimalist.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #split 1 1 0 -80
|
|
This will create a split screen with a single line top and bottom
|
|
bar. The left bar has a width of 0 while the right bar will be of
|
|
variable width. If for example the screen is 100 columns wide, 80
|
|
columns will be used for the scrolling region, leaving a right bar
|
|
with a width of 20 columns.
|
|
|
|
To avoid displaying problems it's suggesed to use #prompt to capture
|
|
the prompt sent by the MUD.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can display text on the split line(s) with the #prompt and
|
|
#show {line} {row} commands.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove split mode with the #unsplit command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#PROMPT'>prompt</a> and <a href='#SHOWME'>showme</a>.
|
|
<a name='SSL'></a>
|
|
|
|
</span><span style='color:#FF5'> SSL
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ssl </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>host</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>port</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>file</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Starts a secure socket telnet session with the given name, host, port,
|
|
and optional file name.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
|
|
<a name='STATEMENTS'></a>
|
|
|
|
</span><span style='color:#FF5'> STATEMENTS
|
|
|
|
|
|
</span><span style='color:#AAA'> TinTin++ knows the following statements.
|
|
|
|
#break
|
|
#case {value} {true}
|
|
#continue
|
|
#default {commands}
|
|
#else {commands}
|
|
#elseif {expression} {true}
|
|
#foreach {list} {variable} {commands}
|
|
#if {expression} {true}
|
|
#loop {min} {max} {variable} {commands}
|
|
#parse {string} {variable} {commands}
|
|
#return {value}
|
|
#switch {expression} {commands}
|
|
#while {expression} {commands}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MATHEMATICS'>mathematics</a>, <a href='#PCRE'>pcre</a> and <a href='#REPEAT'>repeat</a>.
|
|
<a name='SUBSTITUTE'></a>
|
|
|
|
</span><span style='color:#FF5'> SUBSTITUTE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #substitute </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>new text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Allows you to replace text from the server with the new text.
|
|
|
|
The %1-%99 variables can be used to capture text and use it as part of
|
|
the new output.
|
|
|
|
Color codes can be used to color the new text, to restore the color to
|
|
that of the original line the <900> color code can be used.
|
|
|
|
If only one argument is given, all active substitutions that match the
|
|
argument are displayed. Wildcards can be used, see '#help regex' for
|
|
additional information on that subject.
|
|
|
|
If no argument is given, all subs are displayed.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {Zoe} {ZOE}
|
|
Any instance of Zoe will be replaced with ZOE.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {~\e[0;34m} {\e[1;34m}
|
|
Replace generic dark blue color codes with bright blue ones.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {%1massacres%2} {<018>%1<118>MASSACRES<018>%2}
|
|
Replace a line containing 'massacres' with 'MASSACRES' in red.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help action', for more information about triggers.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help colors', for more information.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a substitution with the #unsubstitute command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#GAG'>gag</a>, <a href='#HIGHLIGHT'>highlight</a> and <a href='#PROMPT'>prompt</a>.
|
|
<a name='SUBSTITUTIONS'></a>
|
|
|
|
</span><span style='color:#FF5'> SUBSTITUTIONS
|
|
|
|
</span><span style='color:#AAA'> TinTin++ will perform various types of substitions as detailed below.
|
|
|
|
</span><span style='color:#5F5'> Variables
|
|
|
|
</span><span style='color:#FFF'>$ & * @</span><span style='color:#AAA'> All variable and function names must begin with an alphabetic
|
|
character, followed by any combination of alphanumeric characters and
|
|
underscores.
|
|
|
|
</span><span style='color:#FFF'>$</span><span style='color:#AAA'> The dollar sign is used to retrieve the value of a variable.
|
|
|
|
</span><span style='color:#FFF'>&</span><span style='color:#AAA'> The ampersand sign is used to retrieve the index of a variable.
|
|
|
|
</span><span style='color:#FFF'>*</span><span style='color:#AAA'> The astrix sign is used to retrieve the name of a variable.
|
|
|
|
</span><span style='color:#FFF'>@</span><span style='color:#AAA'> The at sign is used for functions.
|
|
|
|
</span><span style='color:#FFF'>[ ]</span><span style='color:#AAA'> Brackets are used for nested variables which function as an
|
|
associative array. Associative arrays are also known as tables and
|
|
maps. Regex can be used within brackets to match multiple variables.
|
|
|
|
</span><span style='color:#FFF'>+ -</span><span style='color:#AAA'> The plus and minus signs are used to access variables by their index,
|
|
with the first variable having index +1, and the last variable
|
|
having index -1. Variables are ordered alphanumerically.
|
|
|
|
All variables and functions can be escaped by doubling the sign,
|
|
like $$variable_name or @@function_name. To escape a variable
|
|
twice use $$$var_name. One escape is removed each time tintin
|
|
needs to substitute a variable or function.
|
|
|
|
</span><span style='color:#5F5'> Arguments
|
|
|
|
</span><span style='color:#FFF'>%0 - %99</span><span style='color:#AAA'> The percent sign followed by a number is used for arguments by the
|
|
following triggers:
|
|
|
|
alias, action, button, event, function, prompt, and substitute.
|
|
|
|
</span><span style='color:#FFF'>&0 - &99</span><span style='color:#AAA'> The ampersand sign followed by a number is used for arguments in the
|
|
regex and replace commands.
|
|
|
|
All trigger and command arguments can be escaped by doubling the
|
|
sign like %%1 or &&1. One escape is removed each time tintin
|
|
substitutes trigger or command arguments. To escape three times
|
|
triple the sign like %%%1, etc.
|
|
|
|
</span><span style='color:#5F5'> Colors
|
|
|
|
</span><span style='color:#FFF'><000></span><span style='color:#AAA'> Three alphanumeric characters encapsulated by the less- and greater-
|
|
than signs are used for 4 and 8 bit color codes.
|
|
|
|
</span><span style='color:#FFF'><0000></span><span style='color:#AAA'> Either a B (background) or F (foreground) followed by three
|
|
hexadecimal characters encapsulated by < > signs are used for 12
|
|
bit color codes. Requires truecolor capable terminal.
|
|
|
|
</span><span style='color:#FFF'><0000000></span><span style='color:#AAA'> Either a B (background) or F (foreground) followed by six
|
|
hexadecimal characters encapsulated by < > signs are used for 24
|
|
bit color codes. Requires truecolor capable terminal.
|
|
|
|
More information is available at #help color.
|
|
|
|
</span><span style='color:#5F5'> Escapes
|
|
|
|
</span><span style='color:#FFF'>\ </span><span style='color:#AAA'> The back slash is used to escape a character. All available options
|
|
are listed at #help escape. Escapes are typically escaped when text
|
|
leaves the client, by being sent to a server, the shell, being
|
|
displayed on the screen, or being processed as part of a regex.
|
|
Escapes try to mimic escapes in PCRE when possible.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#ESCAPE_CODES'>escape_codes</a> and <a href='#PCRE'>pcre</a>.
|
|
<a name='SUSPEND'></a>
|
|
|
|
</span><span style='color:#FF5'> SUSPEND
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cursor suspend
|
|
|
|
Temporarily suspends tintin and returns you to your shell. To
|
|
return to tintin, type 'fg' at the shell prompt.
|
|
|
|
While suspended your tintin sessions will freeze. To keep a
|
|
suspended session running use the #daemon command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SESSIONNAME'>sessionname</a>
|
|
<a name='SWITCH'></a>
|
|
|
|
</span><span style='color:#FF5'> SWITCH
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #switch </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>arguments</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The switch command works similar to the switch statement in other
|
|
languages. When the 'switch' command is encountered its body is parsed
|
|
and each 'case' command found will be compared to the conditional
|
|
argument of the switch and executed if there is a match.
|
|
|
|
When comparing strings both the switch and case arguments must be
|
|
enclosed in quote characters.
|
|
|
|
If the 'default' command is found and no 'case' statement has been
|
|
matched the default command's argument is executed.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #switch {1d4} {#case 1 cackle;#case 2 smile;#default giggle}
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#STATEMENTS'>statements</a>
|
|
<a name='SYSTEM'></a>
|
|
|
|
</span><span style='color:#FF5'> SYSTEM
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #system </span><span style='color:#FFF'>{</span><span style='color:#AAA'>command</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Executes the command specified as a shell command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DETACH'>detach</a>, <a href='#SCRIPT'>script</a> and <a href='#RUN'>run</a>.
|
|
<a name='TAB'></a>
|
|
|
|
</span><span style='color:#FF5'> TAB
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #tab </span><span style='color:#FFF'>{</span><span style='color:#AAA'>word</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Adds a word to the tab completion list, alphabetically sorted.
|
|
|
|
If no tabs are defined tintin will use the scrollback buffer for auto
|
|
tab completion.
|
|
|
|
Tabbing behavior can be modified with the #cursor tab command which
|
|
by default is bound to the tab key.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro \t #cursor tab list scrollback caseless forward
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a tab with the #untab command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#CURSOR'>cursor</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a> and <a href='#SPEEDWALK'>speedwalk</a>.
|
|
<a name='TEXTIN'></a>
|
|
|
|
</span><span style='color:#FF5'> TEXTIN
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #textin </span><span style='color:#FFF'>{</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>delay</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Textin allows the user to read in a file, and send its contents
|
|
directly to the server. Useful for doing online creation, or message
|
|
writing.
|
|
|
|
The delay is in seconds and takes a floating point number which is
|
|
cumulatively applied to each outgoing line.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SCAN'>scan</a> and <a href='#SEND'>send</a>.
|
|
<a name='TICKER'></a>
|
|
|
|
</span><span style='color:#FF5'> TICKER
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ticker </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>interval in seconds</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Executes given command every # of seconds. Floating point precision
|
|
for the interval is allowed. A ticker cannot fire more often than
|
|
10 times per second.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: Tickers don't work in the startup session.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a ticker with the #unticker command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DELAY'>delay</a> and <a href='#EVENT'>event</a>.
|
|
<a name='TIME'></a>
|
|
|
|
</span><span style='color:#FF5'> TIME
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #format </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>%t</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> The %t format specifier of the #format command allows printing dates
|
|
using the strftime() format specifiers. By default the time stamp used
|
|
is the current time, if you want to print a past or future date use:
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #format </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>%t</span><span style='color:#FFF'>} {{</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>epoch time</span><span style='color:#FFF'>}}
|
|
|
|
</span><span style='color:#AAA'> The current epoch time value is obtained using #format {time} {%T}.
|
|
|
|
When using %t the argument should contain strftime format specifiers.
|
|
Below are some common specifiers, see man strftime for the full list.
|
|
|
|
%a Abbreviated name of the day of the week (mon ... sun).
|
|
%A Full name of the day of the week. (Monday ... Sunday)
|
|
%b Abbreviated name of the month (Jan ... Dec)
|
|
%B Full name of the month. (January ... December)
|
|
%C 2 digit numeric century. (19 ... 20)
|
|
%d 2 digit numeric day of the month (01 ... 31)
|
|
%H 2 digit numeric 24-hour clock hour. (00 ... 23)
|
|
%I 2 digit numeric 12-hour clock hour. (01 ... 12)
|
|
%j 3 digit numeric day of the year (001 ... 366)
|
|
%m 2 digit numeric month of the year (01 ... 12)
|
|
%M 2 digit numeric minute of the hour (00 ... 59)
|
|
%p Abbreviated 12 hour clock period (AM ... PM)
|
|
%P Abbreviated 12 hour clock period (am ... pm)
|
|
%S 2 digit numeric second of the minute (00 ...59
|
|
%u 1 digit numeric day of the week (1 ... 7)
|
|
%U 2 digit numeric Sunday week of the year (00 ... 53
|
|
%w 1 digit numeric day of the week (0 ... 6)
|
|
%W 2 digit numeric Monday week of the year (00 ... 53
|
|
%y 2 digit numeric year. (70 ... 38)
|
|
%Y 4 digit numeric year. (1970 ... 2038)
|
|
%z 5 digit timezone offset. (-1200 ... +1400)
|
|
%Z Abbreviated name of the time zone. (CET, GMT, etc)
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#EVENT'>event</a> and <a href='#FORMAT'>format</a>.
|
|
<a name='TRIGGERS'></a>
|
|
|
|
</span><span style='color:#FF5'> TRIGGERS
|
|
|
|
</span><span style='color:#AAA'> All available triggers in TinTin++ are displayed when you use the #info
|
|
command without an argument. All of them are written to file when you
|
|
use the #write command, except commands, histories, and paths.
|
|
|
|
Triggers can be disabled with the #ignore command. The #message
|
|
command can be used to disable messages generated or related to the
|
|
corresponding trigger, though this is generally not needed.
|
|
|
|
The #debug command will generate useful debugging information for the
|
|
corresponding trigger when enabled. The #info command can be used on
|
|
triggers to generate additional information that might be of use.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #info event on
|
|
|
|
When #info event is set to on you will see when most events are raised.
|
|
Since this can get rather spammy some of the events won't generate
|
|
messages, unless you have an event in the same category set already.
|
|
|
|
</span><span style='color:#5F5'> Text triggers
|
|
|
|
</span><span style='color:#AAA'> When a block of text arrives from the host it is split into individual
|
|
lines, and all action, prompt, gag, substitute, and highlight triggers
|
|
are checked for each line. Only one action can trigger per line, while
|
|
the other triggers can trigger multiple times.
|
|
|
|
</span><span style='color:#5F5'> Packet fragmentation
|
|
|
|
</span><span style='color:#AAA'> MUDs that send long blurbs of text, don't have MCCP support, have a bad
|
|
connection, or a combination of all three, will deliver broken packets.
|
|
This can cause triggers to not fire, as well as displaying problems if
|
|
#split is enabled.
|
|
|
|
To mitigate this you can use </span><span style='color:#FFF'>#config packet_patch 0.5</span><span style='color:#AAA'>.
|
|
|
|
TinTin++ will automatically enable packet patching if the IAC GA or IAC
|
|
EOR telnet sequences are used to mark the end of the prompt. A MUD can
|
|
negotiate the EOR option: https://tintin.mudhalla.net/protocols/eor
|
|
|
|
In addition #prompt can be used to make packet patching less noticable.
|
|
|
|
</span><span style='color:#5F5'> Color triggers
|
|
|
|
</span><span style='color:#AAA'> By default most color, control, and vt100 codes are stripped from
|
|
incoming text before being ran through the trigger engine. To create
|
|
a trigger that runs on the unstripped text, the regular expression in
|
|
the trigger should start with a ~.
|
|
|
|
To view control codes you can use </span><span style='color:#FFF'>#config convert_meta on</span><span style='color:#AAA'> which will
|
|
translate both input and output codes to PCRE escape sequences.
|
|
|
|
</span><span style='color:#5F5'> Multi-line triggers
|
|
|
|
</span><span style='color:#AAA'> If an action or substitution contains the \n sequence it will be
|
|
turned into a multi-line trigger. A multi-line trigger is executed on
|
|
incoming blocks of text from the MUD, and they will not trigger if the
|
|
regular expression spans more than one block. You can visualize
|
|
incoming blocks by using the following event:
|
|
|
|
#event {RECEIVED OUTPUT} {#echo <058>%+80h BLOCK}
|
|
|
|
Since the %* expression does not capture the \n sequence it is required
|
|
to use %a to capture multiple lines. To capture the start of the block
|
|
use \A and for the end use \Z. You can use ^ and $ to capture the
|
|
start and end of a line.
|
|
|
|
Multi-line triggers trigger before regular triggers. Multiple
|
|
multi-line actions can trigger per block, and each multi-line action
|
|
can trigger multiple times per block. Packet fragmentation is not
|
|
currently handled.
|
|
|
|
Multi-line triggers are experimental and subject to change.
|
|
|
|
</span><span style='color:#5F5'> Input triggers
|
|
|
|
</span><span style='color:#AAA'> The alias, history and pathdir triggers are checked for each line of
|
|
input. The macro and tab triggers are checked for key presses.
|
|
|
|
</span><span style='color:#5F5'> Time triggers
|
|
|
|
</span><span style='color:#AAA'> The delay, path, and ticker triggers will execute at a set timed
|
|
interval.
|
|
|
|
</span><span style='color:#5F5'> Substitution triggers
|
|
|
|
</span><span style='color:#AAA'> The function and variable triggers will generally execute right
|
|
before the final processing of a line of text.
|
|
|
|
</span><span style='color:#5F5'> Mouse triggers
|
|
|
|
</span><span style='color:#AAA'> The button trigger is checked for each mouse input. #config mouse
|
|
must be set to on to enable mouse tracking.
|
|
|
|
</span><span style='color:#5F5'> Event triggers
|
|
|
|
</span><span style='color:#AAA'> Events can be used for a wide variety of pre-defined triggers.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PCRE'>pcre</a>, <a href='#SUBSTITUTIONS'>substitutions</a> and <a href='#ESCAPE_CODES'>escape_codes</a>.
|
|
<a name='VARIABLE'></a>
|
|
|
|
</span><span style='color:#FF5'> VARIABLE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #variable </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>text to fill variable</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Variables differ from the %0-99 arguments in the fact that you can
|
|
specify a full word as a variable, and they stay in memory for the
|
|
full session unless they are changed. They can be saved in the
|
|
coms file, and can be set to different values if you have two or
|
|
more sessions running at the same time. Variables are global for
|
|
each session and can be accessed by adding a $ before the variable
|
|
name.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {target} {#var target %0}
|
|
#alias {x} {kick $target}
|
|
|
|
The name of a variable must exist of only letters, numbers and
|
|
underscores in order to be substituted. If you do not meet these
|
|
requirements do not panic, simply encapsulate the variable in braces:
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #variable {cool website} {https://tintin.mudhalla.net}
|
|
#chat I was on ${cool website} yesterday!.
|
|
|
|
Variables can be escaped by adding additional $ signs.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #var test 42;#showme $$test
|
|
|
|
Variables can be nested using brackets:
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #var hp[self] 34;#var hp[target] 46
|
|
|
|
You can see the first nest of a variable using $variable[+1] and the
|
|
last nest using $variable[-1]. Using $variable[-2] will report the
|
|
second last variable, and so on. To show all indices use *variable[].
|
|
To show all values use $variable[]. To show all values from index 2
|
|
through 4 use $variable[+2..4].
|
|
|
|
Nested variables are also known as tables, table generally being used
|
|
to refer to several variables nested within one specific variable.
|
|
|
|
It's possible to use regular expressions.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show {Targets starting with the letter A: $targets[A%*]
|
|
|
|
To disable using regular expressions start the match with '='.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show {A target literally defined as A%*: $targets[=A%*]
|
|
|
|
To see the internal index of a variable use &<variable name>. To see
|
|
the size of a table you would use: &targets[] or &targets[%*]. A non
|
|
existent nested variable will report itself as 0.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show {Number of targets starting with A: &targets[A%*]
|
|
|
|
In some scripts you need to know the name of a nested variable. This
|
|
is also known as the key, and you can get it using *variable. For
|
|
example *target[+1]. To get the first variable's name use *{+1}.
|
|
|
|
It's also possible to declare a table using brace notation. Using
|
|
#var hp[self] 34 is the equivalent of #var {hp} {{self}{34}}. This
|
|
also allows merging tables. #var hp[self] 34;#var hp[target] 46 is
|
|
the equivalent of #var {hp} {{self}{34} {target}{46}} as well as
|
|
#var {hp} {{self}{34}} {{target}{46}} or if you want to get creative
|
|
the equivalent of #var hp[self] 34;#var {hp} {$hp} {{target}{46}}.
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a variable with the #unvariable command.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a> and <a href='#SCRIPT'>script</a>.
|
|
<a name='WHILE'></a>
|
|
|
|
</span><span style='color:#FF5'> WHILE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #while </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> This command works similar to a 'while' statement in other languages.
|
|
|
|
When a 'while' command is encourated, the conditional is evaluated,
|
|
and if TRUE (any non-zero result) the commands are executed. The
|
|
'while' loop will be repeated indefinitely until the conditional is
|
|
FALSE or the #BREAK or #RETURN commands are found.
|
|
|
|
The 'while' statement is only evaluated if it is read, so you must
|
|
nest it inside a trigger, like an alias or action.
|
|
|
|
The conditional is evaluated exactly the same as in the 'math' command.
|
|
|
|
</span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #math cnt 0;#while {$cnt < 20} {#math cnt $cnt + 1;say $cnt}
|
|
|
|
</span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help math', for more information.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#STATEMENTS'>statements</a>
|
|
<a name='WRITE'></a>
|
|
|
|
</span><span style='color:#FF5'> WRITE
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #write </span><span style='color:#FFF'>{</span><span style='color:#AAA'><filename></span><span style='color:#FFF'>} {</span><span style='color:#AAA'>[FORCE]</span><span style='color:#FFF'>}
|
|
|
|
</span><span style='color:#AAA'> Writes all current actions, aliases, subs, highlights, and variables
|
|
to a command file, specified by filename.
|
|
|
|
By default you cannot write to .map files to prevent accidentally
|
|
overwriting a map file. Use the FORCE argument to ignore this
|
|
protection.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#LOG'>log</a>, <a href='#READ'>read</a>, <a href='#SCAN'>scan</a> and <a href='#TEXTIN'>textin</a>.
|
|
<a name='ZAP'></a>
|
|
|
|
</span><span style='color:#FF5'> ZAP
|
|
|
|
</span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #zap {[session]}
|
|
|
|
Kill your current session. If there is no current session, it will
|
|
cause the program to terminate. If you provide an argument it'll zap
|
|
the given session instead.
|
|
|
|
</span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a> and <a href='#SSL'>ssl</a>.
|