|
Asilient_1 Apprentice
Joined: 26 Apr 2007 Posts: 113
|
Posted: Fri Nov 30, 2007 5:29 am
[2.13] Similar triggers being an annoyance. |
Code: |
<trigger priority="40" newline="false" prompt="true" id="391">
<pattern>^H:%d M:%d E:%d ~<(%x) (%w)~>$</pattern>
<value>#SWITCH (%1="eb") {#VARIABLE equilibrium 0;#VARIABLE balance 0} (%1="-b") {#VARIABLE equilibrium 1;#VARIABLE balance 0} (%1="e-") {#VARIABLE equilibrium 0;#VARIABLE balance 1} (%1="--") {#VARIABLE equilibrium 1;#VARIABLE balance 1}
#IF (%pos(b,%2)) {#VARIABLE blind 1} {#VARIABLE blind 0}
#IF (%pos(d,%2)) {#VARIABLE deaf 1} {#VARIABLE deaf 0}
#IF (%pos(p,%2)) {#VARIABLE prone 1;#SAYP ~<~~>} {#VARIABLE prone 0}
#SAY fired</value>
</trigger>
|
Code: |
trigger priority="80" newline="false" prompt="true" id="8">
<pattern>^H:(%d) M:(%d) E:%d ~<*~> $</pattern>
<value>#SAYP %ansi(8)~<%ansi(green)%time(hh:mm:ss:zz)%ansi(8)~>
#VARIABLE curhealth %1
#VARIABLE curmana %2
sipping
</value>
</trigger> |
The first trigger -never- fires against..
Code: |
H:202 M:216 E:910 <eb d> |
However, the second always does. As you can (probably) see, I've tried playing with priorities a little, but have little idea what's causing one to fire and the other not, when both should be firing at the same time. (right?)
I've tested the pattern against the test trigger tab with a perfect match. So that leaves me to believe that having two prompt triggers for the same/similar patterns makes Cmud ignore one. I've tested with another trigger:
Code: |
<trigger priority="4070" id="407">
<pattern>^You have recovered balance.$</pattern>
<value>#IF (@prone=1 AND @aeon=0) {#SEND {stand}}
</value>
</trigger> |
Code: |
<trigger priority="3100" id="310">
<pattern>^You have recovered balance.$</pattern>
<value>#CO 6
#SWITCH (@ratskilled < 3 AND @ratting="on") {attackrat} (@ratskilled=3) {#REPEAT @ratskilled {get rat};#VARIABLE ratskilled 0}</value>
</trigger> |
Those two triggers work fine. It colors/tries to stand if I'm registered as "prone" on the same line. I am inclined to believe this is a problem with prompt triggers. Anyone else seen anything similar? |
|
|
|
Zhiroc Adept
Joined: 04 Feb 2005 Posts: 246
|
Posted: Fri Nov 30, 2007 7:04 am |
There's a difference between the two patterns:
Code: |
<pattern>^H:%d M:%d E:%d ~<(%x) (%w)~>$</pattern> |
Code: |
<pattern>^H:(%d) M:(%d) E:%d ~<*~> $</pattern> |
Note that in the first, the pattern ends with "~>$" and in the second with "~> $". There's a space between the ">" and the "$". So that means the two can never fire on the same line. Either there is a space there, or not. |
|
|
|
Larkin Wizard
Joined: 25 Mar 2003 Posts: 1113 Location: USA
|
Posted: Fri Nov 30, 2007 1:41 pm |
When you make the trigger fire on prompt and not newline, you don't want to use the $ to anchor the pattern. There isn't a newline until more text comes in, so the $ doesn't make sense (in my experience, at least). Try removing that (and any trailing spaces), and see if you get it to fire then.
|
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Fri Nov 30, 2007 7:03 pm |
I pondered that myself, but $ doesn't just match a newline, it matches the end of the string, and since when the line is processed for triggers, it ends at the end of the prompt, the $ character should still match.
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Nov 30, 2007 7:09 pm |
Fang is correct. $ matches the "end of string" normally. It only matches a newline if there is text following the $ in your pattern.
But certainly the issue of whether there should be a space *before* the $ is the problem with the original post. |
|
|
|
Asilient_1 Apprentice
Joined: 26 Apr 2007 Posts: 113
|
Posted: Fri Nov 30, 2007 8:28 pm |
Uh. I didn't notice the rogue space. I could've sworn I made both triggers virtually the same. I'll check the spacing problem when I get chance to.
|
|
|
|
|
|