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
Maximus
Wanderer


Joined: 21 May 2001
Posts: 59
Location: USA

PostPosted: Fri Oct 24, 2003 9:41 pm   

Automapping, common direction w/ uncommon command
 
Okay, this is an Achaea question for all you gurus and seasoned mappers out there..

In Achaea, the standard directions are:
n|north
s|south
e|east
w|west
ne|northeast
nw|northwest
se|southeast
sw|southwest
u|up
d|down
in
out

Now, aside from walking, you can also swim. This is accomplished by sending the command "swim [direction]" to the mud. You must swim into and out of water-filled rooms. This is a ridiculous pain for the automapper.

I have added the additional swim commands to the inherited direction variables, and that allows the mapper to recognize, for example, "swim se" and successfully create a new room to the southeast with a se/nw link between the two rooms. This is good. What is NOT good is that, when speedwalking, the mapper still wants to use the original command instead of the swim command (i.e. "se" instead of "swim se"), which in turn generates the message:

There is water in that direction. You must swim to get
through.

I've found that by changing the "Other Com" field for each exit to the appropriate swim command, speedwalking will work just fine and use that command instead of a regular direction. This, however, is a grossly tedious undertaking, especially when mapping wide-open bodies of water with each room having eight or so exits.

Also, through some fluke of experimentation, I have randomly gained the ability to swim without swimming, per se. In *some* cases, I can be in a room next to a water room and press a standard direction button, and zMud will automatically swim into the room instead of trying to walk. This is desireable, but unfortunately I have no idea how I pulled it off in only some sets of rooms and in others the character walks instead of swimming, flagging the error message.

What I would like to accomplish would seriously help lessen the time it takes to map. Consider this situation:

I have a room with a nub link to the southeast. I know that the room to the southeast is filled with water, and I want to be able to press numpad-3 to move into that room, create the new room, AND fix the se/nw link between the two rooms to force me to swim in both directions.

Now, I had considered the following events: I press numpad-3, se is sent to the mud. Then, I get the "You must swim" error message back. At this point, I want to change the "Other Com" field of the link to be "swim se", then I want to swim se (which is correctly recognized by zMud) and create the new water room with nw backlink. I realize this would only be a one-way solution, but I should only have to go back nw by pressing numpad-7 and the link should miraculously be a swimming link in both directions. The major flaw with this is.. I can't seem to find a function that will change the "Other Com" field of a particular link in a room.

Sooo.. is there a function I'm missing somewhere? Or is it not possible to do what I have described? It seems like this sort of thing shouldn't be a problem given the right library of functions/commands.

On the same note, though, another area that gives me trouble is in/out directions. These are non-standard exits, and I've tried adding a direction variable for both that uses the non-standard exit graphic, but by the gods it just doesn't work smoothly enough. what I end up doing is going in and out, which creates three separate rooms... then I have to merge the two outdoor rooms and go into their link control panel, delete one of the two empty links, and then manually edit in the in/out commands for each link. Now, this doesn't even consider how wacky things get if you ever encounter a room with an in exit that leads to a room with another in exit! If you can imagine: room A has exit in leading to B; room B has exit in leading to C, and exit out leading to A; and room C has exit out leading to B. I actually have to create two copies of room B to create a circular arrangment in which A->B1, B1->C, C->B2, and B2->A. It's REALLY annoying. =P

Anyway, I know this is a really long-winded post, but it's not an easy problem for me to solve because I don't really know just what zMud can and can't do automatically, or what it *does* do automatically (and maybe how to disable/reconfigure that). Any enlightment from you gurus would prove to be an extreme help. The automapper is incredibly powerful, and I'd like to know what it's really capable of doing.

Also, I own zMud and zMapper, so if there's something that zMapper can do that'll fix this, don't hesitate to mention it..
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5182

PostPosted: Fri Oct 24, 2003 11:00 pm   
 
You should be able to define the directions such that they will be automatic. If you find one that is working automatically go back to that room and use "#ECHO %roomexit()" to see the exit list for that room. I think you will find that it has the character definition for your swim dir. If I am right then all you have to do is correct the exit string for rooms that don't work right. Never had to do that personally, I am almost tempted to play Achaea just to map it and publish a great map with all the nifty scripting needed to improve it. I just hate really busy muds.

As to in/out make sure they are defined as reverse directions of each other. Of course circular/maze sections will always require manual tweaking, but proper definition of the #DIRECTIONs can solve many problems.
Reply with quote
Davos
Adept


Joined: 30 Jan 2003
Posts: 228
Location: USA

PostPosted: Sat Oct 25, 2003 2:56 am   
 
The simplistic way I got around this is to trigger the SWIM Message
ie You must swim that direction blah blah blah

to do this
VALUE:
swim %lastcom
which will autmaticly take the last command you entered and swim that direction, and since the Mapper doesnt Recognize 'Swim n' as a valid direction it doesnt make 2 rooms just one. This is rather simplistic but it seems to work in almost all cases, you may have to do further refining to get it to work with speedwalking as I dont speedwalk in Achaea. This is also desireable to me because a room is not ALWAYS filled with water, so permanently fixing the room to Swim when you go into it, will sometimes not work, if the room is not flooded.
Reply with quote
Maximus
Wanderer


Joined: 21 May 2001
Posts: 59
Location: USA

PostPosted: Sat Oct 25, 2003 6:45 pm   
 
Davos: I forgot to mention I'm already triggering the swim message to resend with "swim " appended to the front. But also note that zMud DOES recognize swimming as a valid direction if you make direction variables. That leads me to...

Vijilante: I have not been able to accomplish this. I tried making new directions variables corresponding to swimming in each direcion. For instance, 1 is "swim n" and its opposite is 2, and 2 is "swim s" and its opposite is 1. This just doesn't work, period. The mapper fails to recognize these directions and will not create new rooms. In addition, using numbers seems to create access violations when trying to speedwalk. So, I changed to letters and got the same results, except no access violations. So the point is, if I make a new direction with new commands, it just doesn't work. If, however, I take the existing directions and add the swimming commands to them, zMud will recognize those commands and map in the appropriate direction, but if I try to travel that path again, it wants to walk instead of swim because it considers all of the commands for a single direction to be the same. Now, in the map where I actually have working swimming exits, #ECHO %roomexits() spits back the right commands, but only because I have specifically gone in and changed each and every exit link to have the right swim command. I guess my main question is, why do new directions not work? The case is pretty much the same for in/out (which I have assigned to a/b), except those actually create new rooms, but the exits are not created properly.

Also, I really wish you WOULD make a miraculous script for mapping Achaea because it's pretty obvious a large amount of people have tried. I fully believe it is within zMud's power to do this, I just can't seem to figure out quite how it all works.
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