Discworld MUD Speedwalking with Zmud / Cmud


What is it?

  The Automapper part of Cmud supports speedwalking. This allows you to double click anywhere on the map and the automapper will calculate the fastest way to get you there and send the directions to the MUD. Speedwalking operates in three different modes.

  1. With Fast speedwalking selected, the movement commands to get to the destination room are sent all at once to the MUD.
  2. When using Safe mode the mapper sends the all direction commands, then watches for the appropriate match before updating your displayed position.
  3. Slow speedwalking is very similar to Safe speedwalking, except that movement commands are sent one at a time. This is the most useful and most recommended way to speedwalk because the Slow Walk timeout can be used to abort a speedwalk in the middle, as can the #PAUSE and #STOP commands You can also send other commands in the middle of the walk. For example, if you encounter a monster and start fighting it, you would use #PAUSE, and then continue when done fighting using the #STEP command.

How to configure it.

  Easy: If you simply set it to Fast speedwalking, Cmud / Zmud will send all the direction commands in a rapid stream queuing up a long list. This works, but there is a better way.

  Better: Finally Slow speedwalking is possible. The current discworld.mdb has all roomnames tagged (with something at least). The configuration I will describe will send one direction at a time and pause until the room is fully loaded. A room mismatch will abort the speedwalk.

  First set "options output shortinlong=on" in your discworld options. We will be using the "shortinlong" descriptions as room names.

  Find a quiet spot outside (for the weather description) with a south direction and do a "Mapper/Reconfigure". NB: Cmud/Zmud is really flakey about this part, you might have to play it it a bit here (and options output) to detect rooms properly.

  Mapper/Config/Configuration Settings/Config
  Mapper/Config/Configuration Settings/Speedwalking
  Main Menu/Options/General/Scripting/Slow walking
Triggers
  1. Make a new class called "mapper"
  2. Make a new variable called "TrigRoomName"
  3. Make a new trigger:

      This gets the room name from the MUD and pauses slow walking while the room loads.

      Updated May 2007 cmud has been fixed.

    Trigger pattern: ^~[&{TrigRoomName}~]
    #TAG name @TrigRoomName
    
  4. Make a new trigger:

      This trigger will match room names to map names and resume the slow walk. If it encounters a mismatch it will stop the speedwalk, reset to fast speedwalking mode and stop the mapper following any more.

    MXP Trigger pattern: RoomExits
    #IF ((%inwalk()) AND (%walkmode()=2)) {
     #STEP
     #IF (%roomname() <> @TrigRoomName) {
      #STOP
      #NOOP {%walkmode(0)}
      #MENU {Mapper|Off}
      #SA Room mismatch. Slow Walk stopped.
     }
    }
    

      It is using the %walkmode() to detect if you are slowalking or not, a bit clunky I'll admit but it works ok. The "Mapper|Off" is optional. #NOOP {%walkmode(0)} is optional as well if you dont want the mapper to stop room matching.

Good luck.

  This is a Cmud configuration, I haven't confirmed it for Zmud sorry. If you have any problems or suggestions you can always email me at Discworld@Wideopen.Biz