Quantcast Hiding Minimap Quest Arrow - WoWInterface
Thread Tools Display Modes
10-17-14, 01:35 PM   #1
Annika
A Murloc Raider
Join Date: Oct 2014
Posts: 6
Hiding Minimap Quest Arrow

Hi everyone,

I'm not sure if it's the done thing to make a thread asking for help as your first post, but this is driving me up the wall. Very simply, I'm looking for a way to hide the gold arrow that points to quest objectives, or, if that's not possible removing the entire minimap cluster (think this can be done with MoveAnything) and then getting a minimap replacement which roughly mirrors the hunter and gatherer tracking of the original.

Any help would be gratefully received, I really, really hate this thing!
  Reply With Quote
10-17-14, 01:56 PM   #2
semlar
A Pyroguard Emberseer
 
semlar's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2007
Posts: 1,014
It's built into the minimap. Your only option, aside from physically replacing the arrow texture (which I don't think even works), is to un-track the quest it's pointing to.

Try this..
Lua Code:
  1. SetSuperTrackedQuestID(0)
  2. hooksecurefunc('SetSuperTrackedQuestID', function(questID) if questID ~= 0 then SetSuperTrackedQuestID(0) end end)
  Reply With Quote
10-17-14, 02:00 PM   #3
Annika
A Murloc Raider
Join Date: Oct 2014
Posts: 6
Thanks for your reply! None of the quests it's pointing to are tracked in the Quest Tracking thing, if that's what you mean?

I'll be completely honest here and admit that I have no idea what you've just given me. I've only today discovered add-ons, in an attempt to get rid of this cursed thing, ahem... Any chance you could tell me what I'm googling so I can try to apply it? Again, much appreciated!
  Reply With Quote
10-17-14, 02:03 PM   #4
semlar
A Pyroguard Emberseer
 
semlar's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2007
Posts: 1,014
Alright, just paste that script into http://addon.bool.no and it'll generate an addon for you.
  Reply With Quote
10-17-14, 02:20 PM   #5
Annika
A Murloc Raider
Join Date: Oct 2014
Posts: 6
OMG it works! Thank you SO much, that was driving me mad! Really appreciate it!
  Reply With Quote
10-17-14, 04:48 PM   #6
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 1,726
Originally Posted by semlar View Post
Lua Code:
  1. SetSuperTrackedQuestID(0)
  2. hooksecurefunc('SetSuperTrackedQuestID', function(questID) if questID ~= 0 then SetSuperTrackedQuestID(0) end end)
Hooking a function then unwittingly calling it from itself is dangerously close to sending Lua into an infinite loop by recursive calling. You can avoid this by storing the old function and calling that directly instead of calling it normally and running your hook again.
Lua Code:
  1. local oldfunc=SetSuperTrackedQuestID;
  2. hooksecurefunc('SetSuperTrackedQuestID', function() oldfunc(0); end);

Note hooksecurefunc() creates a new function just like any manual hooking method would. The only difference is it bypasses the taint mechanic.
__________________
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)

Last edited by SDPhantom : 10-17-14 at 04:51 PM.
  Reply With Quote
10-17-14, 05:04 PM   #7
semlar
A Pyroguard Emberseer
 
semlar's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2007
Posts: 1,014
It's not an infinite loop because it stops when you pass 0 to the function.
  Reply With Quote
10-17-14, 05:24 PM   #8
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 1,726
Hence the phrasing dangerously close. I know your code checks and counters for it. I'm just offering an alternative that wouldn't run the risk of recursive calling.
__________________
"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
08-21-16, 12:12 PM   #9
Annika
A Murloc Raider
Join Date: Oct 2014
Posts: 6
So, after two years of blessed arrow-free gameplay, it's BACK and the addon that Semlar so kindly wrote all that time ago is not doing anything for it this time. Is there anything that can be done about it in a post-Legion Azeroth?

Any assistance much appreciated!
  Reply With Quote
08-21-16, 08:45 PM   #10
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,567
Check the "Load out of date addons" option on the addon manager screen. Nothing about the functions used in Semlar's code has changed in the patch, so the addon should still work just fine, but the game automatically disables "out of date" addons for major patches.

Once you've verified that it works, open the .toc file in the addon's folder and change the number after "## Interface:" to "70000". This will tell the game that it's no longer "out of date".
__________________
Author/maintainer of Grid, PhanxChat, oUF_Phanx, and many more.
Troubleshoot an addonTurn any code into an addonMore addon resources
Need help with your code? Post all of your actual code! Attach or paste your files.
Please don’t PM me about addon bugs or code questions. Post a comment or forum thread instead!
  Reply With Quote
