 |
missinglink Beginner
Joined: 09 Feb 2010 Posts: 15
|
Posted: Thu Jul 15, 2010 1:43 pm
Mapper confirmations |
Hi all,
I'm trying to get the mapper to wait until a trigger gives it the necessary command to confirm that moving in a direction was successful.
I believe the command to confirm the movement is #OK.
(I'm sure there are lots of questions like "why aren't you using the mapping configs etc, and i'm sorry i haven't been able to get it working after many many hours of configuring - so i'm trying to do things a different way, and later i'll try go back to trying to use use the built in functions for recognising room name/description/exits).
i've tried to turn any setting off which would confirm the movement but still when sending a movement direction, the mapper maps it after receiving, what appears to be anything, including a blank line or prompt, from the mud.
In the map preferences, i've unticked everything, every setting, etc, yet it still creates a room when moving in a direction, instead of waiting for my trigger to give it the permission to do so.
I'm sorry that this seems a bit all over the place, and cMud is a awesome client with awesome features, and i also understand i just haven't had the skill to marry it up with my mud yet, so thanks for any help!
m-L |
|
|
 |
dbosst Apprentice
Joined: 15 Jun 2010 Posts: 121
|
Posted: Thu Jul 15, 2010 1:58 pm |
Can you paste the text from the mud of you moving to a room, (including a few lines before/after the move).
Also, do you have MXP or GMCP enabled?
Or even better, Open the Script debugger... enable everything.. then post the output when you move to a room.. That way we can try to figure out when OnRoomEnter is firing and on what trigger |
|
|
 |
Rahab Wizard
Joined: 22 Mar 2007 Posts: 2320
|
Posted: Thu Jul 15, 2010 2:37 pm |
Is your mapper correctly capturing the room information? If your mapper isn't configured correctly to at least capture the right information, it will send its own #OK when it thinks you have moved.
What mode is the mapper in--FAST, SAFE, or SLOW? |
|
|
 |
missinglink Beginner
Joined: 09 Feb 2010 Posts: 15
|
Posted: Fri Jul 16, 2010 4:29 am |
Hey guys,
thanks so much for the quick response, these forums are awesome in that regard.
dbosst, i'm sorry i dont know much about MXP or GMCP, but thanks for the idea, i've gone through and tried to untick all the options about them. i'll read up on them and see if they're affecting this.
Excellent idea about the debugger, i'll spend some time with it before asking much more.
Rahab, i've tried both Fast and Slow for the mapper mode. I must admit i'm not quite sure when the settings take effect from the "Map preferences window", sometimes it seems to take effect immediately, and sometimes i need to close (X) and reopen the window so see what setting it actually has. I've been trying a lot of trial and error, and its hard to know when a setting has worked or not worked because im not sure if it actually took effect or not.
Is the correct method to make sure a setting has taken effect to close and reopen the window? or do i simply make the change, and it should be effective immediately?
here's some sample output, its from the 3Kingdoms Mud:
Code: |
\ | /
<>!A Vortex (s,w,e,enter) W ---*--- E
/ | \
S
]}{The immediate area is extremely blurry and hard to focus on.
Just ahead of you is a raging, swirling vortex. It extends
as far up into the sky as you can see with no end in sight.
The vortex itself is a swirling mass of dark clouds, with
occasional flashes of heat lightning. A road leads out of
the vortex to the south.
]}}
There are four obvious exits: south, west, east, enter
Foil wrapper (shiny).
|
i'll probably end up working with the #TAG command, which is why you can see i've used some text (via ANSI vars) to denote the beginning and end of things:
the exits are preceded by: <>!
the room description is contained in: ]}{ and ]}}
i won't be using the "there are four obvious exits" bit.
the foil wrapper is sitting on the ground, so its not important.
It also seems that when the mapper recognises any info about a room (desc or exits) that sends through the #OK. Which is why i tried turning it all off and for some reason it still got an #OK through.
anyhow, thanks for the help so far, i'll see what i can do with what you guys have suggested so far, it'll be a couple of days before i can look at it again.
Thanks again!
m-L |
|
|
 |
