Thread Tools Display Modes
11-21-14, 12:49 AM   #1
Tegara
A Murloc Raider
Join Date: May 2013
Posts: 5
Addon to expedite finished missions

Hi,

I'm loving WoD and the whole Followers/Missions thingy but...

Whenever I log in i've got at least x4 toons who all have about 6 or more completed missions that have to be finalised. At first I thought the whole animation of the followers going jumpy jumpy and punching the air was kinda cute but now it's just time consuming.

Is there an addon that could once I open the mission table, with just one click, it will just complete everything without having to do it for each and every follower? I'm not even slightly interested if the missions failed or not cause I often send followers on missions with a low seccess rate just to earn the base XP.

Thanx in advance.
  Reply With Quote
11-21-14, 03:43 AM   #2
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 2,326
I've been trying to make this happen myself. The code I wrote kind of works, but not 100%. I've been running into situations where missions would ignore the request to be marked as turned in and would require multiple passes to complete.
__________________
WoWInterface AddOns
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)
  Reply With Quote
11-21-14, 06:11 AM   #3
sezz
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Apr 2008
Posts: 158
Originally Posted by SDPhantom View Post
I've been trying to make this happen myself. The code I wrote kind of works, but not 100%. I've been running into situations where missions would ignore the request to be marked as turned in and would require multiple passes to complete.
I'm having the same issue since beta, currently using a 0.25sec timer if #(C_Garrison.GetCompleteMissions()) > 0. I hate the solution, but it works for now.

Same problems with follower list updates, C_Garrison.GetFollowers() isn't always up to date...
  Reply With Quote
11-21-14, 07:22 AM   #4
Tonyleila
A Molten Giant
 
Tonyleila's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 758
There is an addon called Breeze to speed it up very much:
http://www.curse.com/addons/wow/breeze
__________________
Author of: LeilaUI and Aurora: Missing Textures
__________________
  Reply With Quote
11-21-14, 02:59 PM   #5
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 2,326
For now, I got the OnFinished handlers on the animations to trigger the next logical step. This makes it play more like a movie without the need for interaction. I might end up hiding the next button and seeing how it turns out visually.
__________________
WoWInterface AddOns
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)
  Reply With Quote
11-21-14, 06:10 PM   #6
Tegara
A Murloc Raider
Join Date: May 2013
Posts: 5
Well Tonyleila, I have to say that the Breeze addon sure lives up to its name. It's made things a lot faster and far less boring.

In that strange Utopia that resides somewhere within my WoW psyche, I'll still dream of just one clicking the "View Completed Missions" button and having them all auto-complete but until then, this will do nicely.

I never acquired the skill to write addons so I appreciate the work and effort everyone puts into the addon community. Now, I gotta run. I'm on a mission(s)!
  Reply With Quote
11-21-14, 09:50 PM   #7
sezz
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Apr 2008
Posts: 158
Originally Posted by SDPhantom View Post
For now, I got the OnFinished handlers on the animations to trigger the next logical step. This makes it play more like a movie without the need for interaction. I might end up hiding the next button and seeing how it turns out visually.
I just complete them all in the background using C_Garrison.MarkMissionComplete(missionID) and C_Garrison.MissionBonusRoll(missionID) depending on .state, but sometimes GarrisonMissionList_UpdateMissions() doesn't update the mission list and I have to reopen the table...

Also couldn't find a way to tell if a mission failed or was successful, so I don't output rewards.

http://youtu.be/FdMo8hdc4rY

Too much issues for a release
  Reply With Quote
11-22-14, 05:11 AM   #8
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 2,326
I ended up going with a two way approach. When GARRISON_MISSION_NPC_OPENED fires, I run a scanner that reruns itself every half second until there are no completed quests. I also have GARRISON_MISSION_FINISHED directly call C_Garrison.MarkMissionComplete() using the passed mission id and trigger a delayed scan to make sure everything was caught. I handle looting with GARRISON_MISSION_COMPLETE_RESPONSE checking C_Garrison.CanOpenMissionChest() and running C_Garrison.MissionBonusRoll() if true.



Note: GARRISON_MISSION_COMPLETE_RESPONSE should fire in response to C_Garrison.MarkMissionComplete() with info on whether the mission succeeded or not. It isn't reliable right now as it only seems to fire on successful missions.
__________________
WoWInterface AddOns
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)
  Reply With Quote
11-22-14, 05:25 AM   #9
p3lim
A Pyroguard Emberseer
 
p3lim's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2007
Posts: 1,710
Here's what I use, seems to work fine for me atleast:

Lua Code:
  1. local lastMissionID
  2. local function QueryMissions()
  3.     local missions = C_Garrison.GetCompleteMissions()
  4.     if(#missions > 0) then
  5.         lastMissionID = missions[1].missionID
  6.         C_Garrison.MarkMissionComplete(lastMissionID)
  7.     else
  8.         GarrisonMissionFrame.MissionTab.MissionList.CompleteDialog:Hide()
  9.     end
  10. end
  11.  
  12. Handler('GARRISON_MISSION_NPC_OPENED', QueryMissions)
  13. Handler('GARRISON_MISSION_COMPLETE_RESPONSE', function(missionID, canComplete, success)
  14.     if(missionID == lastMissionID and canComplete) then
  15.         if(success and C_Garrison.CanOpenMissionChest(missionID)) then
  16.             C_Garrison.MissionBonusRoll(missionID)
  17.             return
  18.         end
  19.  
  20.         C_Timer.After(1/2, QueryMissions)
  21.     end
  22. end)
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Search/Requests » Addon to expedite finished missions


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off