You are a druid? here is something I used to train up on my ranger. You will have to modify some of the spell names but, it will work just fine. This also forages since I can see no reason not to while I was practicing spells.
Code: Select all
| This is my macro. Please give me credit if you use my code Imperfect
#turbo
#event Fizzle "Your spell fizzles!"
#event Fizzle "You haven't recovered yet..."
#event Fizzle "Spell recovery time not yet met."
#event Fizzle "Your spell is interrupted."
#event NightOnly "Spell can only be cast during the night."
#event LoM "Insufficient Mana to cast this spell!"
#event updatesaved " saved"
#event Needtostand "You must be standing "
#define CASTTIMER t0
#define CASTNEXTTIMER t1
#define WAITFORNIGHTTIMER t2
#define OKTOCAST v80
#define FIZZLECHECK v83
Sub Main
/varset a(0,0) "Skin Like Wood"
/varset a(1,0) "Abjuration"
/varset a(0,1) "Minor Healing"
/varset a(1,1) "Alteration"
/varset a(0,2) "Dance of the Fireflies"
|/varset a(0,2) "Stinging Swarm"
/varset a(1,2) "Conjuration"
/varset a(0,3) "Glimpse"
/varset a(1,3) "Divination"
/varset a(0,4) "Flame Lick"
/varset a(1,4) "Evocation"
/varset OKTOCAST 1
/varset l0 $int($char(level)*5+5)
:Loop
/for v0 0 to 4
/if n $char(skill,"$a(1,$v0)")<235 /if n $char(skill,"$a(1,$v0)")<$int($char(level)*5+5) /call CastSpell
/call Doabilities
/doevents
/if $cursor()==TRUE /click left auto
/if $cursor()==TRUE /delay 10
/next v0
/goto :Loop
/return
Sub Event_Timer
/if $p0==1 /varset OKTOCAST 1
/return
Sub Event_Fizzle
/varset FIZZLECHECK 1
/return
Sub CastSpell
| $p0: id to cast on
| $p1: spell to cast
:DoCast
|/if n $WAITFORNIGHTTIMER==0 /varset a(0,2) "Dance of the Fireflies"
/varset OKTOCAST 1
/stand
/varset OKTOCAST 0
/varset FIZZLECHECK 0
/cast "$a(0,$v0)"
/varset CASTTIMER $int($spell("$a(0,$v0)",casttime)*10+15)
:WaitCast
/doevents
/if n $FIZZLECHECK==0 /if n $CASTTIMER>0 /goto :WaitCast
/if n $FIZZLECHECK==0 /goto :Exit
/delay 1
/goto :DoCast
:Exit
/varset CASTNEXTTIMER $int($spell("$a(0,$v0)",recoverytime)*10+5)
/return
Sub DoAbilities
/if n $char(ability,Forage)>0 /doability Forage
/if n $char(ability,"Sense Heading")>0 /if n $char(skill,"Sense Heading")<200 /doability "Sense Heading"
/if n $char(level)>25 /if n $calc($char(speed))==0 /if n $char(ability,Hide)>0 /if n $char(skill,Hide)<75 /if n $char(skill,Hide)<$v99 /doability Hide
/if n $char(skill,Sneak)<75 /if n $char(skill,Sneak)<$v99 /doability Sneak
/if n $char(ability,Tracking)>0 /if n $char(skill,Tracking)<200 /if n $char(skill,Tracking)<$v99 /doability Tracking
/return
Sub Event_NightOnly
/varset a(0,2) "Stinging Swarm"
/call CastSpell
/varset a(0,2) "Dance of the Fireflies"
/return
Sub Event_LoM
/sit
:Wait
/delay 0
/call Doabilities
/if n $char(mana,pct)<100 /goto :Wait
/stand
/return
Sub Event_updatesaved
/update
/return
Sub Event_Needtostand
/stand
/call Doabilities
/sit
/return