| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575 |
- <html>
- <head>
- <meta http-equiv='content-type' content='text/html; charset=utf-8'>
- <meta name='description' content='Generated by TinTin++ 2.02.0b7 - http://tintin.sourceforge.net'>
- <style type='text/css'>
- {
- font-family: Courier;
- font-size: 10pt;
- }
- a:link {color: cyan;} a:visited {color: green;} a:hover {color: white;} a:active {color:purple;}
- .d30{ color: #000; } .l30{ color: #555; } .b40{ background-color: #000; } .b50{ background-color: #555 }
- .d31{ color: #B00; } .l31{ color: #F55; } .b41{ background-color: #B00; } .b51{ background-color: #F55 }
- .d32{ color: #0B0; } .l32{ color: #5F5; } .b42{ background-color: #0B0; } .b52{ background-color: #5F5 }
- .d33{ color: #BB0; } .l33{ color: #FF5; } .b43{ background-color: #BB0; } .b53{ background-color: #FF5 }
- .d34{ color: #00B; } .l34{ color: #55F; } .b44{ background-color: #00B; } .b54{ background-color: #55F }
- .d35{ color: #B0B; } .l35{ color: #F5F; } .b45{ background-color: #B0B; } .b55{ background-color: #F5F }
- .d36{ color: #0BB; } .l36{ color: #5FF; } .b46{ background-color: #0BB; } .b56{ background-color: #5FF }
- .d37{ color: #BBB; } .l37{ color: #FFF; } .b47{ background-color: #BBB; } .b57{ background-color: #FFF }
- .d38{ color: #FFF; } .l38{ color: #FFF; } .b48{ background-color: #000; } .b58{ background-color: #000 }
- .d39{ color: #FFF; } .l39{ color: #FFF; } .b49{ background-color: #000; } .b59{ background-color: #000 }
- </style>
- <body bgcolor='#000000'>
- </head>
- <pre>
- <span class='b49'><span class='d39'>
- <a href='#ACTION'> ACTION</a> <a href='#ALIAS'> ALIAS</a> <a href='#ALL'> ALL</a> <a href='#BELL'> BELL</a>
- <a href='#BREAK'> BREAK</a> <a href='#BUFFER'> BUFFER</a> <a href='#CASE'> CASE</a> <a href='#CHARACTERS'> CHARACTERS</a>
- <a href='#CHAT'> CHAT</a> <a href='#CLASS'> CLASS</a> <a href='#COLORS'> COLORS</a> <a href='#COORDINATES'> COORDINATES</a>
- <a href='#CONFIG'> CONFIG</a> <a href='#CONTINUE'> CONTINUE</a> <a href='#CR'> CR</a> <a href='#CURSOR'> CURSOR</a>
- <a href='#DEBUG'> DEBUG</a> <a href='#DEFAULT'> DEFAULT</a> <a href='#DELAY'> DELAY</a> <a href='#ECHO'> ECHO</a>
- <a href='#ELSE'> ELSE</a> <a href='#ELSEIF'> ELSEIF</a> <a href='#END'> END</a> <a href='#ESCAPE CODES'> ESCAPE CODES</a>
- <a href='#EVENT'> EVENT</a> <a href='#FORALL'> FORALL</a> <a href='#FOREACH'> FOREACH</a> <a href='#FORMAT'> FORMAT</a>
- <a href='#FUNCTION'> FUNCTION</a> <a href='#GAG'> GAG</a> <a href='#GREETING'> GREETING</a> <a href='#GREP'> GREP</a>
- <a href='#HELP'> HELP</a> <a href='#HIGHLIGHT'> HIGHLIGHT</a> <a href='#HISTORY'> HISTORY</a> <a href='#IF'> IF</a>
- <a href='#IGNORE'> IGNORE</a> <a href='#INFO'> INFO</a> <a href='#KEYPAD'> KEYPAD</a> <a href='#KILL'> KILL</a>
- <a href='#LINE'> LINE</a> <a href='#LIST'> LIST</a> <a href='#LOCAL'> LOCAL</a> <a href='#LOG'> LOG</a>
- <a href='#LOOP'> LOOP</a> <a href='#MACRO'> MACRO</a> <a href='#MAP'> MAP</a> <a href='#MATH'> MATH</a>
- <a href='#MATHEMATICS'> MATHEMATICS</a> <a href='#MESSAGE'> MESSAGE</a> <a href='#MSDP'> MSDP</a> <a href='#NOP'> NOP</a>
- <a href='#PARSE'> PARSE</a> <a href='#PATH'> PATH</a> <a href='#PATHDIR'> PATHDIR</a> <a href='#PCRE'> PCRE</a>
- <a href='#PORT'> PORT</a> <a href='#PROMPT'> PROMPT</a> <a href='#READ'> READ</a> <a href='#REGEXP'> REGEXP</a>
- <a href='#REPEAT'> REPEAT</a> <a href='#REPLACE'> REPLACE</a> <a href='#RETURN'> RETURN</a> <a href='#RUN'> RUN</a>
- <a href='#SCAN'> SCAN</a> <a href='#SCREEN'> SCREEN</a> <a href='#SCREEN READER'> SCREEN READER</a> <a href='#SCRIPT'> SCRIPT</a>
- <a href='#SEND'> SEND</a> <a href='#SESSION'> SESSION</a> <a href='#SHOWME'> SHOWME</a> <a href='#SNOOP'> SNOOP</a>
- <a href='#SPEEDWALK'> SPEEDWALK</a> <a href='#SPLIT'> SPLIT</a> <a href='#SSL'> SSL</a> <a href='#STATEMENTS'> STATEMENTS</a>
- <a href='#SUBSTITUTE'> SUBSTITUTE</a> <a href='#SUSPEND'> SUSPEND</a> <a href='#SWITCH'> SWITCH</a> <a href='#SYSTEM'> SYSTEM</a>
- <a href='#TAB'> TAB</a> <a href='#TEXTIN'> TEXTIN</a> <a href='#TICKER'> TICKER</a> <a href='#TIME'> TIME</a>
- <a href='#VARIABLE'> VARIABLE</a> <a href='#WHILE'> WHILE</a> <a href='#WRITE'> WRITE</a> <a href='#ZAP'> ZAP</a>
- <a name='ACTION'></a>
- </span><span class='l32'> ACTION
- </span><span class='l37'>Command</span><span class='d37'>: #action </span><span class='l37'>{</span><span class='d37'>search string</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>priority</span><span class='l37'>}</span><span class='d37'>
- Have tintin search for a certain string of text from the mud, if the
- string is found it will execute the commands. Variables %1 to %99
- are substituted from the input string, and can be used in the command.
- If the search string starts with ~, color codes must be matched, which
- you can see by enabling: #config {convert meta} on.
- The following Perl compatible regular expression options are available:
- ^ force match of start of line.
- $ force match of end of line.
- \ escape one character.
- %1-%99 lazy match of any text, available at %1-%99.
- %0 should be avoided in triggers, and if left alone lists all matches.
- { } embed a raw regular expression, matches are stored to %1-%99.
- %!{ } embed a raw regular expression, matches are not stored.
- [ ] . + | ( ) ? * are treated as normal text unlessed used within
- braces. Keep in mind that { } is replaced with ( ) automatically
- unless %!{ } is used.
- Of the following the (lazy) match is available at %1-%99 + 1
- %d match zero to any number of digits.
- %D match zero to any number of non digits.
- %s match zero to any number of spaces.
- %S match zero to any number of non spaces.
- %w match zero to any number of word characters.
- %W match zero to any number of word characters.
- %? match zero or one character.
- %. match one character.
- %+ match one to any number of characters.
- %* match zero to any number of characters.
- %i matching becomes case insensitive.
- %I 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.
- Actions can be triggered by the showme command and certain system
- messages.
- </span><span class='l37'>Example</span><span class='d37'>: #act {^You are hungry$} {get bread backpack;eat bread}
- Performs 2 commands as you get the hunger message, tintin will not
- be fooled by someone saying 'You are hungry'.
- </span><span class='l37'>Example</span><span class='d37'>: #act {%1 tells you 'hello'} {tell %1 Hello %1. How are you today?}
- This allows you to seem like a nice, attentive, fast typing gentleman.
- </span><span class='l37'>Example</span><span class='d37'>: #act {A puppy barks at you, wagging {his|her|its} tail.} {pat puppy}
- This allows you to be nice to puppies regardless of their sex.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove an action with the #unaction command.
- </span><span class='l37'>Related</span><span class='d37'>: gag, highlight, prompt and substitute.
- <a name='ALIAS'></a>
- </span><span class='l32'> ALIAS
- </span><span class='l37'>Command</span><span class='d37'>: #alias </span><span class='l37'>{</span><span class='d37'>word</span><span class='l37'>} {</span><span class='d37'>command</span><span class='l37'>}</span><span class='d37'>
- Defines a word that when entered executes the given command. If
- any arguments are given they are appended to the end of the command.
- If the command includes variables %0-99, these are substituted as
- part of the parsing. %0 is set to all text after the word was input,
- %1 is set to the first word following the aliased word, and %2 is the
- second, and so on. If you use %0-99 no arguments are automatically
- appended.
- The word can include the %1 to %99 variables making an alias behave
- like an action, allowing more complex input matching.
- </span><span class='l37'>Example</span><span class='d37'>: #alias gb get bread bag
- Typing gb at the prompt would be sent as 'get bread bag'.
- </span><span class='l37'>Example</span><span class='d37'>: #alias ws {wake;stand}
- Since ws aliases a multiple command, you must use the braces.
- </span><span class='l37'>Example</span><span class='d37'>: #alias heal cast 'heal' %1
- Typing 'heal valgar' would be sent as 'cast 'heal' valgar'.
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help action', for more information about triggers.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove an alias with the #unalias command.
- </span><span class='l37'>Related</span><span class='d37'>: cursor, history, keypad, macro, speedwalk and tab.
- <a name='ALL'></a>
- </span><span class='l32'> ALL
- </span><span class='l37'>Command</span><span class='d37'>: #all </span><span class='l37'>{</span><span class='d37'>string</span><span class='l37'>}</span><span class='d37'>
- Sends a command to all active sessions.
- </span><span class='l37'>Example</span><span class='d37'>: #all quit
- Sends 'quit' to all active sessions.
- </span><span class='l37'>Related</span><span class='d37'>: port, run, session, sessionname, snoop, ssl and zap.
- <a name='BELL'></a>
- </span><span class='l32'> BELL
- </span><span class='l37'>Command</span><span class='d37'>: #bell
- Sends a beep to your terminal.
- </span><span class='l37'>Example</span><span class='d37'>: #action {tells you} {#bell}
- Will chime every time someone gives you a tell.
- </span><span class='l37'>Related</span><span class='d37'>: screen
- <a name='BREAK'></a>
- </span><span class='l32'> BREAK
- </span><span class='l37'>Command</span><span class='d37'>: #break
- The break command can be used inside the #FOREACH, #LOOP, #PARSE,
- #WHILE and #SWITCH statements. When #BREAK is found, tintin will stop
- executing the statement it is currently in and move on to the next.
- </span><span class='l37'>Example</span><span class='d37'>: #while {1} {#math cnt $cnt + 1;#if {$cnt == 20} {#break}}
- </span><span class='l37'>Related</span><span class='d37'>: continue, foreach, list, loop, parse, repeat, return and while.
- <a name='BUFFER'></a>
- </span><span class='l32'> BUFFER
- </span><span class='l37'>Command</span><span class='d37'>: #buffer </span><span class='l37'>{</span><span class='d37'>home</span><span class='l37'>|</span><span class='d37'>up</span><span class='l37'>|</span><span class='d37'>down</span><span class='l37'>|</span><span class='d37'>end</span><span class='l37'>|</span><span class='d37'>lock</span><span class='l37'>|</span><span class='d37'>clear</span><span class='l37'>|</span><span class='d37'>info</span><span class='l37'>}</span><span class='d37'>
- The buffer command allows you to add macros to scroll in case the
- default bindings do not work. The lock options toggles the
- scrolling state of the screen.
- #buffer {find} {number} {text} Jump to the first occasion of text
- or the given occasion by providing the optional number argument.
- #buffer {get} {variable} {line} {range} Store the given line or
- range in the given variable.
- #buffer {lock} {on|off} Lock or unlock the screen. When locked
- new text won't be displayed until the lock is removed. Without
- an argument the lock status is toggled.
- #buffer {write} {filename} Write the buffer to the given file.
- </span><span class='l37'>Example</span><span class='d37'>: #macro {(press ctrl-v)(press F1)} {#buffer end}
- Associates F1 key to 'scroll buffer to its end' command.
- </span><span class='l37'>Related</span><span class='d37'>: echo, grep and showme.
- <a name='CASE'></a>
- </span><span class='l32'> CASE
- </span><span class='l37'>Command</span><span class='d37'>: #case </span><span class='l37'>{</span><span class='d37'>conditional</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>arguments</span><span class='l37'>}</span><span class='d37'>
- 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.
- </span><span class='l37'>Related</span><span class='d37'>: default, else, elseif, if, switch and regex.
- <a name='CHARACTERS'></a>
- </span><span class='l32'> CHARACTERS
- </span><span class='d37'>
- The following special characters are defined:
- # 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.
- ; 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.
- { } Curly brackets aka braces are used for seperating multi word command
- arguments, nesting commands, and nesting variables. Braces cannot
- easily be escaped and must always be used in pairs.
- " " Quote characters are used for strings in the #math, #if, #switch,
- and #case commands. It is however suggested to use an extra
- set of braces { } to define strings. Quote support will be
- phased out eventually since TT++ is typeless.
- ! The exclamation sign is used to repeat commands, see #help history.
- The character can be redefined using #config.
- \ An input line starting with a backslash is send verbatim if you are
- connected to a server. This character can be configured with
- #config.
- </span><span class='l37'>Related</span><span class='d37'>: colors, escape, mathematics and regularexpressions.
- <a name='CHAT'></a>
- </span><span class='l32'> CHAT
- </span><span class='l37'>Command</span><span class='d37'>: #chat </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- #chat {init} {port} Initilizes a chat port.
- #chat {name} {name} Sets your chat name.
- #chat {message} {buddy|all} {text} Sends a chat message
- #chat {accept} {buddy} {boost} Accept a file transfer
- #chat {call} {address} {port} Connect to a buddy
- #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.
- #chat {who} Show all connections
- #chat {zap} {buddy} Close a connection
- </span><span class='l37'>Related</span><span class='d37'>: port
- <a name='CLASS'></a>
- </span><span class='l32'> CLASS
- </span><span class='l37'>Command</span><span class='d37'>: #class </span><span class='l37'>{</span><span class='d37'>name</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>open</span><span class='l37'>|</span><span class='d37'>close</span><span class='l37'>|</span><span class='d37'>list</span><span class='l37'>|</span><span class='d37'>read</span><span class='l37'>|</span><span class='d37'>size</span><span class='l37'>|</span><span class='d37'>write</span><span class='l37'>|</span><span class='d37'>kill</span><span class='l37'>} {</span><span class='d37'>arg</span><span class='l37'>}</span><span class='d37'>
- The {open} option will open a class, closing a previously opened
- class. All triggers added afterwards are assigned to this class.
- The {close} option will close the given class.
- The {list} option will show the given list of the class.
- The {read} option will open the class, read, and close afterwards.
- The {size} option will store the size of the class in a variable.
- The {write} option will write all triggers of the given class to file.
- The {kill} option will delete all triggers of the given class.
- Keep in mind that the kill and read option are very fast allowing
- them to be used to enable and disable classes.
- </span><span class='l37'>Example</span><span class='d37'>: #class extra kill;#class extra read extra.tin
- Deletes all triggers of 'extra' class if any. Read 'extra.tin' file,
- all triggers loaded will be assigned to the fresh new 'extra' class.
- </span><span class='l37'>Related</span><span class='d37'>: config, debug, ignore, info, kill, line and message.
- <a name='COLORS'></a>
- </span><span class='l32'> COLORS
- </span><span class='l37'>Syntax</span><span class='d37'>: <xyz> with x, y, z being parameters
- Parameter 'x': VT100 code
- 0 - Reset all colors and codes to default
- 1 - Bold
- 2 - Dim
- 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
- 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 class='l37'>Example</span><span class='d37'>: #showme <acf>Azure <afc>Jade <caf>Violet
- </span><span class='l37'>Example</span><span class='d37'>: #showme <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 \e[38;2;R;G;Bm where R G B are red/green/blue
- intensities between 0 and 255. For example: \e[37;2;50;100;150m. Use
- \e[48;2;R;G;Bm for background colors.
- </span><span class='l37'>Related</span><span class='d37'>: characters, coordinates, escape, mathematics and regularexpressions.
- <a name='COORDINATES'></a>
- </span><span class='l32'> COORDINATES
- </span><span class='d37'>
- When the 0,0 coordinate is in the upper left corner TinTin++ uses
- a y,x / rows,cols notation. When the 0,0 coordinate is in the
- bottom left corner tintin uses a x,y / cols/rows notation.
- When a square is defined this is done by specifying the upper left
- and bottom right corner of the square using four coordinates.
- The vast majority of tintin commands use row,col notation.
- </span><span class='l37'>Related</span><span class='d37'>: characters, colors, escape, mathematics and regularexpressions.
- <a name='CONFIG'></a>
- </span><span class='l32'> CONFIG
- </span><span class='l37'>Command</span><span class='d37'>: #config </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- This allows you to configure various settings, the settings can be
- written to file with the #write or #writesession 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.
- Config options which aren't listed by default:
- #CONFIG {CHILD LOCK} {ON|OFF} Enable or disable command input.
- #CONFIG {CONVERT META} {ON|OFF} Shows color codes and key bindings.
- #CONFIG {DEBUG TELNET} {ON|OFF} Shows telnet negotiations y/n.
- #CONFIG {LOG LEVEL} {LOW|HIGH} LOW logs mud output before triggers.
- #CONFIG {INHERITANCE} {ON|OFF} Session trigger inheritance y/n.
- #CONFIG {MCCP} {ON|OFF} Enable or disable MCCP support.
- </span><span class='l37'>Related</span><span class='d37'>: class and line.
- <a name='CONTINUE'></a>
- </span><span class='l32'> CONTINUE
- </span><span class='l37'>Command</span><span class='d37'>: #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 class='l37'>Example</span><span class='d37'>: #loop 1 10 cnt {#if {$cnt % 2 == 0} {#continue} {say $cnt}}
- </span><span class='l37'>Related</span><span class='d37'>: break, foreach, list, loop, parse, repeat, return and while.
- <a name='CR'></a>
- </span><span class='l32'> CR
- </span><span class='l37'>Command</span><span class='d37'>: #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 class='l37'>Related</span><span class='d37'>: forall
- <a name='CURSOR'></a>
- </span><span class='l32'> CURSOR
- </span><span class='l37'>Command</span><span class='d37'>: #cursor </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Related</span><span class='d37'>: alias, history, keypad, macro, speedwalk and tab.
- <a name='DEBUG'></a>
- </span><span class='l32'> DEBUG
- </span><span class='l37'>Command</span><span class='d37'>: #debug </span><span class='l37'>{</span><span class='d37'>listname</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>on</span><span class='l37'>|</span><span class='d37'>off</span><span class='l37'>|</span><span class='d37'>log</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Related</span><span class='d37'>: class, ignore, info, kill and message.
- <a name='DEFAULT'></a>
- </span><span class='l32'> DEFAULT
- </span><span class='l37'>Command</span><span class='d37'>: #default </span><span class='l37'>{</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Related</span><span class='d37'>: case, default, else, elseif, if, switch and regex.
- <a name='DELAY'></a>
- </span><span class='l32'> DELAY
- </span><span class='l37'>Command</span><span class='d37'>: #delay </span><span class='l37'>{</span><span class='d37'>seconds</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>command</span><span class='l37'>}</span><span class='d37'>
- </span><span class='l37'>Command</span><span class='d37'>: #delay </span><span class='l37'>{</span><span class='d37'>name</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>command</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>seconds</span><span class='l37'>}</span><span class='d37'>
- Delay allows you to have tintin wait the given amount of seconds
- before executing the given command. tintin won't wait before
- executing following input commands if any.
- Floating point precision for miliseconds is possible.
- </span><span class='l37'>Example</span><span class='d37'>: #showme first;#delay {1} {#showme last}
- This will print 'first', and 'last' around one second later.
- </span><span class='l37'>Comment</span><span class='d37'>: 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 class='l37'>Related</span><span class='d37'>: event and ticker.
- <a name='ECHO'></a>
- </span><span class='l32'> ECHO
- </span><span class='l37'>Command</span><span class='d37'>: #echo </span><span class='l37'>{</span><span class='d37'>format</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument1</span><span class='l37'>} {</span><span class='d37'>argument2</span><span class='l37'>} {</span><span class='d37'>etc</span><span class='l37'>}</span><span class='d37'>
- Echo command displays text on the screen with formatting options. See
- the help file for the format command for more informations.
- The echo command does not trigger actions.
- As with the #showme command you can split the {format} argument up into
- two braced arguments, in which case the 2nd argument is the row number.
- </span><span class='l37'>Example</span><span class='d37'>: #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 class='l37'>Related</span><span class='d37'>: buffer, grep and showme.
- <a name='ELSE'></a>
- </span><span class='l32'> ELSE
- </span><span class='l37'>Command</span><span class='d37'>: #else </span><span class='l37'>{</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- The else statement should follow an #IF or #ELSEIF statement and is
- only called if the proceeding #IF or #ELSEIF is false.
- </span><span class='l37'>Example</span><span class='d37'>: #if {1d2 == 1} {smile};#else {grin}
- </span><span class='l37'>Related</span><span class='d37'>: case, default, elseif, if, switch and regex.
- <a name='ELSEIF'></a>
- </span><span class='l32'> ELSEIF
- </span><span class='l37'>Command</span><span class='d37'>: #elseif </span><span class='l37'>{</span><span class='d37'>conditional</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #if {1d3 == 1} {smirk};#elseif {1d2 == 1} {snicker}
- </span><span class='l37'>Related</span><span class='d37'>: case, default, else, if, switch and regex.
- <a name='END'></a>
- </span><span class='l32'> END
- </span><span class='l37'>Command</span><span class='d37'>: #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 class='l37'>Related</span><span class='d37'>: zap
- <a name='ESCAPE CODES'></a>
- </span><span class='l32'> ESCAPE CODES
- </span><span class='d37'> 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.
- \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 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 class='l37'>Related</span><span class='d37'>: characters, colors, coordinates, mathematics and regularexpressions.
- <a name='EVENT'></a>
- </span><span class='l32'> EVENT
- </span><span class='l37'>Command</span><span class='d37'>: #event </span><span class='l37'>{</span><span class='d37'>event type</span><span class='l37'>}</span><span class='d37'>
- 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.
- Some events can be prefixed with CATCH to interrupt default behavior.
- CATCH <EVENT>
- CHAT MESSAGE %0 default %1 plain
- CLASS ACTIVATED %0 class name
- CLASS DEACTIVATED %0 class name
- DATE %1 month - %3 day %4 hour : %5 minute
- DAY <DAY> %3 day of the month
- DOUBLE-CLICKED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- END OF PATH
- HOUR %4 hour
- IAC <VAR> <VAR>
- IAC SB GMCP <MODULE> %0 data %1 raw data
- IAC SB MSSP %0 variable %1 value
- IAC SB MSDP %0 variable %1 value
- IAC SB MSDP <VAR> %1 value
- IAC SB NEW-ENVIRON %0 variable %1 value
- IAC SB ZMP <VAR> %0 value
- IAC SB <VAR> %0 raw text %1 raw data
- LONG-CLICKED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- MAP ENTER MAP %0 new vnum
- MAP ENTER ROOM %0 new vnum %1 old vnum
- MAP ENTER ROOM <VAR> %0 new vnum %1 old vnum
- MAP EXIT MAP %0 old vnum
- MAP EXIT ROOM %0 old vnum %1 new vnum
- MAP EXIT ROOM <VAR> %0 old vnum %1 new vnum
- MAP UPDATED VTMAP
- MINUTE %5 minute
- MONTH %1 month
- MOVED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- PORT CONNECTION %0 name %1 ip %2 port
- PORT DISCONNECTION %0 name %1 ip %2 port
- PORT MESSAGE %0 data %1 plain data
- PORT LOG MESSAGE %0 name %1 ip %2 port %3 data %4 plain data
- PORT RECEIVED MESSAGE %0 name %1 ip %2 port %3 data %4 plain data
- PRESSED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- PROGRAM START %0 startup arguments
- PROGRAM TERMINATION %0 goodbye message
- RECEIVED INPUT %0 raw text
- RECEIVED KEYPRESS %0 raw text %1 unicode index
- RECEIVED LINE %0 raw text %1 plain text
- RECEIVED OUTPUT %0 raw text
- RECEIVED PROMPT %0 raw text %1 plain text
- RELEASED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- SCAN CSV HEADER %0 all args %1 arg1 %2 arg2 .. %99 arg99
- SCAN CSV LINE %0 all args %1 arg1 %2 arg3 .. %99 arg99
- SCAN TSV HEADER %0 all args %1 arg1 %2 arg3 .. %99 arg99
- SCAN TSV LINE %0 all args %1 arg1 %2 arg3 .. %99 arg99
- SCREEN RESIZE %0 rows %1 cols
- SCROLLED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- SECOND %6 second
- SEND OUTPUT %0 raw text %1 size
- SENT OUTPUT %0 raw text %1 size
- SESSION ACTIVATED %0 name
- SESSION CONNECTED %0 name %1 host %2 ip %3 port
- SESSION CREATED %0 name %1 host %2 ip %3 port
- SESSION DEACTIVATED %0 name
- SESSION DISCONNECTED %0 name %1 host %2 ip %3 port
- SESSION TIMED OUT %0 name %1 host %2 ip %3 port
- SHORT-CLICKED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- SYSTEM ERROR %0 name %1 system msg %2 error %3 error msg
- TIME %4 hour : %5 minute : %6 second
- TRIPLE-CLICKED <VAR> %0 row %1 col %2 -row %3 -col %4 word %5 line
- UNKNOWN COMMAND %0 raw text
- VARIABLE UPDATE <VAR> %0 name %1 value
- VT100 SCROLL REGION %0 top row %1 bot row
- WEEK <DAY> %2 day of the week
- WINDOW FOCUS IN %0 name
- WINDOW FOCUS OUT %0 name
- YEAR %0 year
- </span><span class='l37'>Example</span><span class='d37'>: #event {SESSION CONNECTED} {#read mychar.tin}
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove an event with the #unevent command.
- </span><span class='l37'>Related</span><span class='d37'>: delay and ticker.
- <a name='FORALL'></a>
- </span><span class='l32'> FORALL
- </span><span class='l37'>This command is obsolete, please use foreach instead.
- Related</span><span class='d37'>: cr
- <a name='FOREACH'></a>
- </span><span class='l32'> FOREACH
- </span><span class='l37'>Command</span><span class='d37'>: #foreach </span><span class='l37'>{</span><span class='d37'>list</span><span class='l37'>} {</span><span class='d37'>variable</span><span class='l37'>} {</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #foreach {bob;tim;kim} {name} {tell $name Hello}
- </span><span class='l37'>Example</span><span class='d37'>: #foreach {{bob}{tim}{kim}} {name} {tell $name Hello}
- </span><span class='l37'>Related</span><span class='d37'>: break, continue, list, loop, parse, repeat, return and while.
- <a name='FORMAT'></a>
- </span><span class='l32'> FORMAT
- </span><span class='l37'>Command</span><span class='d37'>: #format </span><span class='l37'>{</span><span class='d37'>variable</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>format</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument1</span><span class='l37'>} {</span><span class='d37'>argument2</span><span class='l37'>} {</span><span class='d37'>etc</span><span class='l37'>}</span><span class='d37'>
- Allows you to store a string into a variable in the exact same way
- C's sprintf works with a few enhancements and limitations such as
- no integer operations and 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 wordwrapped text in {list}
- optional {{string}{width}} syntax
- #format {test} {%x} {hex} print corresponding charset character
- #format {test} {%A} {char} store corresponding character value
- #format {cols} {%C} {} store the screen width in {cols}
- #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 {rows} {%R} {} store the screen height in {rows}
- #format {name} {%S} {} store the session name in {name}
- #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 class='l37'>Comment</span><span class='d37'>: See #help TIME for help on the %t argument.
- </span><span class='l37'>Related</span><span class='d37'>: echo, function, local, math, replace, script, time and variable.
- <a name='FUNCTION'></a>
- </span><span class='l32'> FUNCTION
- </span><span class='l37'>Command</span><span class='d37'>: #function </span><span class='l37'>{</span><span class='d37'>name</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>operation</span><span class='l37'>}</span><span class='d37'>
- 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 set the $result variable at the
- end of the function, or call #return with the given result.
- 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.
- The function itself can use the provided arguments which are stored
- in %1 to %9, with %0 holding all arguments.
- </span><span class='l37'>Example</span><span class='d37'>: #function {rnd} {#math {result} {1 d (%2 - %1 + 1) + %1 - 1}}
- #showme A random number between 100 and 200: @rnd{100;200}
- </span><span class='l37'>Example</span><span class='d37'>: #function gettime {#format result %t %H:%M}
- #showme The current time is @gettime{}
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a function with the #unfunction command.
- </span><span class='l37'>Related</span><span class='d37'>: format, local, math, replace, script and variable.
- <a name='GAG'></a>
- </span><span class='l32'> GAG
- </span><span class='l37'>Command</span><span class='d37'>: #gag </span><span class='l37'>{</span><span class='d37'>string</span><span class='l37'>}</span><span class='d37'>
- Removes any line that contains the string.
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help action', for more information about triggers.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a gag with the #ungag command.
- </span><span class='l37'>Related</span><span class='d37'>: action, highlight, prompt and substitute.
- <a name='GREETING'></a>
- </span><span class='l32'> GREETING
- </span><span class='d36'> ####################################################################
- #</span><span class='d37'> T I N T I N + + 2.02.0b7 </span><span class='d36'>#
- #</span><span class='d37'> </span><span class='d36'>#
- #</span><span class='d37'> </span><span class='d36'>T</span><span class='d37'>he K</span><span class='d36'>i</span><span class='d37'>cki</span><span class='d36'>n</span><span class='d37'> </span><span class='d36'>T</span><span class='d37'>ickin D</span><span class='d36'>i</span><span class='d37'>kuMUD Clie</span><span class='d36'>n</span><span class='d37'>t </span><span class='d36'> #
- #</span><span class='d37'> </span><span class='d36'>#
- #</span><span class='d37'> Code by Peter Unold, Bill Reis, and Igor van den Hoven </span><span class='d36'>#
- ####################################################################
- <a name='GREP'></a>
- </span><span class='l32'> GREP
- </span><span class='l37'>Command</span><span class='d37'>: #grep </span><span class='l37'>[</span><span class='d37'>page</span><span class='l37'>]</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>search string</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #grep Bubba tells you
- This will show all occasions where bubba tells you something.
- </span><span class='l37'>Related</span><span class='d37'>: buffer, echo and showme.
- <a name='HELP'></a>
- </span><span class='l32'> HELP
- </span><span class='l37'>Command</span><span class='d37'>: #help </span><span class='l37'>{</span><span class='d37'>subject</span><span class='l37'>}</span><span class='d37'>
- Without an argument #help will list all available help subjects.
- Using #help %* will display all help entries.
- </span><span class='l37'>Related</span><span class='d37'>: debug, ignore, info and message.
- <a name='HIGHLIGHT'></a>
- </span><span class='l32'> HIGHLIGHT
- </span><span class='l37'>Command</span><span class='d37'>: #highlight </span><span class='l37'>{</span><span class='d37'>string</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>color names</span><span class='l37'>}</span><span class='d37'>
- The highlight command is used to allow you to highlight strings of text
- from the mud. Available ANSI color names are:
- reset, light, dark, underscore, blink, reverse
- black, red, green, yellow, blue, magenta, cyan, white,
- b black, b red, b green, b yellow, b blue, b magenta, b cyan, b white
- Available XTERM 256 color names are:
- azure, ebony, jade, lime, orange, pink, silver, tan, violet,
- light azure, light ebony, light jade, light lime, light orange,
- light pink, light silver, light tan, light violet.
- 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 class='l37'>Example</span><span class='d37'>: #high {Valgar} {reverse}
- Prints every occurrence of 'Valgar' in reverse video.
- </span><span class='l37'>Example</span><span class='d37'>: #high {^You %1} {bold cyan}
- Boldfaces any line that starts with 'You' in cyan.
- </span><span class='l37'>Example</span><span class='d37'>: #high {Bubba} {red underscore blink}
- Highlights the name Bubba as blinking, red, underscored text
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help action', for more information about triggers.
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help substitute', for more advanced color substitution.
- </span><span class='l37'>Comment</span><span class='d37'>: This command only works with ANSI/VT100 terminals or emulators.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a highlight with the #unhighlight command.
- </span><span class='l37'>Related</span><span class='d37'>: action, gag, prompt and substitute.
- <a name='HISTORY'></a>
- </span><span class='l32'> HISTORY
- </span><span class='l37'>Command</span><span class='d37'>: #history </span><span class='l37'>{</span><span class='d37'>delete</span><span class='l37'>}</span><span class='d37'> Delete the last command.
- #history </span><span class='l37'>{</span><span class='d37'>insert</span><span class='l37'>} {</span><span class='d37'>command</span><span class='l37'>}</span><span class='d37'> Insert a command.
- #history </span><span class='l37'>{</span><span class='d37'>list</span><span class='l37'>}</span><span class='d37'> Display the entire command history.
- #history </span><span class='l37'>{</span><span class='d37'>read</span><span class='l37'>} {</span><span class='d37'>filename</span><span class='l37'>}</span><span class='d37'> Read a command history from file.
- #history </span><span class='l37'>{</span><span class='d37'>write</span><span class='l37'>} {</span><span class='d37'>filename</span><span class='l37'>}</span><span class='d37'> 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 issueing #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 class='l37'>Related</span><span class='d37'>: alias, cursor, keypad, macro, speedwalk and tab.
- <a name='IF'></a>
- </span><span class='l32'> IF
- </span><span class='l37'>Command</span><span class='d37'>: #if </span><span class='l37'>{</span><span class='d37'>conditional</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>commands if true</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>commands if false</span><span class='l37'>}</span><span class='d37'>
- The 'if' command is one of the most powerful commands added since
- TINTIN III. It works similar to an 'if' statement in other languages,
- and is strictly 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 '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 commands.
- </span><span class='l37'>Example</span><span class='d37'>: #action {%0 gives you %1 gold coins.} {#if {%1>5000} {thank %0}}
- If someone gives you more than 5000 coins, thank them.
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help math', for more information.
- </span><span class='l37'>Related</span><span class='d37'>: case, default, else, elseif, switch and regex.
- <a name='IGNORE'></a>
- </span><span class='l32'> IGNORE
- </span><span class='l37'>Command</span><span class='d37'>: #ignore </span><span class='l37'>{</span><span class='d37'>listname</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>on</span><span class='l37'>|</span><span class='d37'>off</span><span class='l37'>}</span><span class='d37'>
- 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 set ACTIONS to OFF actions will no longer trigger.
- Not every list can be ignored.
- </span><span class='l37'>Related</span><span class='d37'>: class, debug, info, kill and message.
- <a name='INFO'></a>
- </span><span class='l32'> INFO
- </span><span class='l37'>Command</span><span class='d37'>: #info </span><span class='l37'>{</span><span class='d37'>listname</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>LIST</span><span class='l37'>|</span><span class='d37'>ON</span><span class='l37'>|</span><span class='d37'>OFF</span><span class='l37'>|</span><span class='d37'>SAVE</span><span class='l37'>}</span><span class='d37'>
- 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 cpu will show information about tintin's cpu usage.
- #info system will show some system information.
- </span><span class='l37'>Related</span><span class='d37'>: class, debug, ignore, kill and message.
- <a name='KEYPAD'></a>
- </span><span class='l32'> KEYPAD
- </span><span class='d37'>When TinTin++ starts up it sends \e= to the terminal to enable the terminal's
- application keypad mode, which can be disabled using #showme {\e>}
- </span><span class='l37'> Configuration A Configuration B Configuration C</span><span class='d37'>
- +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+
- |Num |/ |* |- | |Num |/ |* |- | |Num |nkp/ |nkp* |nkp- |
- +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+
- |7 |8 |9 | | |Home |Up |PgUp | | |nkp7 |nkp8 |nkp9 | |
- +-----+-----+-----+ | +-----+-----+-----+ | +-----+-----+-----+ |
- |4 |5 |6 |+ | |Left |Centr|Right|+ | |nkp4 |nkp5 |nkp6 |nkp+ |
- +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+
- |1 |2 |3 | | |End |Down |PgDn | | |nkp1 |nkp2 |nkp3 | |
- +-----+-----+-----+ | +-----+-----+-----+ | +-----+-----+-----+ |
- |0 |. |Enter| |Ins |Del |Enter| |nkp0 |nkp. |nkpEn|
- +-----------+-----+-----+ +-----------+-----+-----+ +-----------+-----+-----+
- 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 class='l37'>Terminals that support keypad mode
- </span><span class='d37'>Linux Console, PuTTY, Eterm, aterm.
- </span><span class='l37'>Terminals that do not support keypad mode
- </span><span class='d37'>RXVT on Cygwin, Windows Console, Gnome Terminal, Konsole.
- </span><span class='l37'>Peculiar Terminals
- </span><span class='d37'>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 class='l37'>Related</span><span class='d37'>: colors, coordinates, escape, mathematics and regularexpressions.
- <a name='KILL'></a>
- </span><span class='l32'> KILL
- </span><span class='l37'>Command</span><span class='d37'>: #kill </span><span class='l37'>{</span><span class='d37'>list</span><span class='l37'>} {</span><span class='d37'>pattern</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #kill alias %*test*
- </span><span class='l37'>Related</span><span class='d37'>: class, debug, ignore, info and message.
- <a name='LINE'></a>
- </span><span class='l32'> LINE
- </span><span class='l37'>Command</span><span class='d37'>: #line </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- #line log {filename} {[text]} Log the current or given line to
- file.
- #line logverbatim {filename} {[text]} Log text without variable
- substitution.
- #line gag Gag the next line.
- #line ignore {argument} Argument is executed without
- any triggers being checked.
- #line quiet {argument} Argument is executed with
- suppression of system messages.
- #line strip {argument} Strips the argument of color
- codes next executes it as a
- command.
- #line substitute {options} {argument} Substitutes the given options:
- variables, functions, colors,
- escapes, secure, in the given
- argument next executes it as a
- command.
- #line verbatim {argument} Argument is executed verbatim.
- #line verbose {argument} Argument is executed verbose.
- When using #line log and logging in html format use \c< \c> \c& \c" to
- log a literal < > & and ".
- </span><span class='l37'>Related</span><span class='d37'>: class and config.
- <a name='LIST'></a>
- </span><span class='l32'> LIST
- </span><span class='l37'>Command</span><span class='d37'>: #list </span><span class='l37'>{</span><span class='d37'>variable</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- #list {var} {add} {item} Add {item} to the list
- #list {var} {clear} Empty the given list
- #list {var} {create} {item} Create a list using {items}
- #list {var} {delete} {index} {number} Delete the item at {index},
- the {number} is optional.
- #list {var} {insert} {index} {string} Insert {string} at given index
- #list {var} {find} {string} {variable} Return the found index
- #list {var} {get} {index} {variable} Copy an item to {variable}
- #list {var} {set} {index} {string} Change the item at {index}
- #list {var} {simplify} {variable} Copy simple list to {variable}
- #list {var} {size} {variable} Copy list size to {variable}
- #list {var} {sort} {string} Insert item in alphabetic order
- #list {var} {tokenize} {string} Create a character list
- The index should be between 1 and the list's length. 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.
- A length of 0 is returned for an empty or non existant list.
- You can directly access elements in a list variable using $var[1],
- $var[2], $var[-1], etc.
- </span><span class='l37'>Related</span><span class='d37'>: break, continue, foreach, loop, parse, repeat, return and while.
- <a name='LOCAL'></a>
- </span><span class='l32'> LOCAL
- </span><span class='l37'>Command</span><span class='d37'>: #local </span><span class='l37'>{</span><span class='d37'>variable name</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>text to fill variable</span><span class='l37'>}</span><span class='d37'>
- 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.
- </span><span class='l37'>Example</span><span class='d37'>: #alias {swap} {#local x %0;#replace x {e} {u};#showme $x}
- </span><span class='l37'>Related</span><span class='d37'>: format, function, math, replace, script and variable.
- <a name='LOG'></a>
- </span><span class='l32'> LOG
- </span><span class='l37'>Command</span><span class='d37'>: #log </span><span class='l37'>{</span><span class='d37'>append</span><span class='l37'>|</span><span class='d37'>overwrite</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>filename</span><span class='l37'>}</span><span class='d37'>
- Logs session to a file, you can set the data type to either plain,
- raw, or html with the config command.
- </span><span class='l37'>Related</span><span class='d37'>: read, scan, textin and write.
- <a name='LOOP'></a>
- </span><span class='l32'> LOOP
- </span><span class='l37'>Command</span><span class='d37'>: #loop </span><span class='l37'>{</span><span class='d37'><start></span><span class='l37'>} {</span><span class='d37'><finish></span><span class='l37'>} {</span><span class='d37'><variable></span><span class='l37'>} {</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #loop 1 3 loop {get all $loop\.corpse}
- This equals 'get all 1.corpse;get all 2.corpse;get all 3.corpse'.
- The . needs to be escaped so it's not treated as part of the variable.
- </span><span class='l37'>Example</span><span class='d37'>: #loop 3 1 cnt {drop $cnt\.key}
- This equals 'drop 3.key;drop 2.key;drop 1.key'.
- </span><span class='l37'>Related</span><span class='d37'>: break, continue, foreach, list, parse, repeat, return and while.
- <a name='MACRO'></a>
- </span><span class='l32'> MACRO
- </span><span class='l37'>Command</span><span class='d37'>: #macro </span><span class='l37'>{</span><span class='d37'>key sequence</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- Macros allow you to make tintin respond to function keys.
- The key sequence send to the terminal when pressing a function key
- differs for every OS and terminal. To find out what sequence is send
- you can enable the CONVERT META config option.
- Another option is pressing ctrl-v, which will enable CONVERT META for
- the next key pressed.
- </span><span class='l37'>Example</span><span class='d37'>: #macro {(press ctrl-v)(press F1)} {#showme \e[2J;#buffer lock}
- Clear the screen and lock the window when you press F1, useful when the
- boss is near.
- </span><span class='l37'>Example</span><span class='d37'>: #macro {\eOM} {#cursor enter}
- Makes the keypad's enter key work as an enter in keypad mode.
- </span><span class='l37'>Comment</span><span class='d37'>: 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 class='l37'>Comment</span><span class='d37'>: You can remove a macro with the #unmacro command.
- </span><span class='l37'>Related</span><span class='d37'>: alias, cursor, history, keypad, speedwalk and tab.
- <a name='MAP'></a>
- </span><span class='l32'> MAP
- </span><span class='l37'>Command</span><span class='d37'>: #map
- The map command is the backbone of the auto mapping feature.
- </span><span class='l37'>#map at <location> <command>
- </span><span class='d37'> Execute the command at the location.
- </span><span class='l37'>#map color <field> [value]
- </span><span class='d37'> Sets the map color for the given color field.
- </span><span class='l37'>#map create <size>
- </span><span class='d37'> Creates a new map and room 1. The default size is 50000 rooms.
- </span><span class='l37'>#map destroy
- </span><span class='d37'> Deletes the map.
- </span><span class='l37'>#map delete <exit|vnum>
- </span><span class='d37'> Deletes the room for the given exit or vnum.
- </span><span class='l37'>#map dig <exit|vnum> [new|<vnum>]
- </span><span class='d37'> 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 class='l37'>#map exit <exit> <option> <arg>
- </span><span class='d37'> 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.
- </span><span class='l37'>#map exitflag <exit> <HIDE|AVOID> [on|off]
- </span><span class='d37'> Set exit flags. See #map roomflag for more info.
- </span><span class='l37'>#map explore <exit>
- </span><span class='d37'> 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 class='l37'>#map find <name> <exits> <desc> <area> <note> <terrain> <flag>
- </span><span class='d37'> 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 <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 options are also available to the at, delete, goto
- link, list and run commands.
- </span><span class='l37'>#map flag asciigraphics
- </span><span class='d37'> Takes up more space but draws a more detailed
- map that displays the ne se sw nw exits and room symbols.
- </span><span class='l37'>#map flag asciivnums
- </span><span class='d37'> Display room vnums if asciigraphics is enabled.
- </span><span class='l37'>#map flag nofollow
- </span><span class='d37'> When you enter movement commands the map will no longer
- automatically follow along. Useful for MSDP and GMCP
- automapping scripts.
- </span><span class='l37'>#map flag static
- </span><span class='d37'> 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 class='l37'>#map flag vtgraphics
- </span><span class='d37'> Enables vt line drawing on some terminals
- </span><span class='l37'>#map flag vtmap
- </span><span class='d37'> 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 class='l37'>#map goto <room vnum> [dig]
- </span><span class='d37'> Takes you to the given room vnum, with the
- dig argument a new room will be created if non exists.
- </span><span class='l37'>#map goto <name> <exits> <desc> <area> <note> <terrain>
- </span><span class='d37'> Takes you to
- the given room name, if you provide exits those must match.
- </span><span class='l37'>#map get <option> <variable> [vnum]
- </span><span class='d37'> 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 class='l37'>#map get roomexits <variable>
- </span><span class='d37'> Store all room exits into variable.
- </span><span class='l37'>#map global <room vnum>
- </span><span class='d37'> 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 class='l37'>#map info
- </span><span class='d37'> Gives information about the map and room you are in.
- </span><span class='l37'>#map insert <direction> [roomflag]
- </span><span class='d37'> Insert a room in the given
- direction. Most useful for inserting void rooms.
- </span><span class='l37'>#map jump <x> <y> <z>
- </span><span class='d37'> Jump to the given coordinate, which is relative
- to your current room.
- </span><span class='l37'>#map leave
- </span><span class='d37'> Makes you leave the map. Useful when entering a maze. You
- can return to your last known room using #map return.
- </span><span class='l37'>#map legend <legend> [symbols|reset]
- #map legend <legend> <index> [symbol]
- </span><span class='d37'> 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 automatically saved and loaded by
- using #map read and #map write.
- </span><span class='l37'>#map link <direction> <room name> [both]
- </span><span class='d37'> Links two rooms. If the both
- argument and a valid direction is given the link is two ways.
- </span><span class='l37'>#map list <name> <exits> <desc> <area> <note> <terrain>
- </span><span class='d37'> Lists all matching rooms and their distance.
- Use {variable} {<variable>} to save the output to a variable.
- {roomname} {<name>}, {roomarea} {<area>}, etc, are valid too.
- </span><span class='l37'>#map map <rows> <cols> <append|overwrite|list|variable> <name>
- </span><span class='d37'> 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.
- 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 class='l37'>#map move <direction>
- </span><span class='d37'> 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. You will need to create actions using '#map move',
- for this to work.
- </span><span class='l37'>#map offset <row> <col> <row> <col>
- </span><span class='d37'> Define the offset of the vtmap as a square. Without an argument
- it defaults to the entire top split region.
- </span><span class='l37'>#map read <filename>
- </span><span class='d37'> Will load the given map file.
- </span><span class='l37'>#map resize <size>
- </span><span class='d37'> Resize the map, setting the maximum number of rooms.
- </span><span class='l37'>#map return
- </span><span class='d37'> Returns you to your last known room after leaving the map
- or loading a map.
- </span><span class='l37'>#map roomflag avoid
- </span><span class='d37'> When set, '#map find' will avoid a route leading
- through that room. Useful when you want to avoid death traps.
- </span><span class='l37'>#map roomflag hide
- </span><span class='d37'> 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 class='l37'>#map roomflag leave
- </span><span class='d37'> 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 class='l37'>#map roomflag noglobal
- </span><span class='d37'> This marks a room as not allowing global
- transportation, like norecall rooms that block recall.
- </span><span class='l37'>#map roomflag void
- </span><span class='d37'> 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 class='l37'>#map roomflag static
- </span><span class='d37'> When set the room will no longer be autolinked
- when walking around. Useful for mapping mazes.
- </span><span class='l37'>#map run <room name> [delay]
- </span><span class='d37'> 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 class='l37'>#map set <option> <value> [vnum]
- </span><span class='d37'> Set a map value for your current
- room, or given room if a room vnum is provided.
- </span><span class='l37'>#map travel <direction> <delay>
- </span><span class='d37'> 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 #undelay PATH %* to abort delayed movement.
- </span><span class='l37'>#map undo
- </span><span class='d37'> 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 existant direction.
- </span><span class='l37'>#map uninsert <direction>
- </span><span class='d37'> Exact opposite of the insert command.
- </span><span class='l37'>#map unlink <direction> [both]
- </span><span class='d37'> Will remove the exit, this isn't two
- way so you can have the map properly display no exit rooms and
- mazes.
- If you use the both argument the exit is removed two-ways.
- </span><span class='l37'>#map vnum <low> [high]
- </span><span class='d37'> Change the room vnum to the given number, if
- a range is provided the first available room in that range
- is selected.
- </span><span class='l37'>#map write <filename> [force]
- </span><span class='d37'> Will save the map, if you want to save a map to a .tin file
- you must provide the {force} argument.
- </span><span class='l37'>Related</span><span class='d37'>: path and pathdir.
- <a name='MATH'></a>
- </span><span class='l32'> MATH
- </span><span class='l37'>Command</span><span class='d37'>: #math </span><span class='l37'>{</span><span class='d37'>variable</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>expression</span><span class='l37'>}</span><span class='d37'>
- 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
- * 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 (can use regex)
- != 5 logical not equal (can use regex)
- & 6 bitwise and
- ^ 7 bitwise xor
- | 8 bitwise or
- && 9 logical and
- ^^ 10 logical xor
- || 11 logical or
- 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 { } and use regex with == and !=,
- in the case of <= and >= the alphabetic order is compared.
- The #if and #switch commands use #math. Several commands accepting
- integer input allow math operations as well.
- Floating point precision is added by using the decimal . operator.
- Time in seconds is calculated using [day]:[hour]:<minute>:<second>.
- </span><span class='l37'>Example</span><span class='d37'>: #math {heals} {$mana / 40}
- Assuming there is a variable $mana, divides its value by 40 and stores
- the result in $heals.
- </span><span class='l37'>Example</span><span class='d37'>: #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 class='l37'>Example</span><span class='d37'>: #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 class='l37'>Related</span><span class='d37'>: format, function, local, mathematics, replace, script and variable.
- <a name='MATHEMATICS'></a>
- </span><span class='l32'> MATHEMATICS
- </span><span class='l37'>Number operations
- </span><span class='d37'> 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 paranthesis, for example (1 + 1) * 2
- equals 4, while 1 + 1 * 2 equals 3.
- </span><span class='l37'>String operations</span><span class='d37'>
- 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 (can use regex)
- != 5 alphabetical not equal (can use regex)
- 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 class='l37'>Related</span><span class='d37'>: math
- <a name='MESSAGE'></a>
- </span><span class='l32'> MESSAGE
- </span><span class='l37'>Command</span><span class='d37'>: #message </span><span class='l37'>{</span><span class='d37'>listname</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>on</span><span class='l37'>|</span><span class='d37'>off</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Related</span><span class='d37'>: class, debug, ignore, info and kill.
- <a name='MSDP'></a>
- </span><span class='l32'> MSDP
- </span><span class='d37'>
- MSDP 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 class='l37'>
- https://tintin.sourceforge.io/protocols/msdp
- Related</span><span class='d37'>: event and port.
- <a name='NOP'></a>
- </span><span class='l32'> NOP
- </span><span class='l37'>Command</span><span class='d37'>: #nop </span><span class='l37'>{</span><span class='d37'>whatever</span><span class='l37'>}</span><span class='d37'>
- 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.
- </span><span class='l37'>Comment</span><span class='d37'>: 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 class='l37'>Example</span><span class='d37'>: #nop This is the start of my script file.
- </span><span class='l37'>Related</span><span class='d37'>: read
- <a name='PARSE'></a>
- </span><span class='l32'> PARSE
- </span><span class='l37'>Command</span><span class='d37'>: #parse </span><span class='l37'>{</span><span class='d37'>string</span><span class='l37'>} {</span><span class='d37'>variable</span><span class='l37'>} {</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #parse {hello world} {char} {#showme $char}
- </span><span class='l37'>Related</span><span class='d37'>: break, continue, foreach, list, loop, repeat, return and while.
- <a name='PATH'></a>
- </span><span class='l32'> PATH
- </span><span class='l37'>Command</span><span class='d37'>: #path </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- 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.
- 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'. If you use
- the 'length' or 'position' keywords the current length or
- position is saved.
- 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 class='l37'>Example</span><span class='d37'>: #path ins {unlock n;open n} {unlock s;open s}
- </span><span class='l37'>Related</span><span class='d37'>: map and pathdir.
- <a name='PATHDIR'></a>
- </span><span class='l32'> PATHDIR
- </span><span class='l37'>Command</span><span class='d37'>: #pathdir </span><span class='l37'>{</span><span class='d37'>dir</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>reversed dir</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>coord</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #pathdir {ue} {dw} {18}
- #pathdir {dw} {ue} {40}
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a pathdir with the #unpathdir command.
- </span><span class='l37'>Related</span><span class='d37'>: map and path.
- <a name='PCRE'></a>
- </span><span class='l32'> PCRE
- </span><span class='d37'>
- 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 class='l37'> TinTin++ Regular Expression</span><span class='d37'>
- The following support is available for regular expressions.
- ^ match start of line.
- $ match of end of line.
- \ escape one character.
- %1-%99 match of any text, stored in the corresponding index.
- %0 should be avoided in the regex, contains all matched text.
- { } embed a perl compatible regular expression, matches are stored.
- %!{ } embed a perc 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 class='l37'>
- TinTin++ Description POSIX</span><span class='d37'>
- %d Match zero to any number of digits ([0-9]*?)
- %D Match zero to any number of non-digits ([^0-9]*?)
- %i Matches become case insensitive (?i)
- %I Matches become case sensitive (default) (?-i)
- %s Match zero to any number of spaces ([\r\n\t ]*?)
- %w Match zero to any number of word characters ([A-Za-z0-9_]*?)
- %W Match zero to any number of non-word characters ([^A-Za-z0-9_]*?)
- %? Match zero or one character (.??)
- %. Match one character (.)
- %+ Match one to any number of characters (.+?)
- %* Match zero to any number of characters (.*?)
- </span><span class='l37'>
- Variables</span><span class='d37'>
- 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.
- Example: %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.
- Example: %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 class='l37'>
- Perl Compatible Regular Expressions</span><span class='d37'>
- You can embed a PCRE (Perl Compatible Regular Expression) using curley
- braces { }, these braces are replaced with paranthesis ( ) unless you
- use %!{ }.
- </span><span class='l37'>
- Or</span><span class='d37'>
- You can separate alternatives within a PCRE using the | character.
- Example: #act {%* raises {his|her|its} eyebrows.} {say 42..}
- </span><span class='l37'>
- Brackets</span><span class='d37'>
- You can group alternatives and ranges within a PCRE using brackets.
- Example: #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.
- Example: #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 class='l37'>
- Quantification</span><span class='d37'>
- A quantifier placed after a match specifies how often the match is
- allowed to occur.
- ? repeat zero or one time.
- * repeat zero or multiple times.
- + repeat once or multiple times.
- {n} repeat exactly n times, n must be a number.
- {n,} repeat at least n times, n must be a number.
- {n,o} repeat between n and o times, n and o must be a number.
- Example: #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 class='l37'>Paranthesis</span><span class='d37'>
- 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 paranthesis also causes the match to be stored to a
- variable.
- When nesting multiple sets of paranthesis each nest is assigned its
- numercial variable in order of appearance.
- Example: #act {%* chats '{Mu(ha)+}'} {chat %2ha!}
- If someone chats Muha you will chat Muhaha! If someone chats Muhaha
- you will chat Muhahaha!
- </span><span class='l37'>Lazy vs Greedy</span><span class='d37'>
- By default regex matches are greedy, meaning {.*} will capture as much
- text as possible.
- Example: #regex {bli bla blo} {^{.*} {.*}$} {#showme 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.
- Example: #regex {bli bla blo} {^{.*?} {.*?}$} {#showme Arg1=(&1) Arg2=(&2)}
- This will display: Arg1=(bli) Arg2=(bla blo).
- </span><span class='l37'>Escape Codes</span><span class='d37'>
- PCRE support the following escape codes.
- </span><span class='l37'>
- PCRE Description POSIX</span><span class='d37'>
- \A Match start of string ^
- \b Match word boundaries (^|\r|\n|\t| |$)
- \B Match non-word boundaries [^\r\n\t ]
- \c Insert control character \c
- \d Match digits [0-9]
- \D Match non-digits [^0-9]
- \e Insert escape character \e
- \f Insert form feed character \f
- \n Insert line feed character \n
- \r Insert carriage return character \r
- \s Match spaces [\r\n\t ]
- \S Match non-spaces [^\r\n\t ]
- \t Insert tab character \t
- \w Match letters, numbers, and underscores [A-Za-z0-9_]
- \W Match non-letters, numbers, and underscores [^A-Za-z0-9_]
- \x Insert hex character \x
- \Z Match end of string $
- \s matches one space, \s+ matches one or multiple spaces.
- </span><span class='l37'>Color triggers</span><span class='d37'>
- 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 ~
- (tilda). To make escape codes visible use #config {convert meta} on.
- Example: #action {~\e[1;37m%1} {#var roomname %1}
- If the room name is the only line on the mud in bright white this
- 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 class='l37'>Related</span><span class='d37'>: map and path.
- <a name='PORT'></a>
- </span><span class='l32'> PORT
- </span><span class='l37'>Command</span><span class='d37'>: #port </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- #port {init} {name} {port} {file} Initilize a port session.
- #port {call} {address} {port} Connect to a remote socket
- #port {color} {color names} Set the default color
- #port {dnd} Decline new connections
- #port {group} {name} {group} Assign a socket group
- #port {ignore} {name} Ignore a socket
- #port {info} Display your info
- #port {name} {name} Change socket name.
- #port {prefix} {text} Set prefix before each message.
- #port {send} {name|all} {text} Send data to socket
- #port {uninitialize} Unitialize the port session.
- #port {who} Show all connections
- #port {zap} {name} 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.
- </span><span class='l37'>Related</span><span class='d37'>: all, chat, run, session, sessionname, snoop, ssl and zap.
- <a name='PROMPT'></a>
- </span><span class='l32'> PROMPT
- </span><span class='l37'>Command</span><span class='d37'>: #prompt </span><span class='l37'>{</span><span class='d37'>text</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>new text</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>row #</span><span class='l37'>} {</span><span class='d37'>col #</span><span class='l37'>}</span><span class='d37'>
- 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 with a substitution.
- 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 at row -2.
- 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
- column argument empty tintin will clear the row before printing at
- the start of the row.
- The #showme command takes a row and col argument as well so it's also
- possible to place text on your split lines using #showme.
- </span><span class='l37'>Comment</span><span class='d37'>: See </span><span class='l37'>#help split</span><span class='d37'> for more information on split mode.
- </span><span class='l37'>Comment</span><span class='d37'>: See </span><span class='l37'>#help substitute</span><span class='d37'> for more information on text
- substitutions.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a prompt with the #unprompt command.
- </span><span class='l37'>Related</span><span class='d37'>: action, gag, highlight and substitute.
- <a name='READ'></a>
- </span><span class='l32'> READ
- </span><span class='l37'>Command</span><span class='d37'>: #read </span><span class='l37'>{</span><span class='d37'>filename</span><span class='l37'>}</span><span class='d37'>
- Reads a commands file into memory. The coms file is merged in with
- the currently loaded commands. Duplicate commands are overwritten.
- If you uses braces, { and } you can use several lines for 1 commands.
- This however means you must always match every { with a } for the read
- command to work.
- You can comment out triggers using /* text */
- </span><span class='l37'>Related</span><span class='d37'>: log, scan, textin and write.
- <a name='REGEXP'></a>
- </span><span class='l32'> REGEXP
- </span><span class='l37'>Command</span><span class='d37'>: #regexp </span><span class='l37'>{</span><span class='d37'>string</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>expression</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>true</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>false</span><span class='l37'>}</span><span class='d37'>
- Compares the string to the given regular expression.
- Variables are stored in &1 to &99 with &0 holding the matched substring.
- ^ force match of start of line.
- $ force match of end of line.
- \ escape one character.
- %1-%99 lazy match of any text, available at %1-%99.
- %0 should be avoided in triggers, and if left alone lists all matches.
- { } embed a raw regular expression, matches are stored to %1-%99.
- %!{ } embed a raw regular expression, matches are not stored.
- [ ] . + | ( ) ? * are treated as normal text unlessed used within
- braces. Keep in mind that { } is replaced with ( ) automatically
- unless %!{ } is used.
- Of the following the (lazy) match is available at %1-%99 + 1
- %w match zero to any number of word characters.
- %W match zero to any number of non word characters.
- %d match zero to any number of digits.
- %D match zero to any number of non digits.
- %s match zero to any number of spaces.
- %S match zero to any number of non spaces.
- %? match zero or one character.
- %. match one character.
- %+ match one to any number of characters.
- %* match zero to any number of characters.
- %i matching becomes case insensitive.
- %I 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 class='l37'>Example</span><span class='d37'>: #regexp {bli bla blo} {bli {.*} blo} {#showme &1}
- </span><span class='l37'>Related</span><span class='d37'>: case, default, else, elseif, if and switch.
- <a name='REPEAT'></a>
- </span><span class='l32'> REPEAT
- </span><span class='l37'>Command</span><span class='d37'>: #</span><span class='l37'>[</span></span><span class='b49'><span class='d37'>number</span><span class='l37'>] {</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- Sometimes you want to repeat the same command multiple times. This is the
- easiest way to accomplish that.
- </span><span class='l37'>Example</span><span class='d37'>: #10 {buy bread}
- </span><span class='l37'>Related</span><span class='d37'>: break, continue, foreach, list, loop, parse, return and while.
- <a name='REPLACE'></a>
- </span><span class='l32'> REPLACE
- </span><span class='l37'>Command</span><span class='d37'>: #replace </span><span class='l37'>{</span><span class='d37'>variable</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>oldtext</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>newtext</span><span class='l37'>}</span><span class='d37'>
- Searches the variable text replacing each occurance of 'oldtext' with
- 'newtext'.
- </span><span class='l37'>Related</span><span class='d37'>: format, function, local, math, script and variable.
- <a name='RETURN'></a>
- </span><span class='l32'> RETURN
- </span><span class='l37'>Command</span><span class='d37'>: #return </span><span class='l37'>{</span><span class='d37'>text</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Related</span><span class='d37'>: break, continue, foreach, list, loop, parse, repeat and while.
- <a name='RUN'></a>
- </span><span class='l32'> RUN
- </span><span class='l37'>Command</span><span class='d37'>: #run </span><span class='l37'>{</span><span class='d37'>name</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>shell command</span><span class='l37'>} {</span><span class='d37'>file</span><span class='l37'>}</span><span class='d37'>
- 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 mud 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 class='l37'>Example</span><span class='d37'>: #run {somewhere} {ssh someone@somewhere.com}
- </span><span class='l37'>Example</span><span class='d37'>: #run {something} {tail -f chats.log}
- </span><span class='l37'>Related</span><span class='d37'>: all, port, session, sessionname, snoop, ssl and zap.
- <a name='SCAN'></a>
- </span><span class='l32'> SCAN
- </span><span class='l37'>Command</span><span class='d37'>: #scan </span><span class='l37'>{</span><span class='d37'>abort</span><span class='l37'>|</span><span class='d37'>csv</span><span class='l37'>|</span><span class='d37'>tsv</span><span class='l37'>|</span><span class='d37'>txt</span><span class='l37'>} {</span><span class='d37'>filename</span><span class='l37'>}</span><span class='d37'>
- The scan txt <filename> command reads in a file and sends its content
- to the screen as if it was send by a mud. 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.
- The scan csv <filename> 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 subsequent
- lines 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.
- 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 class='l37'>Related</span><span class='d37'>: read and textin.
- <a name='SCREEN'></a>
- </span><span class='l32'> SCREEN
- </span><span class='l37'>Command</span><span class='d37'>: #screen </span><span class='l37'>{</span><span class='d37'>option</span><span class='l37'>} {</span><span class='d37'>argument</span><span class='l37'>}
- </span><span class='d37'>The screen command offers a variety of screen manipulation
- commands and utilities.
- </span><span class='l37'>#screen blur
- </span><span class='d37'> Move the terminal to the back of the stack.
- </span><span class='l37'>#screen erase [all|scroll region|square] <args>
- </span><span class='d37'> Provide 4 arguments defining the top left and bottom right corner
- when erasing a square.
- </span><span class='l37'>#screen focus
- </span><span class='d37'> Move the terminal to the front of the stack.
- </span><span class='l37'>#screen fullscreen [on|off]
- </span><span class='d37'> Toggles fullscreen mode when used without an argument.
- </span><span class='l37'>#screen get <rows|cols|height|width> <var>
- </span><span class='d37'> Get the rows/cols size in characters or height/width in pixels.
- </span><span class='l37'>#screen get <top_row|bot_row|top_split|bot_split> <var>
- </span><span class='d37'> Get the top and bot row of the scrolling region or the height
- of the top and bot split bars.
- </span><span class='l37'>#screen info
- </span><span class='d37'> Debugging information.
- </span><span class='l37'>#screen load <both|label|title>
- </span><span class='d37'> Reload the saved title, label, or both.
- </span><span class='l37'>#screen minimize <on|off>
- </span><span class='d37'> Minimize with on, restore with off.
- </span><span class='l37'>#screen maximize [on|off]
- </span><span class='d37'> Maximize with on, restore with off.
- </span><span class='l37'>#screen move <height> <width>
- </span><span class='d37'> Move the upper left corner of the terminal to pixel coordinate.
- </span><span class='l37'>#screen raise <event>
- </span><span class='d37'> This will raise several screen events with %1 and %2 arguments.
- </span><span class='l37'>#screen refresh
- </span><span class='d37'> Terminal dependant, may do nothing.
- </span><span class='l37'>#screen rescale <height> <width>
- </span><span class='d37'> Resize the screen to the given height and width in pixels.
- </span><span class='l37'>#screen resize <rows> <cols>
- </span><span class='d37'> Resize the screen to the given height and width in characters.
- </span><span class='l37'>#screen save <both|label|title>
- </span><span class='d37'> Save the title, label, or both.
- </span><span class='l37'>#screen set <both|label|title>
- </span><span class='d37'> Set the title, label, or both. Only title works on Windows.
- </span><span class='l37'>Related</span><span class='d37'>: bell
- <a name='SCREEN READER'></a>
- </span><span class='l32'> SCREEN READER
- </span><span class='l37'>Command</span><span class='d37'>: #config </span><span class='l37'>{</span><span class='d37'>SCREEN READER</span><span class='l37'>} {</span><span class='d37'>ON|OFF</span><span class='l37'>}</span><span class='d37'>
- Screen reader mode is enabled by using #config screen on. The main
- purpose of the screen reader mode is to tell MUDs that a screen reader
- is being used by using the MTTS standard. The MTTS specification is
- available at:
- http://tintin.sourceforge.net/protocols/mtts
- With the screen reader mode enabled TinTin++ will try to remove visual
- elements where possible.
- </span><span class='l37'>Related</span><span class='d37'>: config
- <a name='SCRIPT'></a>
- </span><span class='l32'> SCRIPT
- </span><span class='l37'>Command</span><span class='d37'>: #script </span><span class='l37'>{</span><span class='d37'>variable</span><span class='l37'>} {</span><span class='d37'>shell command</span><span class='l37'>}</span><span class='d37'>
- 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 scrips 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 class='l37'>Example</span><span class='d37'>: #script {ruby -e 'print "#showme hello world"'}
- </span><span class='l37'>Example</span><span class='d37'>: #script {python -c 'print "#showme hello world"'}
- </span><span class='l37'>Example</span><span class='d37'>: #script {php -r 'echo "#showme hello world"'}
- </span><span class='l37'>Example</span><span class='d37'>: #script {path} {pwd};#showme The path is $path[1].
- </span><span class='l37'>Related</span><span class='d37'>: format, function, local, math, replace and variable.
- <a name='SEND'></a>
- </span><span class='l32'> SEND
- </span><span class='l37'>Command</span><span class='d37'>: #send </span><span class='l37'>{</span><span class='d37'>text</span><span class='l37'>}</span><span class='d37'>
- Sends the text directly to the MUD, useful if you want to start with an
- escape code.
- </span><span class='l37'>Related</span><span class='d37'>: textin
- <a name='SESSION'></a>
- </span><span class='l32'> SESSION
- </span><span class='l37'>Command</span><span class='d37'>: #session </span><span class='l37'>{</span><span class='d37'>name</span><span class='l37'>} {</span><span class='d37'>host</span><span class='l37'>} {</span><span class='d37'>port</span><span class='l37'>} {</span><span class='d37'>file</span><span class='l37'>}</span><span class='d37'>
- 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 existant session, a number, or the keywords '+', '-' and 'self'.
- 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 class='l37'>Example</span><span class='d37'>: #event {SESSION DISCONNECTED} {#gts #delay 10 #ses %0 mymud.com 4321}
- </span><span class='l37'>Related</span><span class='d37'>: all, port, run, sessionname, snoop, ssl and zap.
- <a name='SHOWME'></a>
- </span><span class='l32'> SHOWME
- </span><span class='l37'>Command</span><span class='d37'>: #showme </span><span class='l37'>{</span><span class='d37'>string</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>row</span><span class='l37'>} {</span><span class='d37'>col</span><span class='l37'>}</span><span class='d37'>
- Display the string to the terminal, do not send to the mud. 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 showme command. If you want to avoid
- this from happening use: #line ignore #showme {<string>}.
- </span><span class='l37'>Example</span><span class='d37'>: #tick {TICK} {#delay 50 #showme 10 SECONDS TO TICK!!!} {60}
- </span><span class='l37'>Comment</span><span class='d37'>: The #prompt helpfile contains more information on using the
- option {row} and {col} arguments.
- </span><span class='l37'>Related</span><span class='d37'>: buffer, echo and grep.
- <a name='SNOOP'></a>
- </span><span class='l32'> SNOOP
- </span><span class='l37'>Command</span><span class='d37'>: #snoop </span><span class='l37'>{</span><span class='d37'>session name</span><span class='l37'>} {</span><span class='d37'>on</span><span class='l37'>|</span><span class='d37'>off</span><span class='l37'>}</span><span class='d37'>
- 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.
- </span><span class='l37'>Related</span><span class='d37'>: all, port, run, session, sessionname, ssl and zap.
- <a name='SPEEDWALK'></a>
- </span><span class='l32'> SPEEDWALK
- </span><span class='d37'>Speedwalking allows you to type multiple directions not separated by
- semicolons, and now it lets you prefix a direction with a number, to
- signify how many times to go that direction. You can turn it on/off
- with #config.
- </span><span class='l37'>Example</span><span class='d37'>: Without speedwalk, you have to type:
- s;s;w;w;w;w;w;s;s;s;w;w;w;n;n;w
- With speedwalk, you only have to type:
- 2s5w3s3w2nw
- </span><span class='l37'>Related</span><span class='d37'>: alias, cursor, history, keypad, macro and tab.
- <a name='SPLIT'></a>
- </span><span class='l32'> SPLIT
- </span><span class='l37'>Command</span><span class='d37'>: #split </span><span class='l37'>{</span><span class='d37'>top status bar height</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>bottom status bar height</span><span class='l37'>}</span><span class='d37'>
- This option requires for your terminal to support VT100 emulation.
- #split allows the creation of an input line, a bottom status bar, a
- top status bar, and a scrolling text region.
- By default the bottom status bar is filled with dashes --- and
- subsequently it is also known as the split line. The scrolling
- text 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 0 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.
- </span><span class='l37'>--top status bar--------
- </span><span class='d37'> scrolling text region
- </span><span class='l37'>--bottom status bar----------
- </span><span class='d37'> input line
- </span><span class='l37'>Example</span><span class='d37'>: #split 0 0
- If tintin has determined that you have a screen of 30 rows, it will
- set the scroll text region line 1 to line 29. With this example you
- will have no status bars, but you will have an input bar, meaning
- that if there is incoming text it won't overwrite what you are typing.
- </span><span class='l37'>Comment</span><span class='d37'>: You can display text on the split line(s) with the #prompt and
- #showme {line} {row} commands.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove split mode with the #unsplit command.
- </span><span class='l37'>Related</span><span class='d37'>: echo, prompt and showme.
- <a name='SSL'></a>
- </span><span class='l32'> SSL
- </span><span class='l37'>Command</span><span class='d37'>: #ssl </span><span class='l37'>{</span><span class='d37'>name</span><span class='l37'>} {</span><span class='d37'>host</span><span class='l37'>} {</span><span class='d37'>port</span><span class='l37'>} {</span><span class='d37'>file</span><span class='l37'>}
- Starts a secure socket telnet session with the given name, host, port,
- and optional file name.
- Related</span><span class='d37'>: all, port, run, sessionname, snoop, ssl and zap.
- <a name='STATEMENTS'></a>
- </span><span class='l32'> STATEMENTS
- TinTin++ knows the following statements.
- </span><span class='d37'>
- #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 class='l37'>Related</span><span class='d37'>: break, case, continue, default, else, elseif, foreach, if, loop, parse, return, switch and while.
- <a name='SUBSTITUTE'></a>
- </span><span class='l32'> SUBSTITUTE
- </span><span class='l37'>Command</span><span class='d37'>: #substitute </span><span class='l37'>{</span><span class='d37'>text</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>new text</span><span class='l37'>}</span><span class='d37'>
- Allows you to replace original text from the mud with different text.
- This is helpful for complex coloring and making things more readable.
- The %1-%99 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 only one argument is given, all active substitutions that match the
- strings are displayed. The '%*' char is valid in this instance. See
- '#help regex', for advanced wildcard information.
- If no argument is given, all subs are displayed.
- </span><span class='l37'>Example</span><span class='d37'>: #sub {Zoe} {ZOE}
- Any instance of Zoe will be replaced with ZOE.
- </span><span class='l37'>Example</span><span class='d37'>: #sub {~\e[0;34m} {\e[1;34m}
- Replace generic dark blue color codes with bright blue ones.
- </span><span class='l37'>Example</span><span class='d37'>: #sub {%1massacres%2} {<018>%1<118>MASSACRES<018>%2}
- Replaces all occurrences of 'massacres' with 'MASSACRES' in red.
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help action', for more information about triggers.
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help colors', for more information.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a substitution with the #unsubstitute command.
- </span><span class='l37'>Related</span><span class='d37'>: action, gag, highlight and prompt.
- <a name='SUSPEND'></a>
- </span><span class='l32'> SUSPEND
- </span><span class='l37'>Command</span><span class='d37'>: #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.
- While suspended your tintin sessions will freeze. To keep a
- suspended session running use the screen utility program and
- have it detach the session.
- </span><span class='l37'>Related</span><span class='d37'>: end
- <a name='SWITCH'></a>
- </span><span class='l32'> SWITCH
- </span><span class='l37'>Command</span><span class='d37'>: #switch </span><span class='l37'>{</span><span class='d37'>conditional</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>arguments</span><span class='l37'>}</span><span class='d37'>
- 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 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 class='l37'>Example</span><span class='d37'>: #switch {1d4} {#case 1 cackle;#case 2 smile;#default giggle}
- </span><span class='l37'>Related</span><span class='d37'>: statements
- <a name='SYSTEM'></a>
- </span><span class='l32'> SYSTEM
- </span><span class='l37'>Command</span><span class='d37'>: #system </span><span class='l37'>{</span><span class='d37'>command</span><span class='l37'>}</span><span class='d37'>
- Executes the command specified as a shell command.
- </span><span class='l37'>Related</span><span class='d37'>: script and run.
- <a name='TAB'></a>
- </span><span class='l32'> TAB
- </span><span class='l37'>Command</span><span class='d37'>: #tab </span><span class='l37'>{</span><span class='d37'>word</span><span class='l37'>}</span><span class='d37'>
- 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.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a tab with the #untab command.
- </span><span class='l37'>Related</span><span class='d37'>: alias, cursor, history, keypad, macro and speedwalk.
- <a name='TEXTIN'></a>
- </span><span class='l32'> TEXTIN
- </span><span class='l37'>Command</span><span class='d37'>: #textin </span><span class='l37'>{</span><span class='d37'>filename</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>delay</span><span class='l37'>}</span><span class='d37'>
- Textin allows the user to read in a file, and send its contents
- directly to the mud. 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 class='l37'>Related</span><span class='d37'>: scan and send.
- <a name='TICKER'></a>
- </span><span class='l32'> TICKER
- </span><span class='l37'>Command</span><span class='d37'>: #ticker </span><span class='l37'>{</span><span class='d37'>name</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>interval in seconds</span><span class='l37'>}</span><span class='d37'>
- Executes given command every # of seconds.
- </span><span class='l37'>Comment</span><span class='d37'>: Tickers don't work in the startup session.
- </span><span class='l37'>Comment</span><span class='d37'>: You can remove a ticker with the #unticker command.
- </span><span class='l37'>Related</span><span class='d37'>: delay and event.
- <a name='TIME'></a>
- </span><span class='l32'> TIME
- </span><span class='l37'>Command</span><span class='d37'>: #format </span><span class='l37'>{</span><span class='d37'>variable</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>%t</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>argument</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Command</span><span class='d37'>: #format </span><span class='l37'>{</span><span class='d37'>variable</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>%t</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{{</span><span class='d37'>argument</span><span class='l37'>} {{</span><span class='d37'>epoch time</span><span class='l37'>}}</span><span class='d37'>
- The current epoch time value is obtained using #format {time} {%T}.
- When using %t the argument should contain strftime format specifiers.
- The output may differ depending on your locale.
- %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.
- </span><span class='l37'>Related</span><span class='d37'>: echo and format.
- <a name='VARIABLE'></a>
- </span><span class='l32'> VARIABLE
- </span><span class='l37'>Command</span><span class='d37'>: #variable </span><span class='l37'>{</span><span class='d37'>variable name</span><span class='l37'>}</span><span class='d37'> </span><span class='l37'>{</span><span class='d37'>text to fill variable</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #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 class='l37'>Example</span><span class='d37'>: #variable {cool website} {http://tintin.sourceforge.net}
- #chat I was on ${cool website} yesterday!.
- Variables can be nested using brackets or dots:
- </span><span class='l37'>Example</span><span class='d37'>: #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[%*] or a less generic regex.
- Nested variables are also known as tables, table generally being used
- to refer to several variables nested within one specific variable.
- </span><span class='l37'>Example</span><span class='d37'>: #showme {Targets starting with the letter 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 class='l37'>Example</span><span class='d37'>: #showme {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 class='l37'>Comment</span><span class='d37'>: You can remove a variable with the #unvariable command.
- </span><span class='l37'>Related</span><span class='d37'>: format, function, local, math, replace and script.
- <a name='WHILE'></a>
- </span><span class='l32'> WHILE
- </span><span class='l37'>Command</span><span class='d37'>: #while </span><span class='l37'>{</span><span class='d37'>conditional</span><span class='l37'>} {</span><span class='d37'>commands</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Example</span><span class='d37'>: #math cnt 0;#while {$cnt < 20} {#math cnt $cnt + 1;say $cnt}
- </span><span class='l37'>Comment</span><span class='d37'>: See '#help math', for more information.
- </span><span class='l37'>Related</span><span class='d37'>: statements
- <a name='WRITE'></a>
- </span><span class='l32'> WRITE
- </span><span class='l37'>Command</span><span class='d37'>: #write </span><span class='l37'>{</span><span class='d37'><filename></span><span class='l37'>} {</span><span class='d37'>[FORCE]</span><span class='l37'>}</span><span class='d37'>
- 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 class='l37'>Related</span><span class='d37'>: log, read, scan and textin.
- <a name='ZAP'></a>
- </span><span class='l32'> ZAP
- </span><span class='l37'>Command</span><span class='d37'>: #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 class='l37'>Related</span><span class='d37'>: all, port, run, session, sessionname, snoop and ssl.
|