08-22-16, 06:29 AM   #11
jeffy162
A Pyroguard Emberseer
 
jeffy162's Avatar
AddOn Author - Click to view addons
Join Date: May 2009
Posts: 2,185
Why not just get the Hide Quest Arrow addon? True, it's on Curse.com instead of WoWInterface.com, and it's out-of-date, but, it still works just fine.
__________________
Ahhhh, the vagueries of the aging mind. Wait.... What was I saying?


Carbonite <----- GitHub main module (Maps ONLY) download link. The other modules are also available on GitHub.
  Reply With Quote
08-22-16, 08:53 AM   #12
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,567
The code in that addon is identical to what's posted in this thread.
__________________
Author/maintainer of Grid, PhanxChat, oUF_Phanx, and many more.
Troubleshoot an addonTurn any code into an addonMore addon resources
Need help with your code? Post all of your actual code! Attach or paste your files.
Please don’t PM me about addon bugs or code questions. Post a comment or forum thread instead!
  Reply With Quote
09-10-16, 04:53 AM   #13
Annika
A Murloc Raider
Join Date: Oct 2014
Posts: 6
Sorry it took me such a long time to come back, work got heavy and I didn't have a chance to try it out today. It works, yay! Thank you both so much for taking the time to help, really, really appreciate it!
  Reply With Quote
05-06-17, 12:10 PM   #14
Annika
A Murloc Raider
Join Date: Oct 2014
Posts: 6
Resurrecting this thread because Blizzard has found a new and exciting way to screw with me: The add-on very helpfully posted in this thread (thank you again!) still works, but now has the unfortunate side effect of not making it impossible to read quest text in the quest log, which makes thing a little awkward.

Anyone have any idea if it is fixable, please? (Pretty, pretty please and thank you!)
  Reply With Quote
11-09-17, 04:41 AM   #15
stianhoiland
A Kobold Labourer
Join Date: Nov 2017
Posts: 1
Annika:

This one took a while to track down, but I figured it out.

There is some code in Interface/AddOns/Blizzard_ObjectiveTracker/Blizzard_QuestObjectiveTracker.lua that constantly effectively checks GetSuperTrackedQuestID(), and if it's 0 (which is what we set it to every time SetSuperTrackedQuestID() is called) it is deemed invalid and the closest quest is calculated and SetSuperTrackedQuestID() is called with that quest's questID.

Since the code in Blizzard_QuestObjectiveTracker.lua constantly checks, we get a call to SetSuperTrackedQuestID() probably every frame, since we immediately override by setting it to 0 again:

Lua Code:
  1. hooksecurefunc('SetSuperTrackedQuestID', function(questID)
  2.   if questID ~= 0 then
  3.     SetSuperTrackedQuestID(0)
  4.   end
  5. end)

The reason this prevents viewing quest details is that Interface/FrameXML/WorldMapFrame.lua listenes for the SUPER_TRACKED_QUEST_CHANGED event and calls QuestMapFrame_CloseQuestDetails() every time SUPER_TRACKED_QUEST_CHANGED, which is constantly since our code is pinging back and forth with Blizzard's.

To fix this we override the Blizzard function which calls QuestSuperTracking_ChooseClosestQuest():
Lua Code:
  1. QuestSuperTracking_CheckSelection = function()
  2.   return
  3. end
We could also have overridden another immediately relevant function called QuestSuperTracking_IsSuperTrackedQuestValid(), but we don't need to.

EDIT:

As a side note, you can also remove the golden minimap arrow by putting an empty .blp called SuperTrackerArrow.blp in Interface/Minimap. This might be the way forward if Blizzard keeps doing smart things

Last edited by stianhoiland : 11-09-17 at 04:54 AM.
  Reply With Quote
11-09-17, 07:09 AM   #16
Kanegasi
A Flamescale Wyrmkin
 
Kanegasi's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2007
Posts: 143
Originally Posted by stianhoiland View Post
To fix this we override the Blizzard function which calls QuestSuperTracking_ChooseClosestQuest():
Lua Code:
  1. QuestSuperTracking_CheckSelection = function()
  2.   return
  3. end
We could also have overridden another immediately relevant function called QuestSuperTracking_IsSuperTrackedQuestValid(), but we don't need to.
It is not good practice to replace Blizzard functions. Even if it's a minor function called from only one place, it's a good way to cause a taint, no matter what your replacement does.

The simplest way to fix the code in this thread is to use an ID of a quest that doesn't exist instead of 0. According to wowhead, 3 is the next number that brings up nothing.
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Search/Requests » Hiding Minimap Quest Arrow

Thread Tools
Display Modes

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