• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Macro - Res macro

Joined
Dec 24, 2021
RedCents
57¢
I am looking to make a macro i can run when I zone in to the Guild Lobby and my character has Res Sickness. I've never written a macro, but this is what I have so far:

Sub Main
/if (${Me.Buff[Resurrection Sickness].ID}
/tar a_priest_of_luclin
/tar a_priest_of_luclin
/delay ${Math.Rand[10]}s
/face
/say summon
/mem "Superior Reviviscence" 9
/delay 120s
/casting "Superior Reviviscence"
/delay ${Math.Rand[20]}s
/travelto guildhall
/return

Of course it doesn't work. Can someone help me out with this please?
 
You can get some ideas from https://www.redguides.com/community/threads/lazylobbyrez.71215/

or a Lua idea something like this
Code:
-------------------------------------------
---------------- Rez Check ----------------
-------------------------------------------
function FirstToUpper(str)
    return (str:gsub("^%l", string.upper))
end

local function RezCheck ()
    if mq.TLO.Plugin('mq2dannet')() ~= nil and saved_settings.dannet_load then
    local maxdistance = 100
    local corpse_count = mq.TLO.SpawnCount('pccorpse radius '..maxdistance)()
    local peer_list = split(mq.TLO.DanNet.Peers(), '|')
        if mq.TLO.Me.Class.ShortName() == 'CLR' or mq.TLO.Me.Class.ShortName() == 'DRU' or mq.TLO.Me.Class.ShortName() == 'SHM' or mq.TLO.Me.Class.ShortName() == 'PAL' and not mq.TLO.Me.Hovering() and not mq.TLO.Me.Invis() then
            if corpse_count ~= nil then
                for c = 1, corpse_count do
                    for x = 1, #peer_list do
                        local corpse_name = mq.TLO.NearestSpawn(c..',pccorpse radius '..maxdistance).Name()
                        local corpse_name_id = mq.TLO.NearestSpawn(c..',pccorpse radius '..maxdistance).ID()
                        local dannet_member = mq.TLO.DanNet.Peers(x)()
                        local corpseadd = "'s corpse0"
                        if corpse_name_id == nil or dannet_member == nil then
                            break
                        end
                        local fellow_match = FirstToUpper(string.format("%s%s", dannet_member, corpseadd))
                        local fellow_match_strip = fellow_match:gsub('orpse.*','')
                        if not mq.TLO.Me.Hovering() and not mq.TLO.Me.Moving() and mq.TLO.Spawn(''..corpse_name_id..'').Distance() <= 100 and fellow_match == corpse_name and corpse_name_id ~= nil then
                            mq.cmdf('/target %s', fellow_match_strip)
                            mq.cmd('/dex '..dannet_member..' /consent '..mq.TLO.Me.CleanName()..'')
                            print('\ar[\aoEasy\ar] \atRezzing '..dannet_member..'')
                            mq.delay('1s')
                            mq.cmd('/corpse')
                            mq.delay('1s')
                                --Blessing of Resurrection CLR
                                if mq.TLO.Me.AltAbilityReady('3800')() then mq.cmd('/alt activate 3800') end
                                --Rejuvenation of Spirit DRU SHM
                                if mq.TLO.Me.AltAbilityReady('2051')() then mq.cmd('/alt activate 2051') end
                                --Gift of Resurrection PAL
                                if mq.TLO.Me.AltAbilityReady('3711')() then mq.cmd('/alt activate 3711') end
                                while mq.TLO.Me.Casting() do mq.delay('1s') end
                        end
                    end
                end
            end
        end
    end
end
 
I think I am getting there

Sub Main

/if (${Me.Buff[Resurrection Sickness].ID} && ${Me.Class.ShortName.Find[CLR]}) /multiline ; /tar a_priest_of_luclin ; /tar a_priest_of_luclin ; /delay ${Math.Rand[10]}s ; /delay ${Math.Rand[10]}s ; /face ; /say summon ; /mem "Superior Reviviscence" 9 ; /delay 120s ; /casting "Superior Reviviscence" ; /delay ${Math.Rand[20]}s ; /travelto guildhall

/return
 
Wow. So much to unpack here.

First - you are using a macro. No need for a /multiline here. You are not limited to one line.

Second - in general, just think about what you need to do, and what would happen in the game if you did it. This leads to a few questions you should think about:
- is this macro dependent on your bind point?
- are you planning to run the macro manually, or do you want something that does thing automatically?
- if manual, why check for rez sickness? or that you are a cleric?
- what other automation are you running? does it need to be paused to mem a spell?
- are you close enough to the priest?
- why are you targeting priest twice?
- what is with the double random 10s delay after targeting the priest?
- does it really take 2 minutes to mem the spell?
- does the spell need a target?

Someone can (maybe already has) created something like this, but it seems you are looking to learn. You have a start there, but it needs a bit of work (not that much, if you aren't looking for something error proof). Keep at it, and ask questions.
 
I'm trying to stay clear of macros :) Otherwise I would write one for you. If you are going to take the time to learn, I would learn Lua. Just a suggestion.
 
I am looking to make a macro i can run when I zone in to the Guild Lobby and my character has Res Sickness. I've never written a macro, but this is what I have so far:

Sub Main
/if (${Me.Buff[Resurrection Sickness].ID}
/tar a_priest_of_luclin
/tar a_priest_of_luclin
/delay ${Math.Rand[10]}s
/face
/say summon
/mem "Superior Reviviscence" 9
/delay 120s
/casting "Superior Reviviscence"
/delay ${Math.Rand[20]}s
/travelto guildhall
/return

Of course it doesn't work. Can someone help me out with this please?
This took me a while, but here it is if anyone is interested. I would like to add some conditions, but this works.

Sub Main
/docommand /boxr pause

/if (${Me.Buff[Revival Sickness].ID}) /multiline ; /bct ${Me} //tar a priest of luclin ; /bct ${Me} //face

/docommand /delay 2s

/if (${Me.Buff[Revival Sickness].ID}) /bct ${Me} //say summon

/docommand /delay 1s

/if (${Me.Buff[Revival Sickness].ID} && ${Me.Class.ShortName.Find[CLR]}) /bct ${Me} //mem "Superior Reviviscence" 9

/docommand /delay 120s

/if (${Me.Buff[Revival Sickness].ID} && (${Me.Class.ShortName.Find[CLR]}) /bct ${Me} //cast "Superior Reviviscence"

/return
 
Macro - Res macro

Users who are viewing this thread

Back
Top
Cart