Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion
Spathi
Newbie


Joined: 22 Jun 2016
Posts: 5

PostPosted: Wed Jun 22, 2016 10:49 pm   

Mapper - Multi-line description & Exits
 
Hello!

I'm playing a MUD that doesn't have VNums or Room names, but CMUD seems to work *pretty* well based on room description. That being said, there are certain areas and times when it simply won't track. I am using slow walking.

1 - One issue I can replicate is when there is a door. CMUD will send two commands, say "open n" and then "n". It sends both commands simultaneously, instead of first waiting for the result of "open n" and then sending "n". If the door is closed, this seems to work fine. If the door is open, however, then a message indicating that the door is already open will be received at the beginning of the room description, and for some reason this will prevent the mapper from properly detecting the room description. The map position will not be updated. I guess one solution for this would be for a delay to be introduced after "open n" that would at least wait for the prompt ">" to appear before sending "n".


2 - Another issue is the layout of the room description and exits. The format in this game is as follows:

This is the room description. It goes for one line, or two lines, or maybe three
lines, or maybe 4 lines, or maybe 5 lines.
Obvious directions are:
west, north, east, up.

The exception is when there is only one exit. Then it looks like this:

This is the room description. It goes for one line, or two lines, or maybe three
lines, or maybe 4 lines, or maybe 5 lines.
The only obvious exit is west.

I don't see exactly how to capture this structure. It seems like the word "obvious" can be used as a keyword, but as you can see, depending on whether there is one exit or multiple exits, the word "obvious" either appears on the same line as the single exit, or it appears on the line above the multiple exits. How can I model this properly so that the mapper will track correctly?
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Thu Jun 23, 2016 2:53 am   
 
The way doors are handled in any given session can be edited within the configuration GUI of the mapper.

If you could give an example of a room in the game it would help.
Offhand, usually if you have #TRIGGERs that #TAG your exits and room name, when you reconfigure the mapper it can figure out the rest.

#TR {The only obvious exit is (%w).} {#TAG Exit}

#TR {Obvious directions are:} {}
#COND {*} {#TAG Exit}
_________________
Discord: Shalimarwildcat
Reply with quote
Spathi
Newbie


Joined: 22 Jun 2016
Posts: 5

PostPosted: Thu Jun 23, 2016 4:32 am   
 
Thanks for the reply!

That format that I gave under #2 is generally accurate, but here is the exact text of a couple rooms from the game:

Code:
You stand at a major crossroads of the village. Main street runs to the west
towards the centre of the village. Shoreline Road leads south along the
shore. Glory Walk leads north towards the Fighter's Guild and the north gate,
and the harbour can be entered to the east via a rickety quay.
 Obvious directions are:
  north, east, south, west.
A shimmering blue door.

You are standing on a pier with boats all around you. Behind a window stands
a short scrawny man who looks as if he is in charge here. Next to the window
is a large sign, and above it is a small note.
 The only obvious exit is south.
A rental agent.
The sailing ship Atlantis.


Thanks again!
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Thu Jun 23, 2016 1:00 pm   
 
So the rooms don't even have names?
Somehow I missed that.
I would still add those triggers and reconfigure the mapper to see if that solves your issue.
_________________
Discord: Shalimarwildcat
Reply with quote
Spathi
Newbie


Joined: 22 Jun 2016
Posts: 5

PostPosted: Tue Jun 28, 2016 9:23 pm   
 
Shalimar,

No, the rooms don't have room names or vNums.

Thank you once again for your advice. I believe I was able to figure out how to create those triggers, and they are enabled, although I'm not really clear on whether they are firing or not. Is there any visual feedback that I should be seeing from that #TAG command?

I do have another trigger which is configured to automatically pick up coins when it sees them on the ground, and that one does work.

At any rate, I reconfigured the mapper after adding the triggers, but I'm still having very poor results when it comes to tracking my progress as I move through the map, even in follow mode.

One thing that does surprise me a bit is that when I click on the "find" button in the mapper, it always successfully places me in the correct room. But when I then move two or three rooms away, my marker does not successfully track.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Wed Jun 29, 2016 3:55 am   
 
No, no visual feedback from the #TAG command, it is purely internal.
Does your game give you messaging for when you walk from room to room?
Something like this could force a reluctant mapper to stay in position.

#TR {You walk (%w).} {#MOVE %1}

If not, try adding an #OK command to those exit tag triggers.
_________________
Discord: Shalimarwildcat
Reply with quote
Spathi
Newbie


Joined: 22 Jun 2016
Posts: 5

PostPosted: Wed Jun 29, 2016 11:35 pm   
 
There is no messaging when walking from room to room, so I added the #OK command to the exit tag triggers.

What's happening now is that the mapper tracks no matter what, and it's not doing any kind of matching with the room description at all. Even if something blocks me from moving (like I'm lying down) then it will still move my map position in the direction I had typed.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Thu Jun 30, 2016 12:30 am   
 
Putting the mapper into safe mode should help with that.
Also, make triggers for the blocking messages that enter a #NODIR.
That will prevent the mapper from getting ahead of you.
_________________
Discord: Shalimarwildcat
Reply with quote
Spathi
Newbie


Joined: 22 Jun 2016
Posts: 5

PostPosted: Sat Jul 02, 2016 4:42 pm   
 
I really want to thank you for all your guidance.

I have been using slow walking the entire time. Isn't that safer even than safe mode? Or should I still switch to safe mode?

Also, I still have the problem with doors that are already open, from my first post. Isn't there any way to prevent both commands to be sent simultaneously? I want the command "open n" to be sent, and for the mapper to wait for the MUD to respond, just like any other movement command, and then finally for the "n" to be sent, regardless of the response.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Sat Jul 02, 2016 5:43 pm   
 
For that you would need to go into configuration settings an go to the strings and doors tab.
edit the first line to something like:

open %1;#WAITFOR {*} {%1}

then check the only send door command box

If it is a door that doesn't follow the standard rules for doors on your game, then don't even mark it as a door.
To prevent the mapper getting confused on what you expect, just edit the name field for the exit in the room properties window.
_________________
Discord: Shalimarwildcat
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5182

PostPosted: Sun Jul 03, 2016 4:38 am   
 
What shalimar suggests for doors will end up not working because when the direction is sent by the #WAITFOR the mapper will see that as a separate action to step in that direction.

First edit the door command in the Strings and Doors section of the mapper preferences to the following:
DoorAlias %1 %2

The reason to have %2 in the door command is so that you can put additional information about non-standard doors in the door name field and then interpret that information in your alias and take appropriate actions.

Next you want to create the alias. Start with the simplest one entered in the command line, and we will build from there. This will result in the mapper being restored to the previous not perfect level.
#ALIAS DoorAlias {#SEND {open %1}}

Now comes the hard questions. How do we as humans get told the door is open? Can we capture that information so we can prevent sending the open command when the door is already open? What is the message to tell us the door was opened so we know to proceed with the direction command? What tells us there is a door in a specific direction so we can inform the mapper of that when we are mapping? What is the message for the door already being open, in case someone else opens the door unexpectedly? Is there a message when someone else opens a door, or the door closes, etc. because updating our info is a good idea? What about the message for walking into a door, it would be good to make mapping automatic?

After we have answers to most of those question then building more script into the alias to handle all the door situations becomes possible. In most cases it is a matter turning triggers on and off.
_________________
The only good questions are the ones we have never answered before.
Search the Forums
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net