Rahab Wizard
Joined: 22 Mar 2007 Posts: 2320
|
Posted: Fri Jul 16, 2010 2:08 pm |
You can't "turn off" the automatic attempt by the mapper to recognize a room. If it thinks it recognizes a room and concludes that you have successfully moved, it will send the #OK. This is why it is important to set up the configuration so that the mapper can recognize room information. Also, if it doesn't recognize room information, it cannot fill in the proper fields in the room database. If the room name in the mapper is blank, then the mapper will conclude that a move is successful whenever the mud sends _anything_, because every line matches a blank pattern. If you haven't managed to configure the map to capture room information, it is likely that your map has rooms with blank names. This would lead to the problem you have of the mapper thinking your move was successful with any mud output at all. You need to get a proper room name, at the very least, into your map.
Yes, it looks like you may need to use #TAG to get the mapper to work with this mud. Yuck--is the mud really putting the compass into one single line without carriage returns? |
|
|
 |
missinglink Beginner
Joined: 09 Feb 2010 Posts: 15
|
Posted: Sat Jul 17, 2010 8:08 am |
Thanks Rahab, its absolutely brilliant how well you know this, its very encouraging.
What you have described is exactly what I have been experiencing, and the explanation makes sense. i think i'll be able to get it to recognise the room exits and room name, and then use a multistate trigger (the next challenge) to add in the room description.
yeah, they are adding the compass into the same line as the short version of the room name and exits. honestly, i've never played another mud all these years so i don't have anything to compare it with.
thanks again for the help, those insights save heaps of time!
one quick question which might also save me some time: does the mapper use room names or descriptions to recognise which room its in, and just "jump" to a different room, if it thinks i'm in there. ie, it would get confused if i walked through 10 identical rooms, all with the same exits, descriptions and room names?
m-L |
|
|
 |
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Sat Jul 17, 2010 3:33 pm |
It would not get confused by duplicate rooms. Unless there was something else complicating the effort, such as randomized exits taking you to a room you didn't expect. Once the mapper gets "lost", it doesn't self-correct.
|
|
_________________ EDIT: I didn't like my old signature |
|
|
 |
