To help make sense of what i'm casting. My wizard, upon targetting a brownie guard will stand, cast root, cast snare, cast sunstrike twice, cast one or two draughts of fire, then go loot and return back to med spot. If i target one of the regular brownies, i simply cast one draught of fire, then loot.
I plan to add code to automatically recast my familier when it fails. I'm going to have it check for the buff rather than the event, "Your familiar departs.".
Code: Select all
Sub Main
/declare brownie global
:reaquire
/varset brownie 0
/if $gm==TRUE /call getout
/target "a brownie guard"
/if "$target(name,clean)"=="a brownie guard" /call killguards
/delay 300
/target "a brownie"
/if "$target(name,clean)"=="a brownie" /call otherbrownies
/if $target()==FALSE /goto :reaquire
Sub killguards
/stand
:root
/cast 4
/delay 5
/if $char(casting)==FALSE /goto :root
/delay 55
:snare
/cast 5
/delay 5
/if $char(casting)==FALSE /goto :snare
/delay 55
:firstsun
/cast 1
/delay 5
/if $char(casting)==FALSE /goto :firstsun
/delay 105
:rootagain
/cast 4
/delay 5
/if $char(casting)==FALSE /goto :rootagain
/delay 55
:secondsun
/cast 1
/delay 5
/if $char(casting)==FALSE /goto :secondsun
/delay 105
:firstdraught
/cast 2
/delay 5
/if $char(casting)==FALSE /goto :firstdraught
/delay 65
/if "$target(name,clean)"!="a brownie guard" /call moveandloot
/if "$target(name,clean)"=="a brownie guard" /goto seconddraught
/return
:seconddraught
/cast 2
/delay 5
/if $char(casting)==FALSE /goto :seconddraught
/delay 65
/call moveandloot
/return
Sub moveandloot
/target corpse brownie
:move2corpse
/face
/if n $target(distance)>8 {
/sendkey down up
}
/if n $target(distance)<=8 {
/sendkey up up
}
/if n $target(distance)<=8 {
/goto :breakandloot
}
/goto :move2corpse
:breakandloot
/loot
/delay 2s
/click left corpse 0
/delay 1s
/if "$cursor(name)"=="Brownie Parts" /click left auto
/if "$cursor(name)"=="Morning Dew" /click left auto
/delay 1s
/click left destroy
/click left corpse 1
/delay 2s
/if "$cursor(name)"=="Brownie Parts" /click left auto
/if "$cursor(name)"=="Morning Dew" /click left auto
/delay 1s
/click left destroy
/click left corpse 2
/delay 2s
/if "$cursor(name)"=="Brownie Parts" /click left auto
/if "$cursor(name)"=="Morning Dew" /click left auto
/delay 1s
/click left destroy
/click left corpse 3
/delay 2s
/if "$cursor(name)"=="Brownie Parts" /click left auto
/if "$cursor(name)"=="Morning Dew" /click left auto
/delay 1s
/click left destroy
/click left corpse 4
/delay 2s
/if "$cursor(name)"=="Brownie Parts" /click left auto
/if "$cursor(name)"=="Morning Dew" /click left auto
/delay 1s
/click left destroy
/click left corpse 5
/delay 2s
/if "$cursor(name)"=="Brownie Parts" /click left auto
/if "$cursor(name)"=="Morning Dew" /click left auto
/delay 1s
/click left destroy
/click left corpse done
/if n @brownie==1 /return
/call goback
/return
Sub goback
:back
/face loc 1768,3289
/if n $distance(1768,3289)>5 {
/sendkey down up
}
/if n $distance(1768,3289)<=5 {
/sendkey up up
}
/if n $distance(1768,3289)<=5 {
/goto :breakout2
}
/delay 3
/goto :back
:breakout2
/face loc 1768,3236
/sit
/return
Sub Familiar
:familiar
/cast 7
/delay 5
/if $char(casting)==FALSE /goto :familiar
/delay 210
/return
Sub otherbrownies
/varset brownie 1
:back2
/stand
/face loc 1782,3174
/if n $distance(1782,3174)>8 {
/sendkey down up
}
/if n $distance(1782,3174)<=8 {
/sendkey up up
}
/if n $distance(1782,3174)<=8 {
/goto :breakout3
}
/delay 3
/goto :back2
:breakout3
:redo
/cast 2
/delay 5
/if $char(casting)==FALSE /goto :redo
/delay 65
/if "$target(name,clean)"!="a brownie" /call moveandloot
/delay 50
/target "a brownie"
:redo2
/cast 2
/delay 5
/if $char(casting)==FALSE /goto :redo2
/delay 65
/if "$target(name,clean)"!="a brownie" /call moveandloot
/delay 50
/target "a brownie"
:redo3
/cast 2
/delay 5
/if $char(casting)==FALSE /goto :redo3
/delay 65
/if "$target(name,clean)"!="a brownie" /call moveandloot
/call goback
/return
Sub getout
/guildsay Gotta go guys.
/guildsay Need to get errands done before wife gets home...hehe
/camp desktop
/endmacro
