
İ

action              alias               al2variable         all
antisubstitute      bell                boss                cd
char                chr                 clearprompt         cr
decrypt             delimiter           echo                encrypt
end                 fclose              feof                fgets
fopen               forall              fputs               fread
fseek               function            fwrite              gag
GBfilter            getitemnr           getlistlength       help
highlight           history             if                  ifexist
ifmatch             ignore              info                killall
log                 loop                macro               map
mark                math                message             nop
ord                 path                pathdir             pause
ping2               presub              purge               purist
raw                 read                redraw              remove
rename              result              retab               return
revstring           savepath            session             setprompt
showme              sleep               slow                snoop
speedwalk           split               stripansi           strlen
strncmp             strstr              substitute          strrchr
substr              suspend             system              syscat
sysecho             tabadd              tabdelete           tablist
tabsave             telnet              textin              tick
tickoff             tickset             ticksize            tolower/toLower
toggle              togglesubs          toupper/toUpper     unaction
unalias             unantisubstitute    unfunction          ungag
unhighlight         unmacro             unpath              unpurist
unsplit             unsubstitute        unvariable          variable
var2alias           verbatim            version             wildcard
wizlist             write               writesession        zap


~ALIAS

ʽ #alias {}  {ȡ}
˵ #alias ɼдΪ #ali, #al
      {}  е { } ʡԡ
      {ȡ} еֻһʱʡԣ򲻿ɡ
      ÷ֺ ; 
      ע˵ƣûٶ{ }͡
ôһΪһalias
      пб%0 - %9%0ȡaliasв֣
      %1ΪһʣԴơûбʱdefaultΪ%0

      #alias {cc} {chat* %0}                  ( = #al cc chat*  )
      룺cc* hi waiter xine    ( waiter xine һ)
      ʾΪ
      ġ˫ֱȭӻ÷˸Ҿλˣ

      #alias da1 {cc kiss %1;cc pure %2;cc cat %3}
      룺da1 xine miaom panj
      ʾΪ
      ġӻ÷һ£ϣ
      ġô۾Ż翣(@_@)
      ġֻСèԵĻ

      #al walk1 {#4 south;climb;#6 east;#2 say Oh, I am so tired}
      ǸȥĳضطaliasЪЪŷɧOh, I am so             tired#n ʾͬһظ n Σn Ϊ


 1. #alias
     гaliases
 2. #alias *ch*
     гк ch Ϊֵaliases
     #alias b*
     г b ͷaliases
 3. #unalias ( ȡ )

~AL2VARIABLE

ʽ:     #al2var {variable_to_assigne} {alias_to_convert}

:     #alias test_alias {tell chitchat hi;tell chitchat question}
          #al2var test_var test_alias
 test_var : {tell chitchat hi;tell chitchat question}
ôǿ԰ alias ɱӦȻ var2alias תµ alias.

See also: var2alias, variable, alias


~ACTION

ʽ#action {} {Ӧ} {Ȩ}
˵#action ɼдΪ#act #ac
             Уñ%0-9һЩַȻڷӦС
            ȨΪʮȣ01......90Ҫģ9Ҫġ
                    û趨Ȩdefaultֵ5
            紥ǰһ ^ ֻԴ˴Ϊ׵вŻᴥ˷Ӧ
                    
ôܵĳضֻʽʱԤ趨ķӦͻᱻִС

        #action {˵} {#nop} {2}
        #ac {^ӻ÷˵%0} {chat  $0} {1}
            ôʱ
                    ˵ȥ˭Ҳ䷹أ
                    ӻ÷˵˺ʣȥҰɣ
                    ˵ ӻ÷˵˺ʣȥҰɣ
            ӦΪ
                     ġ(Nut)˺ʣȥҰɣ
            ͣ
                    ˵ĻִеһӦ #nop˼ۻ˵
                            ʲôᴥκȨ 2 (磺3, 4, 5...) 
                    ӻ÷˵Ļִ chat $0Ϊ˴Ȩǰһ
                    һ仰ִеһӦ#nopΪڶ
                            ֻײŻӦ


1. #action
    гж˵Ĵ
2. #action  *˵*
    га ˵ ΪֵĴ
3. #unaction ( ȡ ), #nop ( ִָ )


~ALL

ʽ #all {}
ôͬһ͵ִsession

         #all chat* laugh
         ʾִsessionĽɫͬʱƵЦ

~ANTISUBSTITUTE

format:      #antisubstitute {string}
             #antisubstitute string

Will cause any line that contains the string specified to not be checked for
substitutes and gags.  The ^ char starting a string will tell the client to
only antisubstitute lines that START with the string specified.

examples:
#antisub {^You}
any line starting with 'You' will not be checked for subs.
#antisub {^You%0hit.}
lines that start with 'You', and also contain 'hit.' will not be subbed.
#antisub {annihilate}
any line that contains the word 'annihilate' will not be subbed.

~BELL

format:       #bell [level=5]
							#bell threshold [threshold]

sends a beep to your terminal when level>=threshold.
default level and threshold are all 5.

              #bell option [option] [frequency] [duration]
This option is for windows only: 0: soundcard, 1: speaker.
For speaker, user can specify the frequency (all) and duration (not for 95/98/Me) of the beep.

example:
#action {tells you} {#bell}
#action {you are in danger!!!} {#bell 9}
In normal case, both action will chime you.

Now you only want the 2nd case to send u a beep:
#bell threshold 6
Since #bell == #bell 5 is below the threshold 6, only
the second action will send a real beep.

~BOSS

ʽ#boss []

ӱϰ
ôе ytin ڣ File ѡѡȼ ESC  #boss
            ٿһµytinڽָĴڡ
       #boss ʱ룬ʾشʱҪͬ롣
      Unix ֻͳһַڸǵǰĻԲ

~CHAR

ʽ#char {ϲ}
ô¶ ytin ʼ #

         #char /
             Ӵ˺н / ʼ #磺/alias
         /char #
              ytin ʼΪ # 
ע⣺ tintinrc  script ļʱһ
һԶΪʼ


~CHR

format:       #chr {string} {number}

example:
#chr {ctrlG} {7}
This will assign ascii char 7 to variable ctrlG, when u send out
$ctrlG, u actually send out a beep (^G).

another example:
#chr {_ESC} {39}
#var {_RED} {${_ESC}[31m}

This will assign 27 (Escape key, or ^[) to variable _ESC,
and assing ^[[33m, which is ansi color of RED, to variable _RED.

let you convert
~CR

format:              #cr

Sends a carriage return to the session.  Useful for aliases that nees carriage
returns.

~CTOI

format:              #ctoi {x} {y}

converts chinese GB code y to digits, also converts chinese direction
east/west et al to e,w,s,n,...
Can be disabled in compile option. (-DCHINESE)
#example: #ctoi {x} {ǧİʮһ}
x will be 3451

~DECRYPT
ʽ               #decrypt <ַ>

 #encrypt ַܹܲ͵ MUD. ֻһ򵥱
ӣ
             #encrypt security
yTin ʾ LY,[CC7ZLIH
ļԱȽϰȫ
             #var passwd {LY,[CC7ZLIH}
 MUD ʱ action 룺
             #decrypt $passwd
decrypt һ session вִгһΣԼܺõ
ļֻܵ½ mud, ٽĶ롣 (ٴǿ
ֻһ˼ǰ룬Ҳ޷ȡ롣)

~DELIMITER

ʽ               #delimiter [<ַ>]

趨 item ķָ

See also: getlistlength, getitemnr

~ECHO

format:       #echo

Echo is used to see what actions are being triggered.  #echo toggles this
feature on and off.

~ENCRYPT

ʽ       #encrypt <>
yTin ʾܺ롣

See also: decrypt

~END

format:       #end

terminate tintin++ and return to unix.  On most systems, ctrl-C has the same
effect.

~HELP

format:       #help [command]

get a listing of commands, or get help and a specific command.

~HIGHLIGHT

format:       #highlight [{type}] [{string}]
              #highlight [type] [{string}]

The [] signify optional arguments.

The higlight command is used to allow you to highlight strings of text from
the mud.  The possible types are bold, reverse, faint, italic, blink, or
a number between 1 and 8.  The numbers correspond to colors 1 through 8
of your color pallette.

New to v1.5, you can now use the color names as well as the old convention of
#'s for colors.  Valid color names include:

red, blue, cyan, green, yellow, magenta, white, grey, black, brown, charcoal,
light red, light blue, light cyan, light magenta, light green, b red, b blue,
b cyan, b green, b yellow, b magenta, b white, b grey, b black, b brown,
b charcoal, b light red, b light blue, b light cyan, b light magenta,
b light green, bold, faint, blink, italic, reverse

The %0-9 variables can be used as 'wildcards' that will match with any text.
They are useful for highlighting a complete line.
You may start the string to highlight with a ^ to only highlight text
if it begins the line.

Note: This command is only compatible with ANSI/VT100 terminals or emulators.

examples:
#high {reverse} {Valgar}
print every occurrence of 'Valgar' in reverse video
#high {6} {%0tells you%1}
print every complete line that contains 'tells you' in color 6
#high bold {^You}
boldface any 'You' that starts a line
#high {red, blink} {Grimne}
each time the word Grimne appeared, it's be shown in a blinking red color.

~HISTORY

format:        #history

The history command will display a listing of the most recent keyboard
input.

~IF

format:        #if {conditional} {command(s)}

The if command is one of the most powerful commands added since TINTINv3.
It works similar to an if statement in other languages, and is loosely 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 command(s) are executed.  The if statement is
only evaluated if it is read, so you must nest the if statement inside
another statement (most likely an action command).  The conditional is
evaluated exactly the same as in the math command, only instead of storing
the result, the result is used to determine whether to execute the
command(s).  '#help math' for more information.

*!* Warning *!*:  #if can only compare numerical values at this time.  It can't
be used to compare a set of strings (as of yet at least).

examples:
#action {%0 gives you %1 gold coins} {#if {%%1>5000} {thank %%0}}
if someone gives you more than 5000 coins, thank them.
the %%1 and %%0 belong to the action, and not to the if, and that is why
the double % are needed.
#action {^<hp:%0 } {#if {%%0<100} {flee}}
If your status prompt is of the form <hp:100 ma:50 mo:100>, this action
will get your hit points, compare them to 100, if less than 100, flee

~IGNORE

ʽ#ignore
      ɼдΪ #ig
Դ
ôϻ趨Ĵ (action) һιأٴΪһ
            ֹأ˷ʱرմ
NEW: ڲǰ״̬ʱþֵ
     #ignore 1  رմ
     #ignore 0  

~INFO

format:                #info

Displays the number of actions, aliases, variables, substitues,
antisubstitutes, and highlights for the current session.  If no session
is active, then the statistics on the defaults are given.

~KILLALL

format:                #killall

Killall deletes all aliases, actions, subs, antisubs, highlights, variables
in one fell swoop.  Useful now, so you don't have to exit tintin++ to
load up a new coms file.

~LOG

ʽ#log {filename} [{option}]
¼

ô鶼¼һļСٴμ #log ֹͣ
            ¼

Example:
#log 1.log            <== #OK. LOGGING..... (RAWMODE=0)
#log 2.log +          <== #OK. LOGGING..... (RAWMODE=0 APPEND) -- log appended to file
#log                  <== #OK. LOGGING TURNED OFF.
#log 1.raw 1          <== #OK. LOGGING..... (RAWMODE=1) -- logs TELNET sequence as well
#log 2.raw 1+         <== #OK. LOGGING..... (RAWMODE=1 APPEND) -- guess ;-)

~LOOP

format:        #loop {start,finish} {command(s)}

Like a for-next loop, will loop from start to finish incrementing or
decrementing by 1 each time through.  The value of the loop variable is
places in %0, and can be used in the command(s).  If start>finish, it will
loop backwards.

examples:
#loop {1,3} {get all %0.corpse}
equivalent to the following:
  get all 1.corpse;get all 2.corpse;get all 3.corpse
#loop {3,1} {drop %0.key}
equivalent to
  drop 3.key;drop 2.key;drop 1.key

~MACRO

format:        #macro {ֱʾ} { macro}
               #macro 1

ӣ
#macro {67, 47} {go west}
#macro {24, 47} {go east}
ǰ߱ʾ Numlock ʱּ 7  go west, ߱ʾ
Numlock ʱͬ go east. Ŀǰ֧ ctrl/alt/shift
״̬顣

#macro 1   ==> ̬Լ̵ֱ esc ظ״̬

: unmacro
ע Unix µ macro Ƚϸӣĥú windows ¼ݸЩ

~MAP

format:        #map {direction}

Will add a direction to the end of the current path.  Useful for mapping
while following someone.

example:

#action {$leader leaves %0.} {#map {%%0}}
if the person stored in $leader leaves the room, the direction is added
to the end of the path.

~MARK

format:        #mark

Clear the path list and start the new path at your current location.

~MATH

format:        #math {variable} {expression}

Performs math functions and stored 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                    Function
------------------------------------------------
!                            logical not
*                            integer multiply
/                            integer divide
+                            integer addition
-                            integer subtraction
>                            greater than (result is non-zero or zero)
>=                           greater than or equal (result is non-zero or zero)
<                            less than (result is non-zero or zero)
<=                           less than or equal (result is non-zero or zero)
= or ==                      equals (result is non-zero or zero)
!=                           not equal (result is non-zero or zero)
& or &&                      logical and (result is non-zero or zero)
| or ||                      logical or (result is non-zero or zero)

True is any non-zero number, and False is zero.  In the expression, you may
use T and F as true and false.  Parentheses () have highest precedence,
so inside the parentheses is always evaluated first.

examples:
#math {heals} {$mana/40}
Assuming there is a variable $mana, divide its value by 40 and store the
result in $heals.
#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.

~MESSAGE

format:        #message {type}

This will toggle off and on the messages dealing with a certain type of
command.  The possible message types are alias, action, antisub, sub
variable, and highlight.  This is very helpful if you are using
#math and #if, and setting a lot of variables, so you don't keep getting
the Variable Set messages.

example:
#message {variable}
toggles whether messages dealing with variables will be shown.
#message {variable} {1}
toggle it to be TRUE.

~NOP

ʽ#nop {ִ}

ǲָ
ô1.  ACTION еľ#nop ʾaction
                ִС
            2. ôЩͻ¼

         #nop {aliasǺΣյģ#alias kiss kill}

~ORD

format:        #ord {variable} {string}

Converts the 1st character of string to its ascii code and assign it
to variable. See similar Perl function ord().

~PING2

ʽ:        #ping2 [0]

Pseudo ping, using telnet sequence TIMING(0x06).
#ping 0 to force reset upon network timeout.

~PATH

format:        #path

Show your current path.

~PATHDIR

format:               #pathdir {odd_dir} {what speedwalk should interpret it as}

New for v1.5, this command will allow those player who play on muds that
have diag./odd directions to use speedwalk.

example:
#pathdir {nw} {nw}
each time {nw} is excountered in the speedwalk, tintin++ will send a {nw} to
the mud.

~PAUSE

ʽ#pause {n}
            n   Ϊλn ΪС
ôͬʱͳÿһʱʾ

         #pause 5.5
             ʱΪ 5.5  롣
         #10 haha
             haha ÿ 5.5 ʾһΣܼ 10 Ρ

1. #pauseʾĿǰ pause ״̬
2. #pause 0ر pause 
3. ָ#sleep, #purge


~PRESUB

format:        #presub

Toggle whether actions are processed before substitutes, or after.  With
presub on, actions are performed on the substituted buffer, and if
you are gagging heavily, it will increase the speed of execution.
There are also many times you don't want to check for actions on
lines you have gagged, and this will allow that.

~PURGE

format: #purge

ʽ#purge

ָ

ôֹͣ #pause ( #sleepδ) ͵

        #pause 1
        #100 kiss miaom
        ˣϽ #purge ԰ûͳȥ kiss ջ
(δӣԺſ)
        #sleep 10;exercise 2000
            ϵͳϢ 10 exercise 2000 ִС
           ڼ 10 ڣ #purge ϵͳϢȡ
                   exercise 2000 Ҳȡ

~PURIST

format: #purist

This currently works for Windows version or split mode under Unix version.
Disable the default "local echo" mode. Commands typed will not show locally.

See also: #unpurist

~RAW

ʽ         #raw

ô         #raw test          <= ֻ "test", 󲻼 \n
ӣ         #func chr {#chr _ {%%0};#res $_}
							 #raw @chr{4}       <= will send ctrl-D (^D ʮ ascii  4)
               #raw @chr{27}      <= will send ESC
               #raw @chr{1}d      <= send ctrl-A, d ...
         #toggle raw (#help toggle)

~REDRAW

format:        #redraw

If redraw is on, and you're not in split mode, the input
line will be redrawn when any text arrives, or tintin++ prints any
messages.  This helps you avoid your input being spread out and
unreadable when there is heavy text flow from the mud.  In split mode,
this variable is ignored.

~RETAB

format:                #retab

New for v1.5.  #retab allows you to re-load the tab completion file.

~RETURN

format:        #return

Pop the last move off the top of the path, and move the opposite direction.

~READ

ʽ#read ļ

ļָ

           ǵһӦѧָ
ô ytin ļ¶ǰеϣ
            ȡͬľɵ

         ytin ļ ttrc.1ӦǸıļ( .txt )
        ÿ alias  action ռһ ( ʵռУÿһس return         Ϊһ )Ȼ ytin ڣ #read ttrc.1 ttrc.1 е
        롣
         ttrc.1  ytin.exe ͬһĿ¼ (dir) ļǰҪϴ ytin.exe
         ttrc.1 ȫ·

~SAVEPATH

format:        #savepath {alias name}

Save the current path to an alias, which can then be saved to a coms file.
The alias name provided will be the new name of the alias to represent
that path.  Useful for after mapping to be able to get back to the place
again.

~SESSION

ʽ#session {session} {ip port}

˵#session ɼд #ses
            sessionñ棬ͬһµĲͬsession
             alias һãԷӵmud
ôӵmudsession òҪ֣л session ʱ
       tintin ظͻ

         #session el1 {202.105.177.101 6666}
              ytin ںֱӵmudʱ
                      session ־ͽ el1
         #alias el {#session %1 202.105.177.101 6666}
         #alias mud2 {#session %1 123.456.789 0000}
               el nut ʱӵmud session ־ nut
                      ˡýɫ session ĺôȡֲͬ session
              ͬʱ nut  session Уٿ session磺Լ
                       mud2 xine el miaomһΪ xine  miaom session
                      
               #nut, #xine, #miaom ڲͬ session л

ҵĵ֮ port 0ʱһĲʵӵκεطsession
IP Ǵ session ʾϢԶӺҪtintin++
ȱĹܡ

~SHOWME

ʽ#showme {ʾ}

ʾָ

ôֻʾһЩ֣͵mudʾһЩ״Ҿ䡣

        #action {%1ɱ} {#bell;escape;alias pker $1;#showme 찡쵰}


~SLEEP

ʽ#sleep {seconds};

ϵͳϢ
            secondsΪΪС
ôڶмͣ鷳

         #60 buy yao from boss;#sleep 5;#60 buy yao from boss
⣺ #10 {#10 practice;#sleep 3}
       ǲеġȷǣ
       #alias {aa} {#10 practice;#sleep 3;aa}
       ȻҪЩжϣõѭ

 1. pause, purge

~SLOW

format: #slow {interger}

#slow 0: disable SLOW mode

#slow 1: means when the server give 1 response (net packet),
the client will send one more commands. (Compare to zmud,
zMud need users' action to determine if the client will continute
to send more commands, but in yTin, this is done automatically,
although the server response might not be what was generated
by user's last command, in most case it is much easier to
use and sufficient).

#slow 5:
will send 5 command from queue when sever gives 1 response.
The benefit is: when net is lag, it sends
commands much faster than #slow 1, which is very like zmud's
behavior.


~SNOOP

format:        #snoop {session name}

If there are multiple sessions active, this command allows you to see what
is going on the the sessions that are not currently active.  The lines
of text from other sessions will be prefixed by 'session name%'.

~SPEEDWALK

ʽ#speedwalk
ôߣ÷ֺ( ; ) ɽҪߵ·һμ롣

       2s5w3s3w2nw
            = s;s;w;w;w;w;w;s;s;s;w;w;w;n;n;w
NEW:  #toggle speedwalk 棬磺 #toggle speedwalk 0

~SPLIT

format:        #split {line #}
               #split line #

New for 1.2, with a vt100 or ANSI emulator, this will allow you to set up
a split screen.  The keyboard input will be displayed in the bottom window,
while mud text is displayed in the upper window.  This requires a fairly
decent emulator, but works on most I have tested.  The screen will be split
at the line indicated by line #, and should be around 3 lines above the
bottom of the screen.  When the enter key is pressed, the text will
be sent to the mud, and also be echoed to the upper window.

If a line # isn't specified, the screen is split at line 21.

example:
#split 35
split the screen at line 35.

~STRNCMP

format:       #strncmp {string1} {string2} {interger N}

Similar to C function strncmp(char* str1, char* str2, int n).
Return value is 0 if string1 and string2 are same for the 1st N
characters, nonzero if not same.

See also: strrchr, strstr, substr, ord, chr

~STRRCHR

format:       #strrchr {string1} {string2}

Similar to C function strrchr(char* str, char ch).
Reverse search of the 1st occurrence of char string2 (actually it is
the 1st char of string2) in string1, then assign the 0 based
index of string1 to the default variable $_.
assign -1 to $_ if search does not match.
(well, here we used some Perl convention.)

See also: strrchr, strstr, substr, ord, chr

~STRSTR

format:       #strstr {string1} {string2}

Similar to C function strstr(char* str1, char* str2).
Find the 1st occurence of str2 from str1, then return 0 based
index of str1. Return value is assigned to $_.
If there is no match, -1 is assigned to $_.

See also: strrchr, strstr, substr, ord, chr

~SUBSTR

format:       #substr {string} {index1} {length}

Similar to Perl function substr().
Currently is not as smart as Perl yet. Need specify explicitly
0 based index1 and length.
When length is <0, will count from the tail.
Return value is assigned to $_.

example:
#substr {01234567} {3} {4}
will assign {3456} to $_.
#substr {0123456789} {3} {-5}
will assign {34} to $_ since the last 5 {56789} is truncated.

Note: we do not need "strcat" command in yTin, #var {str1} {$str1$str2} will do it.

See also: #strrchr, #strstr, #strncmp, #ord, #chr

~SUBSTITUTE

format:        #substitute [{text}] [{new text}]

The [] signify optional arguments.

Allows you to replace original text from the mud with different text, or
delete it altogether.  This is helpful for if you have a slow modem, or
there is a lot of text sent during battles, and the like.  the %0-9
variables can be used to capture text and use it as part of the new output,
and the ^ char is valid to only check the beginning of the line for the
text specified.

If a . is the only character in the new text argument, if the line is
matched, it will be deleted.

If only one argument is given, all subs that match the string are displayed.
The * char is valid in this instance.  See help wildcard.

If no argument is given, all subs are displayed.

examples:
#sub {leaves} {.}
gag any line that has the word 'leaves' in it.
#sub {^Zoe%0} {ZOE%0}
any line that starts with the name Zoe will be replaced by a line that
starts with 'ZOE'
#sub {%0massacres%1} {%0MASSACRES%1}
replace all occurrences of 'massacres' with 'MASSACRES'

~GAG

ʽ#gag {ַ}
ôκκдַС

        #gag {}
            κΰ  ֵжʾ
ע⣺ #toggle presub 0  1  gag ĶǷ񴥷 action 
 #help presub

~SYSECHO
format:        #sysecho {string} {>}  {filename}
               #sysecho {string} {>>} {filename}
This is a handy port for #system echo string > filename.
It was not nice to use #system echo under Windows version.

See also: fclose/fopen, feof, fseek, fgets

~SYSTEM

format:        #system {command}

Executes the command specified as a shell command.  The name of the system
command can be changed in tintin.h for your security.

NEW from ytin1.80:
#system {command} {option}
options: (default is 0)
For Windows NT/2000:
0: try to hide output window, capture output by > tintin.out, then display
   in ytin windows (can action on the message)
1: try to hide output window, do not add > tintin.out
2: do not try to hide output window, capture output by > tintin.out
3: do nothing, old tintin++ behavior
For Unix/Windows 95/98:
0,2: capture output by > tintin.out, then display in ytin window (can
     action on the message.)
1,3: do nothing, old tintin++ behavior.

Notice: if use some commands like vi, please specify option {3}.


~TABADD

format:               #tabadd {word}

Adds a word to the end of the tab completion list.

~TABDELETE

format:               #tabdelete {word}

Deletes a word from the tab completion list.

~TABLIST

format:               #tablist

Displays all words in the tab completion list.

~TELNET

format:               #telnet {number}
                      #telnet {telnet sequence symbol}
Send the telnet sequence.

Example:
#telnet AYT         <== send AYT (are you there) to the host, MudOS will
                          reply [-YES-], other hosts may vary
#telnet ?           <== request help, advanced users c.f. telnet RFC for details

~TEXTIN

ʽ#textin {ļ}

ļָ

ô online 롣

        post lovestory
        #textin lovestory.1
         .
           lovestory.1 һļļ ytin.exe ͬһ
           Ŀ¼ ( dir )ҪѴ ytin ļȫ·д

~TICK

TICKһ֤ضʱظָͬ
˵
       #alias {eltick1} { #action {^#TICK!!!} {uptime};#ticksize 120;#tickon}
            eltick1 ÿ 120 룬uptime ָִһΡ
            ^#TICK!!! Ƿֹһ㼼ɵƻˡ
       ˵
              1. #ticksize趨ʱΪκʱıticksize
              2. #tickon tick 
              3. #tickoffֹͣ tick 
              4. #tickʾһ tick ʱ䡣

һǳҪָһЩСɣŴʵ
ᡣ

~TICKOFF

format:        #tickoff

Turn off the tintin++ built in tick counter.

~TICKSET

format:        #tickset

Turn on the tintin++ tickcounter, and set time until next tick equal
to tick size.

~TICKSIZE

format:        #ticksize number

Set a new time, in seconds,  between ticks for the tintin++ tickcounter.

~TOLOWER

format:        #tolower var text

Just like the #variable command, only it converts the text
to lowercase before assigning it to the variable.

~TOGGLE

format: #toggle {setting} [{absolute_value}]

It is actually both toggle and set
Available toggle settings:
       #toggle big5 1       <= handles BIG5 encoding's problem
       #toggle echo         <= same as #echo
       #toggle ignore       <= same as #ignore
       #toggle presub       <= same as #presub
       #toggle prompt_on
       #toggle raw          <= pernament interactive mode (windows version)
                               see also: #raw. use windows menu to toggle off
Note: when ESC is mapped to boss key, to send real ESC, use ctrl-[. Macroes
      still works after toggle raw 1, alias only works for actions et al.
      Interactive mode is temporarily off when no sessions.
       #toggle redraw       <= same as #redraw
       #toggle speedwalk    <= same as #speedwalk
       #toggle stripcolor   <= toggle if stripcolor before action or not
       #toggle ticker_in_split  <= disable the ticker on split line
       #toggle togglesubs   <= same as #togglesubs
       #toggle verbatim     <= same as #verbatim
It is recommended to use #toggle command when it is available,
in later version other old commands that can be replaced by toggle
might be no longer available.

~TOGGLESUBS

format:        #togglesubs

Toggle whether substitutes should be ignored.  If subs are ignored,
text will not be checked for subs, but highlights will still be
checked for.

~TOUPPER

format:        #toupper var text

Just like the #variable command, only it converts the text
to uppercase before assigning it to the variable.

~UNACTION

ʽ#unaction {ȡ}

ȡ

ôȡ趨Ĵ ( aciton )

        #unaction {˵}
             趨 action {˵} Ͳˡ
        #unaction **
             к  ֵ action ȫȡˡ

~UNALIAS

ʽ#unalias {ȡ alias }

ȡ ( alias )

ôȡ趨ı ( alias )
÷ #unaction ơ

~UNANTISUBSTITUTE

format:        #unantisubstitute {string}
               #unantisubstitute string

Remove antisub(s) from the antisub list which match {string}.  The
'*' character will act as a wildcard and will match any text.
See help wildcard.

examples:
#unantisub {%0tells you%1}
remove the antisub for '%0tells you%1'
#unantisub *
remove all antisubs
#unantisub {^You*}
remove all antisubs that start with '^You'

~UNGAG

ʽ#ungag {ٺԵ}

÷ #unaction ơ

~UNSUBSTITUTE

format:        #unsubstitute {string}
               #unsubstitute string

Remove substitute(s) from the substitute list which match {string}.  The
'*' character will act as a wildcard and will match any text.
See help wildcard.

examples:
#unsub {%0tells you%1}
remove the sub for '%0tells you%1'
#unsub *
remove all subs
#unsub {^You*}
remove all subs that start with '^You'

~UNHIGHLIGHT

format:        #unhighlight {string}
               #unhighlight string

Remove highlight(s) from the highlight list which match {string}.  The
'*' character will act as a wildcard and will match any text.
See help wildcard.

examples:
#unhigh {%0tells you%1}
remove the highlight for '%0tells you%1'
#unhigh *
remove all highlights
#unhigh {^You*}
remove all highlights that start with '^You'

~UNMACRO

see also: macro, alias, unalias

~UNPATH

format:        #unpath

Remove the most recent move from the current path.

~UNPURIST

format: #unpurist

This currently works for Windows version or split mode under Unix version.
Enable the default "local echo" mode. Commands typed will show locally.

See also: #purist

~UNSPLIT

format:        #unsplit

Exit split mode, and set the screen back to its default terminal settings.

~UNVARIABLE

format:        #unvariable {variable name}
               #unalias variable name

Remove variable(s) from the variable list which match {variable name}.  The
'*' character will act as a wildcard and will match any text.
See help wildcard.

examples:
#unvar {hp}
remove the variable $hp
#unvar *
remove all variables
#unvariable {xx*}
remove all variables that start with 'xx'

~VARIABLE

format:        #variable {<variable_name>} {<text to fill variable>}

Since these are completely new to tintin, and act differently
than anything else, I feel should spend some time on them.
These variables differ from the %0-9 in the fact that you could
specify a full word as a variable name, and they stay in memory for
the full session, unless they are changed, and they can be saved in
the coms file, and can be set to different values if you have 2 or
more sessions running at the same time.  One of the best uses for
variables I think is for spellcasters.

Currently, you would set up a bunch of aliases like the following.

#alias {flame} {cast 'flame strike' %0}
#alias {flash} {cast 'call lightning' %0}
#alias {harm} {cast 'harm' %0}

With the new variables you can do the following:

#alias {targ} {#var target %0}
#alias {flamet} {flame $target}
#alias {flasht} {flash $target}
#alias {harmt} {harm $target}

these aliases will be  defined just as they are written, the variables
are not substituted  for until the  alias is found  in your input  and
executed.

so, if before a battle, you do a:
targ donjonkeeper
then $target is set to donjonkeeper, and any alias you set up with
$target in it will substitute donjonkeeper for every instance of
$target.  Let's say your leader has the following alias set up.

#alias {setttarg} {#var {target} {%0};gt target=%0}

if he did a settarg lich, it would set his $target to lich, and
would send a:

<name> tells your group 'target=lich'

you could then set an action like so.

#action {^%0 tells your group 'target=%1'} {targ %1}

then when your leader executed his alias, it would also set your
variable to the target.

Another use for variables would be to set a variable $buffer to
whoever the current buffer is.  This would be useful in fights
where the mob switches, or where many rescues are needed.  You
could set up healing aliases with $buffer in them, and set the
$buffer variable in an action that is triggered by each switch,
and each rescue, or just rescues, or whatever.  Then in a
confusing battle, you will have a better shot at healing the
right person.

~VAR2ALIAS

format:        #var2alias {alias_to_assign} {$variable_to_convert}

example:       #variable {hi} {good morning!}
               #variable {test_var} {tell chitchat $hi;tell chitchat help}
               #var2al {test_alias} {$test_var}
Alias {test_alias} now is: {tell chitchat $hi;tell chitchat help}
               #var2al {test_alias} {$test_var wanted!}
Alias {test_alias} now is: {tell chitchat $hi;tell chitchat help wanted!}

See also: al2variable, alias, variable


~VERBATIM

format:        #verbatim

New for 1.2

Toggle verbatim mode on and off.  When in verbatim mode, text will not be
parsed, and will be sent 'as is' to the mud.  Tab completion and history
scrolling are still available in verbatim mode.  It is helpful for writing
messages, doing online creation, and the like.

~VERSION

format:        #version

Show the version number of tintin++ that you are currently running.
new from 1.80e3: will also force telnet terminal type.

~WIZLIST

format:        #wizlist

Lists the names of people who helped with with mudding, and with the client.
If you feel your name should be here, let me know, so many people have
contributed, and it's hard to name everyone.

~WRITE

format:        #write {filename}
               #write filename

Writes all current actions, aliases, subs, antisubs, highlights, and
variables to a coms file, specified by filename.

~WRITESESSION

format:        #writesession {filename}
               #writesession filename

Write all current actions, aliases, subs, antisubs, highlights, and
variables that are specific to your current session to a file.  This
means actions that were not defined when there was no session active.

~ZAP

format:        #zap

Kill your current session.  If there is no current session, it will cause
the program to terminate.

~SUSPEND

format:        #suspend

Temporarily suspends tintin++ and returns you to your shell.  The
effect of this command is exactly as if you had typed control-z.
To return to tintin++, type "fg" at the shell prompt.

~WILDCARD

format:                #command {regexp}

You may use wildcards with certain commands such as #alias, #action,
#substitute, #unalias, etc.  In commands like #alias, wildcards are
only valid when you use exactly one argument.  Wildcards are always
valid for commands like #unalias.  The only wildcard currently
supported is *, which matches any string 0 or more characters long.
The wildcard meaning of * may be escaped using the backslash, \.

Examples:

#action {*miss*}
        shows all actions which contain the word miss in them
#unaction {*miss*}
        removes all actions which contain the word miss in them
#unaction {\*\*\* PRESS RETURN:}
        removes the action which triggers on the line *** PRESS RETURN:

Many thanks to Spencer Sun for letting me steal some code for this...
If anyone is interested in having full ls-style regexps, email me
and maybe it'll be included in 2.0.

~RANDOM

format:                #random {<var_name>} {num}

Random will choose a random # from 1 to num, and store that value
in <var_name>.  You can access <var_name> as you would any variable
(see #help variable for help on variables).

~SETPROMPT

format:         #setprompt {string}

SetPrompt is a feature for split window mode (see #help split), which
will take the status prompt from the mud, and display it on the status
line of the split window.  You would define <string> the same way you
would an action (see #help action).

~CLEARPROMPT

format:         #clearprompt

ClearPrompt will turn off the prompt display to the split window.

~IFEXIST

Command: ifexists - checks if a variable exists or not

Syntax:  #ifexists {varname} {do this} else {do this instead}

Example: #ife {leader} {say My leader is $leader!} else {say I have no leader!}

~IFMATCH

Command: ifmatch - checks a string for a mask containing text and *'s

Syntax:  #ifmatch {mask} {string} {do this} else {do this instead}

Example: #ifm {*Iny*} {This is a test string: Iny!} {#shomwe Works fine!} else {#showme Call 911 - the procedure doesn't work!}

~IFSTREQUAL

Command: ifstrequal - string comparisment

Syntax:  #ifstrequal {string1} {string2} {do this} else {do this instead}

Example: #alias {tell} {#ifs {$1} {$whoami} {#showme [Tell to self]: %0} else {Tell %0}}

~GETVARVALUE

Command: getvarvalue - get the contents of a variable

Syntax:  #getvarvalue {dest var} {source var}

Example: #getv {numberofmobs} {mobThe Spirit Guard}

Info:    The variable name can contain any character; not just alpha chars!
         This function was made more or less redundant when I introduced the
         improved naming of variables by allowing brackets around the name.
         ( ${variablename} ). But it's kept for compability with earlier
         comfiles.

~REVSTRING

Command: revstring - reverses a string/stores it backwards

Syntax:  #revstring {dest var} {string}

Example: #revs myname Happy Iny <-- stores 'ynI yppaH' in the variable 'myname'

See also: delimiter, getitemnr

~GETLISTLENGTH

Command: getlistlength - returns the length of a list

Syntax:  #getlistlength {dest var} {list}

Example: #variable alignlist {1 2 3}
         #getl Length {$alignlist}   <--- returns 3 in the Length variable
Another Example:
         #delimiter {;;}
         #var list {n;e;s;;get all;n;;e;e;s}
         #getl Length $list
The delimiter ";;" breaks the $list into: {n;e;s}, {get all;n} and {e;e;s}
three parts, thus Length variable is now 3.

See also: delimiter, getlistlength

~GETITEMNR

Command: getitemnr - retrieves specified element from a list (NEW)

Syntax:  #getitemnr {destination variable} {item number start from 0} {list}

Example: #geti {dothis} {1} {smile {say Hi!} flip bounce}  <--- sets dothis to
'say Hi!'

Example: #getl Length {$rndsocial};#math itemnr $_random//$Length;#geti temp
{$itemnr} {$rndsocial};{$temp}
         (will perform a random social from the 'rndsocial' list)
Another Example:
         #delimiter {;;}
         #var list {n;e;s;;get all;n;;e;e;s}
         #geti {item2} {1} {$list}
The delimiter ";;" breaks the $list into: {n;e;s}, {get all;n} and {e;e;s}
three parts, thus the {item2} variable is now: {get all;n}

See also: delimiter, getlistlength


~FCLOSE
format:       #fclose {FILE}
the variable _ is assigned to 0 if successful, non-zero if failed.

See help on C function: int fclose(FILE* stream);
See also: fopen/fclose, feof, fseek, fgets, fputs, fread, fwrite, remove, rename, sysecho

~FEOF
format:       #feof {FILE}
The variable _ is assigned to 1 if end of file or invalid FILE, otherwise 0.

See help on C function: int feof(FILE* stream);
See also: fopen/fclose, feof, fseek, fgets, fputs, fread, fwrite, remove, rename, sysecho

~FOPEN
format:       #fopen {filename} {mode}
The variable _ is assigned to FILE that was opened if successful, 0 if failed.

Example:      #fopen {test.dat} {a+}
              #var {FilePointer} {$_}
              ... ...
              #fclose {$FilePointer}

For detailed help on the fopen, see the C help file on
           FILE *fopen( const char *filename, const char *mode );
See also: fopen/fclose, feof, fseek, fgets, fputs, fread, fwrite, remove, rename, sysecho

~FGETS
format:       #fgets {buffer} {int limit} {FILE}
The variable _ is set to 0 if fail, non-zero if successful.
If n>=2048, n will be reduced to 2048.

See help on C function: char *fgets( char *string, int n, FILE *stream );
See also: fopen/fclose, feof, fseek, fgets, fputs, fread, fwrite, remove, rename, sysecho

~FSEEK
format:       #fseek {FILE} {offset} {start_position}
start_position must be one of SEEK_CUR, SEEK_END, SEEK_SET.
The variable _ is set to 0 if successful, non-zero on fail.

See help on C function: int fseek( FILE *stream, long offset, int origin );
See also: fopen/fclose, feof, fseek, fgets, fputs, fread, fwrite, remove, rename, sysecho

~FUNCTION

FUNCTIONS:
==========
Added a new list type which I decided to call functions. These are a mixture of
aliases and
variables. The following examples will have to do to explain how to use functions:

Example:
#function {rnd} {#random {temp} {%1,%2};#result {$temp};#unvar temp}
#showme A random number between 0 and 100: @rnd{0 100}

Functions are treated much like variables. Their value is
a command-line which is executed, and the functions are substituted
by the parameter last sent to the #result command

Example:
#function {lastfuncresult} {#nop}
#showme Last use of a function gave @lastfuncresult as result.

NB! Functions are NOT evaluated at all the same places as variables so before
you decide to write a long comfile using functions - check if it works first! :)I might finish my work on the functions later, right now I'm too lazy to though.
=== FUNCTIONS ARE FOR INSTANCE _NOT_ EVALUATED INSIDE AN IF STATEMENT - YET! ===

~UNFUNCTION

Command: unfunction - remove a function

Syntax:  #unfunction {func name}

~RESULT

Command: result - write a string to the function buffer

Syntax:  #result {-result-}

Example: #func {ctof} {#math result %0*9/5+32;{#result $result degrees fahrenheit};#unvar result}
         #showme 30 degrees celsius equals @ctof{30}.

Example: #func {ftoc} {#math result (%0-32)*5/9;{#result $result degrees celsius};#unvar result}
         #showme 80 degrees fahrenheit equals @ftoc{80}.

~*EOF*
