|
Talanthas Beginner
Joined: 26 Mar 2001 Posts: 12 Location: earth
|
Posted: Thu Apr 25, 2002 12:40 am
Help with zMUD mapper |
I imm on a small startup SMAUG mud. The zmud mapper configures wonderfully for normal (read mortal use) mapping, but I want to use it to help me check new areas that our builders develop. I've tried to set it up using the #TAG function, but I haven't had any success yet.
Sample mud output follows:
Name: The Parlour of the Immortals
Area: Gods Filename: gods.are
Vnum: 1200 Sector: 0 (Inside) Light: 0
Room flags: nomob indoors nosummon noastral
Description:
You are lounging in a quiet cosy parlour, warmed by a gentle magical fire
which twinkles happily in a warm fireplace.
Characters: talanthas
Objects: immortal
------------------- EXITS -------------------
1) n to 1201 . Key: -1 Flags: 0 Keywords: (none).
2) e to 1204 . Key: -1 Flags: 0 Keywords: (none).
3) s to 1205 . Key: -1 Flags: 0 Keywords: (none).
4) w to 1203 . Key: -1 Flags: 0 Keywords: (none).
5) u to 1202 . Key: -1 Flags: 0 Keywords: (none).
6) d to 1206 . Key: -1 Flags: 0 Keywords: (none).
7) ne to 1207 . Key: -1 Flags: 0 Keywords: (none).
Current triggers:
#TRIGGER {^Area: (*) Filename: (*)} {#tag area,filename {%1}{%2}} "System|Automapper"
#TRIGGER {^Name: (*)} {#tag name {%1}} "System|Automapper"
#TRIGGER {^Objects: (*)} {#tag objects {%1}} "System|Automapper"
#TRIGGER {^Room flags: (*)} {#tag roomflags {%1}} "System|Automapper"
#TRIGGER {^Vnum: (%d) (*)Sector: (%d) (*) Light: %d} {#tag vnum,sectortype {%1}{%3}}
Prompt:
< room#1200 >
The reason I've included my prompt is that I'd like the mapper to capture the vnum of the current room from it. This approach provides the advantage that, when I'm moving around the mud (not mapping) during normal play, the mapper will correctly recognize the zone and room that I'm in.
Any help you can give would be greatly appreciated!!
Thanks,
Talanthas |
|
|
|
Sildaren Wanderer
Joined: 19 Jul 2001 Posts: 59 Location: Germany
|
Posted: Thu Apr 25, 2002 5:38 pm |
As far as I know there aren't options like 'objects' or 'sectortype' for the #TAG command.
In the best case the mapper will just ignore such lines, more likely they will confuse it.
I've played around an hour or two with the snippets of mud output you provided,
and came up with the following set of triggers:
#CLASS Automapper
#TRIGGER {^Name: (*)} {#TAG name {%1}}
#TRIGGER {^Area: (*) Filename: (*)} {#NOMAP}
#TRIGGER {^Room flags: (*)} {#NOMAP;#TAG flags {%1}}
#TRIGGER {^Vnum: (%d) (*)Sector: (%d) (*) Light: %d} {#NOMAP;#TAG vnum {%1}}
#TRIGGER {^Characters:} {#NOMAP}
#TRIGGER {^Objects:} {#NOMAP}
#TRIGGER {^Description:} {#NOMAP;#TAG descpara}
#TRIG {------------------- EXITS -------------------} {#NOMAP;#T+ grabexits;#VAR exits {}}
#TRIG {^%d~) (%w) to %d} {#NOMAP;#ADDITEM exits {%1}} grabexits
#TRIG {^~< room#%d >} {#T- grabexits;#TAG exit,prompt {@exits} {}} grabexits
#CLASS 0
#T+ Automapper
#ALI test {n;#SH %clip()}
Basically it's #NOMAPing everything that might confuse the mapper, and handfeeding the rest.
The alias test is used to simulate mud output
(I copy the block of text you gave+prompt to clipboard, then enter 'test' instead of the 'south' in the mapper's autoconfig dialog)
Seems to work, but overriding the mapper's AI is always tricky
(sometimes I have the feeling not even Zugg really knows what the mapper does with all the possible combinations of #TAGS, #NOMAPS, #NODIRS). |
|
|
|
Talanthas Beginner
Joined: 26 Mar 2001 Posts: 12 Location: earth
|
Posted: Fri Apr 26, 2002 1:13 am |
That's closer to working correctly, thanks.
It now correctly captures the room name and description, but it captures that entire first line of the exits instead of just the direction. It also ONLY captures that first line.
Additionally, none of the other parameters are reflected in the newly mapped room (area, filename, vnum, etc). Of particular importance to capture is the vnum.
Thanks for spending time with this. I really appreciate it.
Talanthas |
|
|
|
Sildaren Wanderer
Joined: 19 Jul 2001 Posts: 59 Location: Germany
|
Posted: Fri Apr 26, 2002 3:10 pm |
I've tested it again - as far as I can test it offline with the bit of mudoutput you provided,
and now it not even creates rooms with the right exits, but even inserts the proper flags and vnum (
not in the room created by autoconfig, but in the rooms added later).
Wish I knew why it didn't yesterday.
I've tried it with both v6.26a, and v5.54, and either works.
Things you should check:
Do the triggers fire on every line (if you have Prefs/General Parsing/Show Triggers enabled)?
Is the variable @exits assembled properly?
(should be n|e|s|w|u|d|ne for the test room.)
Do you have the default inherited settings?
(I created an empty mud window by hitting Esc at the open character screen.)
Since there is no default place for 'area' or 'filename' information in the mapper,
you can only grap that with a trigger collect it in a variable, and put it to the notes field after the room is created.
e.g. with
#NOOP %roomnote(,@additionalinfo)
One more reason why you're getting results different from mine could be a difference in the mudoutput.
I assumed there is one empty line between the last exit line and the prompt. |
|
|
|
Talanthas Beginner
Joined: 26 Mar 2001 Posts: 12 Location: earth
|
Posted: Sun Apr 28, 2002 4:14 pm |
Your assumption about the extra line is correct.
I tried again last night, and wound up crashing my computer...Twice. Dunno what the difference was.
Maybe I'm being too ambitious?
Under the assumption that's the case...How would I go about capturing the vnum from the prompt? That's the most important part. Everything else would be nice, but not necessary. (I can probably capture all of that when zMapper finally is released.)
Thanks for your help,
Talanthas |
|
|
|
Sildaren Wanderer
Joined: 19 Jul 2001 Posts: 59 Location: Germany
|
Posted: Sun Apr 28, 2002 5:11 pm |
You can alway use a trigger to fill in roominfo after the room is created. Like:
#TRIG {^~< room#(%d) >} {#NOOP %roomnum(,%1)}
which sets the current room's vnum to the number given in the prompt.
However if the mapper gets 'out of sync' this will mess up the vnum of all the rooms the mapper thinks you are in.
(to enter the above trigger at the commandline you need to make sure you have Prefs/Script parsing/General parsing/Expand Vars off,
or zMUD will execute the %roomnum() instead of inserting it into the trigger command)
I have no idea if you are too ambitions, I just know that my mapper works offline with the data you've given,
but I can't tell why it doesn't for you, if you don't give more info about it.
Have you tried it offline with an empty mud window? (if not - do you need more details how to do it offline, or how to create an empty mud window?)
Which version of zMUD are you using?
Have you checked whether the triggers are firing or not?
Stuff like that. |
|
|
|
|
|
|
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
|
|