• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Click "RG3" at the very bottom-left of this page to change it. To dismiss this notice, click the X --->

Question - auto recast companion's fortification/aegis/DA? (1 Viewer)

Joined
Jul 10, 2020
RedCents
50¢
Is there a macro or Lua to auto recast pet's fortification/aegis/DA, when they fade? I've tried looking at countless threads and no joy...

I often 2 box SK/Shaman & use MQ2Eskay & MQ2Shaman, having these AA buffs only last for 2 @ 10m & 1 @ 36 minutes, I never think to recast (a trigger of it dropping won't help me LoL).

Happy to donate, I can't program anything :(.

(I use pets to off tank when I get in trouble)

Thanks in advance
 

Sic

:)
Moderator
Joined
May 5, 2016
RedCents
32,717¢
you could use an mq2react setup that if the AA were ready to be used, and your pet was missing the buff to click it

cycling all of that sounds a bit much (the DA part)

in the class plugins for those classes we don't use those AAs - we do for bst/mage tho.
 

Sic

:)
Moderator
Joined
May 5, 2016
RedCents
32,717¢
mq2react - got it, I can see making that work - thanks
i *personally* would use a little lua script so you can check for more things like aggro and such.

wouldn't be too crazy to put together - i'm stepping out here a little bit, but i'll circle back here a little later and if someone doesn't fire something together i'll help you get sorted
 
Joined
Jul 10, 2020
RedCents
50¢
i *personally* would use a little lua script so you can check for more things like aggro and such.

wouldn't be too crazy to put together - i'm stepping out here a little bit, but i'll circle back here a little later and if someone doesn't fire something together i'll help you get sorted
Thank you, yeah making something in Lua would be awesome, (again above my skill set). No hurry - I appreciate it.
 

Sic

:)
Moderator
Joined
May 5, 2016
RedCents
32,717¢
Thank you, yeah making something in Lua would be awesome, (again above my skill set). No hurry - I appreciate it.
you probably know as much or almost as much lua as i do! but i'll try and comment it as we go and make it easy to read.

we won't be adding those abilities to the plugins just in case your curious - i don't ever want eskay to not lifetap or do something else when stuff goes bad because it is casting a pet thing, same with shm and healing

anyhow i'll touch base later
 

Sic

:)
Moderator
Joined
May 5, 2016
RedCents
32,717¢
this appears to work :p

there is no checking for combat or if you're moving around or invis or any other things (which would be easy to add)

so i would recommend slapping the start/stop on a hotkey and fire it only when you want it to ensure 1 of the 3 buffs is up if at all possible

companion.lua:
--[[
    quick and dirty "companion" lua for EverQuest02 to cycle Aegis, Fort, and petdivine aura by Sic
    thx for the assist from Aquietone
    this is not intended to be a lesson or best practices
    there is room for improvement
    - checking that you're in combat
    - checking you're not already casting a spell
    - checking you're not moving
    - checking you're not dead etc
]]

-- we need to include using "mq" to do "mq" stuff
local mq = require 'mq'

-- let's keep this going
local terminate = false

-- there are other ways to do this, but this works
-- we want info for the 3 AAs we want to cycle
local aegis = 'companion\'s aegis'
local aegisID = 441
local fort = 'companion\'s fortification'
local fortID = 3707
local petdivineaura = 'companion\'s intervening divine aura'
local petdivineauraID = 1580

-- this is a really quick and lazy way to see if an alt ability was ready
local function altabilitycheck(ability)
    return mq.TLO.Me.AltAbilityReady(ability)()
end

-- this is a really quick and lazy way to use an aa by ID, and then print out that we're using it
local function useAltAbility(id)
    -- this uses the aa
    mq.cmdf('/alt act %i', id)
    -- this formats stuff into a string so we can print it out
    print(string.format('Companion.lua using alt ability %i', id))
    -- we want a small delay (again very quick and simple)
    mq.delay(1000)
end

-- we want to check that our pet doesn't have ANY of the 3 buffs
local function petBuffCheck(name1, name2, name3)
    return not mq.TLO.Me.Pet.Buff(name1)() and not mq.TLO.Me.Pet.Buff(name2)() and not mq.TLO.Me.Pet.Buff(name3)()
end

-- this is our "main" function we're going to cycle through
local function main()
    -- we're going to make sure our pet doesn't have any of the buffs before using an aa
    if petBuffCheck(aegis, fort, petdivineaura) then
        if altabilitycheck(aegis) then
            useAltAbility(aegisID)
        elseif altabilitycheck(fort) then
            useAltAbility(fortID)
        elseif altabilitycheck(petdivineaura)then
            useAltAbility(petdivineauraID)
        end
    end
end

-- this will keep us cycling the main function with a small delay
while not terminate do
    mq.delay(1000)
    main()
end
 

Attachments

  • companion.lua
    2.2 KB · Views: 0
Joined
Jul 10, 2020
RedCents
50¢
this appears to work :p

there is no checking for combat or if you're moving around or invis or any other things (which would be easy to add)

so i would recommend slapping the start/stop on a hotkey and fire it only when you want it to ensure 1 of the 3 buffs is up if at all possible

companion.lua:
--[[
    quick and dirty "companion" lua for EverQuest02 to cycle Aegis, Fort, and petdivine aura by Sic
    thx for the assist from Aquietone
    this is not intended to be a lesson or best practices
    there is room for improvement
    - checking that you're in combat
    - checking you're not already casting a spell
    - checking you're not moving
    - checking you're not dead etc
]]

-- we need to include using "mq" to do "mq" stuff
local mq = require 'mq'

-- let's keep this going
local terminate = false

-- there are other ways to do this, but this works
-- we want info for the 3 AAs we want to cycle
local aegis = 'companion\'s aegis'
local aegisID = 441
local fort = 'companion\'s fortification'
local fortID = 3707
local petdivineaura = 'companion\'s intervening divine aura'
local petdivineauraID = 1580

-- this is a really quick and lazy way to see if an alt ability was ready
local function altabilitycheck(ability)
    return mq.TLO.Me.AltAbilityReady(ability)()
end

-- this is a really quick and lazy way to use an aa by ID, and then print out that we're using it
local function useAltAbility(id)
    -- this uses the aa
    mq.cmdf('/alt act %i', id)
    -- this formats stuff into a string so we can print it out
    print(string.format('Companion.lua using alt ability %i', id))
    -- we want a small delay (again very quick and simple)
    mq.delay(1000)
end

-- we want to check that our pet doesn't have ANY of the 3 buffs
local function petBuffCheck(name1, name2, name3)
    return not mq.TLO.Me.Pet.Buff(name1)() and not mq.TLO.Me.Pet.Buff(name2)() and not mq.TLO.Me.Pet.Buff(name3)()
end

-- this is our "main" function we're going to cycle through
local function main()
    -- we're going to make sure our pet doesn't have any of the buffs before using an aa
    if petBuffCheck(aegis, fort, petdivineaura) then
        if altabilitycheck(aegis) then
            useAltAbility(aegisID)
        elseif altabilitycheck(fort) then
            useAltAbility(fortID)
        elseif altabilitycheck(petdivineaura)then
            useAltAbility(petdivineauraID)
        end
    end
end

-- this will keep us cycling the main function with a small delay
while not terminate do
    mq.delay(1000)
    main()
end
Awesome - Thank you!
 

Users who are viewing this thread

Top