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
Remoed
Newbie


Joined: 23 Feb 2014
Posts: 7
Location: The U.S.of A.

PostPosted: Sun Feb 23, 2014 10:16 pm   

Need help for fixing maping problems for everyone
 
First I would like to state that I'm a complete noob at CMUD. I like the auto-mapper a lot, but it has a lot of bugs and I need help fixing these bugs.
1. The maper sometimes doesn't connect a room I've already mapped to the one I'm in.
2. When there is a door in a room the mapper doesn't mark where the door is, so when I'm speed walking it stops at the door.
3. Say I was in a room where the only exit was south and I go north and it says "Alas, you cannot go that way." so I go south but the mapper registers that I went north not south.
Thanks for your time.
Reply with quote
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Sun Feb 23, 2014 11:45 pm   
 
1. The mapper will only connect your rooms if the correct Auto-Connect is enabled:
Config > Configuration Settings > Interface > Auto Connect > All directions.
This will mean all stub exits are connected (be aware of using this in complex areas however).

2. You can edit door settings in:
Config > Configuration Settings > Strings and Doors
However you must make sure you are adding the doors to the rooms as you make them, this is handled in:
Room Properties > Room Exits > Click the link with the door and set its type to "door".


3. The following trigger will stop your map making rooms that do not exist when mapping:
#TRIGGER {Alas, you cannot go that way.} {#NoMap;#NoDir}

Hope this helps.
Reply with quote
Remoed
Newbie


Joined: 23 Feb 2014
Posts: 7
Location: The U.S.of A.

PostPosted: Sun Feb 23, 2014 11:49 pm   
 
I will try it. But what do you mean by complex areas?


Last edited by Remoed on Mon Feb 24, 2014 12:09 am; edited 1 time in total
Reply with quote
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Sun Feb 23, 2014 11:54 pm   
 
I imagine your main problem is because you want to get too much done at once. Be slow when learning to map, its a tricky system. Start in simple areas and test them vigorously so you can see if there are any errors, unsurprisingly if you find errors here you'll find them in other areas so it's best to iron out your problems before making a huge area.

For example, I mapped a 1000 square grid area before I realized there was a setting to auto connect exits, meaning I had to manually walk though every possible exit combination to connect it all properly. :)
Reply with quote
MattLofton
GURU


Joined: 23 Dec 2000
Posts: 4834
Location: USA

PostPosted: Mon Feb 24, 2014 3:45 am   
 
1)there is a special case for adjacent rooms involving exits that weren't there when the room was created. In this case, the mapper correctly moves you to the destination room but no exits are connected to each other. If this is what you are seeing, only way I've found to fix this is to manually connect them.

2)I've never actually seen ZMud nor CMud correctly detect and apply door settings in the map, even for games wherein ZMud/CMud supposedly works perfectly for it out of the box. Whenever a door was autocreated, it was invariably incorrect and usually happened when a new room was created in a direction that had no detected exit. I've taken to simply adding in my doors manually and using scripts to experimentally add them in (with only some success).

3)the mapper has a direction queue that stores all commands sent to the game (for the most part, anything that's not a direction or movement-related command is safely ignored but if you desire I suppose a small trigger could be made to remove it from the queue). It does not pop off the first command until it detects a movement, so things like bumping into walls (which usually are simple lines of text that don't match room format) will sometimes allow the mapper to get off-track. Triggers like Scarn showed are how you deal with that.

4)many zone maps are plotted in a nonadjacent fashion, like so (legend: O = room and -, |, /, and \ are exit links):

Code:

O-O-O
|   |
O---O


This can come about from simple exit links like above; if you started in the nw corner and went south, east, and then north, the rooms would instead be plotted out like a square with no room to place the middle room on the top row. If you did not first move the ne corner room, chances are good that going west would have the mapper simply connect the exits from the northern corner room instead of creating a new room.

Another situation where mapping does not follow adjacent cartesional plotting would be one-way exits. Sometimes builders can get carried away with them, causing the map to look pretty much like a plate of spaghetti. The mapper allows you to add bendsto keep exit lines "untangled", but it won't naturally create them on its own.

Another situation involves special progs that place you in specific rooms. Sometimes you're allowed to go into the adjacent room, but the prog activation is so fast that the mapper simply never detects that movement and ends up using the room info from where you finally ended up. Other times, you just don't get the original room info at all so the mapper will think you ended up at the original room as far as the marker goes but then might create a new room because the received room info doesn't match the room info in the map. There's really no limits to what they can do with these progs, so there's kinda no way to deal with them on a mass scale.

Finally, you can run into bugs inherent in the building of the area.
_________________
EDIT: I didn't like my old signature
Reply with quote
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Mon Feb 24, 2014 10:17 am   
 
Good advice from MattLofton there.
A question for Matt, if I run a #SLOW . speedwalk and pause along it's route, is there a way to view the remaining (queued) path, or only the next step (with %nextdir)?
Reply with quote
MattLofton
GURU


Joined: 23 Dec 2000
Posts: 4834
Location: USA

PostPosted: Mon Feb 24, 2014 10:15 pm   
 
Dunno, any time I speedwalked somewhere I just doubleclicked or used #WALK/%walk(). I never bothered with #PAUSE or triggers to stop me/resume if I got caught by an aggro.
_________________
EDIT: I didn't like my old signature
Reply with quote
Remoed
Newbie


Joined: 23 Feb 2014
Posts: 7
Location: The U.S.of A.

PostPosted: Mon Feb 24, 2014 11:39 pm   
 
OK I have figured it out. My MUD it looks looks this:

Code:
Park Avenue                                         /     N     \
------------------------------------------------    W ---(+)--- E
                                                    \     S     /
The avenue runs east to west, buildings line the north side and a park
to the south. The previously abandoned building to the north has been
recently unboarded. Windows have been glazed in, but remain papered over.
Oddly, the doorway remains filled with clutter and debris and clearly
has not been used for ages, but the hammering sounds of carpentry are
very obvious from within. There is work being done inside the shop, it
may be opening soon. Park Avenue continues towards the east, where it
intersects with HawkStreet, or back to the west and more shops and park.
Exits: north east south west

{the compass didn't copy correctly}

It was registering the room name as the room description and wasn't registering the room description at all. So remembering I could toggle the compass I typed {config -compass} without the curly brackets and it looked like this:

Code:
Park Avenue
The avenue runs east to west, buildings line the north side and a park
to the south. The previously abandoned building to the north has been
recently unboarded. Windows have been glazed in, but remain papered over.
Oddly, the doorway remains filled with clutter and debris and clearly
has not been used for ages, but the hammering sounds of carpentry are
very obvious from within. There is work being done inside the shop, it
may be opening soon. Park Avenue continues towards the east, where it
intersects with HawkStreet, or back to the west and more shops and park.
Exits: north east south west


So I re-autoconfigured and everything mached what it was supposed to be.


Last edited by Remoed on Tue Feb 25, 2014 12:33 am; edited 2 times in total
Reply with quote
Remoed
Newbie


Joined: 23 Feb 2014
Posts: 7
Location: The U.S.of A.

PostPosted: Tue Feb 25, 2014 12:16 am   
 
Now with fixing comes problems. I have found 1 problem thus far.
- say the map looks like this:

Code:
+~~~+
|   |
+~ ~+

{legend ~,| are paths; + are rooms}
Say I am in the SW room and I know for a fact if I go East it goes to the SE room but I move the SW room to the center for some reason; if I go east it creates an entire new room instead of connecting it to the room I moved. Don't tell me to not move the rooms the mapper that's not my problem, the mapper is overlapping the rooms anyway. You guys may have answered this above.
Reply with quote
MattLofton
GURU


Joined: 23 Dec 2000
Posts: 4834
Location: USA

PostPosted: Tue Feb 25, 2014 8:47 pm   
 
Remoed, move the damn rooms. Mr. Green

On a serious note, the mapper does not ever create new rooms in a non-adjacent manner. If you imagine a 5x5 square of grid paper, with the square at (1,1) being your first room, the only possible exits for this room (on this grid) would be east, southeast, and south. If you traveled each of these exits to create more rooms, those three rooms would appear in (3,1) for the east room, (3,3) for the southeast room, and (1,3) for the south room. You could never have a room autocreated in (5,1) as a result of going south from (1,1).

Now, that being said, there is a relatively new mud protocol called GMCP that allows the game to send detailed information to the client in an out-of-band channel. CMud supports this protocol (ZMud does not, but I've seen at least one separate utility--specifically for Aardwolf, though I'm not sure it's limited to just that game--that adds it to ZMud in a translated fashion), and if the destination room does exist and is non-adjacent then CMud will in fact properly connect the two rooms with an unbent exit link. Without GMCP, though, there's no similar functionality available.

Also, the compass makes it easier to create a #TAG trigger for your entire room-info format:

1)#TRIGGER on the room name and top line of the compass. Make sure you surround the room name pattern in (), and you can then #TAG name %1 to only use the room name as the room name.
2)add a #CONDITION to the above trigger to match on the middle line of the compass. Any compass-work can be done here, otherwise all you need to include is #NOMAP.
3)add another #CONDITION to handle the third line of the compass. Ditto as #2.
4)add a final #CONDITION to match on room desc and the exits line, using an #IF to figure out which line goes where. This condition would be a manual state, so when you encounter the exits line you need to use #SET to return the trigger state back to 0 (or to whatever next state you might have for items/mobs/players/prompt).

Once this tag trigger is matching correctly, run the configure wizard again to activate it and almost all your room-matching problems will go away.
_________________
EDIT: I didn't like my old signature
Reply with quote
Remoed
Newbie


Joined: 23 Feb 2014
Posts: 7
Location: The U.S.of A.

PostPosted: Wed Feb 26, 2014 1:59 am   
 
Thanks for your time. But I'm no scriptwriter, I did try to look up in the help guides about what you said but it was so confusing I had to ask what you meant by what you said to do.
Reply with quote
Remoed
Newbie


Joined: 23 Feb 2014
Posts: 7
Location: The U.S.of A.

PostPosted: Mon Mar 03, 2014 6:49 am   Just a little more help
 
Thanks Matt for your advice. But I'm having a hard time understanding what you wanted me to do in step 4
Quote:
add a final #CONDITION to match on room desc and the exits line, using an #IF to figure out which line goes where. This condition would be a manual state, so when you encounter the exits line you need to use #SET to return the trigger state back to 0 (or to whatever next state you might have for items/mobs/players/prompt).
But this is what I've got so far;
Code:
#TRIGGER {(*)%s({/|NW})%s({-|N})%s({\|NE})} {#TAG name %1}
#COND {%x%s({~-|W}) -({-|U})-~(~+~)-({-|D})- ({-|E})} {#NOMAP}
#COND {%s({/|SW})%s({-|S})%s({\|SE})} {#NOMAP}


And I'm using zmud now because the help files are so much easier to look through.
Reply with quote
MattLofton
GURU


Joined: 23 Dec 2000
Posts: 4834
Location: USA

PostPosted: Mon Mar 03, 2014 7:32 pm   
 
Code:
#condition {(*)} {
  #if (%begins(%1,"Exits:")) {
    //this line is the exits line, advance to the next state
   #set triggername 0
  } {
    //this line is still part of the room desc
  }
} {manual}


Give your trigger a proper name (in the first state only) and put that in place of "triggername".
_________________
EDIT: I didn't like my old signature
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