Avalon; the First Age

Play Now
Introduction
Cities
Guilds and Professions
The Pantheon of Deities
Maps of First Age
The Avalon Manual
Current Events
Ancient History
Sites Made By Players
Contact Us
Earn Money by Advertising
Articles
Site Map

An Avalonian's Guide to the TinyFugue Client

It is assumed that you have installed a version of TF in your UNIX account. If you have not, you need to refer to the TF README file, which will be with the compressed version of TF.

Section Contents


[1] The very beginning
[2] /bind - defining hotkeys / Fkeys / boundkeys
[3] /hook send - defining macros
[4] /list, /save, /load, /undefn and /purge - file handling
[5] /trig - autoresponses
[6] /hilite - highlighting important text
[7] /visual - split screen view
[8] /set - using variables to set up targets.
[9] %{n} - specifying places in a triggering command line.
[10] extra list commands

[1] I've installed TF - what now?

TF can be run from anywhere in your UNIX account, but it may be a good idea to run it from an empty directory, as it will save out files to where you start from. Just type 'tf' to start.

You should get a screen something like this:

Tinyfugue version 3.4 alpha 16, Copyright (C) 1993, 1994, 1995 Ken Keys
Regexp package is Copyright (C) 1986 by University of Toronto.
Type '/help', '/help topics', or '/help intro' for help.
%loading commands from /ee/ee94/u1/jadg/tf.lib/stdlib.tf
---- No World ----

In order to send commands to TF, you must preface them with a /. Anything else will be sent to the MUD, but since you are not yet connected to anywhere, these commands will simply be ignored. So, to connect to First Age, type the following:

/telnet firstage.net 23

This should connect you to First Age, with the login prompt as normal. After you login, you can play First Age as normal...

Two quick ground rules. Anything I put inside brackets in a TF command is my comment to you. Do not type it. Also, anything in square brackets is a variable. You need to put in something, like a filename.

return to top

[2] /bind

This is one of the most useful commands in TF. Basically, it allows you to define hotkeys. It works by replacing a particular combination of characters with the defined macro.

Example: On my system, when I press the F1 key at the UNIX prompt, I get '[12~'. Some other systems get things like ^q or oq.

To bind these, use the following command:

For example, I would type:

