Druid Root/dot macro i got lost~

Need some help with that macro you're working on or aren't quite sure how to get your macro to do something? Ask here!

Moderator: MacroQuest Developers

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

Druid Root/dot macro i got lost~

Post by Drunkensloth » Sun Nov 30, 2003 2:21 am

i was trying to program an root dot macro... but i got lost in what i was doing, hoping someone can look at it and finish up what needs to be done with it... or help me along a little :)

problems: making sure you root the mob
-being out of spell casting range after running to anchor point
-snare getting resisted
-bunch of other stuff...
-this is all untested~

some useful info:
$target(animation) will return 32 if rooted, 17 if snared, and 18 if not snared

Code: Select all

|afkdotter.mac
|
|macro to root rot mobs in HoH basement or Tactics
|the locations are specific, and i will work them out later
|
|
|
|includes Plazmics SPellcast.inc

#include spellcast.inc
|events~
#event ensnare "Your Ensnare spell has worn off"
#event savageroots "Your Savage Roots spell has worn off"
#event wingeddeath "Your Winged Death spell has worn off"
#event Dronesdoom "Your Drones of Doom spell has worn off"
#event immoofro "Your Immolation of Ro spell has worn off"
#event epic "Your Wrath of Nature spell has worn off"
#event snared "has been ensnared"
#event slain "have been slain by"
#event xp "experience!!"

Sub Main
/declare epichotkey global
/varset epichotkey 3
/declare invishotkey global
/varset invishotkey 1
/declare droneshotkey global
/varset droneshotkey 5
/declare resnare timer
/varset resnare 2h
/declare eastanchor global
/varset eastanchor -692.39,497.25
/declare westanchor global
/varset westanchor -588.73,907.65
/declare northanchor global
/varset northanchor -545.57,615.58
/declare rooted global
/declare heading global
/declare hastarget global
/declare mob global
/declare pull global
/declare drones global
/declare immo global
/declare epicdot global
/declare wings global

:loop
	/if n @resnare<=0 /call Cast "Ensnare"
	/if n @hastarget==0 /call gettarget
	/if n @hastarget==1 /if n @pull==0 /call pullmob
	/doevents
/goto :loop
/return

Sub gettarget
:nocaster
	/tar npc
	/if $target(class)=="Shadow Knight" /goto :nocaster
	/varset mob "$target(name)"
	/varset hastarget 1
/return

Sub pullmob
	/press @invishotkey
	/if $char(state)!="STANDING" /sit off
	/if @mob=="bad monkey" /call gettarget
	/tar @mob
:gettomob
	/face fast
	/press up
	/press Num_lock
	/if $target(distance)<=100 {
		/press down
		/call Cast "Ensnare"
		:gotoanchor
		/face fast loc @westanchor
		/press up
		/press Num_lock
		/if n $distance(@westanchor)<=5 {
			/press up
			/varset pull 1
			/call dots
			}
		/goto :gotoanchor
	}
	/goto :gettomob
/return

Sub dots
:rootcheck
/if $target(distance)<=120 /call safedistance
/call Cast "Savage Roots"
/if $target(animation)!=32 /goto :rootcheck
/if $target(animation)==32 /varset rooted 1
/if $target(distance)<=120 /call safedistance
/call Cast "Immolation of Ro"
/if $target(distance)<=120 /call safedistance
/call Cast "Winged Death"
/if $target(distance)<=120 /call safedistance
	/press @droneshotkey
:Waitdrone1 
     /if "$char(casting)"=="TRUE" { 
       /delay 1 
       /goto :Waitdrone1
	} 
/if $target(distance)<=120 /call safedistance
	/press @epichotkey
:Waitepic 
     /if "$char(casting)"=="TRUE" { 
       /delay 1 
       /goto :Waitepic
	} 



|event subs for spells
Sub Event_snared
	/varset resnare 14m
	/echo $target(name,clean) has been resnared!
/return

Sub Event_wingeddeath
	/sit
	/stand
	/if $target(distance)<=120 /if rooted==1 /call safedistance
	/call Cast "Winged Death"
	/echo $target(name,clean) has been dotted with Winged Death!
/return

Sub Event_immoofro
	/sit
	/stand
	/if $target(distance)<=120 /if rooted==1 /call safedistance
	/call Cast "Immolation of Ro"
	/echo $target(name,clean) has been dotted with Immolation of Ro!
/return

Sub Event_Dronesdoom
	/sit
	/stand
	/if $target(distance)<=120 /if rooted==1 /call safedistance
	/press @droneshotkey
:Waitdrone 
     /if "$char(casting)"=="TRUE" { 
       /delay 1 
       /goto :Waitdrone
	} 
