zorker / rothui

Just a bunch of stuff I wrote for World of Warcraft
MIT License
105 stars 56 forks source link

rObjectiveTracker with "World Quest Tracker" causes LUA error #22

Closed joker-119 closed 8 years ago

joker-119 commented 8 years ago

Using the newest version of rObjectiveTracker, in addition to the addon World Quest Tracker(http://www.wowinterface.com/downloads/info23999-WorldQuestTracker.html) causes the following error: `x ...rfaceWorldQuestTracker\WorldQuestTracker-r45.lua:4165: attempt to index local 'relativeTo' (a nil value) ...rfaceWorldQuestTracker\WorldQuestTracker-r45.lua:4165: in function RefreshAnchor ...rfaceWorldQuestTracker\WorldQuestTracker-r45.lua:4717: in function RefreshTrackerWidgets ...rfaceWorldQuestTracker\WorldQuestTracker-r45.lua:4839: in function UpdateQuestsInArea ...rfaceWorldQuestTracker\WorldQuestTracker-r45.lua:4891: in function <...rfaceWorldQuestTracker\WorldQuestTracker.lua:4884> ...rfaceWorldQuestTracker\WorldQuestTracker-r45.lua:4916: in function <...rfaceWorldQuestTracker\WorldQuestTracker.lua:4915> [C]: in function ObjectiveTracker_Update ...zzard_ObjectiveTracker\Blizzard_ObjectiveTracker.lua:749: in function <...zzard_ObjectiveTracker\Blizzard_ObjectiveTracker.lua:661>

Locals: (for index) = 1 (for limit) = 1 (for step) = 1 i = 1 point = "RIGHT" relativeTo = nil relativePoint = "RIGHT" xOfs = -190.99998474121 yOfs = 91 (_temporary) = "RIGHT" (_temporary) = nil (_temporary) = 91 (_temporary) = nil (_temporary) = nil (_temporary) = nil (_temporary) = nil (_temporary) = nil (_temporary) = nil (_temporary) = nil (_temporary) = nil (_temporary) = "attempt to index local 'relativeTo' (a nil value)" WorldQuestTracker =

{ LastUpdate = 0 QUEST_COMMENTS =
{ } CancelTimer = defined @ClassTimer\Libs\AceTimer-3.0\AceTimer-3.0.lua:145 GetQuest_Info = defined @WorldQuestTracker\WorldQuestTracker.lua:1266 UnregisterComm = defined @AskMrRobot\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181 Cache_ShownQuestOnWorldMap =
{ } CheckTimeLeftOnQuestsFromTracker_Load = defined @WorldQuestTracker\WorldQuestTracker.lua:4009 QueuedRefresh = 1 IconPick = defined @WorldQuestTracker\libs\DF\panel.lua:1094 GetTemplate = defined @WorldQuestTracker\libs\DF\fw.lua:1005 mapTables =
{ } SetDefaultModulePrototype = defined @AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:440 SetBountyAmountCompleted = defined @WorldQuestTracker\WorldQuestTracker.lua:6421 PlayLoadingAnimation = defined @WorldQuestTracker\WorldQuestTracker.lua:6403 GetAllWorldQuests_Ids = defined @WorldQuestTracker\WorldQuestTracker.lua:886 MapOpenedAt = 0 ScheduleTimer = defined @ClassTimer\Libs\AceTimer-3.0\AceTimer-3.0.lua:92 ShowPromptPanel = defined @WorldQuestTracker\libs\DF\panel.lua:1783 RegisterMessage = defined @AskMrRobot\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118 Msg = defined @WorldQuestTracker\libs\DF\fw.lua:287 CreateScrollBar = defined @WorldQuestTracker\libs\DF\scrollbar.lua:7 ShowPanicWarning = defined @WorldQuestTracker\libs\DF\panel.lua:1436 SendCommMessage = defined @AskMrRobot\Libs\AceComm-3.0\AceComm-3.0.lua:84 db =
{ } UnregisterAllComm = defined @AskMrRobot\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:202 SetEnabledState = defined @AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:455 ShowTutorialAlertFrame = defined @WorldQuestTracker\libs\DF\fw.lua:727 QuestTrackList =
{ } RefreshStatusBar = defined @WorldQuestTracker\WorldQuestTracker.lua:1428 HideZoneWidgets = defined @WorldQuestTracker\WorldQuestTracker.lua:1776 LastWorldMapClick = 0 OnInit = defined @WorldQuestTracker\WorldQuestTracker.lua:431 GetQuestReward_Resource = defined @WorldQuestTracker\WorldQuestTracker.lua:1206 WaitUntilWorldMapIsClose = defined @WorldQuestTracker\WorldQuestTracker.lua:424 OnInitialize = defined @WorldQuestTracker\libs\DF\addon.lua:15 NewModule = defined @AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:266 CanShowWorldMapWidgets = defined @WorldQuestTracker\WorldQuestTracker.lua:839 MapSeason = 0 PLAYER_STARTED_MOVING = defined @WorldQuestTracker\WorldQuestTracker.lua:4520 GetQuestFilterTypeAndOrder = defined @WorldQuestTracker\WorldQuestTracker.lua:5680 table =
{ } ColorPick = defined @WorldQuestTracker\libs\DF\panel.lua:1070 CreateButton = defined @WorldQuestTracker\libs\DF\button.lua:921 CreateSwitch = defined @WorldQuestTracker\libs`

This error does not exist in World Quest Tracker version r45, but it does in r50. The line to which the error refers to is: if (relativeTo:GetName() == "ObjectiveTrackerFrameMover") then local top, left = ObjectiveTrackerFrameMover:GetTop(), ObjectiveTrackerFrameMover:GetLeft() WorldQuestTrackerScreenPanel:SetPoint ("top", UIParent, "top", 0, (yOfs - WorldQuestTracker.TrackerHeight - 20) - abs (top-GetScreenHeight())) WorldQuestTrackerScreenPanel:SetPoint ("left", UIParent, "left", -10 + xOfs + left, 0) else WorldQuestTrackerScreenPanel:SetPoint (point, relativeTo, relativePoint, -10 + xOfs, yOfs - WorldQuestTracker.TrackerHeight - 20) end

This was put into r50 as a fix for MoveAnything, however, it seems to cause it to break with your addon. I'm at a loss as to why this is happening, so I hoped your amazing codeing skill could work on a fix. I've confirmed that it IS infact rObjectiveTracker that causes the error to present itself.

zorker commented 8 years ago

That has nothing to do with my addon. WorldQuestTracker is getting the variable "relativeTo" which seems to be nil. They need to catch the nil case.

if (relativeTo and relativeTo:GetName() == "ObjectiveTrackerFrameMover") then

You may also be able to fix it by changing the default point in the rObjectiveTracker config to a point that has a relativeTo object. https://github.com/zorker/rothui/blob/master/wow7.0/rObjectiveTracker/core.lua#L22

point = { "TOPRIGHT", UIParent, "TOPRIGHT", -120, -220 },