Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to "verify" your details, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Entire forum
➜ Programming
➜ General
➜ multi line trigger to open doors in Aardwolf
multi line trigger to open doors in Aardwolf
|
It is now over 60 days since the last post. This thread is closed.
Refresh page
Posted by
| Kenneth
(18 posts) Bio
|
Date
| Thu 13 Mar 2008 05:08 AM (UTC) |
Message
| Hello, I need some assistance making a trigger to open doors in the mud "Aardwolf".
Please be advised that I am new to MUDs and to MUSHclient and have no knowledge of programming or anything of that sort.
When I type west to go to a door in the west, for example, the MUD says:
west <---on the first line, and
The door is closed. <---on the second line
It's displaying west on the first line because I typed "west" and "The door is closed." on the second line to tell me the that the door is closed. I'll likely need to set a trigger to open a door in the directions: up, down, north, east, south, and west. If anyone can help me, please be as specific as possible in your instructions. I really don't know what i'm doing and this is all very confusing. Thanks for any help that anyone is able to give me.
| Top |
|
Posted by
| Nick Gammon
Australia (23,057 posts) Bio
Forum Administrator |
Date
| Reply #1 on Thu 13 Mar 2008 09:20 AM (UTC) Amended on Thu 13 Mar 2008 09:21 AM (UTC) by Nick Gammon
|
Message
| Can you clarify?
Does the MUD really say "west" on the first line? Or is this something you typed?
This might seem like a minor point, but triggers match on what the MUD sends, not on what you type. There are ways of dealing with that, but I wanted to be sure. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Kenneth
(18 posts) Bio
|
Date
| Reply #2 on Thu 13 Mar 2008 12:46 PM (UTC) |
Message
| No, west only appears because i type it. BUT, I'm assuming I'll need it to tell the trigger in which direction to use the open command, such as: "open n" for north "open e" for east, etc. Unless there's some way for MUSHclient to guess the direction of the door. Thanks, and I'll be checking this forum again tomorrow, as I have to go to bed for work tonite (third-shift). | Top |
|
Posted by
| StuDraKi
Germany (17 posts) Bio
|
Date
| Reply #3 on Thu 13 Mar 2008 06:40 PM (UTC) Amended on Thu 13 Mar 2008 06:46 PM (UTC) by StuDraKi
|
Message
| There is a way to display your input: menu "file->World preferences" then choose "input->Commands" and at the top there is "Echo my Input in (colour)" If it's ticked and a colour selected you may distinguish mud messages from your input lines.
Apart from that I see a way to avoid multiline triggers (Well, true, I don't like multi line triggers ;-)
You can define an alias to catch your direction into a variable and you trigger only the error message line and deal with it.
Here is the alias: (send_to 9 is variable)
<alias
match="^(n|ne|e|se|s|sw|w|nw|up|down)$"
enabled="y"
variable="LAST_DIRECTION"
regexp="y"
send_to="9"
sequence="100"
>
<send>%1</send>
</alias>
And here is the trigger: (send_to 8 is world speedwalk delay)
<trigger
enabled="y"
expand_variables="y"
match="The door is closed."
send_to="8"
sequence="100"
>
<send>open @LAST_DIRECTION
</send>
</trigger>
[EDIT] Ah, I didn't test this, maybe the alias needs to send something also to the world, but I don't know how to do that without a script, maybe someone else can take over? | Top |
|
Posted by
| Nick Gammon
Australia (23,057 posts) Bio
Forum Administrator |
Date
| Reply #4 on Thu 13 Mar 2008 08:32 PM (UTC) |
Message
| Yes, it is easier to remember your last direction with an alias, and StuDraKi is right - you also need to send that direction to the MUD or it will remember it, but not actually go there, like this:
<aliases>
<alias
match="^(n|ne|e|se|s|sw|w|nw|up|down)$"
enabled="y"
regexp="y"
send_to="12"
sequence="100"
>
<send>
SetVariable ("last_direction", "%1")
Send ("%1")
</send>
</alias>
</aliases>
That small piece of script in the alias remembers the direction in the variable "last_direction" and also goes there.
Now in the trigger you could open the door *and* try to go through it:
<triggers>
<trigger
enabled="y"
expand_variables="y"
match="The door is closed."
send_to="8"
sequence="100"
>
<send>open @last_direction
@last_direction
</send>
</trigger>
</triggers>
This idea won't work however if you use speedwalks, as the alias is matching a single direction, not what a speedwalk evaluates to. It can be done, but we would need to make a plugin and detect what is actually being sent to the MUD. The simple approach above will work if you don't use speedwalks much.
Another problem with speedwalks would probably be that it might have sent all the directions before the "door is closed" message arrives. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Kenneth
(18 posts) Bio
|
Date
| Reply #5 on Fri 14 Mar 2008 03:45 PM (UTC) |
Message
| Ok, i'll give all this a shot. Thanks, i'll keep you all informed. | Top |
|
Posted by
| Kenneth
(18 posts) Bio
|
Date
| Reply #6 on Fri 14 Mar 2008 04:09 PM (UTC) |
Message
| I'm sorry, but I can't figure out what to do with all that stuff. I hate to ask, but... could you give me step-by-step instructions on what to do to get this to work? Sorry, I'm such a noob.. | Top |
|
Posted by
| Nick Gammon
Australia (23,057 posts) Bio
Forum Administrator |
Date
| Reply #7 on Fri 14 Mar 2008 08:14 PM (UTC) |
Message
| We have suggested one alias and one trigger. You need to copy them individually into the client. See http://www.mushclient.com/pasting for how to do this. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Kenneth
(18 posts) Bio
|
Date
| Reply #8 on Sat 15 Mar 2008 03:36 PM (UTC) |
Message
| Yes, it worked! Thank you all, so much! | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
24,979 views.
It is now over 60 days since the last post. This thread is closed.
Refresh page
top