Skip to content

Levequest Hand-In Macro #135

@pugsii

Description

@pugsii

Not sure where the best spot to put this, but thought it was worth sharing. Delete if this is inappropriate.

handins = 99
levequest = "Mindful Study"
quest_npc = "Grigge"
handin_npc = "Ahldiyrn"

for i = 1,handins,1 do

    if (GetNodeText("_ToDoList", {8, 11}) == levequest) then
        yield('/echo Levequest already active, skipping')
    else

        -- Quest Accept
        yield('/target ' .. quest_npc)
        yield('/send NUMPAD0')
        while (not IsAddonVisible("Talk")) do yield('/wait 0.1') end
        yield('/click talk')
        yield('/click talk')
        while (not IsAddonVisible("SelectString")) do yield('/wait 0.1') end
        yield('/click select_string2')
        while (not IsAddonVisible("JournalDetail")) do yield('/wait 0.1') end
        yield('/click guild_leve_alchemist')

        -- Unstick JournalDetail (bug with guild_leve_alchemist clicking)
        yield('/click guild_leve_alchemist')
        yield('/send NUMPAD0 <wait.0.1>')
        yield('/send NUMPAD2 <wait.0.1>')
        yield('/send NUMPAD0 <wait.0.1>')

        while (not IsAddonReady("JournalDetail")) do yield('/wait 0.1') end
        text = GetNodeText("JournalDetail", {19})

        if (text == levequest) then
            yield("/echo Correct levequest found!")
            yield("/click journal_detail_accept <wait.0.5>")
            yield("/send ESCAPE")
            while (not IsAddonVisible("SelectString")) do yield('/wait 0.1') end
            yield("/send ESCAPE <wait.0.5>")
        else
            yield('/send NUMPAD8 <wait.0.1>')
            yield('/send NUMPAD0 <wait.0.1>')

            while (not IsAddonVisible("JournalDetail")) do yield('/wait 0.1') end
            text = GetNodeText("JournalDetail", {19})
 
            if (text == levequest) then
                yield("/echo Correct levequest found!")
                yield("/click journal_detail_accept <wait.0.5>")
                yield("/send ESCAPE")
                while (not IsAddonVisible("SelectString")) do yield('/wait 0.1') end
                yield("/send ESCAPE <wait.0.5>")
            else
                yield("/echo Levequest not found!")
            end
        end
    end

    -- Quest Hand In

    yield('/target ' .. handin_npc)
    yield('/send NUMPAD0')
    while (not IsAddonVisible("Talk")) do yield('/wait 0.1') end
    yield('/click talk')
    yield('/click talk')
    yield('/wait 0.5')
    yield('/click request_hand_over')
    while (not IsAddonReady("SelectYesno")) do yield('/wait 0.1') end
    yield('/click select_yes')
    while (not IsAddonVisible("Talk")) do yield('/wait 0.1') end
    yield('/click talk')
    yield('/click talk')
    while (not IsAddonVisible("Talk")) do yield('/wait 0.1') end
    yield('/click talk')
    yield('/click talk')
    while (not IsAddonReady("JournalResult")) do yield('/wait 0.1') end
    yield('/click journal_result_complete <wait.1>')

    yield('/echo Complete ' .. tostring(i) .. '/' .. tostring(handins))
end

This macro requires the auto-handin plugin, but should be editable to not require it. Would love some additions to the clicklib to script clicking any button (maybe by searching NodeText). Bit of a bug with the click guildleve command which has a workaround.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions