WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   AddOn Help/Support (https://www.wowinterface.com/forums/forumdisplay.php?f=3)
-   -   Couldn't find frame parent: WorldMapFrameAreaFrame (https://www.wowinterface.com/forums/showthread.php?t=59398)

AeroMaxxD 12-09-22 10:51 AM

Couldn't find frame parent: WorldMapFrameAreaFrame
 
Does anyone know if these frames "WorldMapFrameAreaFrame" and "WorldMapFrameAreaLabel" existed around game version 9.0.1 appreciate this was a long time ago.

Couldn't find frame parent: WorldMapFrameAreaFrame
Couldn't find relative frame: WorldMapFrameAreaLabel

But updating an addon to work with game version 10.0.0.2 and this seems to be the last stumbling block.

If I just ignore it, the addon appears to work ok despite the error, but would still like to fix it if I can.

Xrystal 12-09-22 11:47 AM

Try running the game without the addon to identify the area of the default frame is what you want. Use /fstack and hover over that frame to find the name of the frames underneath the mouse.

I've taken a look at the WorldMapFrame xml layout and nothing remotely similar to those names exist now.

https://www.townlong-yak.com/framexm...d_WorldMap.xml

But doing a compare to 9.0.1 and that file hasn't changed. And very little has changed in the lua file for it.

My suggestion above may be the only way you can identify what you are looking for. Unless someone knows exactly what you are talking about and can help you :)

AeroMaxxD 12-09-22 12:18 PM

Thanks, for the response I didn't know about the /fstack command, my LUA 5.1 reference book is in the post somewhere, but postage strikes here so it's not arrived yet!

Maybe this picture would help?
https://www.curseforge.com/wow/addon...ne/screenshots

The code below appears to be the issue. The LUA code is below that. I believe it's trying to write zone information when you hover over an area on the world map. Adding the name of the instances and their levels in that zone.

Code:

<!-- Map Text -->
<Frame name="TRZ_WorldMap_Frame" parent="WorldMapFrameAreaFrame">
<Scripts>
<OnUpdate>
TRZ_WorldMapButton_OnUpdate(arg1);
</OnUpdate>
</Scripts>
<Layers>
<Layer level="OVERLAY">
<FontString name="TRZ_WorldMap_Text" inherits="GameFontNormalLargeOutline" outline="THICK" virtual="true">
<Anchors>
<Anchor point="TOP" relativeTo="WorldMapFrameAreaLabel" relativePoint="BOTTOM">
<Offset>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
</Frame>

The function below is referenced in the XML file

Code:

function TRZ_WorldMapButton_OnUpdate(arg1)
        local player_level = UnitLevel("player");
        local zoneColor;
        local wZone;
        local wZone2;
        local zoneText="";
        if (WorldMapFrame.areaName ~= nil) then
                wZone=LT:GetMapNameByIDAlt(WorldMapFrame:GetMapID());
                -- Instance display
                if (WorldMapFrameAreaPetLevels:GetText()) then
                        TRZ_WorldMap_Text:SetPoint("TOP", WorldMapFrameAreaPetLevels, "BOTTOM");
                elseif (WorldMapFrameAreaDescription:GetText()) then
                        TRZ_WorldMap_Text:SetPoint("TOP", WorldMapFrameAreaDescription, "BOTTOM");
                else
                        TRZ_WorldMap_Text:SetPoint("TOP", WorldMapFrameAreaLabel, "BOTTOM");
                end
                if ( LT:DoesZoneHaveInstances(wZone) == true ) then
                        local instance;
                        zoneText = TRZ_NORMAL .. TRZ_TOOLTIP_CINSTANCES .. "\n" .. TRZ_FONT_OFF;
                        for instance in LT:IterateZoneInstances(wZone) do
                                zoneText = zoneText .. TRZ_GetInstanceText(instance, true) .. "\n";
                        end
                end
                if (zoneText ~= nil) then
                        TRZ_WorldMap_Text:SetText(zoneText);
                else
                        TRZ_WorldMap_Text:SetText("");
                end
        else
                TRZ_WorldMap_Text:SetText("");
        end

        if (WorldMapFrame.poiHighlight) then
            wZone2=WorldMapFrameAreaLabel:GetText();
                if (not LT:IsZone(wZone2)) then
                        wZone2=WorldMapFrame.areaName;
                end
                wZone2=LT:GetUniqueZoneNameForLookup(wZone2, WorldMapFrame:GetMapID());        -- Fixes issue retrieving instances from newer zones that share a name with older zones.
                if (wZone ~= wZone2) then
                        if (LT:IsZone(wZone2)) then
                                if (LT:GetType(wZone2) == "Zone") then
                                        if ( LT:DoesZoneHaveInstances(wZone2) == true ) then
                                                if (zoneText ~= nil) then
                                                        zoneText = zoneText .. TRZ_NORMAL .. TRZ_TOOLTIP_RINSTANCES .. "\n" .. TRZ_FONT_OFF;
                                                else
                                                        zoneText = TRZ_NORMAL .. TRZ_TOOLTIP_RINSTANCES .. "\n" .. TRZ_FONT_OFF;
                                                end
                                                local instance;
                                                for instance in LT:IterateZoneInstances(wZone2) do
                                                        zoneText = zoneText .. TRZ_GetInstanceText(instance, true) .. "\n";
                                                end
                                        end
                                        if (zoneText ~= nil) then
                                                TRZ_WorldMap_Text:SetText(zoneText);
                                        else
                                                TRZ_WorldMap_Text:SetText("");
                                        end
                                end
                        end
                end
        end
end


Xrystal 12-10-22 01:23 PM

It looks like this frame name never existed in Blizzard. I went back to 8.0.1 and the world map xml hasn't changed. Maybe it is something in Titan Panel. A quick google for the frame name came up with only Titan Panel related comments.

Correction:
It looks like the world map has been changed enough that the name and functionality is different from what it was in 9.0.1 ..

The actual xml with those frames in is https://www.townlong-yak.com/framexm...taProvider.xml

And this template is used in the lua file... and the reason it can't find the frame ? The frame that uses it isn't named.
https://www.townlong-yak.com/framexm...Provider.lua#8

And this appears to be where the World Map adds the data provider for the labels.
https://www.townlong-yak.com/framexm...rldMap.lua#162

First guess ( as I haven't played with map stuff ) is that you need to see if WorldMapFrame.Label returns the same info as the old WorldMapFrameAreaLabel did. The rest of the information is in the first xml file I linked as keys .. so Label.Name and Label.Description. The question is whether self is referencing the WorldMapFrame or not.


All times are GMT -6. The time now is 02:45 PM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI