Mudlet mapping and gmcp

If it's no bug or an idea, but it's still mud-related, it goes here.

Moderator: Wizards

Post Reply
Message
Author
User avatar
Israfel
Journeyman
Posts: 54
Joined: Tue Oct 24, 2017 6:51 am

Mudlet mapping and gmcp

#1 Post by Israfel » Thu Sep 20, 2018 6:31 am

Hi folks

Someone was asking on newbie channel earlier today about Mudlet and trying to get their mapper working.

I thought I'd take a look at this client and it does look like it has some really neat customisation - some of the GUIs look incredible.

Anyway, I'm still finding my way around the interface but I'm pleased to report GMCP seems to work fine on it and it didn't take much at all to get it working since it's all written in Lua (much like MUSHclient). I'm just going to leave this here in the forums for now and whoever was asking for it might drop by and add to it ( :wink: ). Here's how to get it working.

First steps, log in to Geas.de on port 3334. This port number is essential. Others won't work.

Second, in Mudlet settings, ensure that the Enable GMCP tickbox is checked.

Now enable debugging in the script/trigger menu (bottom left hand side hit the 'Debug' button).

Ok now Mudlet looks like it has some neat features that let you type lua script commands straight into the command line, which means you can get GMCP data running simply by logging in to the mud (after username and password sequence) and typing the following three commands:

Code: Select all

lua sendGMCP("LIB")

lua sendGMCP("CVB")

lua display(gmcp)
If all goes well you that should show you the gmcp data that has just been received:

Code: Select all

{
  LID = {
    hash = "06164A0B1248",
    type = 11,
    exits = {
      west = 100,
      south = 100,
      east = 100,
      north = 101
    },
    short = "On a market place",
    links = {
      west = "C32C4F0BBF25",
      south = "2D224AABDE09",
      east = "5A25450BEE9F",
      north = "68E44AA06B9E"
    }
  },
  CVD = {
    fatigue = 20,
    intox = 10,
    health = 11,
    stamina = 9,
    mana = 11,
    stuffed = 10,
    soaked = 6
  },
  APS = {
    "AP",
    "LI",
    "CV"
  }
}
You should also now be seeing these debug messages when you move around or see a change in your vitals. This means the data is flowing in behind the scenes and you can now use it to do fun stuff like show your vitals in health/stamina bars, display room names in bright pink text, or send a bunch of that location data to a mapper.

For a mapper, you'll probably want to start with the essentials from the gmcp package:
1. hash - this is the unique identification string of your room. Note it's a string and not a number like some other muds.
2. short - this is the short name of the room you're in. eg "The Marketplace"
3. links - these are the exit directions from your current room and the unique IDs of the rooms those exits lead to

When it comes to hashes and links, just be aware that not everything in Geas is mappable and sometimes you'll need to explore and uncover secrets before the GMCP info is available to you. This is really cool. It means you'll get the best part of the map experience (not getting lost) while not spoiling the surprises of the world. That being said, your mapper will need to be set up to handle undisclosed room info such as:
1. rooms with no hashes, shortnames or links
2. rooms with exits but not link-info for them
3. multiple "unmappable" rooms with the hash "0" or "-1"
4. vertical variants of all the regular horizontal movement directions (eg neu, nd, swd etc)

Hope this helps whoever was interested in it.

Post Reply