  | 
	
	
	
		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: 4774 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: 4774 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 | 
			       | 
			 
		   
		 | 
	
	
		  | 
	
	
		| 
		
		 | 
	
	
		 |