Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.
 Entire forum ➜ MUDs ➜ MUD Design Concepts ➜ GMCP Mapper Plugin

GMCP Mapper Plugin

Posting of new messages is disabled at present.

Refresh page


Pages: 1 2  

Posted by Glispion   (19 posts)  Bio
Date Sun 21 Sep 2014 09:13 PM (UTC)
Message
Hello, I'm using coffeemud to build a mud and I am wanting to have a mushclient package available on the muds website that includes a pre-made world and a pre-made map basically like aardwolf. I am wondering where I would start with this.
Top

Posted by Nick Gammon   Australia  (23,122 posts)  Bio   Forum Administrator
Date Reply #1 on Sun 21 Sep 2014 09:47 PM (UTC)
Message
Does CoffeeMud support GMCP? Or at least allow you to add such support? That would be a starting point for a mapper "like Aardwolf".

Basically you need to be able to do Telnet subnegotiation to send down things like room names and numbers to the client.

It is possible to make the mapper work without it, but it can be tedious, mainly because you need to be able to distinguish one room from another.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #2 on Sun 21 Sep 2014 10:02 PM (UTC)

Amended on Sun 21 Sep 2014 10:03 PM (UTC) by Glispion

Message
CoffeeMud now supports GMCP according to CMUD and Aardwolf specs.

I am a pretty big newb to all of this, so if there's any step by step instructions I could look at, it would help me a lot.
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #3 on Tue 23 Sep 2014 08:31 AM (UTC)
Message
/bump
Top

Posted by Nick Gammon   Australia  (23,122 posts)  Bio   Forum Administrator
Date Reply #4 on Tue 23 Sep 2014 08:27 PM (UTC)
Message
I don't have any step-by-step instructions for CoffeeMud. I'm not sure how much research you have done, but you need to dig up the GMCP specs and find out about the telnet negotiation part, and also what messages are needed to be imbedded inside that negotiation.

I'm no Java expert so I can't really offer to help.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #5 on Wed 24 Sep 2014 05:35 AM (UTC)
Message
I appreciate your answer, you gave me a clear place to start and for that, I thank you. If I ever get it figured out I'll be sure to post it in the plugins section.
Top

Posted by Nick Gammon   Australia  (23,122 posts)  Bio   Forum Administrator
Date Reply #6 on Wed 24 Sep 2014 06:10 AM (UTC)

Amended on Wed 24 Sep 2014 06:11 AM (UTC) by Nick Gammon

Message
Good luck.

This might help get you started:

http://www.aardwolf.com/wiki/index.php/Clients/GMCP

There is a lengthy discussion about telnet negotiation here:

http://www.gammon.com.au/forum/?id=10043

Scroll down for example code of sending GMCP-style code.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #7 on Sat 27 Sep 2014 06:06 AM (UTC)
Message
Here's what GMCP DEBUG showed me regarding room.info

"message"="room.info"
"data":
"terrain"="city"
"num"=31092412
"name"="Cadigan Street"
"zone"="Little China"
"id"="Little China#17"
"exits":
"W"=31092498
"S"=31092413
"N"=-276091683
"details"=""
"coord":
"id"=0
"x"=-1
"cont"=0
"y"=-1

When I get some time I'll study your two links more closely...I looked over the aard_GMCP_mapper trying to find the basic parts for a simple, functional map...bits of it are understandable but I honestly don't have much of a clue where I'm supposed to start with making the plugin...I do feel confident I will get somewhere now thanks to this DEBUG feature and your links, thanks again!
Top

Posted by Nick Gammon   Australia  (23,122 posts)  Bio   Forum Administrator
Date Reply #8 on Sat 27 Sep 2014 08:05 PM (UTC)
Message
I already have an ATCP mapper (effectively ATCP amd GMCP are much the same), so writing the plugin / mapper shouldn't be your big worry.

The thing that mapper needs to know is your current room (so it knows where you are) and preferably a bit of detail like the room name and where the exits go. The room info you quoted above has that. The "num" is the current room, the "name" is its name, and the "W", "S" and "N" are the exits, and where they lead.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Nick Gammon   Australia  (23,122 posts)  Bio   Forum Administrator
Date Reply #9 on Sat 27 Sep 2014 08:37 PM (UTC)
Message
The ATCP mapper comes with the MUSHclient installation.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #10 on Mon 29 Sep 2014 08:07 AM (UTC)
Message
I've been looking through the ATCP_Mapper and ATCP_NJG...I'm not sure where to change it so that it recognizes the info sent from the mud. I installed them and tried reconnecting. I tried 'mapper trains' and it says 'I don't know where you are right now - try: LOOK', ofcourse typing look doesn't change anything. There's also no mapper window popping up.
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #11 on Wed 01 Oct 2014 07:10 AM (UTC)
Message
is it already set up correctly?
Top

Posted by Nick Gammon   Australia  (23,122 posts)  Bio   Forum Administrator
Date Reply #12 on Wed 01 Oct 2014 09:00 PM (UTC)

Amended on Wed 01 Oct 2014 09:01 PM (UTC) by Nick Gammon

Message
If nothing is happening it is hard to know where to start. Are you testing on your MUD or one of the IRE ones?

You can always modify the ATCP_NJG plugin to show debugging information, eg.


function OnPluginTelnetSubnegotiation (type, option)

  print ("Telnet subnegotiation:", type)  -- debugging 

  if type ~= ATCP then
    return
  end -- not Achaea subnegotiation

  print ("ATCP:", option)  -- debugging 

  local command, args = string.match (option, "^([%a.]+)%s+(.*)$")
  
  if not command then
    return
  end -- don't seem to have a command
  
  local f = handlers [command]
  
  if f then
    f (args)  -- call handler
  else
    BroadcastPlugin (0, option) -- other, just send whole message
  end -- handler
          
end -- function OnPluginTelnetSubnegotiation


Add lines in bold and see if anything shows up.

(Re-install the plugin afterwards to make it re-read the code).

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #13 on Sat 04 Oct 2014 07:08 AM (UTC)

Amended on Sat 04 Oct 2014 07:25 AM (UTC) by Glispion

Message
Here is what I have so far after reinstalling/reconnecting

http://tinypic.com/r/b88lf6/8
Top

Posted by Glispion   (19 posts)  Bio
Date Reply #14 on Wed 08 Oct 2014 06:58 AM (UTC)
Message
Any ideas what I'm doing wrong here?
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


79,661 views.

This is page 1, subject is 2 pages long: 1 2  [Next page]

Posting of new messages is disabled at present.

Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.