• Dear Guest,

    You're browsing our forum as a Guest meaning you can only see a portion of the forum in read-only mode.
    To view all forum nodes and be able to create threads/posts please register or log-in with your existing account.

    TwinStar team

Help with XML Editor/addon

Redshadowz

New Member
Joined
Aug 7, 2016
I've been wanting, for some time, to edit the Call to Arms addon. I had already made a modification so that it would scan all chat channels for LFG/LFM messages. And a script for it to auto-join world chat as soon as you logon, but hide the channel(so it doesn't spam your screen).

There are a lot of LFG addons, but all of them suffer from the same problem as Call to Arms, they are all too complex and far too ambitious.


I like the basics of Call to Arms. It has a minimap icon that shows the number of groups it has found. It does a /who to find the level and class of the player found, and then displays it as a list in a window.

But most of its functionality is completely useless. It needs a search bar, it needs a level range, and it needs a list. It doesn't need anything else. And all of that could be placed on a single page.

My problem is, I am not a good programmer, and I need some way to modify the XML code, but all the programs I downloaded don't work for patch 1.12.
 
Well, the problem I'm having isn't the LUA. The problem is basically the menu. Which should be fairly easy with some sort of visualization studio, which allows you to create frames, and apply textures, in a simplified manner.

I can edit the LUA just fine, and code in functions. But the graphics part of creating frames is just too annoying through notepad. I know there are visual studios for building addons. And there are visual studios for other versions of WoW, but none are compatible with 1.12.

With that said, I know there are people developing vanilla addons that are menu/graphics intensive. So I assume they are using some sort of XML editor.

I was thinking maybe they were using the TBC addon editor, creating the frames, and then trying to convert them to be compatible in vanilla. And then programming the functions with a simple editor.
 
pretty much every addon with XML is made without such helper, its not very difficult but you have to know how the XML language and the wow api does work...

when i started to make addons, i used WoW UI Designer v1.1.110, it is very easy to make addon with XML UI elements :)
You can also read out FrameXML with this program, wich gives you fully access to blizzards lua and XML code for the whole UI..

http://www.wowinterface.com/downloads/info4222-WoWUIDesigner.html

this program can not edit XML files that are not made with it thou...

pvw1066upu3i.jpg


edit:

the best solution is to avoid using XML and make everything in lua IMO :)
 
Last edited:
Hmm,
xml is pretty useful. I personally don't like creating frames in lua unless I absolutely need to do it for loop reasons or whatever.
XML is a bit like a better HTML. It is really not difficult.
Just take your time and learn it.

Im using Notepad++ for that, thats all you need, rly.

cheers!
 
Yeah, I downloaded Wow UI Designer, and WoW Addon studio. The Wow UI designer which can be downloaded, is version 1.1.110 and 1.1.109... But both are designed for the 2.0 patch.

The version compatible with our version, is patch 1.0.300.9, but isn't available to download.

Anyway, I had just hoped other people had some insight into more-simply developing addons for vanilla. I shouldn't be surprised, being that almost all of the "new" addons, seem to have no GUI's at all, or very simple ones. The lone exception is vQueue. Which has a very nice interface, but which is completely overdone, and needs to be made simpler and more-broad if it is to be useful.

I figured, whoever made that addon, must be using some kind of visual frame development which works properly for 1.12.
 
Last edited:
Seriously, all you need is a notepad++ and imagination.

Frames are created via CreateFrame function and you can simply use SetBackdrop to have frame visible.

One of my addons with 50 lines of code, look what it does in game:

Code:
rCalVar = {}
CreateFrame("Frame", "rCal", UIParent)
rCal:SetPoint("TOPLEFT",UIParent,"CENTER",-440,270)
rCal:SetPoint("BOTTOMRIGHT",UIParent,"CENTER",440,-270)
rCal:SetBackdrop({
    bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", 
    edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 32, edgeSize = 16,
    insets = { left = 5, right = 5, top = 5, bottom = 5 }});
rCal:SetMovable(1)
rCal:SetResizable(1)
rCal:EnableMouse(1)
rCal:RegisterForDrag("LeftButton", "RightButton")
rCal:SetScript("OnDragStop", function() this:StopMovingOrSizing() end)
rCal:SetScript("OnDragStart", function() if arg1 == "RightButton" then this:StartSizing() else this:StartMoving() end end)


rCal.Day = {"Sunday","Saturday","Friday","Thursday","Wednesday","Tuesday","Monday"}
rCal.Days = {}
for x=1,7 do
    local day = rCal.Day[x]
    rCal.Day[x] = CreateFrame("Frame", nil, rCal)
    rCal.Day[x]:SetBackdrop({
    bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", 
    edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 32, edgeSize = 16,
    insets = { left = 5, right = 5, top = 5, bottom = 5 }});
    rCal.Day[x]:SetPoint("TOPLEFT", rCal, "TOPRIGHT", -(rCal:GetWidth()/14)*(x)-5, 0)
    rCal.Day[x]:SetPoint("BOTTOMRIGHT", rCal, "TOPRIGHT", -(rCal:GetWidth()/14)*(x-1), -30)
    rCal.Day[x].t = rCal.Day[x]:CreateFontString()
    rCal.Day[x].t:SetAllPoints(rCal.Day[x])
    rCal.Day[x].t:SetFont(ChatFrame1:GetFont())
    rCal.Day[x].t:SetText(day)
end
for x=1,7 do --1-7 8-14
    for y=1,5 do
        rCal.Days[x+(y-1)*7] = CreateFrame("Frame")
        rCal.Days[x+(y-1)*7]:SetBackdrop({
    bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", 
    edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 32, edgeSize = 16,
    insets = { left = 5, right = 5, top = 5, bottom = 5 }});
        --rCal.Days[x+(y-1)*7]:SetPoint("TOPLEFT", rCal, "TOPRIGHT",-(rCal:GetWidth()/14)*(x)-5,(y-1)*-(rCal:GetHeight()/7)-15)
        --rCal.Days[x+(y-1)*7]:SetPoint("BOTTOMRIGHT", rCal, "TOPRIGHT",-(rCal:GetWidth()/14)*(x-1),y*-(rCal:GetHeight()/7)-15)
        rCal.Days[x+(y-1)*7]:SetWidth(rCal.Day[x]:GetWidth()-8)
        rCal.Days[x+(y-1)*7]:SetHeight(rCal:GetHeight()/8)
            
        rCal.Days[x+(y-1)*7]:SetPoint("LEFT", rCal.Day[x], "LEFT",0,0)
        rCal.Days[x+(y-1)*7]:SetPoint("TOP", rCal.Day[x], "BOTTOM",0,-(y-1)*rCal.Days[x+(y-1)*7]:GetHeight())-- -y*rCal:GetHeight()/8)
        
        


    
    end
end
 
Top Bottom