geniusclown Magician
Joined: 23 Apr 2003 Posts: 358 Location: USA
|
Posted: 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. |
|