I'm trying to build a simple Druid bot that remains at a camp site,
when I return with a mob I want the druid to assist me and casts 5 dots and a snare,
then it watch's my health and rebuffs if needed, also recast dots if they ware off.
It only keeps buff up on Leader
I built my macro from scratch. And when I try and test it, it doesn't do anything.
Could you all point out what I'm doing wrong or what I'm missing
I read something about the DoEvents but I don't fully understand that.
Is that when the script checks for Event triggers?
Thank you in advance
Code: Select all
#turbo
#Include spell_routines.inc
#chat tell
#event thorns "Your Shield of Spikes spell has worn off of |${Leader}|."
#event skin "Your Skin like Nature spell has worn off of |${Leader}|."
#event Atc "auto attack is off"
Sub Main
/declare Leader string outer
/declare InCombat int outer 0
/declare HealSpell string outer Greater Healing
/declare HealPercent int outer 70
/declare Thorns_State int outer 0
/declare HPBuff_State int outer 0
/declare Throns string outer Shield of Spikes
/declare HPBuff string outer Skin like Naturel
/declare Dot1 string outer Stinging Swarm
/declare Dot2 string outer Creeping Crud
/declare Dot3 string outer Drons of Doom
/declare Dot4 string outer Drifting Death
/declare Dot5 string outer Immolate
/declare Snare string outer Snare
/declare Dot1_State int outer 0
/declare Dot2_State int outer 0
/declare Dot3_State int outer 0
/declare Dot4_State int outer 0
/declare Dot5_State int outer 0
/declare Snare_State int outer 0
/varset Leader ${Param0}
/echo Now assisting -- ${Leader} --
:MainLoop
/if (${Me.Casting.ID}>1) {
/goto MainLoop
}
/if (${InCombat}==0) {
/target ${Leader}
/if (${Target.Combat} {
/varset InCombat 1
/assist
/face
}
}
/call CheckHP
/if (${InCombat}) {
/call CheckDOTS
}
/call CheckBuffs
/doevents Chat
/doevent Event_Atc
/doevent Event_Skin
/doevent Event_Throns
/goto :MainLoop
/endmacro
Sub CheckBuffs
if (!${Thorns_State}) {
/target ${Leader}
/call cast "${Thorns}" gem2 nodismount
/varset Throns_State 1
}
if (!${HPBuff_State}) {
/target ${Leader}
/call cast "${HPBuff}" gem2 nodismount
/varset HPBuff_State 1
}
/return
Sub CheckHP
/target Me
/if (${Me.PctHPs<${HealPercent}) { /call cast "${HealSpell}" gem1 nodismount }
/target ${Leader}
/if (${Target.PctHPs<${HealPercent}) { /call cast "${HealSpell}" gem1 nodismount }
/return
Sub CheckDOTS
/target ${Leader}
/assist
/if (!${Dot1_State}) { /call cast "${Dot1}" gem3 nodismount /varset Dot1_State 1}
/if (!${Dot2_State}) { /call cast "${Dot2}" gem4 nodismount /varset Dot2_State 1}
/if (!${Dot3_State}) { /call cast "${Dot3}" gem5 nodismount /varset Dot3_State 1}
/if (!${Dot4_State}) { /call cast "${Dot4}" gem6 nodismount /varset Dot4_State 1}
/if (!${Dot5_State}) { /call cast "${Dot5}" gem7 nodismount /varset Dot5_State 1}
/if (!${Snare_State}) { /call cast "${Snare}" gem8 nodismount /varset Snare_State 1}
/return
sub Event_Thorns
/varset Torns_State 0
/return
sub Event_Skin
/varset HPBuff_State 0
/return 0
sub Event_Atc
/varset InCombat 0
/varset Dot1_State 0
/varset Dot2_State 0
/varset Dot3_State 0
/varset Dot4_State 0
/varset Dot5_State 0
/varset Snare_State 0
/return
Sub Event_Chat(string ChatType,string Sender,string ChatText)
/if (${ChatText.Equal["DS"]}) {
/target ${Sender}
/call cast "${Torns}" gem2 nodismount
}
/if (${ChatText.Equal["SOW"]}) {
/target ${Sender}
/call cast "Spirit of Wolf" gem2 nodismount
}
/if (${ChatText.Equal["root"]}) {
/assist ${Sender}
/call cast "Earthen Roots" gem2 nodismount
}
/if (${ChatText.Equal["Snare"]}) {
/assist ${Sender}
/call cast "Snare" gem8 nodismount
}
/if (${ChatText.Equal["camp"]}) {
/dismount
/sit
/camp
}
/if (${ChatText.Equal["follow"]}) {
/target ${Leader}
/face
/eacho /follow
}
/return



