|
mlparkerjr Newbie
Joined: 04 Oct 2018 Posts: 8 Location: PA
|
Posted: Sat Oct 06, 2018 5:55 am
Prompt Error fails to compile |
I'm trying to use a trigger with a pattern to catch the prompt information and use the HP variable for when it drops below a certain number it will cast a spell or use a potion but nothing seems to be working. However the variable is capturing the correct number. This was working with 1 variable in the Module > Preferences > Sessions > Prompt
Mud Prompt
{100 HP 100 IP}
where first number is current HP and second is current influence/mana
Can't seem to figure out how to set 2 variables in the above Prompt wizard so....
Trying to utilize a trigger on prompt with pattern: ~{&hp HP &ip IP} text: {&hp HP &ip IP}
Script value
#IF (@hp < 200) {#wa 3000;c band}
when I refresh MUD prompt I get ERROR: Trigger "~&hp HP &ip IP}" fired but did not compile
It captures the correct HP and IP values but will not execute the IF statement. |
|
|
|
mlparkerjr Newbie
Joined: 04 Oct 2018 Posts: 8 Location: PA
|
Posted: Sat Oct 06, 2018 6:05 am |
I know it's late/early and it's been awhile since I've done any coding but I believe I fixed my issue.
old script value
#IF (@hp < 200) {#wa 3000;c band}
New
#IF (@hp < 200) {#wa 3000;c band} {}
Helps if I would've finished the statement. |
|
|
|
mlparkerjr Newbie
Joined: 04 Oct 2018 Posts: 8 Location: PA
|
Posted: Sat Oct 06, 2018 6:48 am Issue with the firing IF statement |
MUD Text
{196 HP 54 IP}: use blood
Your wounds begin to close.
You heal 99 hit points.
You drank some of the blood potion.
{273 HP 54 IP}: use blood
Please wait 3 more seconds.
with a quick test with #IF (@hp < 200) {#wa 3000;use blood} {}
even though I have trigger set to 'on prompt' it's still throwing another use blood again even though the value of @hp has been updated to provide the IF with a false. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4693 Location: Pensacola, FL, USA
|
Posted: Sat Oct 06, 2018 11:07 am |
Alright, to you have a trigger to actually capture and store the value of your HP?
Also, if you have a 3 second delay, you could be healing yourself from the previous prompt instead of the current one.
Do the #WAIT first, and then do the #IF check at the end to see if it is still needed. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
mlparkerjr Newbie
Joined: 04 Oct 2018 Posts: 8 Location: PA
|
Posted: Sat Oct 06, 2018 2:40 pm |
Yea the trigger I have captures the correct value when the prompt is refreshed. Which is why I don't understand it would throw another true value out immediately following the refresh. so now I have
pattern: ~{&hp HP &ip IP} 'trigger on prompt'
value: #wa 3000; #IF (@hp < 100) {use blood} {}
see if this works |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4693 Location: Pensacola, FL, USA
|
Posted: Sat Oct 06, 2018 4:24 pm |
How often do you receive the prompt?
I still think the #WAIT is the issue, especially if you get two prompts, heal yourself, then don't get another prompt before the second #WAIT ends, thus not having an updated @hp value.
You want to either not worry about being told its too soon to use it again (you can #GAG the message with a separate #TRIGGER).
Issue a command to update the variable values.
Use names #ALARMs instead of #WAIT to make sure there is only ever one instance on the stack.
Or you want to have a separate tracker to turn of that power for those three seconds.
For that your current trigger would only do:
#IF (@hp < 100) {#IF (@blood=0) {use blood}}
Then you can make a separate trigger:
#TRIGGER {Message when you use blood} {blood=1;#ALARM "nextBlood" +3 {blood=0}} |
|
_________________ Discord: Shalimarwildcat |
|
|
|
|
|