Hunter macro for wizards

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

Xecros
a lesser mummy
a lesser mummy
Posts: 54
Joined: Tue Apr 22, 2003 9:24 am

Hunter macro for wizards

Post by Xecros » Fri Nov 14, 2003 9:29 am

This macro is a bit specialized for the brownies in lfay. Park yourself on top of the hill facing the brownie hut entrance. Break the brownie guard spawns then start this macro. It's a work in progress, but it's mostly finished. Feel free to critisize....I'm not too familier with the MQ language and did the best i could with what i could understand.

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

Drunkensloth
a lesser mummy
a lesser mummy
Posts: 67
Joined: Sat Oct 18, 2003 2:54 am

umm

Post by Drunkensloth » Tue Nov 18, 2003 7:17 am

this is a pretty long winded way of doing this... but i dont have time to mess around with it...
if you could make a wizard farming macro... that uses root nuke rather than melee and such... that would be outstanding~

but alas,, i will be working on that on my own for a while~ bye
And here I was clicking like a sucker!

NotSoCSharp
a ghoul
a ghoul
Posts: 85
Joined: Sat Oct 25, 2003 10:48 am

Post by NotSoCSharp » Tue Nov 18, 2003 7:55 am

True this macro could have been written better but credit should go to the author for trying to produce a macro and learning how to write macros rather than just begging someone else to write one for him.

Gratz!