  | 
	
	
	
		atlasmud.com Newbie
 
  Joined: 08 Nov 2005 Posts: 7 Location: missouri
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 1:20 pm   
  trigger help   | 
			 
			
				i have been trying to get a trigger, and for some reason i am stumped. 
 
i know it should be simple to make work. 
 
 
what i am wanting to do is to automatically depsoit my gold to my home bank when the ammount excedes a set  amt of gold. lets say for now the ammount is 100,000.
 
 
here is the mud output as you pick up each pile of gold. 
 
 
You now have 7,582 gold pieces.
 
 
i have been trying to accomplish the task like this: 
 
pattern 
 
You now have (%d) gold pieces.
 
value
 
if (%d) >100000 
 
home deposit (%d) 
 
 
please excuse my newbieness in advance :) 
 
 
*takes note of the mass laughter in the background* | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		malathion Beginner
 
  Joined: 23 Jul 2004 Posts: 20
 
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 3:08 pm      | 
			 
			
				oops
  | 
			 
		  | 
	
	
	  
		  
		    
			  
  Last edited by malathion on Sat Dec 31, 2005 3:14 pm; edited 1 time in total | 
			       | 
			 
		   
		 | 
	
	
		  | 
	
	
		Kiasyn Apprentice
  
  Joined: 05 Dec 2004 Posts: 196 Location: New Zealand
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 3:11 pm      | 
			 
			
				#TRIGGER {You now have (*) gold pieces.} {#IF (%eval(%replace(%1,",",""))>100000) {home deposit %replace(%1,",","")}}
  | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		malathion Beginner
 
  Joined: 23 Jul 2004 Posts: 20
 
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 3:13 pm      | 
			 
			
				double posted
  | 
			 
		  | 
	
	
	  
		  
		    
			  
  Last edited by malathion on Sat Dec 31, 2005 3:13 pm; edited 1 time in total | 
			       | 
			 
		   
		 | 
	
	
		  | 
	
	
		malathion Beginner
 
  Joined: 23 Jul 2004 Posts: 20
 
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 3:13 pm      | 
			 
			
				You're right. It looks like a variable with a , in it would be evaluated as a character string, so the evaluation goes to the one with more characters in it.
  | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		atlasmud.com Newbie
 
  Joined: 08 Nov 2005 Posts: 7 Location: missouri
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 3:21 pm      | 
			 
			
				excellent , thanks bunches.
  | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		atlasmud.com Newbie
 
  Joined: 08 Nov 2005 Posts: 7 Location: missouri
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 3:54 pm      | 
			 
			
				hrmm cant get  it to work, it only wants to deposit the first 3 digits
  | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		nexela Wizard
  
  Joined: 15 Jan 2002 Posts: 1644 Location: USA
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 4:36 pm      | 
			 
			
				#HELP Pattern Matching
 
#HELP #IF
 
 
pattern:
 
You now have (%n) gold pieces.
 
value:
 
#IF (%1 >100000) {home deposit %1} | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		atlasmud.com Newbie
 
  Joined: 08 Nov 2005 Posts: 7 Location: missouri
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 5:17 pm      | 
			 
			
				i need to look further into more variables , the comma in 122,456 is throwing stuff  off
 
 
You now have 328,116 gold pieces.
 
home deposit 328
 
 
is best i can get so far. | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		atlasmud.com Newbie
 
  Joined: 08 Nov 2005 Posts: 7 Location: missouri
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 5:59 pm      | 
			 
			
				#IF (%eval( %replace( %1, ",", ""))>100) {home deposit 100000)}    
 
 
You now have 330,527 gold pieces.
 
home deposit 100000
 
 
since i could not get it to recognise the comma i set the >to 100 and only deposit a set ammount , and it doesnt try to deposit when balance is below 100k now  so all is well . i doubt if the (%eval stuff is needed in there this way but im leaving it alone since it works :P. 
 
 
thanks for the help all | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		nexela Wizard
  
  Joined: 15 Jan 2002 Posts: 1644 Location: USA
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 6:32 pm      | 
			 
			
				Hello Am I chopped liver here?
 
 
%n matches +,-, and commas and then strips the commas
 
 
I tested it, I know it works, and its why there is a %n in the first place. | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		atlasmud.com Newbie
 
  Joined: 08 Nov 2005 Posts: 7 Location: missouri
  | 
		
		  
			
			   Posted: Sat Dec 31, 2005 6:34 pm      | 
			 
			
				it didnt work on mine , have no clue why
 
 
although ill try it again ,   to make sure i didnt mess something up when i entered it
 
 
You get 100 gold coins.
 
You now have 499,800 gold pieces.
 
home deposit 499800
 
(9857h 9906m)You deposit 499,800 gold to home bank.
 
(9857h 9906m)*** DUEL *** Nicon taunts, "mirei your still mounted"
 
(9857h 9906m)*set c lucifer gold 100000
 
Lucifer has 100000 gold.
 
(9857h 9906m)get go 
 
You get 100 gold coins.
 
You now have 100,100 gold pieces.
 
home deposit 100100
 
 
evidently it did work ,  i just didnt notice it, on my mortal character with all the lines whizzing by.     thanks | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		gamma_ray Magician
 
  Joined: 17 Apr 2005 Posts: 496
 
  | 
		
		  
			
			   Posted: Sun Jan 01, 2006 9:20 pm      | 
			 
			
				
 
	  | Quote: | 
	 
	
	  | %n		match a number that starts with a + or - sign | 
	 
 
 
 
From Pattern Matching.
 
 
You guys just need to put quotes around the %1 when you use it in a function, then it works like a charm... bloody commas.
 
 
Edit: Here's how I would do it.
 
 
 
	  | Code: | 
	 
	
	  
 
#REGEX {^You now have ([0-9,]+) gold pieces\.$} {
 
  goldpieces = %subregex( "%1", ",", "")
 
  #if (@goldpieces >= 100000) {home deposit @goldpieces}
 
  }
 
 | 
	 
 
 
 
Which uses an extra variable, which is theoretically a little bit faster (fewer runs through the substitution) and can be used elsewhere. | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		malathion Beginner
 
  Joined: 23 Jul 2004 Posts: 20
 
  | 
		
		  
			
			   Posted: Mon Jan 02, 2006 12:55 am      | 
			 
			
				Nexla it does not strip the commas. It just evaluates based on which string has more characters in it, which is probably why it seemed to work in your test case, but it actually didn't.
  | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		nexela Wizard
  
  Joined: 15 Jan 2002 Posts: 1644 Location: USA
  | 
		
		  
			
			   Posted: Mon Jan 02, 2006 1:41 am      | 
			 
			
				#TRIGGER {TEST: (%n)} {#ECHO %1;#IF (%1>10000) {#SAY Greater then 10k} {#SAY Less then 10k}}
 
 
#SHOW TEST: 1,000
 
1000
 
Less then 10k
 
 
#SHOW TEST: 10,000
 
10000
 
Less then 10k //because 10k isnt more then 10k :P
 
 
#SHOW TEST: 10,001
 
10001
 
More then 10k
 
 
#SHOW TEST: 123,456,789
 
123456789
 
More then 10k
 
 
#SHOW TEST: 500
 
500
 
Less then 10k
 
 
#SHOW TEST: -500
 
-500
 
Less then 10k
 
 
#SHOW TEST: -500,000
 
-500000
 
Less then 10k
 
 
#SHOW TEST: +500,000
 
+500,000
 
more then 10k | 
			 
		  | 
	
	
	  | 
		  
		 | 
	
	
		  | 
	
	
		| 
		
		 | 
	
	
		 |