#include partypriest/moveto.iss function main() { echo PartyPriest.iss now running... declare AutoFollow bool global FALSE declare AutoAttack bool global FALSE declare AutoLoot bool global FALSE declare AutoBuff bool global FALSE declare ShadowProtection bool global FALSE declare AoE_OK bool global FALSE declare FollowCloser bool global FALSE declare MT string global declare BuffChk int global 1 declare groupMemberCounter int script 1 declare PausedScript string global FALSE declare Debug bool script TRUE ; Load our user interface elements. ui -load wowskin/wowskin.xml ui -load -skin wowskin partypriest.xml ; Main loop do { ; Various wait checks if !${Me(exists)} || ${Me.Casting} || ${PausedScript.Equal[TRUE]} || ${WoWScript[LootFrame:IsShown()]} || ${Me.Dead} || ${Me.Buff[Ghost](exists)} || ${Me.Buff[Wisp](exists)} { waitframe continue } ; If we've got a dead mob on target then clear it. if ${Target.Dead} wowscript ClearTarget() if ${Player[${MT}].Distance}>10 && ${FollowCloser} call movetoobject ${Player[${MT}].GUID} 10 0 if ${Player[${MT}].Distance}>40 && ${AutoFollow} call movetoobject ${Player[${MT}].GUID} 40 0 ; More wait checks. if ${Me.Mount(exists)} || ${Me.Sitting} { waitframe continue } wowscript CHL_PanicHeal() ; ************ LOOTING ************ if !${Me.InCombat} && ${AutoLoot} { call Loot } if !${Me.InCombat} && ${Me.PctMana} < 70 && ${AutoDrink} { call Drink } waitframe } while TRUE } function Drink() { Item[Conjured Crystal Water]:Use while ${Me.Buff[Drink](exists)} && ${Me.PctMana} < 99 waitframe wowpress SITORSTAND } function Loot() { declare i int local 1 declare Corpses guidlist local declare LootGUID string local ; Only loot if we have open inventory slots. if ${Me.EmptyInventorySlots}==0 { return } ;Use the object search to find all nearby lootable corpses Corpses:Search[-units,-lootable,-nearest,-range 0-15] ;If we found lootable corpses then cycle through them if ${Corpses.Count}>0 { do { LootGUID:Set[${Corpses.GUID[${i}]}] ;Make sure the unit is still lootable and its not too far off. if ${Unit[${LootGUID}](exists)} && ${Unit[${LootGUID}].Lootable} && ${Unit[${LootGUID}].Distance}<15 { ;Target the corpse Target ${LootGUID} ;Make sure we are close enough to loot it call movetoobject ${LootGUID} 5 ;Hold down shift so that we loot all. Keyboard:Hold[shift] waitframe ;Use the target to loot it. Unit[${LootGUID}]:Use ;Wait for looting to finish wait 20 !${Unit[${LootGUID}].Lootable} if ${WoWScript[LootFrame:IsShown()]} { Unit[${LootGUID}]:Use wait 20 !${Unit[${LootGUID}].Lootable} } if ${WoWScript[LootFrame:IsShown()]} { Unit[${LootGUID}]:Use wait 20 !${Unit[${LootGUID}].Lootable} } if ${WoWScript[LootFrame:IsShown()]} { Keyboard:Press[esc] } ;Release the shift key Keyboard:Release[shift] waitframe } } while ${i:Inc}<=${Corpses.Count} && !${Me.InCombat} wait 10 } } ; ******************************************************************************************* function DebugMessage(string message) { if ${Debug} { wowecho "${message}" } } ; ******************************************************************************************* function atexit() { ; antiafk off echo PartyPriest.iss has stopped. ; Unload our ui elements. ui -unload scripts\\partypriest\\UI\\partypriest.xml }