Quote:
Currently, when a trigger is matched, related script/etc is executed, then the flag to "keep evaluating" triggers is check, and if enabled, the trigger matching process continues. If not, 'attention' is turned to the next received line.
Now personally, among my 171 triggers, I have maybe just one or two that have "keep evaluating" checked. I don't want the entire trigger list processed every time a line from the mud comes in. I have to expect that would only slow down my client!
I never said I was changing the behaviour of "keep evaluating" - I think you both read something into that, that isn't there. :)
With the change, now in 3.18, your existing triggers will work exactly the same. In the same time. :)
What it *will* do is allow, if you choose to do it, something like this to set two variables:
Trigger 1
Trigger: * leaves *
Send: %1
Send to: Variable (label is name)
Keep evaluating: checked
Label: target
Trigger 2
Trigger: * leaves *
Send: %2
Send to: Variable (label is name)
Keep evaluating: checked
Label: destination
Currently MUSHclient will object you are adding two identical triggers. The above technique lets you set multiple variables without scripting. You might have a third trigger that follows the person going east/west, or whatever.
You can presently do the same thing with scripts, but some players are averse to using them, so I wanted to have a simple alternative.
Quote:
Now personally, among my 171 triggers, I have maybe just one or two that have "keep evaluating" checked. I don't want the entire trigger list processed every time a line from the mud comes in. I have to expect that would only slow down my client!
It won't unless you choose to check "keep evaluating" for your existing triggers.
As for timing issues, I am very aware of the need for things to run quickly, and - as you know - I advertise MUSHclient as the fastest client available (for Windows). I recently rebenchmarked against a couple of other well-known clients and it still comes out ahead, on various tests, including scripting and trigger matching.
Looking at my newer benchmarks page, you can see that on the test file of 5,378 lines, attempting to match 10 triggers per line (which don't match) it is evaluating 53,780 triggers in 0.6 seconds, which is roughly 89,633 triggers per second. Therefore your 171 triggers will be evaluated (if they all were tested) in 1/524 of a second, which isn't too bad. As it is, since on average it might test half of them, trigger evaluation would be taking about a thousandth of a second, per line.
You can confirm these figures by opening the Info window (Shift+Ctrl+I) and looking at total trigger evaluation time. |