/echo $target(name,clean) has been dotted with Drones of Doom!
/return

Sub Event_epic
	/sit
	/stand
	/if $target(distance)<=120 /if rooted==1 /call safedistance
	/press @epichotkey
:Waitepic 
     /if "$char(casting)"=="TRUE" { 
       /delay 1 
       /goto :Waitepic
	} 
/echo $target(name,clean) has been dotted with Drones of Doom!
/return

||||||MOST IMPORTANT SUB|||||
Sub Event_savageroots
	/echo $target(name,clean) is unrooted!
	/varset rooted 0
	/if $target(distance)<=120 /call safedistance

}

/return


Sub safedistance
:run
	/if n $distance(@northanchor)<=5 /varset heading west
	/if n $distance(@westanchor)<=5 /varset heading east
	/if n $distance(@easthanchor)<=5 /varset heading north
	/if heading=="west" {
		/face fast loc @westanchor
		/press Num_Lock
		/if n $distance(@westanchor)<=5 /press up
	}
	/if heading=="east" {
		/face fast loc @eastanchor
		/press Num_Lock
		/if n $distance(@westanchor)<=5 /press up
	}
	/if heading=="north" {
		/face fast loc @northanchor
		/press Num_Lock
	}
	/if $target(distance)<=120 /goto :run
/return

Sub Event_XP
	/varset rooted 0
	/varset hastarget 0
	/varset pull 0
	/varset mob "bad monkey"


Sub Event_slain
	/delay 2m
	/echo you died...
	/sit
	/camp
	/end
/return
And here I was clicking like a sucker!

User avatar
Elric
Cheese Whore
Cheese Whore
Posts: 466
Joined: Sun Nov 23, 2003 12:31 am
Location: Tampa, Fl
Contact:

Post by Elric » Sun Nov 30, 2003 3:01 pm

Oh this would be sweet if someone could finish it up. :-P

My main is a drood, and it would be really nifty to see him kiting a mob without me doing anything. From the third person. Hehe.
-Elric

Furor
a lesser mummy
a lesser mummy
Posts: 44
Joined: Sun Nov 30, 2003 8:25 pm

Post by Furor » Tue Dec 02, 2003 1:22 pm

Do you want the DoTs on a timer [to start casting b4 it wears off] or when they wear off?

I will help with your macro :-)

Furor

User avatar
Elric
Cheese Whore
Cheese Whore
Posts: 466
Joined: Sun Nov 23, 2003 12:31 am
Location: Tampa, Fl
Contact:

Post by Elric » Tue Dec 02, 2003 5:58 pm

Well if I remember most of my dots are on the same timer, IE: one minute.

So if it were to work out the right way, it would have to start re-casting the dots in the same order they were cast in, about 50 seconds after they were cast. Doing it like that should let you cast the dot, and have the other ten seconds tick away while casting. (Depending on if you're using big dots, or teeny ones, or clicky ones, like my Vambraces.)

So would there be a way to set it up to cast clicky dots too? Or should we have it setup to cast from hotkeys, so that way you can SET your clickys in the hotkeys to be cast... Am I walking in circles here?
-Elric

theafkxper
a hill giant
a hill giant
Posts: 207
Joined: Sun Sep 08, 2002 6:41 pm

Post by theafkxper » Wed Dec 03, 2003 3:42 am

/itemcast or /castitem or something works, maybe its /cast item, anyway, yeah you can cast an item, just gotta figure out which one it is, or dig out the readme.

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

Post by Drunkensloth » Wed Dec 03, 2003 3:48 am

have em run when they wear off i guess, because at 65 theres 30 second dots and one minute dots and long dots (epic)~


the thing i am REALLLY worried about is the root section... and i was going somewhere with the animations to check fi its still rooted... but the movement idea isnt really well thought out... but with SoE you should be able to cover the distance... its just not smart... i need to find a better way to do that... so if you could... post some ideas on that... i can make the dots work easily given a little time, or another PoEarth raid :)
And here I was clicking like a sucker!

uglyshaman

Post by uglyshaman » Wed Dec 03, 2003 8:01 pm

Can't you use an event that just checks when the mob breaks root?

Something like...

Code: Select all

#event rootbreak "Your Engorging Roots spell has worn off."
and then later...

Code: Select all

Sub Event_rootbreak
<code for re-rerooting goes here>
Just an idea - I'm sorta a newb at this yet.

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

Post by Drunkensloth » Thu Dec 04, 2003 12:58 am

problem with event driven casting is... when to call a doevents... AND if anything else gets in the doevents stack...
And here I was clicking like a sucker!