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

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » zMUD General Discussion
Interitus
Novice


Joined: 16 Mar 2003
Posts: 45
Location: Russia

PostPosted: Wed Oct 01, 2003 4:32 pm   

Please explain - when mapper decides to make room?
 
Hi!
Can anyone explain, what causes mapper to create new room? In what conditions it will delete direction from queue and make new room in that direction? And what data it will use?
Thanks.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Oct 01, 2003 6:15 pm   
 
It all depends upon your mapper configuration. When you run the auto-configure wizard for the mapper, it looks at your MUD output and tries to decide what a room name, description, exit line, and MUD prompt all look like. Then, when you are in Map mode, it watches the MUD output for this pattern of text after you press a direction key.

So, when it sees a direction that is in it's direction list (View/Directions), it starts monitoring the MUD output looking for a room name, description, exit, and MUD prompt. When it sees the MUD prompt and has a valid set of information for the room, it tries to add a room in the direction that you went.

First, it checks to see if there is already a room on the map in that direction. If so, it checks the room name and the first line of the room description with what was captured from the MUD (exits are ignored at this point). If it matches, the zMUD marks the exit as "tested" and just moves you to the room on the mapper. If the information doesn't match, then a new room is created on top of the old room.

It only does this comparison for "untested" links. That is, links that you haven't traversed yet. Once a link is "tested", then it will always move you into that room without comparing the room name or description.

So, thats the details you wanted. If you are having trouble with it creating new rooms when it shouldn't, then you need to check to be sure the mapper is capturing the room name, description, etc correctly. If the MUD is putting out other lines that is confusing the mapper, set up triggers using the #NOMAP command to have the mapper ignore these lines.

You should read all of the help file topics in the mapper help menu to better understand how to customize the mapper as well.
Reply with quote
Talahaski
Enchanter


Joined: 10 Oct 2000
Posts: 656
Location: USA

PostPosted: Wed Oct 01, 2003 7:26 pm   
 
Hi Zugg,

I found your reply very informative.

On reading this section:
It only does this comparison for "untested" links. That is, links that you haven't traversed yet. Once a link is "tested", then it will always move you into that room without comparing the room name or description.]

Can you explain a bit more about this tested link part. Is there a way to automaticall mark all links connecting two rooms(not link stubs) as tested on your map so zmud does not perform this check. For example, if I manually create my map and I know my exits and rooms are correct. can I set them all as tested before using this map to tranverse the mud. Or are manual links created as tested?

I'm also going to post a new topic on a mapper suggestion.
Reply with quote
Interitus
Novice


Joined: 16 Mar 2003
Posts: 45
Location: Russia

PostPosted: Wed Oct 01, 2003 7:51 pm   
 
Zugg, thanks for such comprehensive reply!
I have following situation: in mapper config "Room name" is unchecked, "Room description" is unchecked, "Room exits" is unchecked, "Auto Prompt detect" is unchecked, "No Prompt" is checked.
I have triggers that capture name, description and exits into temporary variables, and trigger for prompt that does four #tag commands (for name, desc, exit and prompt itself). I tested triggers in "Show Triggers" mode, and tried to insert #ECHO commands into last trigger to see what data it actually captures. I am sure that my triggers capture the information correctly.
But mapper sometimes creates rooms before my trigger executes "#tag prompt" command!
If I turned off prompt detection and do not tag prompts manually - what can cause mapper to create rooms?
I have another problem - mapper creates new rooms with wrong info (fields not match variables that I capture), but I believe it's because of first problem.
Thanks.
Interitus.



Talahaski, you can mark all exits as tested by using simple update query on exits table (in MS Access).
Reply with quote
StackAdder
Wanderer


Joined: 30 Sep 2003
Posts: 77
Location: United Kingdom

PostPosted: Thu Oct 02, 2003 11:17 am   
 
quote:
Originally posted by Zugg

It only does this comparison for "untested" links. That is, links that you haven't traversed yet. Once a link is "tested", then it will always move you into that room without comparing the room name or description.



[:0] If I am using the mapper without triggers to nomap things like weather and daytime messages, I can traverse a tested link and end up with stacked rooms - it is better with the nomap triggers, though not perfect (I guess it can never be perfect). This quote piqued my interest...
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Thu Oct 02, 2003 5:58 pm   
 
Some answers:

1) There isn't any easy way in zMUD to set/reset the "tested" status of a link. You *can* turn on the option "Show untested links as gray" in the Map properties to tell which links are tested and which are not.

2) If you turn off the prompt detection or tell zMUD that there isn't a prompt, then it will create a new room when it has valid data for the other stuff (name, description, exits). In that case, it relies more on the exit information to terminate a room. But that case can be a lot more unreliable since exit information might be mentioned in a room description. That is why I always recommend using MUD prompts.

3) When you start using #TAG triggers, then the mapper changes how it works a lot. The #TAG information will override the information obtained from the MUD. And it should create a new room either when you use the "#TAG Prompt", or when it sees a normal prompt from the MUD. Or, if you have prompts turned off, it should create the room when you use the #TAG Exits. However, the mapper gets really complicated in these situations, so you might also see other behavior.

4) If you have a tested link between two rooms in the direction that the mapper is expecting you to go, then it should never create a new room. My guess is that the link wasn't really tested.

Keep in mind that there are TWO links between each room! zMUD stores links as one-way links from one room to another. So, the line that you see on the map for a 2-way link is actually two one-way links on top of each other. To be more specific, lets say you have room A and room B connected by a north-south link (going south from room A goes to room B). That means there are two links in zMUD: one from A to B (going south from A) (link 1), and one from B to A (going north from B) (link 2). You will see these two individual links in the Link Properties display. Now, when you first go south from room A to room B, both link 1 and link 2 are created, but only link 1 is marked as tested. Only when you sucessfully move from room B back to room A is link 2 marked as tested. Hopefully that explains how the "tested" status works.
Reply with quote
StackAdder
Wanderer


Joined: 30 Sep 2003
Posts: 77
Location: United Kingdom

PostPosted: Fri Oct 03, 2003 4:08 pm   
 
Doh!! of course, it happens when I go through a link in the other direction *smacks forehead*

Cheers Zugg

[edit] Oh btw, I can't for the life of me see a way of programmatically checking which room is at the end of an exit - I occasionally think it would be useful to be able to use the output of the scan command on my mud to indicate where exits are (scan always seems to show regular exits, even if hidden and thus not appearing on the "Exits[" line) but I can't see a way of doing this.
I can capture the relevant information from scan, and can set the exits using %roomexit but would like to be able to use the information I can glean from the exits command which tells me the room names of the surrounding rooms to check links and create rooms where the existing links head nowhere...
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Oct 03, 2003 7:26 pm   
 
You need to install zMapper and use the expanded scripting abilities for this. You can then grab the current room object, loop through the exits of the room, and use the Exit.ToId field to get the ID of the room on the other side of the link. The object model added by the zMapper plugin makes complex mapping scripting a lot easier.
Reply with quote
StackAdder
Wanderer


Joined: 30 Sep 2003
Posts: 77
Location: United Kingdom

PostPosted: Sat Oct 04, 2003 4:21 am   
 
Ah a cunning sales ploy :-)
I'd love to, but no credit card these days and 'fraid I don't trust those online payment methods since bad experiences (and bad press). Guess I will have to go find someone with a credit card *grin*
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » zMUD 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