Rather than the traditional pet heal macros this one operates on lists so you never have to retarget your pets. If you mount, stable or claim a new pet it automatically picks it up (provided its serial is in your list). Works very well with mounts.
I also added provoke / "all kill" protection, where if you have a cursor up it will not hijack the cursor.
###################################################
Updates:
I also added provoke / "all kill" protection, where if you have a cursor up it will not hijack the cursor.
###################################################
Updates:
- fixed a bug / added code to ensure the pets never equal each other
- added conditional to not search for new pets if both are defined
Code:
if not listexists 'petlist'
createlist 'petlist'
//add an entry for each pet you hunt with:
@pushlist 'petlist' 0x176ca2 // rare white horse
@pushlist 'petlist' 0x1572d2 // meta
@pushlist 'petlist' 0x2627 // white wyrm
endif
//Removes pets if mounted, stabled or you get too far away
if findalias 'Pet1' and not @findobject 'Pet1'
unsetalias 'Pet1'
endif
if findalias 'Pet2' and not @findobject 'Pet2'
unsetalias 'Pet2'
endif
//makes sure the pets never equal each other
if findalias 'Pet1' and findalias 'Pet2'
if serial 'Pet1' == serial 'Pet2'
unsetalias 'Pet2'
endif
endif
//Searches for your pets when you don't have 2 active
if not @findobject 'Pet1' or not @findobject 'Pet2'
for 0 to 'petlist'
if @findobject petlist[] 'any' 'ground' 0 30
if not @findobject 'Pet1'
setalias 'Pet1' petlist[]
elseif not @findobject 'Pet2' and serial 'Pet1' != 'petlist[]'
setalias 'Pet2' petlist[]
endif
endif
endfor
endif
// sets backup bandie timer just in case
if not timerexists 'bandie'
settimer 'bandie' 10000
endif
// provoke protection if target cursor exists
if not targetexists
//Starts healing your pets
if @injournal 'finish applying' 'system' or timer 'bandie' >= 10000
if @findobject 'Pet1' and @findobject 'Pet2'
if hits 'Pet1' < 90 or hits 'Pet2' < 90
if diffhits 'Pet1' > diffhits 'Pet2' and @inrange 'Pet1' 1
usetype 0xe21 'any' 'backpack'
waitfortarget 3500
target! 'Pet1'
settimer 'bandie' 0
elseif @inrange 'Pet2' 1 and hits 'Pet2' < 90
usetype 0xe21 'any' 'backpack'
waitfortarget 3500
target! 'Pet2'
settimer 'bandie' 0
endif
clearjournal
pause 1000
endif
elseif @findobject 'Pet1' or @findobject 'Pet2'
if hits 'found' < 90 and @inrange 'found' 1
usetype 0xe21 'any' 'backpack'
waitfortarget 3500
target! 'found'
settimer 'bandie' 0
clearjournal
pause 1000
endif
endif
endif
endif
if @injournal 'too far away' 'system'
@clearjournal
elseif @injournal 'stay close enough' 'system'
@clearjournal
endif
Last edited by a moderator: