Moderator: MacroQuest Developers

This can be almost entirely fixed by adding a "/target clear" and a "/delay 3" before each /target line.Also sometimes he works a little to fast and though this ins't a major problem when in verbose he Might say something to the effect of. "Healing Target" instead of the name of the person even though he has healed them correctly.
Code: Select all
/squelch /target clear
/delay 3
/target PC ${Group[${g}]}Yep, you just need to add a few calls to Check_grpHPs here and there, so the bot checks more often. I added them in the buff routines after it checks each buff, as that is when I found I had the most problems - "why is he casting spirit of perseverance when there is an unslowed mob in camp at 80 percent?"Is there a way to make healing a higher priority on his list.
Code: Select all
Sub GrpBuffs
/declare i int local 1
/for i 1 to ${SpellGrpBuff.Size}
/doevents
/if (${Spell[${SpellGrpBuff[${i}]}].Mana} > ${Me.CurrentMana}) /return
/if ( !${Me.Buff[${SpellGrpBuff[${i}]}].ID} ) {
/target pc ${M_Assist}
/delay 3
/echo *** Hang on ! Rebuffing ${SpellGrpBuff[${i}]}
/call cast ${SpellGrpBuff[${i}]} gem5 5s
[color=#FF0000]/call Check_grpHPs[/color]
}
/next i
/return
Code: Select all
|- Buff Avatar
/if (${Me.SpellReady[${SpellATK}]}) /call Cast_AvatarCode: Select all
Sub Cast_Avatar
[color=red]/echo I'm in the Avatar sub[/color]
/declare i int local 0
/for i 0 to ${Group}
/if (${Group[${i}].ID}) {
/if (${ATKBuffed${i}}==0) /if (${Group[${i}].Class.Name.Equal[Beastlord]} || ${Group[${i}].Class.Name.Equal[Shadow Knight]} || ${Group[${i}].Class.Name.Equal[Bard]} || ${Group[${i}].Class.Name.Equal[Ranger]} || ${Group[${i}].Class.Name.Equal[Rogue]} || ${Group[${i}].Class.Name.Equal[Paladin]} || ${Group[${i}].Class.Name.Equal[Monk]} || ${Group[${i}].Class.Name.Equal[Warrior]}) {
[color=red]/echo Group member ${i} is on the avatar list[/color]
/target pc ${Group[${i}]}
/if (${Me.CurrentMana}>${Spell[${SpellATK}].Mana}) {
/tell ${Group[${i}]} ${SpellATK} is incomming to you ${Group[${i}]} , Stay in Range !!!
/call cast ${SpellATK} gem4 4s
/if (${Macro.Return.Equal["CAST_OUTOFRANGE"]}) /varset ATKBuffed${i} 200
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset ATKBuffed${i} ${AvatarDelay}
/return
}
}
}
/next i
/return
Code: Select all
| selfbuff.mac by gimp
|
#include spell_routines.inc
sub RefreshBuff(ToCast, duration)
/if ( (!${Me.Buff[${ToCast}].ID}) || (${Me.Buff[${ToCast}].Duration} < ${duration}) ) {
/if (!${Me.Book[${ToCast}]}) {
/echo # You miss the spell ${ToCast}!
/return
}
/call Cast "${ToCast}" gem1
}
/return
Sub Main
/echo Self-buff script started
/target ${Me.Name}
/declare oldSpell1 string local
/declare oldEquipment string local
/varset oldSpell1 ${Me.Gem[1]}
|is buff gonna fade in <1 hour (600 ticks) -refresh
/if (${String[${Me.Class}].Equal["Druid"]}) {
/call RefreshBuff "Mask of the Wild" 400
/call RefreshBuff "Nettlecoat" 400
/if (!${Me.Buff["Blessing of Steeloak"].ID}) {
/call RefreshBuff "Steeloak Skin" 400
}
|Add your clickies here
/if (${Raid.Members} > 0) {
/if (${Me.Height} > 3.00) {
/call Cast "Bracelet of the Shadow Hive" item
}
} else {
/call Cast "Velium Coldain Insignia Ring" item
/call Cast "Bangle of Disease Warding" item
/call Cast "Kerasha's Sylvan Leggings" item
|/call Cast "Shrunken Goblin Skull Earring" item
|/call Cast "Bracer of the Hidden" item
|/call Cast "Wanderer's Sylvan Tunic" item
}
}
/if (${String[${Me.Class}].Equal["Cleric"]}) {
/call RefreshBuff "Ward of Gallantry" 300
/call RefreshBuff "Symbol of Kazad" 300
/call RefreshBuff "Panoply of Vie" 150
/call RefreshBuff "Blessing of Reverence" 150
/call Cast "Journeyman's Boots" item
/call Cast "Bracer of the Hidden" item
}
/if (${String[${Me.Class}].Equal["Monk"]}) {
/call Cast "Velium Coldain Insignia Ring" item
/call Cast "Fabled Journeyman's Boots" item
/call Cast "Shrunken Goblin Skull Earring" item
|/call Cast "Mask of War" item
|/call Cast "Eyepatch of Plunder" item
}
/if (${String["${Me.Gem[1]}"].NotEqual["${oldSpell1}"]}) {
/delay 2s
/echo # Restoring old spell gem
/memspell 1 "${oldSpell1}"
}
/return