I want to know if anyone can tell me what i could change so anyone in the group could send hte druid a tell to heal pet, and he would target that pet and heal it. here is my modified macro cut down a bit.
#turbo
|SirCheese
|Druid Bot 1.1 - Nov 10 2004 -
|----[ ]----
|Usage: Target the MA
| /Mac Druid (% to assist) (Number of Dots or Nukes)
|----[ ]----
|Description: Set Your Spells, Look over Variable Changes. Decide if you want Nukes, Dots, Type of Heals, When to heal Etc.
| Druid will do up to 2 Dots and continously refresh as they ware off. Will Nuke whatever amout desired.
| Will Heal the entire group.
| Druid Will keep grp buffs always on grp once they are on.
| Druid will always keep himself or herself Self Buffed
| Druid Will Sit to med Automaticly. When Mob is near it will stand or when its mana is good.
| For Chat activated Commands /tell *Druid* Druid Help
| For Chat Activated Druid Ports /tell *Druid* Druid Port Help
|
|----[ ]----
| Add This: ( ) Auto Spells, ( ) Announce when Below 10 Mana,
|----[ ]----
| Things To Fix: ( ) Stop Nuking When Lom,
|----[ ]----
| Things I would like to add: ( ) Snare, ( ) Auto Group Cure When Neg Effect, ( ) Loot Mobs, ( ) Wait 4 Rez, ( ) Auto Trade
|-----------------------------------------------------------------------------------------------------------------------------
|----------
| Includes
|----------
#include spell_routines.inc
|----------
| Chats
|----------
#chat group
#chat chat
#chat tell
|----------
| Events
|----------
#Event MagicDotOff "#*#Swarming Death spell has worn off#*#"
#Event FireDotOff "#*#Vengeance of Tunare spell has worn off#*#"
#Event Invited "#*#To join the group, click on the 'FOLLOW' option, or 'DISBAND' to cancel#*#"
|----------
| Main Sub
|----------
Sub Main
|-----------------------------------------------------------------------------------------------------------------------------
| --- Make Your Changes Here ---
|-----------------------------------------------------------------------------------------------------------------------------
|-----------------------
| Variables Changeable
|-----------------------
|------------------------
| Set Character to Start
|------------------------
/tgb on
/assist off
/join ${mychannel}
|---------------------------------------
| Events Not Looped but done on start
|---------------------------------------
/call DefaultSpells
|------------------------
| Variable Sets
|------------------------
/declare MainAssist string outer ${Target}
/declare AssistAt int outer ${Param0}
/declare NukeAmount int outer ${Param1}
/declare TimesNuked outer
/varset TimesNuked 0
/declare GotTarget outer
/varset GotTarget 0
/declare CurrentMobID int local
/declare UseThisNuke outer
/declare ADot outer
/varset ADot 0
/declare BDot outer
/varset BDot 0
/declare Snared outer
/varset Snared 0
/declare distancetosit int outer 40
/declare following int outer 0
/declare follname string outer NULL
/declare PetName string outer Konantik
/if (${NukeType}==1) {
/varset UseThisNuke ${SpellFireDD}
}
/if (${NukeType}==0) {
/varset UseThisNuke ${SpellColdDD}
}
/if (${DOTSorDD}==1) {
/if (${NukeAmount}>2) {
/varset NukeAmount 2
}
}
|------------------------
| Announce Start
|------------------------
/if (${DOTSorDD}==0 && ${TankHealType}==0) {
/echo Druid Bot Started! Healing ${MainAssist} with ${SpellFastHeal} at ${TankHeal}%. Casting ${UseThisNuke} ${NukeAmount} times at ${AssistAt}%.
}
/if (${DOTSorDD}==0 && ${TankHealType}==1) {
/echo Druid Bot Started! Healing ${MainAssist} with ${SpellCompHeal} at ${TankHeal}%. Casting ${UseThisNuke} ${NukeAmount} times at ${AssistAt}%.
}
/if (${DOTSorDD}==1 && ${NukeAmount}==1 && ${TankHealType}==0) {
/echo Druid Bot Started! Healing ${MainAssist} with ${SpellFastHeal} at ${TankHeal}%. Casting ${SpellMagicDOT} at ${AssistAt}%.
}
/if (${DOTSorDD}==1 && ${NukeAmount}==1 && ${TankHealType}==1) {
/echo Druid Bot Started! Healing ${MainAssist} with ${SpellCompHeal} at ${TankHeal}%. Casting ${SpellMagicDOT} at ${AssistAt}%.
}
/if (${DOTSorDD}==1 && ${NukeAmount}==2 && ${TankHealType}==0) {
/echo Druid Bot Started! Healing ${MainAssist} with ${SpellFastHeal} at ${TankHeal}%. Casting ${SpellMagicDOT} and ${SpellFireDOT} at ${AssistAt}%.
}
/if (${DOTSorDD}==1 && ${NukeAmount}==2 && ${TankHealType}==1) {
/echo Druid Bot Started! Healing ${MainAssist} with ${SpellCompHeal} at ${TankHeal}%. Casting ${SpellMagicDOT} and ${SpellFireDOT} at ${AssistAt}%.
}
|-----------------------------------------------------------------------------------------------------------------------------
| Main Loop
|-----------------------------------------------------------------------------------------------------------------------------
:MainLoop
/delay 1s
/doevents
/call KeepHeal
/call GetTarget
/call CheckBuffs
|------------------
| Auto Sit
|------------------
/if ((${autosit}==1)&&(${Me.PctMana}<=90)&&(!${Me.Casting.ID})) {
/if ((${Bool[${Me.Standing}]})&&(${NearestSpawn[NPC].Distance}>=${Math.Calc[${NearestSpawn[NPC].MaxRange}+${distancetosit}]})&&(${Me.PctHPs}>90)) /sit
/if ((${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})&&(${NearestSpawn[NPC].Distance}<=${Math.Calc[${NearestSpawn[NPC].MaxRange}+${Math.Calc[${distancetosit}/3]}]})) /stand
}
/if ((${autosit}==1)&&(${Me.PctMana}>90)) {
/if ((${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})) /stand
}
|------------------
| Wait To Attack
|------------------
/if (${Target.PctHPs}<=${AssistAt} && ${Target.Type.Equal["NPC"]} && ${Target.Distance}<175 && !${Me.Moving} && !${Me.Casting.ID} && !${String[${Target}].Find["NULL"]}>0) {
/if (${GotTarget}==0) {
/doevents
/delay 5
/varset CurrentMobID ${Target.ID}
/popup Target Aquired >> ${Target.CleanName} <<
/echo Target Aquired >> ${Target.CleanName} <<
/varset GotTarget 1
/goto :StartCombat
}
} else {
/goto :MainLoop
|------------------
| Start Combat
|------------------
:StartCombat
/doevents
/call KeepHeal
/goto :WaitDead
|---------------------
| Wait for mod to die
|---------------------
:waitDead
/doevents
/if (${Spawn[${CurrentMobID}].Type.Equal[NPC]}) {
/call KeepHeal
/if (${DOTSorDD}==0) {
/call NukeCycle
}
/if (${DOTSorDD}==1) {
/call DoDamageOT
}
/goto :WaitDead
} Else {
/doevents
/echo Mob has Died, We Win EQ!
/varset GotTarget 0
/varset TimesNuked 0
/varset ADot 0
/varset BDot 0
/varset Snared 0
/goto :MainLoop
}
/goto :MainLoop
/return
|-----------------------------------------------------------------------------------------------------------------------------
| --- END MAIN LOOP ---
|-----------------------------------------------------------------------------------------------------------------------------
|------------------
| Heal MA
|------------------
Sub KeepHeal
/call HealGroup
/call HealMyself
/return
|------------------
| Heal Group
|------------------
Sub HealGroup
/declare i int local 1
/for i 1 to ${Group}
/if (${Group[${i}].Name.Equal[${MainAssist}]} && ${Group[${i}].PctHPs}<=${TankHeal}) {
/target pc ${Group[${i}]}
/if (${TankHealType}==0) {
/if (${Me.CurrentMana}<${Spell[${SpellFastHeal}].Mana}) {
/echo Not Enuf Mana to Heal ${Group[${i}]}
} else /if (${Target.Distance}<=100) {
/gsay ${SpellFastHeal} on >> %T <<
/call cast "${SpellFastHeal}" gem2 4s
}
}
/if (${TankHealType}==1) {
/if (${Me.CurrentMana}<${Spell[${SpellCompHeal}].Mana}) {
/echo Not Enuf Mana to Heal ${Group[${i}]}
} else /if (${Target.Distance}<=100) {
/gsay ${SpellCompHeal} on >> %T <<
/call cast "${SpellCompHeal}" gem2 4s
}
}
}
/if (${Group[${i}].Class.Name.Equal[Cleric]} || ${Group[${i}].Class.Name.Equal[Druid]} || ${Group[${i}].Class.Name.Equal[Wizard]} || ${Group[${i}].Class.Name.Equal[Magician]} || ${Group[${i}].Class.Name.Equal[Necromancer]} || ${Group[${i}].Class.Name.Equal[Shaman]} || ${Group[${i}].Class.Name.Equal[Enchanter]}) /if (${Group[${i}].PctHPs}<=${HealCasterAT}) {
/target pc ${Group[${i}]}
/if (${Me.CurrentMana}<${Spell[${SpellFastHeal}].Mana}) {
/echo Not Enuf Mana to Heal ${Group[${i}]}
} else /if (${Target.Distance}<=100) {
/gsay ${SpellFastHeal} on >> %T <<
/call cast "${SpellFastHeal}"
}
}
/if (${Group[${i}].Class.Name.Equal[Warrior]} || ${Group[${i}].Class.Name.Equal[Monk]} || ${Group[${i}].Class.Name.Equal[Rouge]} || ${Group[${i}].Class.Name.Equal[Ranger]} || ${Group[${i}].Class.Name.Equal[Beast]} || ${Group[${i}].Class.Name.Equal[Shadow Knight]} || ${Group[${i}].Class.Name.Equal[Paladin]}) /if (${Group[${i}].PctHPs}<=${MeleeHeals} && ${Group[${i}].Name.NotEqual[${MainAssist}]}) {
/target pc ${Group[${i}]}
/if (${Me.CurrentMana}<${Spell[${SpellCompHeal}].Mana}) {
/echo Not Enuf Mana to Heal ${Group[${i}]}
} else /if (${Target.Distance}<=100) {
/gsay ${SpellCompHeal} on >> %T <<
/call cast "${SpellCompHeal}"
}
}
/next i
/return
|------------------
| Heal Myself
|------------------
Sub HealMyself
/if (${Me.PctHPs}>${SelfHeal}) /return
/if (${Me.PctHPs}<=${SelfHeal}) {
/target Myself
/gsay ${SpellFastHeal} on >> %T <<
/call cast "${SpellFastHeal}" gem2
}
/return
|------------------
| Get A Target
|------------------
Sub GetTarget
:Target
/if (${Me.Casting.ID}) /return
/if (${Me.Moving}) /return
/if (${Spawn[${MainAssist}].ID}) {
/assist ${MainAssist}
} else {
/echo ${MainAssist} Is not in the Zone!
/delay 20s
}
/delay 1
/return
|------------------
| Nuke Cycle
|------------------
Sub NukeCycle
:NukeCycleLoop
|/if (${Me.PctMana}<=90) {
/if (${TimesNuked}<${NukeAmount}) {
/call KeepHeal
/assist ${MainAssist}
/delay 1
/call cast "${UseThisNuke}"
/varcalc TimesNuked ${TimesNuked} + 1
/delay 1s
/call KeepHeal
/delay 1s
/call KeepHeal
/delay 1s
/call KeepHeal
/delay 1s
/call KeepHeal
/delay 1s
/call KeepHeal
/goto :NukeCycleLoop
}
|}
/return
|--------------------
| Do Dots
|--------------------
Sub DoDamageOT
/call KeepHeal
/if (${NukeAmount}==1) {
/call OneDot
}
/if (${NukeAmount}==2) {
/call TwoDot
}
/return
|--------------------
| One Dot
|--------------------
Sub OneDot
/if (${ADot}==0) {
/call KeepHeal
/assist ${MainAssist}
/if (${SpellMagicDOT}==Swarming Death) {
/if (${FindItem[Orb of Clinging Death].ID}) /call Cast "Orb of Clinging Death" item
/if (!${FindItem[Orb of Clinging Death].ID}) /call Cast "${SpellMagicDOT}"
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto
/if (${Macro.Return.Equal["CAST_RESISTED"]}) {
/gsay >> %t << Resisted ${SpellMagicDOT} Trying Again!
/delay 1s
/goto
}
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) {
/varset ADot 1
}
} Else {
/call Cast "${SpellMagicDOT}"
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto
/if (${Macro.Return.Equal["CAST_RESISTED"]}) {
/gsay >> %t << Resisted ${SpellMagicDOT} Trying Again!
/delay 1s
/goto
}
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) {
/varset ADot 1
}
}
/return
|--------------------
| Two Dots
|--------------------
Sub TwoDot
/if (${ADot}==0) {
/call KeepHeal
/assist ${MainAssist}
/call cast "${SpellMagicDOT}" item
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto
/if (${Macro.Return.Equal["CAST_RESISTED"]}) {
/gsay >> %t << Resisted ${SpellMagicDOT} Trying Again!
/delay 4s
/goto
}
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) {
/varset ADot 1
}
}
/delay 7s
/if (${BDot}==0) {
/call KeepHeal
/assist ${MainAssist}
/call cast "${SpellFireDOT}"
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto
/if (${Macro.Return.Equal["CAST_RESISTED"]}) {
/gsay >> %t << Resisted ${SpellFireDOT} Trying Again!
/delay 4s
/goto
}
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) {
/varset BDot 1
}
}
/return
|-----------------------------------------------------------------------------------------------------------------------------
| Chat Activated Events
|-----------------------------------------------------------------------------------------------------------------------------
Sub Event_Chat(string ChatType,string Sender,string ChatText,Sender,ChatText)
|----------------------
| Heal
|----------------------
/if ((${ChatText.Equal[Heal]})||(${ChatText.Equal[Heal Me]})||(${ChatText.Equal[Heal Plz]})) {
/if (${String[${Macro.Return}].NotEqual[TARGET_SUCCESS]}) /return
/if (${Target.Distance}<=${SpellFastHealRange}) {
/target ${Sender}
/delay 1
/call cast "${SpellFastHeal}"
} else /tell ${Sender} Your Out of Range for ${SpellFastHeal}, Come Closer!
}
/if ((${ChatText.Equal[Heal pet]})||) {
/if (${String[${Macro.Return}].NotEqual[TARGET_SUCCESS]}) /return
/if (${Target.Distance}<=${SpellFastHealRange}) {
/target ${PetName}
/delay 1
/call cast "${SpellFastHeal}"
} else /tell ${Sender} Your Out of Range for ${SpellFastHeal}, Come Closer!
}
What i did was just make a variable and put in the pets name (Konantik) here,and when i wanted to heal that pet i would use the variable.
thanks

