The Dungeon Master in Crossfire is abbreviated “ DM ” or “ Wiz ” .
He has many functionality added, see the page dm_commands .
The Dungeon Master may need to go to unique maps belonging to players located in the
{prefix}/var/players/<player name>/ directory.
Removing unwanted pets created by fumbled alchemantricity attempts inside a permanent apartment of a player may be a “service” to keep up the mood of the player.
It is by whatever reason also possible, that pets of a player following him to his apartment all of a sudden turn against him.
But: How to goto to a player's unique map ?
Simply link {prefix}/maps/players to point to the {prefix}/var/players directory.
It needs to emulate the path as the server knows it, which is an absolute path {prefix}/var/crossfire/players.
On Linux in a terminal with server configured with –prefix=/usr/games:
cd /usr/games/share/crossfire/maps mkdir -p usr/games/var/crossfire cd usr/games/var/crossfire ln -s ../../../../../../../var/crossfire/players .
Then in the client issue the command
goto /usr/games/var/crossfire/wiki/_scorn_apartment_apartments
if that player name and _apartment is already created.
When issuing the goto command, the DM needs to type in awfully long /path/to/map arguments.
Especially for the maps inside the /world directory this is sometimes crazy for the need to know the coordinates every time.
One could think of just linking /Scorn to point to /world/world_105_116, but that fails to step on further attached world map tile maps because the
tile_path_*
key attributes have relative path as values.
The way to enable such shortcuts is to make the tile_path_* key values absolute path_names, so they look as
tile_path_1 /world/world_105_114 tile_path_2 /world/world_106_115 tile_path_3 /world/world_105_116 tile_path_4 /world/world_104_115
instead of
tile_path_1 world_105_114 tile_path_2 world_106_115 tile_path_3 world_105_116 tile_path_4 world_104_115
Bash script using sed stream-editor to make the tile_path_ absolute:
#!/bin/ash du . #disk usage for f in world_* do test -e "$f" || continue test -s "$f" || continue for nr in 1 2 3 4; do if grep -i "tile_path_$nr" $f; then if grep -i "tile_path_$nr /world/" $f; then : else sed -i -r "s%tile_path_$nr (.*)%tile_path_$nr /world/\1%" $f || break 2 fi fi sleep 0.01 done sleep 0.01 done du . # disk usage
This script assumes to be located inside the {prefix}/maps/world directory.
NOTE:Because of the many 900 map files, this script could take some minutes.
Note: A backup is probably advised before running that script.
On Linux we can then simply
ln -s world/world_105_116 Scorn
in the {prefix}/map directory.
The server needs to be restarted with empty TMPDIR /tmp temporary files.
In the client type goto /Scorn
.