TinTin++ Mud Client Manual
Map
space
Syntax: #map {option} {argument}
space
TinTin++ has a powerful automapper that uses a room system similar to Diku MUDs which means that odd map layouts and weird exit configurations aren't a significant problem. The mapper provides tools to improve the visual map display. For basic path tracking see path.
space
#map create {size}
space
This command creates the initial map. The size is 50,000 by default and can be changed at any time with the #map resize command. If you play a MUD that uses MSDP or GMCP to provide room numbers you'll have to increase it to the highest reported room number. Increasing the size of the map doesn't decrease performance.
space
#map goto {location}
space
When you create the map you are not automatically inside the map. By default room number (vnum) 1 is created, so you can go to it using #map goto 1. Once you are inside the map new rooms are automatically created as you move around. Movement commands are defined with the pathdir command. By default n, ne, e, se, s, sw, w, nw, u, d are defined.
space
#map map {radius} {filename} {a|v}
space
To see the map you can use #map map. It's annoying to have to constantly type #map map however. Instead it's possible to use #split to display a vt100 map. To do so execute: #split 16 1 and #map flag vtmap. The first command sets the top split lines to 16 and the bottom split line to 1. If you want a smaller or larger map display you can use 10, 13, 19, 22, etc, though the change needs to be a multiple of 3 for the default display setting.
space
If you don't need to display diagonal exits and prefer a more compact look you can use #map flag AsciiGraphics off. This will enable the standard display which uses UTF-8 box drawing characters, results may vary depending on the font used.
space
If you want to display the map in a different terminal open a new terminal, launch tt++, and enter: #port init mapper 4051. In your MUD terminal enter: #ses mapper localhost 4051. This will connect the mapper session to the port you initilized in the other terminal window. Next define the following event in your MUD session: #EVENT {MAP ENTER ROOM} {#map map 80x24 mapvar v;#mapper #line sub {secure;var} #send {$mapvar}}.
space
#map undo
space
If you accidentally walk into the wall on your MUD the mapper will create a new room. You can easily fix this mistake by using #map undo. If you want to move around on the map without moving around on the MUD you can use: #map move {direction}. To delete a room manually you can use: #map delete {direction}.
space
#map write {filename}
space
You can save your map using #map write, to load a map you can use #map read.
space
#map leave
space
You can leave the map using #map leave, the map will still be there, but your movement commands won't be tracked anymore. You can use #map return to return to the room you were in when you left the map. If you use #map read the return point will be set to the room you were in when you saved the map.
space
#map set {option} {value}
space
You can set the room name using #map set roomname {name}. You either have to do this manually or create triggers to set the room name manually. Once the room name is set you can use #map goto with the room name as the argument to visit it. If there are two rooms with the same name #map goto will go to the most nearby room. If you want to always go to the same room you should memorize the room number. You can further narrow down the matches by providing additional arguments, for example: #map goto {dark alley} {roomexits} {n;e} {roomarea} {Haddock Ville}.
space
You can set the room weight using #map set roomweight {value}. The weight by default is set to 1.0 and it represents the difficulty of traversing the room. If you have a lake as an alternative route, and traversing water rooms is 4 times slower than regular rooms, then you could set the weight of the lake rooms to 4.0. If the lake is 3 rooms wide the total weight is 12. If walking around the lake has a weight less than 12 the mapper will go around the lake, if the weight is greater than 12 the mapper will take a route through the lake.
space
You can set the room symbol using #map set roomsymbol {value}. The symbol should be one, two, or three characters, which can be colorized. You can for example mark shops with an 'S' and colorize the 'S' depending on what type of shop it is.
space
#map run {location} {delay}
space
The run command will have tintin find the shortest path to the given location and execute the movement commands to get there. You can provide a delay in seconds with floating point precision, for example: #map run {dark alley} {0.5}
space
#map insert {direction} {flag}
space
The insert command is useful for adding spacer rooms called void rooms. Often rooms overlap, and by adding void rooms you can stretch out exits. For example: #map insert north void. You cannot enter void rooms once they've been created, so you'll have to use #map info in an adjacent room to find the room vnum, then use #map goto {vnum} to visit.
space
It's also possible to hide an entire area until you enter it, to do this you want to set the hide flag as well. For example: #map insert north {void;hide}.
space
#map exit {exit} {COMMAND|DIRECTION|FLAG|GET|NAME|SAVE|SET|VNUM} {argument}
space
By default the exit command is set to the exit name. If you want to automatically open a door you would use something like: #map exit {e} {command} {open door;e}. When using #map run it'll execute {open door;e} instead of {e}.
space
If you have an unusual exit you can give it a direction. For example: #map exit {enter portal} direction {s}. A numerical direction similar to the one provided by #pathdir is accepted as well. This allows the mapper to display the rooms that lie beyond the portal, though you'll have to be mindful that there is no actual exit leading south.
space
#map at {location} {command}
space
Executes the command at the given location. If the location is non existent the command is not executed. Useful if you want to loop through all vnums and visit all rooms to perform some kind of action.
space
#map color {BACKGROUND|EXIT|HERE|PATH|ROOM} {COLOR CODE}
space
Set the color. To set the background to blue you would use #map color background <884>. To set the room color to dark red you would use #map color room <218>.
space
#map delete {exit|vnum}
space
Deletes the room for the given exit or room vnum.
space
#map destroy
space
Deletes the map.
space
#map dig {exit|vnum} {new|vnum}
space
#map dig {vnum} will create a new room with the given vnum unless a room with that vnum already exists.
space
#map dig {exit} will create a new exit in the given direction. If a room occupies that space the exit will be linked to that room, otherwise a new room will be created.
space
#map dig {exit} {new} will create a new exit in the given direction, a new room will always be created.
space
#map dig {exit} {vnum} will create a new exit in the given direction leading to the room with the given vnum. If this room does not exist a new room with this vnum will be created.
space
#map exit {exit} {COMMAND|DIRECTION|FLAG|GET|NAME|SAVE|SET|VNUM} {argument}
space
#map exit {exit} {NAME} {argument} will set the movement command. If the name is set to 'n' and you type 'n' this will make you follow the exit. The movement command that is actually executed can be set with #map exit {exit} {COMMAND}. The NAME and COMMAND are typically one and the same.
space
#map exit {exit} {COMMAND} {argument} will set the movement command that is send to the server. For example {open gate;n}
space
#map exit {exit} {DIRECTION} {argument} will set the direction of the exit. This can be a numeric argument identical to the one used by the PATHDIR command.
space
#map exit {exit} {FLAG} {argument} will set the exit flag. This must be a number. It's easier to use #map exitflag to set exit flags.
space
#map exit {exit} {GET} {variable} will save the exit data to the given variable.
space
#map exit {exit} {SET} {argument} will set the exit data to the given argument. The argument can be a table.
space
#map exit {exit} {SAVE} {variable} will save the exit info (command/direction/flags/name/vnum) to the given variable.
space
#map exit {exit} {VNUM} {argument} will set the exit vnum to the given argument. This is the index number of the room the exit leads to.
space
#map exit {exit} {WEIGHT} {number} will set the exit weight to the given number. The default weight is 1 and higher weights increase the chance the path finder will avoid the exit.
space
#map exitflag {exit} {HIDE|AVOID} {ON|OFF}
space
#map exitflag {exit} will show the status of the exit flags.
space
#map exitflag {exit} {HIDE} when enabled the rooms beyond this exit will not be displayed on the map. Useful for hiding overlapping areas.
space
#map exitflag {exit} {AVOID} when enabled the mapper will not use the exit when searching for paths to a given destion.
space
#map explore {exit}
space
The mapper will explore the given exit until an intersection or dead end is reached. The route is stored in #path and can subsequently be used with #walk. Particularly useful for walking down long roads without having to memorize any destinations.
space
#map find {location} {...}
space
The mapper will find the location. The route is stored in #path. The location can exist of multiple arguments, the first of which should either be the room name or the room vnum.
space
If you want to narrow things down further you can use the following key/value pairs:
space
#map find {location} {roomname} {argument} the room's name must match argument.
space
#map find {location} {roomexits} {argument} the room's exit must match argument, for example {n;e;u}.
space
#map find {location} {roomdesc} {argument} the room's description must match argument.
space
#map find {location} {roomarea} {argument} the room's area must match argument.
space
#map find {location} {roomnote} {argument} the room's note must match argument.
space
#map find {location} {roomterrain} {argument} the room's terrain must match argument.
space
#map find {location} {roomflag} {number} the room's flag must match number.
space
It's possible to use several key/value pairs to find a room, for example:
space
Example: #map find {A small clearing} {roomexits} {n;e;s;w} {roomarea} {The holy grove} {roomterrain} {Forest}
space
These search options are also available to the goto, link, list, run, delete, at, and link commands. The delete and dig commands only accept a vnum
space
#map flag {ASCIIGRAPHICS|ASCIIVNUMS|NOFOLLOW|STATIC|VTMAP} {ON|OFF}
space
ASCIIGRAPHICS: This flag is enabled by default and draws a somewhat spacious map that displays NE SE SW NW exits, one-way exits, up/down exits, and the room symbol. When disabled it will default to the map legend, which uses compact UTF-8 box drawing characters to display n e s w exits.
space
ASCIIVNUMS: When enabled the ASCIIGRAPHICS mode is changed to no longer display one-way exits and the room symbol, instead the room vnum is displaced. Useful for editing or debugging the map.
space
MUDFONT: This is an experimental displaying mode that is not well supported. It requires a special font and the proper configuration of #map legend.
space
NOFOLLOW: When enabled the map won't try to follow along when you enter movement commands. Movement commands are defined with #PATHDIR. Useful for MSDP and GMCP automapping scripts.
space
STATIC: When enabled new rooms are no longer automatically created when walking into an unmapped direction. Useful when you're done mapping and regularly bump into walls accidentally.
space
SYMBOLGRAPHICS: When enabled the ASCIIGRAPHICS mode is disabled and the compact map mode is enabled, with the ability to overwrite UTF-8 exit drawing by setting the room symbol. Useful to display a wilderness map.
space
VTMAP: When enabled the map is shown in your top prompt bar. This requires a VT100 capable terminal and using #split. For example: #split 16 1.
space
#map global {location}
space
This command will set the specified room as the global room. There should be no exits leading into the global room, only exits leading out. When you type 'recall' tintin will check if the global room has a room with 'recall' as the exit name. If this is the case it will issue the recall command and send you to the room the exit is leading to. You can create multiple exits leading out of the global room in case there are multiple global transportation commands. You can set the NOGLOBAL roomflag to prevent this feature from working in no recall rooms.
space
#map goto {location}
space
This command will move your position in the map to the given destination room.
space
#map get {option} {variable}
space
This command allows you to store world and room information into a variable.
space
Options are: WORLDFLAGS, WORLDSIZE, ROOMVNUM, ROOMAREA, ROOMCOLOR, ROOMDATA, ROOMDESC, ROOMEXITS, ROOMFLAGS, ROOMNAME, ROOMNOTE, ROOMSYMBOL, ROOMTERRAIN, and ROOMWEIGHT.
space
#map info
space
This will show you some world data and room data for the room you are currently in.
space
#map insert {exit} {roomflags}
space
This inserts a new room at the provided exit. If you want to set multiple roomflags at once you must separate them with semi-colons.
space
Example: #map insert {e} {void;hide}
space
#map jump {x} {y} {z}
space
This command is similar to #map goto except that you provide a coordinate that is relative to the room you are currently in.
space
#map leave
space
Makes you leave the map. Useful when entering an unmappable maze. You can return to your last known room using #map return.
space
#map legend
space
The legend contains references to drawing characters used for displaying the map.
space
The first 16 characters are used for the compact display mode. It only displays N E S W exits with the values being n=1 e=2 s=4 w=8. The zero index is for a room with no exits. The first index is for a room that has one exit leading north. The second index is for a room that has one exit leading east. The third index is for a room with exits leading north and east. Etc. A room with exits leading north, south, and west would be at index 1+4+8=13. The index should either be a number between 32 and 254 for an ASCII character or a hex sequence for an UTF-8 character. If #config CHARSET is set to UTF-8 TinTin++ will automatically initialize newly created maps with UTF-8 box drawing characters.
space
Index 16 to 31 is only partially utilized. Index 16 is used for the current position in compact mode. Index 17 and 18 are used for the current position in MUDFONT mode.
space
Index 32 to 95 is used for the MUDFONT display mode. Index 32 to 63 displays N NW W SW S exits with the values being n=1 nw=2 w=4 sw=8 s=16. Index 64 to 95 displays N NE E SE S exits with the values being n=1 ne=2 e=4 se=8 s=16.
space
By default the MUDFONT characters are mapped to the first Unicode Private Use Area that starts at U+E000. On Windows this will work with the two EUDC (End User Defined Characters) files you can download below.
space
EUDC.EUF and EUDC.TTE
space
You must use 7zip or a similar utility to copy these files to the C:/Windows/Fonts directory. You cannot copy the files using Windows own copy routine because it'll try to install the font, which is not what you want.
space
To modify the EUDC files you have to launch the Private Character Editor program. It should be installed by default. After you make the changes you have finalize them using file -> Font Links -> Link with All Fonts. The EUDC files are a proof of concept.
space
#map link {direction} {location} {both}
space
This command will create a one-way exit in the given direction leading to the given location. You can provide {both} as a third argument to create a two-way exit if the direction is a valid pathdir.
space
#map list {location}
space
This command list all matching rooms and their distance. You can use #map list {<location>} {variable} {<variable name>} to store the list in a variable.
space
#map map {<x>x<y>} {filename} {a|v}
space
#map map {<x>x<y>} displays the map with the given dimensions to the screen.
space
#map map {<x>x<y>} {filename} writes the map display to the given filename.
space
#map map {<x>x<y>} {filename} {a} writes the map display to file, appending to an existing file.
space
#map map {<x>x<y>} {variable} {v} saves the map display to the given variable.
space
#map move {exit}
space
This does the same as an actual movement command, updating your location on the map and creating new rooms.
space
Useful when you are following someone and want the map to follow along. You'd of course have to creation actions using #map move for this to work.
space
#map read {filename}
space
Will load the given filename. You can enter the map using #map goto, or use #map return, which will return you to the room in which the map was saved.
space
#map resize {size}
space
Resizes the map, setting the maximum number of rooms.
space
#map return
space
Returns you to your last known room after leaving the map or loading a map.
space
#map roomflag {AVOID|HIDE|LEAVE|VOID|STATIC}
space
#map roomflag avoid: When set, '#map find' will avoid a route leading through that room. Useful to avoid traps and aggressive mobs.
space
#map roomflag hide: 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 prevent auto-linking, unless you use void rooms.
space
#map roomflag leave: When entering a room with this flag, you will automatically leave the map. Useful when set at the entrance of a maze with random exits.
space
#map roomflag void: 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. To visit a void room you must use #map goto or #map jump.
space
#map roomflag static: When set the room will no longer be autolinked when walking around. Useful for mapping mazes.
space
#map run {destination} {delay}
space
#map run {location} will find a path leading to the given location and execute the movement commands to get you there. The delay is an optional floating point number, adding a delay between each movement command.
space
Example: #map run {The dump} {0.25}
space
#map set {option} {variable}
space
This command allows you to set room information.
space
Options are: ROOMVNUM, ROOMAREA, ROOMCOLOR, ROOMDATA, ROOMDESC, ROOMEXITS, ROOMFLAGS, ROOMNAME, ROOMNOTE, ROOMSYMBOL, ROOMTERRAIN, and ROOMWEIGHT.
space
#map travel {exit} {delay}
space
#map travel {exit} is useful to traverse long roads. The command will move you along the given exit, and will continue moving until it reaches a dead end or an intersection. The delay is an optional floating point number, adding a delay between each movement command.
space
Example: #map travel e
space
#map undo
space
Will undo your last map command of significance. If this command created a room or a link it will be deleted. If this command involved movement it'll move you back to the previous room. Useful if you walked into a non-existent direction.
space
#map uninsert {exit}
space
The command is the exact opposite of #map insert. It will delete the room the exit leads to and connect the exit to the room beyond the deleted room.
space
#map {vnum} {number}
space
Will change the roomvnum to the given vnum.
space
#map {vnum} {low} {high}
space
Will set the roomvnum. Low and high are a number range. If the lowest number is not available the vnum is incremented until an available vnum is found. If the highest number is unavailable the command will fail.
space
#map {write} {filename}
space
Will save the map to the given filename. It's recommended to occasionally create a backup as it's easy to confuse #map write and #write.
space
space
#help map
space
#help map should provide you additional information on available map options. Entering a partial command is likely to provide you with a helpful syntax suggestion or overview so keep that in mind.
space
See also: Path and Pathdir.
space