This version of cheese.mac (an updated one from the release 20020615 with some ideas pulled from the events in 20020619) is the one that I use and seems to work perfectly. Changes since 20020615:
- Option to have macro log you off after a certain amount of time
Sets an AFK message so people think you are busy
Optional version without delays (change the line that says /call makecheese to /call makecheese2 It is slower but works no matter how much lag or how slow your computer is.)
Removal of skill messages
Checks if merchant slate is open
Checks if merchant slate is closed
where time is the amount of hundreths of a second till you want the macro to log you off eq ie /macro cheese.mac 36000 will run for 1 hour.
Code: Select all
| - Cheese.mac -
|
| Written by: Plazmic
| Edited by: L124RD
#include routines.mac
#chat say
Sub Main
/afk I am baking, I do not wish to be disturbed
/filter skills none
/stand
/mqlog
/varcalc v50 $char(plat)*10+$char(gold)
/varset t0 3000
/varset t1 $p0
:StartLoop
/call FindCombiner Mixing
/if $return==99 /return
/varset v80 $return
/target Granger
/if "$target()"=="FALSE" /goto :nogranger
/cleanup
:cleanuploop0
/if "$target()"=="TRUE" /goto :cleanuploop0
/click left auto
/click right inv $v80
/varset v39 0
/if "$cursor()"=="TRUE" /click left auto
:cleanpack
/if $pack($v80,empty)==FALSE /call CleanPack
/if n $v39==30 /goto :toofull
/varadd v39 1
/if $pack($v80,empty)==FALSE /goto :cleanpack
/if "$cursor()"=="TRUE" /click left auto
/face loc -100,1167
/sendkey down ctrl
/call MakeCheese2
/sendkey up ctrl
/if "$cursor()"=="TRUE" /click left auto
/call SellBuy
/if $t0==0 /call LogStats
/goto :StartLoop
:TooFull
/echo You are too full on stuff, aborting macro.
/mqlog You are too full on stuff, aborting macro
/call Logoff
/return
Sub CleanPack
/varcalc v2 $pack($v80,slots)-1
/sendkey down shift
/for v1 0 to $v2
/if "$item($v80,$v1)"=="NULL" /goto :skipclean
/click left pack $v80 $v1
:cleanwait0
/if "$cursor()"!="TRUE" /goto :cleanwait0
/click left auto
:cleanwait1
/if "$cursor()"=="TRUE" /goto :cleanwait1
:skipclean
/next v1
/sendkey up shift
/return
Sub MakeCheese
:MakeCheese
/finditem "Rennet"
/click left pack $v80 0
/delay 1
/finditem "Bottle of Milk"
/click left pack $v80 1
/delay 1
/finditem "Bottle of Milk"
/click left pack $v80 2
/delay 1
/finditem "Dairy Spoon"
/click left pack $v80 3
/delay 1
/if n $pack($v80,space)>0 /return
/click left pack $v80 combine
/for v1 1 to 75
/if "$cursor()"=="TRUE" /goto :AutoDropCheese
/delay 1
/next v1
/goto :MakeCheese
:AutoDropCheese
/if "$cursor(name)"=="Dairy Spoon" /goto :AutoDropSpoon
/click left auto
/delay 1
/if "$cursor()"=="TRUE" /goto :AutoDropCheese
:AutoDropSpoon
/click left auto
/if "$cursor()"=="TRUE" /goto :AutoDropSpoon
/goto :MakeCheese
/return
Sub MakeCheese2
:MakeCheese
/finditem "Rennet"
/if $find()==FALSE /return
:rennetwait0
/if "$cursor()"!="TRUE" /goto :rennetwait0
/click left pack $v80 0
:rennetwait1
/if "$cursor()"=="TRUE" /goto :rennetwait1
/finditem "Bottle of Milk"
/if $find()==FALSE /return
:milkwait0
/if "$cursor()"!="TRUE" /goto :milkwait0
/click left pack $v80 1
:milkwait1
/if "$cursor()"=="TRUE" /goto :milkwait1
/finditem "Bottle of Milk"
/if $find()==FALSE /return
:milkwait0
/if "$cursor()"!="TRUE" /goto :milkwait0
/click left pack $v80 2
:milkwait1
/if "$cursor()"=="TRUE" /goto :milkwait1
/finditem "Dairy Spoon"
/if $find()==FALSE /return
:spoonwait0
/if "$cursor()"!="TRUE" /goto :spoonwait0
/click left pack $v80 3
:spoonwait1
/if "$cursor()"=="TRUE" /goto :spoonwait1
/if n $pack($v80,space)>0 /return
/click left pack $v80 combine
:cheesewait
/if "$cursor()"=="TRUE" /goto :AutoDropCheese
/goto :cheesewait
/goto :MakeCheese
:AutoDropCheese
/if "$cursor(name)"=="Dairy Spoon" /goto :AutoDropSpoon
/click left auto
/goto :AutoDropCheese
:AutoDropSpoon
/click left auto
/if "$cursor()"=="TRUE" /goto :AutoDropSpoon
/goto :MakeCheese
/return
Sub SellBuy
| Open merchant
/click left auto
/target Granger
/face
/press u
/varset v55 0
/doevents flush
:sellwait
/doevents
/if n $v55!=1 /goto :sellwait
/sendkey down shift
| Sell our cheese
:SellCheese
/finditem "Mature Cheese"
/if $find()==FALSE /goto :DoneSelling
/call buyitem
/goto :SellCheese
:DoneSelling
/varset v51 0
/finditem "Rennet"
/if $find()==TRUE /varset v51 1
/finditem "Bottle of Milk"
/if $find()==TRUE /if n $v80!=$find(pack) /goto :SkipMilk
| Buy Bottles of Milk
/click left merchant 9
/call buyitem
/call buyitem
/call buyitem
/call buyitem
| If we had Rennet left, buy extra milk
/if n $v51==0 /goto :SkipMilk
/call buyitem
:SkipMilk
| Buy Rennets
/click left merchant 10
/call buyitem
/call buyitem
/sendkey up shift
/cleanup
:cleanuploop1
/if "$target()"=="TRUE" /goto :cleanuploop1
/return
Sub LogStats
| Calc profit in gold
/varcalc v51 $char(plat)*10+$char(gold)-$v50
| calc plat/hr
/varcalc v52 $v51*360/$running
| Plat
/varcalc v53 $v51/10
| left over gold
/varcalc v54 $v51%10
/echo Profit: $v53.$v54pp, avg: $v52pp/hr
/mqlog Run time: $running sec, Profit: $v53.$v54pp, Average = $v52pp/hr
/varset t0 3000
/return
sub LogOff
/sit
/camp
/afk
/endmacro
/return
Sub BuyItem
/varcalc v98 $char(gold)*100+$char(silver)*10+$char(copper)
/click left merchant buy
:WaitBuy
/varcalc v97 $char(gold)*100+$char(silver)*10+$char(copper)
/if n $v98==$v97 /goto :WaitBuy
/return
Sub Event_Chat
/if "$p0"=="say" /if "$p1"~~"Granger" /varset v55 1
/return


