• 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
Resource icon

Release Summon.lua - Navigate to nearst summoner in GL, Hail and say summon 1.3

No permission to download
Joined
Nov 23, 2006
RedCents
935¢
neophys submitted a new resource:

Summon.lua - Navigate to nearst summoner in GL, Hail and say summon - Could possibly be done in a 1 liner, but this was a learning experience

Will find the nearest corpse summoner in Guild lobby, navigating to it without targeting, stopping at a random distance from the summoner, hailing and at random interval say Summon.

It could be done in a multiline command but this was a learning experience, and it worked great when working on Vex Thal mission and having to summon a full group every wipe :)

Read more about this resource...
 
Minor feedback on the code - you're using string.format but then not using any formatting strings. string.format lets you use %s as a placeholder so that you can separate your string from the substitutions.

Second bit of feedback: instead of using mq.cmd("/Lua stop summon") you should just return or mq.exit(). using the command isn't as reliable (it may still keep running for a few instructions after the command is sent) and will break if the file is renamed.
 
This has been a great help. Thank you!

I have been trying to expand it to include running into the GL from PoK.

In my ignorance I have stumbled upon an extremely sloppy way to do it by adding this to the top:

Code:
local mq = require("mq")
math.randomseed(os.time())

if mq.TLO.Zone.ID() == 202 then
        mq.cmdf('/easyfind "Guild Lobby"', click)
        mq.delay(60000)
end

if mq.TLO.Zone.ID() == 344 then

    local rnDistanceToSummoner = math.random(20, 70)
    local rnSaySummonWaitTime = math.random(2000,15000)
    local priestID = mq.TLO.NearestSpawn('npc Priest of Luclin').ID() 

    print(string.format('\agNearest priest ID is:\aw'.. priestID))
    print(string.format('\ag - Navigating to \aw'.. rnDistanceToSummoner.. ' distance of him'))
    print(string.format('\ag - Waiting \aw'.. rnSaySummonWaitTime.. '\ag to say \awSUMMON' ))

    while true
    do
            if mq.TLO.Spawn(priestID).Distance() > 50 then
            print(string.format('\ag Spawn: \ay'.. mq.TLO.Spawn(priestID).Name().. '\ag found at \ar'.. math.floor(mq.TLO.Spawn(priestID).Distance()).. ' \agdistance'))
                mq.cmdf('/nav id %s distance=%s', priestID,rnDistanceToSummoner)       
        

            while mq.TLO.Spawn(priestID).Distance() > rnDistanceToSummoner do
                print(string.format('\ag ... Still more than \ar'.. rnDistanceToSummoner.. '\ag distance to priest'))
                    mq.delay(2000)
            end
              end
        mq.cmdf('/tar id %s', priestID)
         mq.delay(2000)
         mq.cmd("/h")
         mq.delay(rnSaySummonWaitTime)
         mq.cmd("/say Summon")
         mq.cmd("/lua stop Summon")
    end
end

If I do not add the delay it will end the mac and not continue once it zones into the GL.

I know there is an easy way to keep it from ending without the delay, I am just not edjumacated enough to figure it out yet...🤪

Thanks again for taking the time to make this so I can save so much time later! 😁
 
[CODE lang="Lua" title="Run to Guild Lobby"]---@type Mq
local mq = require("mq")

local TLO = mq.TLO
local Me = TLO.Me

if mq.TLO.Zone.ID() == 202 then
mq.cmd.travelto('guildlobby')

while (mq.TLO.Zone.ID() ~= 344) do
mq.delay(50)
end
end

while (Me.Zoning()) do
mq.delay(50)
end

mq.delay(100)

if mq.TLO.Zone.ID() == 344 then
print("I'm here in the Guild Lobby")
end[/CODE]

This code does what you want.
 
Thank you SO much! Works perfect!

[CODE lang="lua" title="Run to Guild Lobby"]---@type Mq
local mq = require("mq")

local TLO = mq.TLO
local Me = TLO.Me

if mq.TLO.Zone.ID() == 202 then
mq.cmd.travelto('guildlobby')

while (mq.TLO.Zone.ID() ~= 344) do
mq.delay(50)
end
end

while (Me.Zoning()) do
mq.delay(50)
end

mq.delay(100)

if mq.TLO.Zone.ID() == 344 then
print("I'm here in the Guild Lobby")
end[/CODE]

This code does what you want.
 
Hey @neophys Can't send you a message directly, so I'm dropping this in here for you. Take what you want from it (or nothing, it's your script :)).

Did some updates based on the feedback from @brainiac and the comments from @wisperin to run from PoK. Tweaks of my own to bring a character in closer and not delay as long.

Good script to do the simple, straightforward task.
 

Attachments

Is there a way this Lua could pop a healer merc to res the corpse after summoning it?
 
The soulbinder in the lobby is a "priest" too.

Being bound next to them, the script tried to use them...
 
@Magoo I tested it next to the soulbinder and got a "priest of luclin" when i ran script. I use the below to find the "Priest of Luclin" which doesnt match with the soulbinder. Can you test again on a single character?

Lua:
    local priestID = TLO.NearestSpawn('npc Priest of Luclin').ID()
 
@EQ_Fan

Writing this without being able to test it atm.

At line 48 insert the following:
Lua:
if mq.TLO.Mercenart.State() ~= "ACTIVE" then
         mq.cmd("/nomodkey /notify MMGW_ManageWnd MMGW_SuspendButton LeftMouseUp")
end

If should check if a mercenary is different than state ACTIVE and if so click the suspendbutton.
 
@Magoo I tested it next to the soulbinder and got a "priest of luclin" when i ran script. I use the below to find the "Priest of Luclin" which doesnt match with the soulbinder. Can you test again on a single character?

Lua:
    local priestID = TLO.NearestSpawn('npc Priest of Luclin').ID()
I'll try to remember next time I need to summon.
 
Repeated tonight.

Standing 20 units in front of High Priest of Luclin (Soulbinder)
/Lua run summon
Nearest priest ID is 11397
Soulbinder ${Target.ID} is 11397
Targets and says summon.

You might need the "A" in front of your name here,
Code:
local priestID = TLO.NearestSpawn('npc A Priest of Luclin').ID()
 
Last edited:
Will update ressource on Saturday, when I am back home. I were testing in the side of guildhall with high priestess and from the middle of the throne room.

Thanks for the update magoo
 
Question about something I saw here. How did you know a travelto() method existed on the cmd object? Not sure I've seen a resource that details that (or maybe I did and just didn't recognize it)
I would probably have ended up using a / string

[CODE title="Command"]mq.cmd.travelto('guildlobby')[/CODE]
 
I believe mq.cmd (and it's sub-commands) returns after issuing the command to the EQ client. Any code using such should follow up with verification logic the command is doing what's expected by checking defined outcomes.
 
Release Summon.lua - Navigate to nearst summoner in GL, Hail and say summon

Users who are viewing this thread

Back
Top
Cart