rozdwojeniejazni Wanderer
Joined: 13 Aug 2011 Posts: 74
|
Posted: Mon Aug 29, 2011 3:12 pm
Problem with aliased-exit on long speedwalk. |
I am rather experienced cmud user. The matter is long and hard to explain, especially due to the fact I am not an english speaker, however will I try.
On my MUD there are gates that you need to knock on. There are two possible scenarios, look:
Quote: |
At the gate.
Wooden gate leading to north.
===] s
> knock on the gate
You knock on the gate.
// here you wait about 2 seconds
> The gate got opened.
n
And the situation when someone opened it first:
At the gate.
Wooden gate leading to north.
===] s, n
> knock on the gate
But the gate is already open!
// so you immediately want to go, before it gets closed
> n |
To handle these situations I use an alias in exit's name field.
Code: |
<alias name="gate_e" id="54">
<value>
knock on the gate
#TEMP {(*)} {
#IF (%regex( %1, "But .* is already open!") = 0) {#wait 2200}
e
}
</value>
</alias> |
This works well when I walk using keypad, or make a simple, short speedwalk. The only situation when it fails is when the speedwalk path goes through other zone - the direction command, "e" is not being sent then, and the walk gets stopped. Can anyone figure it out?
To examine and demostrate it better i inserted these echos to temp trigger:
Code: |
#TEMP {(*)} {
#echo Fired! - %1
#IF (%regex( %1, "But .* is already open!") = 0) {#wait 2200}
#echo Still fired.
e
#echo Command was sent.
} |
The output looks then like this:
Quote: |
At the gate.
Wooden gate leading to north.
===] s
> knock on the gate
You knock on the gate.
Fired! - You knock on the gate.
> The gate got opened.
Still fired.
Command was sent. |
So again: the "e" command disappears only on longer paths, between zones. Seems like a bug to me. Or maybe this not-sending is implemented on purpose? What do you think? Any suggestions how to overcome this? |
|