User Tools

Site Tools


gameplay:dm:dm

Dungeon Master

The Dungeon Master in Crossfire is abbreviated “ DM ” or “ Wiz ” .

He has many functionality added, see the page dm_commands .

Tips and Tricks

Goto Player's Unique Maps

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.


Goto /City

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 .

gameplay/dm/dm.txt · Last modified: 2018/04/13 09:28 by karl