Jar of Clockwork Grease

Got a cool macro idea? Wanna request a macro? Here is the place for you!

Moderator: MacroQuest Developers

Chummer
orc pawn
orc pawn
Posts: 24
Joined: Fri Mar 12, 2004 1:58 am

Jar of Clockwork Grease

Post by Chummer » Fri Mar 12, 2004 2:12 am

I am still learning the various macros and commands available but the macro I would like to make is a little more complicated than I know how to make.

I am trying to get my Tinkering skill up by making planar bow cams as they are cheap and relatively easy to get the components to make. One ingrediant, Jar of Clockwork Grease, is somewhat of a pain to make. I would like to see if a macro could be made that can do this for me for my sanity's sake.


Here are some of the things it entails to make a Jar of Clockwork Grease:

1) Make a small jar (container) using pottery skill. This will utilize two environmental combines. The pottery wheel to make the unfired jar and the kiln to fire it to its final product.

2) Placing Clockwork Grease into the jar and combining to make the Jar of Clockwork Grease.


I have looked at some of the existing macros available and i could only find ones that used one combining container. Is there some way to incorporate different combines using different containers for a final product? Has anything like this been done and I just cant find it? Please if you have anything similar to this type of macro, please let me know.

Smash
decaying skeleton
decaying skeleton
Posts: 4
Joined: Sun Oct 19, 2003 4:56 pm

Post by Smash » Fri Mar 12, 2004 2:22 pm

I made a macro to do this a while back when I was skilling up on the planar bow cams as well. But since the addition of the new tradeskill window, my macro will no longer work.

When I get the time later this weekend, I'll try to go back through the macro and get it fixed and posted.

The only thing that this macro will do, is fire the small jar, and combine the grease in it. You'll have to make the unfired jars first at the wheel with another combine macro, then run this to finish the combine.

Chummer
orc pawn
orc pawn
Posts: 24
Joined: Fri Mar 12, 2004 1:58 am

Post by Chummer » Sat Mar 13, 2004 11:38 pm

Smash,

Can you please post the code for your existing macro? I am having some troubles getting that section of my code complete and i would like to see how you implemented it if its not too much trouble.

Thanks

Smash
decaying skeleton
decaying skeleton
Posts: 4
Joined: Sun Oct 19, 2003 4:56 pm

Post by Smash » Sun Mar 14, 2004 3:14 pm

Here's the macro that I used a while ago to combine the grease. It'll fire the jar, open it, combine the grease, and repeat. I'm still pretty busy this weekend, and so I haven't had a chance to update the macro to include the new tradeskill window or fix a few of the random bugs in it.

You might need to run 1 combine by hand to get a jar of clockwork grease made, then place it in your last bag (after the empty spot for for the small jar), that way the macro wont pick up the finished product and try to combine it in the jar.

Code: Select all

| Grease.mac  By Smash
|
| Before starting this macro, be sure to have your 6th inventory slot open (0-7 bags),
| have the kiln open, and have completed all the unfired small jar combines at the wheel.
| This macro will then fire the jars, drop them into your open inventory slot, open it, 
| and then combine 2 clockwork grease in it.
|
| *************NOT UPDATED FOR NEW TRADESKILL WINDOW*****************
| *************NOT UPDATED FOR NEW TRADESKILL WINDOW*****************
|
| Todo: add in a ctrl + click on the jar to bypass tradeskill window, OR rewrite
|	using the the tradeskill window.

#event Out "Couldn't find a"
#event empty "Your hands must be empty to find an item."
#event NoRoom "There was no place to put that! The item has dropped to the ground!"


#turbo

Sub Main
	
/declare bagCount global

	/call SubMain
/return

Sub SubMain
	:MainLoop
	/doevents
	
	/if n "$count("small clay jar")"=="1" /call MakeGrease
	/delay 2
	/if n "$count("small clay jar")"=="0" /call MakeJar
	/delay 2
	/goto :MainLoop

/return
 
Sub MakeJar

/if "$item(inv,6,name)"=="Unfired Small Container" {
	/click left inv 6
	/delay 2
	/click left pack 7 7
	}

	/sendkey down ctrl
	:FindJar
	/doevents
	/finditem "unfired small container"
	/if "$cursor(name)"=="unfired small container" {
		/click left enviro 0
		} else {
		/goto :FindJar
		}
	/delay 2
	
	:Findsheet
	/doevents
	/finditem "quality firing sheet"
	/if "$cursor(name)"=="quality firing sheet" {
		/click left enviro 1
		} else {
		/goto :Findsheet
		}
	/delay 8
	/click left enviro combine
	/delay 5
	/autoinv
/sendkey up ctrl
/return

Sub MakeGrease
	
	/delay 8
	/click right inv 6
	/delay 5
	/sendkey down ctrl
	:FindGrease1
	/doevents
	/finditem "Clockwork grease"
	/if "$cursor(name)"=="Clockwork Grease" {
		
		/click left pack 6 0
		} else {
		/goto :FindGrease1
		}
	/delay 2

	:FindGrease2
	/doevents
	/finditem "Clockwork grease"
	/if "$cursor(name)"=="Clockwork Grease" {
		
		/click left pack 6 1
		} else {
		/goto :FindGrease2
		}
	/delay 5
	/sendkey up ctrl
	/click left pack 6 combine
	/delay 5
	/autoinv

/return	

Sub Event_Out
	/echo Out of components, ending.
	/sendkey up ctrl
	/endmacro
/return

Sub Event_empty
	/doevents
	/autoinv
	/delay 3
	/if $invpanel==FALSE /press i
	/echo starting bag cleanup
	/for bagCount 0 to 9
		/click left enviro @bagCount
		/autoinv
	/next bagCount
	/delay 2
/call SubMain
/return

Sub Event_NoRoom
	/echo Out of Room, ending.
	/endmacro
/return

Chummer
orc pawn
orc pawn
Posts: 24
Joined: Fri Mar 12, 2004 1:58 am

Post by Chummer » Tue Mar 16, 2004 3:30 am

I just posted my final code. Take a look at it and try it. Let me know what you think.

Brethin
decaying skeleton
decaying skeleton
Posts: 9
Joined: Wed Feb 18, 2004 2:48 pm

Post by Brethin » Thu Aug 26, 2004 3:51 pm

Need an update please.

Chill
Contributing Member
Contributing Member
Posts: 435
Joined: Fri May 07, 2004 5:06 pm
Location: Erie, PA

Post by Chill » Thu Aug 26, 2004 5:04 pm

Here is a start on the events and the Main. do some searches, figure out how to use ${FindItemCount} and ${FindItem[]} with some /notify commands and you should be able to get this. There are lots of examples to pull code from.

If you use FindItem, you can make this more robust so it works with stuff in any slot, just prolly need to have a finished product or two in pacs so it doesnt take up the jar slot.

Good luck on this, it should be a good learning project.

Code: Select all

| Grease.mac  By Smash 
| 
| Before starting this macro, be sure to have your 6th inventory slot open (0-7 bags), 
| have the kiln open, and have completed all the unfired small jar combines at the wheel. 
| This macro will then fire the jars, drop them into your open inventory slot, open it, 
| and then combine 2 clockwork grease in it. 
| 
| *************NOT UPDATED FOR NEW TRADESKILL WINDOW***************** 
| *************NOT UPDATED FOR NEW TRADESKILL WINDOW***************** 
| 
| Todo: add in a ctrl + click on the jar to bypass tradeskill window, OR rewrite 
|   using the the tradeskill window. 

#event Out "#*#Couldn't find a #*#" 
#event empty "#*#Your hands must be empty to find an item.#*#" 
#event NoRoom "#*#There was no place to put that! The item has dropped to the ground!#*#" 


#turbo 

Sub Main 
    
/declare bagCount global 

:MainLoop 
   /doevents 
   /if (${FindItemCount[small clay jar]} > 0) /call MakeGrease else /call MakeJar 
   /delay 1
/goto :MainLoop 

/return 
  
Sub MakeJar 

/if "$item(inv,6,name)"=="Unfired Small Container" { 
   /click left inv 6 
   /delay 2 
   /click left pack 7 7 
   } 

   /sendkey down ctrl 
   :FindJar 
   /doevents 
   /finditem "unfired small container" 
   /if "$cursor(name)"=="unfired small container" { 
      /click left enviro 0 
      } else { 
      /goto :FindJar 
      } 
   /delay 2 
    
   :Findsheet 
   /doevents 
   /finditem "quality firing sheet" 
   /if "$cursor(name)"=="quality firing sheet" { 
      /click left enviro 1 
      } else { 
      /goto :Findsheet 
      } 
   /delay 8 
   /click left enviro combine 
   /delay 5 
   /autoinv 
/sendkey up ctrl 
/return 

Sub MakeGrease 
    
   /delay 8 
   /click right inv 6 
   /delay 5 
   /sendkey down ctrl 
   :FindGrease1 
   /doevents 
   /finditem "Clockwork grease" 
   /if "$cursor(name)"=="Clockwork Grease" { 
       
      /click left pack 6 0 
      } else { 
      /goto :FindGrease1 
      } 
   /delay 2 

   :FindGrease2 
   /doevents 
   /finditem "Clockwork grease" 
   /if "$cursor(name)"=="Clockwork Grease" { 
       
      /click left pack 6 1 
      } else { 
      /goto :FindGrease2 
      } 
   /delay 5 
   /sendkey up ctrl 
   /click left pack 6 combine 
   /delay 5 
   /autoinv 

/return    

Sub Event_Out 
   /echo Out of components, ending. 
   /endmacro 
/return 

Sub Event_empty 
   /doevents 
   /autoinv 
   /delay 3 
   /if $invpanel==FALSE /press i 
   /echo starting bag cleanup 
   /for bagCount 0 to 9 
      /click left enviro @bagCount 
      /autoinv 
   /next bagCount 
   /delay 2 
/call SubMain 
/return 

Sub Event_NoRoom 
   /echo Out of Room, ending. 
   /endmacro 
/return 

sloth
orc pawn
orc pawn
Posts: 13
Joined: Wed Mar 02, 2005 10:14 pm

Post by sloth » Wed Mar 02, 2005 10:18 pm

ok i spent a few hours trying to make this work with the new tradeskill windows and i just can't seem to figure it out. is there anyone that can help by changeing it? Or else link me to which macros i can pull the info i need to make this work. TIA