/bind [12~ = drink blue potion

Then, whenever I press the F1 key, it will take a drink out of my blue potion. Note: you do not need to press anything else, such as enter or return.

Care should be taken with this command, especially if your F-keys use things like op. This is because it will replace any incidence of op in any command with drink blue potion, or whatever. So instead of typing 'get opals' it will give you 'drink blue potion' followed by 'get als'. To solve this, you can change your UNIX keymaps. I recommend you beg, borrow or steal a UNIX handbook.

More that one First Age command can be placed in the hotkey list, using the %; command separator. For example:

/bind [13~ = drink blue potion%;outp lestagii%;eat lestagii

As many commands as you like can be put into the response line. However, First Age will unlog you if you enter more than 30 commands in one second. The separator %; is global, and can be used in any TF command.

It is not a good idea to bind an F-key more than once. You ca not be sure which command it will do. Look below at section 4 for how to delete multiple bindings.

return to top

[3] /hook send

Now, you have a limited number of hotkeys. They are best reserved for your most urgent fighting commands, such as attacks and defences. Also, it is hard to keep track of what each F-key does. It's not very descriptive. For less urgent commands, and a virtually infinite range of user defined macros, you need the command /hook send. This is best demonstrated by a couple of examples...

(1) /hook send {heal} = chant healhand %; cast me

This tells TF, that whenever I type heal, I will heal myself using Charming.

(2) /hook send {n} = north %; exits

This one looks at the exits every time I go north.

return to top

[4] /list, /save, /load, /purge and /undefn

So, you have defined a couple of hotkeys and macros. How do you mess about with your handiwork?

/list will show all your currently defined macros, complete with macro numbers. For example:

%223: /def -p1 -mglob -b'[12~' = drink blue potion
%224: /def -p1 -mglob -b'[13~' = drink blue potion %; 
      outp lestagii %; eat lestagii
%225: /def -p1 -mglob hook send heal = healhand
%226: hook send n = n%;routes
Note: ignore -p1 and -mglob options. TF uses /def to define all of it's macros, hotkeys, triggers etc. It uses options such as -t and -b to specify how a /def will work precisely. -p1 and -mglob are just two more options, that have little/no effect.

In order to have these macros next time you use TF , you need to save them out to a file. TF will not keep them in memory. Example:

/save [filename]
/save macros.tf

Then to load them back in when TF is running, use:

/load macros.tf

How do you delete a macro that's on your list? Simple:

/undefn [macro number]

For example, in the list above you would use:

/undefn 223

This deletes macro 223. In other words, '/def -p1 -mglob -b'[12~' = drink blue potion'.

Personally, I find it easier to use a UNIX texteditor to modify my saved macros file.

Lastly, if you want to erase your list of macros (e.g. you screwed up, and you want to reload your backup copy of your saved macros) there is no need to quit out of TF , and restart; just type:

/purge

You need to do this as TF will not allow current macros to be overwritten by loaded files.

return to top

[5] /trig

Automatic responses. Let's say you want the equivalent of autowake. What you need is the /trig command. The text line is 'You are asleep and incapable of acting; type WAKE to wake yourself up.' So, we use:

/trig You are asleep and incapable of acting; 
  type WAKE to wake yourself up. = wake

The trigger text must always start on the left - so what happens if you want to trigger on something that happens in the middle of the sentence? Well, we use wildcards. For example:

/trig * stands within a pentacle.* = chant nullify

It is a good idea to use about half dozen words from the middle of a line of trigger text, and put wildcards both ends. This way, if a word at either end is lost, or the prompt goes slightly over, then the trigger will still activate - it makes it less sensitive to minor variations in your combat text. Note triggers are not case sensitive.

Triggers have a lot of uses. Here's another example:

/trig *A pestilence demon gives you anorexia* = light pipe%;smoke pipe

This assumes I have a hot-key that fills the pipe with megillos before I go into a fight.

return to top

[6] /hilite

This command works just like /trig - you have trigger text and a response. The difference is that /hilite highlights the trigger text as well as acting on it. Example:

/hilite *A demonic pestilence gives you * = light pipe%;smoke pipe

You can use this feature without any response to the trigger:

/hilite *panaideos*

This will highlight all signs of Panaideos, such as on the who list.

return to top

[7] /visual on

This command is quite nice. Basically, it splits the screen. In the bottom half (3 lines) it puts the prompt, and your entered commands. The top (main half) is used to display all the normal output from First Age. It is handy for keeping track of what you're typing in the middle of a fight.

return to top

[8] /set

This is the command you have all been waiting for - targets. Once you start getting this deep into TF commands, it's more like using a computer language than a user friendly mud interface (not that TF is particularly user friendly, or I would not need to be writing this). We set up targets by defining a variable - I use t - and referring to this variable in our macros. Let us go back to the F-key commands. Here is where targets are most useful. Example:

/bind [12~ = cast %{t}

Then we want our target to be Panaideos (for instance):

/set t=panaideos

Now, every time we press F1, it does cast Panaideos instead. If you want to change target, just redo the set command, with a different name. You can even use this on computer controlled characters.

If you want to know what t is currently set to, just type:

/set t

One point about variables. The full designation of a variable substitution is %{t}, but this can often be abbreviated, as shown above.

return to top


[9] {n}

Here's an interesting way to combine targets, and macros. Note, all TF commands can be nested. For example:

/hook send en * = /set t={2} %; enemy %{t} 25

Well, what does this weird command do? Basically, when I type 'en panaideos', it defines Panaideos as my target, and sticks him on my enemy list. Very useful when you're a Mage! (On some versions of TF , it might prefer {1} instead of {2}) The {n} refers to the nth word in the command line. In the above example, {1} is en, {2} is panaideos, {3} is undefined. This can be used quite easily to simplify bulk commands, that require multiple entries. Let's say you are an aide to state, stocking the food stall. Normally, you would enter:

city stalls add mfood meat 6

Instead, you can define an alias by using /hook, like so:

/hook send af * = city stalls add mfood {2} {3}
af meat 6

return to top

[10] Extra /list commands

With all the different types of macros you can now define, /list gets a little long and complicated.

/listbind
/listhook
/listtrig
/listhilite

These commands enable you to look at specific types of macro in your list. This can also be used for /save, e.g. /savehook.

return to top

That's All Folks

Well, that's more or less it for most of the useful TF commands. TF can handle a LOT more than I have introduced here. You might want to start putting Boolean algebra into your aliases, or strange variable collections on your hotkeys. You can even put in time delay commands for magic, so you're not always waiting for equilibrium!

Something worth trying is putting your /load and /require statements into the tfrc file in the TF .lib directory. This will load them up whenever you run Tinyfugue. See /help .tfrc for more details.

contact email form, who will do their best to help you with any problems you have.


Acknowledgements to James Gater for this invaluable guide.

© 1999 - 2012 Avalon Online Limited. All Rights Reserved.
Privacy Policy | Terms of Service