-
와우(wow) 리치왕의 분노 (3.3.5) 퀘스트 자동 수락 및 완료 애드온취미/게임 2025. 8. 11. 06:42반응형
wow\interface\AddOns\ 폴더 안에 AutoQuest 폴더를 만듭니다.
AutoQuest.toc## Interface: 30300 ## Title: AutoQuest ## Notes: 자동 퀘스트 수락 및 완료 ## Author: Soulowner ## Version: 1.0 AutoQuest.luaAutoQuest.lua
-- 딜레이 함수 local function Delay(delay, func) local waitFrame = CreateFrame("Frame") waitFrame.time = delay waitFrame:SetScript("OnUpdate", function(self, elapsed) self.time = self.time - elapsed if self.time <= 0 then func() self:SetScript("OnUpdate", nil) end end) end -- 안전한 클릭 함수 local function safeClick(button) if button and button:IsShown() and button:IsEnabled() then button:Click() end end -- 보상이 하나일 경우 자동 선택 local function autoSelectSingleReward() if GetNumQuestChoices() == 1 then local rewardButton = QuestInfoRewardButton1 if rewardButton and rewardButton:IsShown() then QuestInfoItem_OnClick(rewardButton) end end end -- 보상 선택 후 완료 버튼 활성화 감지 local function waitForRewardSelection() local elapsedTime = 0 local maxWait = 10 -- 최대 10초 대기 local interval = 0 local watcher = CreateFrame("Frame") watcher:SetScript("OnUpdate", function(self, elapsed) elapsedTime = elapsedTime + elapsed interval = interval + elapsed if interval < 0.2 then return end interval = 0 if QuestFrameCompleteQuestButton and QuestFrameCompleteQuestButton:IsShown() and QuestFrameCompleteQuestButton:IsEnabled() then safeClick(QuestFrameCompleteQuestButton) self:SetScript("OnUpdate", nil) elseif elapsedTime >= maxWait then print("퀘스트 완료 실패: 보상 선택이 감지되지 않음") self:SetScript("OnUpdate", nil) end end) end -- 보상 클릭 후 완료 버튼 자동 클릭을 위한 후킹 hooksecurefunc("QuestInfoItem_OnClick", function() Delay(0.2, function() if QuestFrameCompleteQuestButton and QuestFrameCompleteQuestButton:IsShown() and QuestFrameCompleteQuestButton:IsEnabled() then safeClick(QuestFrameCompleteQuestButton) end end) end) -- 이벤트 처리 프레임 생성 local f = CreateFrame("Frame") f:RegisterEvent("GOSSIP_SHOW") f:RegisterEvent("QUEST_DETAIL") f:RegisterEvent("QUEST_PROGRESS") f:RegisterEvent("QUEST_COMPLETE") f:SetScript("OnEvent", function(_, event) if event == "GOSSIP_SHOW" then local available = GetNumGossipAvailableQuests() local active = GetNumGossipActiveQuests() -- 단일 퀘스트 자동 선택 (0.5초 지연) if available + active == 1 then Delay(1.0, function() if available == 1 then SelectGossipAvailableQuest(1) elseif active == 1 then SelectGossipActiveQuest(1) end end) end elseif event == "QUEST_DETAIL" then Delay(0.1, function() safeClick(QuestFrameAcceptButton) end) elseif event == "QUEST_PROGRESS" then Delay(0.1, function() safeClick(QuestFrameCompleteButton) end) elseif event == "QUEST_COMPLETE" then if GetNumQuestChoices() == 1 then autoSelectSingleReward() Delay(0.2, function() safeClick(QuestFrameCompleteQuestButton) end) else waitForRewardSelection() end end end)반응형'취미 > 게임' 카테고리의 다른 글
와우(wow) 리치왕의 분노 (3.3.5) 몬스터 생명바 밑으로 몬스터가 바라보는 대상자 표시 (1) 2025.08.11 와우(wow) 리치왕의 분노 (3.3.5) 자동 수리 및 잡템 판매 애드온 (3) 2025.08.11 와우 리치왕의 분노 Tuk UI 적 이름표 글자 잘림 해결. (0) 2025.07.04 Shattered Pixel Dungeon Journal(모험일지) (0) 2025.03.18 Shattered Pixel Dungeon allies(아군) (0) 2025.03.16