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
Rebel
Novice


Joined: 29 Oct 2007
Posts: 33

PostPosted: Mon Jul 21, 2008 8:40 pm   

Pausing while speedwalking?
 
Can you tell me what is going wrong?
At one point during the speedwalk, I go west to a dock, and have to wait for a boat - so in the room description I tick the box marked "Pause when speedwalking", and in the Walk Script for that room I write:

#trigger {ship arrives} {#ok}
#if (%nextdir = e) {#ok}

Boarding the ship works ok, but when I travel in the opposite direction, get off the boat, and arrive at that room, I fail to go east, and the speedwalk seems to have lost that direction from its list, and I get messages saying, for instance, that it can't go north. So I am left at the dock - but the map has been updated to indicate that my current position is at the end of the speedwalk - and not stuck at the dock, where the mud believes me to be :(

Any help appreciated.
Reply with quote
Toxic
Adept


Joined: 27 May 2008
Posts: 299

PostPosted: Mon Jul 21, 2008 8:51 pm   
 
You need to make a room that is for all intents and purposes, the boat. When the boat arrives at the first dock, it should move you to the room that is 'the boat' which also will be marked "Pause when speedwalking" then, when the boat arrives at destination you need a walk script that triggers off that message to get off the boat and continue on.
Reply with quote
Rebel
Novice


Joined: 29 Oct 2007
Posts: 33

PostPosted: Mon Jul 21, 2008 8:53 pm   
 
Thanks Toxic, all that is in place - I was just simplifying it
- I still have the problem
Reply with quote
Toxic
Adept


Joined: 27 May 2008
Posts: 299

PostPosted: Mon Jul 21, 2008 9:23 pm   
 
Then I dont understand where your having an issue. Or for that matter, what you are using the #IF (%nextdir = e)...

On the first dock use... #TR {ship arrives} {#ok}
On the boat room use #TR {ship lands} {#OK}

If your slow walking, you could always use #PAUSE, #STEP.

Maybe I'm not understanding the problem, but this should work.
Reply with quote
Rebel
Novice


Joined: 29 Oct 2007
Posts: 33

PostPosted: Mon Jul 21, 2008 9:35 pm   
 
Hmmm... I will try and explain again.
I have a room for the boat, with a pause, which works fine. On the way back, I leave the boat and arrive at the dock. The only way to leave the dock is to go east. So I assume I need the #if (%nextdir = e) {#ok} to get me through the room pause on my way east during the speedwalk - but its not achieving the desired result.
Reply with quote
Toxic
Adept


Joined: 27 May 2008
Posts: 299

PostPosted: Mon Jul 21, 2008 9:53 pm   
 
Ah I see said the blind man. I'm assuming the 'reason' its happening is because when it pauses in the room it hasnt actually #OK'd that movement yet, so the nextdir in the queue is technically the last direction you just moved, until you do a #OK which confirms that movement.

I think if you used %lastdir instead of %nextdir and compared it to whatever your using to get off the boat, it will work, other than that I havnt a good way to fix this issue, prolly someone else does tho.

EDIT: an easy way to test this is to let the map pause you in this room coming back through, and then do #SHOW %nextdir to see what it is showing as your next direction. As long as its different that the #SHOW %nextdir of when your coming through to get on the boat, just compare it to what it shows to continue the walk.
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