missinglink Beginner
Joined: 09 Feb 2010 Posts: 15
|
Posted: Mon Jul 19, 2010 11:09 pm |
thanks all for the help, thought i'd let people know where i got to in case its useful for someone else.
The #TAG command seems to be very useful in getting the mapper to recognise whats what. And you really need to do what the helpfile says, rerun the mapper configuration wizard ("recofigure") after you've set the tags. Don't worry if the wizard skips the bit at the end where it colours the lines, just "Finish" past it.
For the given mud output, i've set up the following:
Code: |
<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
<trigger priority="6140">
<pattern>(*)~]~}~}</pattern>
<value>#T- roomDescCapture
#TAG desc @roomDesc</value>
</trigger>
<trigger name="roomDescCapture" priority="6120" enabled="false">
<pattern>^(*)$</pattern>
<value>roomDesc = @roomDesc + %1
</value>
</trigger>
<trigger priority="6100">
<pattern>~<~>~!(*)~((*)~)</pattern>
<value>#TAG name,exit {%1} {%2}</value>
</trigger>
<trigger priority="6110">
<pattern>~]~}~{(*)</pattern>
<value>roomDesc = ""
#T+ roomDescCapture</value>
</trigger>
</cmud>
|
After you do that, run the configure wizard.
A few tips:
- When you run the reconfigure wizard, try it on a few different rooms in your mud
- I found closing and reopening cMud may have an effect if you think the mapper is behaving unusual. (I'm running Vista 64bit so that could be part of it)
- As dbosst suggested, use the trigger debug messages feature to find whats catching what.
- The above setup is configured for mapping in "SLOW" mode
- As Rahab suggested, getting the autoconfiguration right is critical, so make sure you run it after making changes.
- If the mapper seems to "jump" around rooms when testing your mapping, it can be that it has saved up your previous sent directions and you haven't pressed escape to clear them. then when it finds something to trigger an #OK, it may send a few (or maybe it only remembers the last one, i'd have to check again) of them through and you find that it went north then east when you just typed east only.
- Prefer to use cMud's trigger syntax rather than Perl regular expressions. Again, this could be something to do with Vista 64bit, but i found, particularly when working with the mapper, it was "happier" using them rather than Perl regular expressions. Nothing against cMud's RegExp processing though (98% of my triggers are RegExps).
thanks again to all who helped, no doubt i'll have more questions soon.
m-L |
|
|
 |
Rahab Wizard
Joined: 22 Mar 2007 Posts: 2320
|
Posted: Tue Jul 20, 2010 2:45 pm |
Here's another tip:
If you get messages from the mud for bad directions or problems moving ("There is no exit there.", "You are too tired to move.", "You get lost among the rocks and end up where you were."), you can create triggers for these phrases which execute the command #NODIR. This will help solve the problem of directions still in the movement queue waiting for a room match. Sometimes you may need "#NODIR 1", which will remove _all_ the movement commands from the queue. |
|
|
 |
missinglink Beginner
Joined: 09 Feb 2010 Posts: 15
|
Posted: Wed Jul 28, 2010 11:53 pm |
ok well i thought i had it working, went on configuring the client, closed and reopened cmud one day and then it was no longer working. after three weeks of solely trying to configure the mapper i think i really need some help.
some of the problems i'm having (please also bear in mind i'm using the most recent beta, should i be posting this in a beta forum?)
- manually configuring the mapper seems to have no effect a lot of the time. e.g run the wizard, and it thinks the room description is in line 0,0 (para,line). if i change those numbers, nothing happens. the bizarre thing seems to be that if i walk out of a room, and say the mud sends "storekeeper says: goodbye" on the way out, that seems to be something that the mapper often puts in the room name. ie. it always catches that bit, but rarely catches the actual room info.
- any chance we could get some sort of line and paragraph number output, so we can actually see what it thinks are the most recent paragraphs and lines?
- the #ok command seems to just randomly stop working. is there any case where there is a direction in the queue and #ok would have no effect?
- is there any way to expose the triggers the mapper is using to recognise rooms, or to be able to see "onRoomEnter" and whats in it? i tried using "Debug trigger output" but didn't see any mention of them.
- it seems that having debug mode on when autoconfiguring the mapper, fills it with the debug output, so it can't be on.
- the mapper settings aren't being saved. e.g if i close the program and go back in, the settings for "room description" or "room exits" have (sometimes) returned to defaults, i'll do some testing and screenshots to show this more definitely and give a procedure for repeatable behaviour.
i don't mind doing the configuring and trial and error to configure absolutely everything from scratch, but the main problem i'm having at the moment is that i change settings in the mapper config, and then there is no effect e.g. a lost of the time, it puts nothing in the room name and desc. i really think i'm doing something badly wrong.
i've tried setting the room name and desc manually via triggers and %roomdesc, but then when mapping, e.g in a circle, and returning to the room you started in from another angle, it always creates another room on top, instead of joining the rooms (i've got all those auto-join settings enabled). what are the conditions which might cause this to occur? with this i was trying to get it to find the room exits and then i populate the rest with triggers.
I'm willing to read anything, try anything, run any config, or anything else that might help. i'm happy to do some screen recording to people can see whats happening. i'm very embarrassed that it seems i had it working and now it just stopped. i even managed to map a a couple areas before it stopped working.
thanks for any help guys.
p.s the classes feature rocks! |
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Jul 29, 2010 5:13 pm |
The suggestions you have made for the mapper configuration are part of the "Phase 2" of the mapper rewrite which has been postponed for a while until I get TeSSH released and marketed. Phase 2 will have more direct control over the mapper and will add mapper debugging to the current script debugger window. Don't try to use the "Debug trigger output"...it messes up the mapper as you discovered. Use the Script Debugger window to see what triggers are firing.
The main thing about the mapper configuration is to not mess with the individual values shown in the Configuration Properties window. Either use the configuration wizard, or override the mapper using the #TAG command in triggers. The more you mess with the manual settings, the worse it will probably get as there a many interactions between the settings and changing them manually usually just results in the mapper not working at all (especially stuff like the paragraph and line numbers, which don't actually mean exactly what they say).
Things like the #OK command depend a lot on your speedwalk mode (safe, slow, fast).
Mapper configuration settings are stored to the *.ZFG file in the same directory as your *.DBM map file. Make sure your data files are being stored in the "My Documents\My Games..." directory and *NOT* the Program Files directory. But you should be able to check the modification date on the *.ZFG file to see if it is being updated.
For text that confuses the mapper (like storekeeper says: goodbye), you usually need to create #NOMAP triggers to tell the mapper to ignore those lines. |
|
|
 |
missinglink Beginner
Joined: 09 Feb 2010 Posts: 15
|
Posted: Thu Jul 29, 2010 10:51 pm |
Thanks Zugg, i appreciate your efforts, and what you're saying makes sense.
Then i'll continue to use the following procedure to work with the mapper:
1. set #tag up using triggers
2. run the "reconfigure" mapper wizard
3. check the effectiveness, and if necessary, modify the #tag setup and rerun the "reconfigure" wizard each time.
I will see how i go with that and if i continue to have the problem where entering a previously mapped room from a stub direction creates a new room over the top, i'll ask some more questions. hopefully it'll just fix itself up when i get the other stuff working.
And i will look forward to the new mapper! Good luck with the TeSSH work.
m-L |
|
|
 |
|
|
|
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
|
|