Advanced Speedwalking

Posted by Vaejor on Sun 18 Aug 2002 01:38 PM — 2 posts, 14,818 views.

#0
I've been thinking for a while about making a parser to interpret specially formatted strings added into speedwalks to perform some more automated activity, primarily for use in advanced speedwalking.

Here's some concepts of what I'm thinking of:

2n3es[trigw: *lands safely*](out)4es


The entire thing would be sent through a plugin that would parse the entire line. It would send initial speedwalk normally via "world.Send world.EvaluateSpeedwalk()." Once it found a [] pair, it would stop to parse it, and what happens next depends on the data inside.

In this case, the "trigw" would force a trigger(trig) to be created to match the requested line, it would also wait(w) for the trigger to be matched before continuing the speedwalk.

Here's a few other things for complex matching:

[trigs: *something* script]             - Create the trigger to match on *something*, call function "script" when
    it is matched.

[trigsp: *something* PluginName script] - Create the trigger to match on *something*, call the function "script" in the
    plugin named "PluginName" when it is matched.

[trigv: *something* variable]           - Create the trigger to match on *something*.  If possible, parse whatever is
    stored in variable through world.EvaluateSpeedwalk and send.  If world.EvaluateSpeedwalk fails, send data as stored
    in the variable.

[trigw: *something*]                    - Create the trigger and wait for it to match before continuing further with the
    remaining speedwalk request.

[timerw: 3]                             - Create a 3 second pause inside the speedwalk.  After the pause, continue with
    the remaining speedwalk request.

[timers: 3 script]                      - Create a 3 second pause inside the speedwalk.  After the pause, call the
    function "script".

[timersp: 3 PluginName script]          - Create a 3 second pause before calling the function "script" inside of the
    plugin named "PluginName"

[var: kill_name human]                  - Set the world variable "kill_name" to value of "human".

[varp: PluginName kill_name human]      - Set the "kill_name" variable in the plugin that has a name of "PluginName" to the
    value of "human".

[vard: kill_name]                       - Delete the variable named "kill_name"

[vardp: PluginName kill_name]           - Delete the variable named "kill_name" in the plugin named "PluginName"


This is all I can think of at the moment. Comments requested and any positive or negative feedback welcomed. This is still just a concept, but I'd like to see if anyone else would find this sort of thing useful to add to the functionality of speedwalks.
Amended on Sun 18 Aug 2002 01:39 PM by Vaejor
Australia Forum Administrator #1
Sounds interesting. Nice idea for a plugin. See the release notes for 3.26 for some changes to speedwalks (by coincidence).