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
geniusclown
Magician


Joined: 23 Apr 2003
Posts: 358
Location: USA

PostPosted: Sun Oct 02, 2011 1:44 pm   

Mapper queue oddities
 
I have a simple script that ties into the mapper and perceives the mana in each room as I walk around:
Code:
<event event="OnRoomEnter" priority="9840" id="984">
  <value>#IF (@PowerWalk) {
  #PAUSE
  #SEND perceive
  }</value>
</event>

<trigger type="Expression" priority="340910" trigontrig="false" id="292">
  <pattern>%inwalk and @rt</pattern>
  <value>#PAUSE
#T+ ContinuePath</value>
</trigger>

<trigger name="ContinuePath" type="Expression" priority="788020" enabled="false" id="294">
  <pattern>@rt=0</pattern>
  <value>#T- ContinuePath
#STEP</value>
</trigger>

When I walk into a room, the event OnRoomEnter is raised, which pauses the slowwalk, sends perceive, which activates other scripts that track roundtime, which in turn triggers the second trigger here that pauses (the already paused) slowwalk and turned on the third trigger which waits for the roundtime to end before sending "step". The two triggers are general and not specific to this powerwalk script (I want the slowwalk to pause any time I enter roundtime).

If I simply move from point A to point B with this active and nothing else interacts, then it works perfectly fine. However, if anything happens to give more roundtime, then it starts sending directions multiple times or other wonkiness.

In fact, I don't even have to be using the powerwalk script to experience occasional wonkiness of sending stored directions instead of what I specify on the keypad. For example, a particular room has a custom exit east of "go gate". I have experienced roundtime while slow walking through this room. It goes through the gate, and on the other side when I press the 6 key on the keypad (east), it sends "go gate" and I go west through the gate instead of east - assumably because the "go gate" command was still in the slowwalk queue.

I have experimented with very limited success using #SLOW ., #SLOW 0, #WALK ., and #WALK 0. I haven't found any reliable way to not send commands in the queue when I manually type a direction into the keypad. I'd like to just know what's in the queue at any given time (am I missing a function?) so I can maybe figure out exactly why it's doing this and make a workaround.
_________________
.geniusclown
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