WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   AddOn Help/Support (https://www.wowinterface.com/forums/forumdisplay.php?f=3)
-   -   SyncUI help (https://www.wowinterface.com/forums/showthread.php?t=55648)

cbdgv 08-16-17 06:34 AM

SyncUI help
 
Bags.lua Show Artifact Relic Item Level? Thank you:banana:

Code:


local _G, tinsert, tremove = _G, table.insert, table.remove
local buttonSize, maxRows, perRow, perBankRow, dropDownItemID = 38, 15, 8, 10
local ItemCategories = {
        [1] = INVENTORY_TOOLTIP,
        [2] = NEW,
        [3] = BAG_FILTER_TRADE_GOODS,
        [4] = BAG_FILTER_CONSUMABLES,
        [5] = BAG_FILTER_EQUIPMENT,
        [6] = BAG_FILTER_EQUIPMENT.." (BoE)",
}
local deleteQueue = {
        [0] = {},
        [1] = {},
        [2] = {},
        [3] = {},
        [4] = {},
}


-- Misc functions
local function SellGreyItems()
        for bagID = 0, NUM_BAG_SLOTS do
                for slot = 1, GetContainerNumSlots(bagID) do
                        local itemID = GetContainerItemID(bagID,slot)
                       
                        if itemID then
                                local quality = select(3, GetItemInfo(itemID))
                               
                                if quality and quality == 0 then
                                        UseContainerItem(bagID,slot)
                                end
                        end
                end
        end
end

local function SortContainer(a, b)
        if a == nil or b == nil then
                return false
        end
       
        if a.rarity ~= b.rarity then
                if a.rarity and b.rarity then
                        return a.rarity > b.rarity
                elseif a.rarity == nil or b.rarity == nil then
                        return a.rarity and true or false
                else
                        return false
                end
        elseif a.ilvl ~= b.ilvl then
                if a.ilvl and b.ilvl then
                        return a.ilvl > b.ilvl
                elseif a.ilvl == nil or b.ilvl == nil then
                        return a.ilvl and true or false
                else
                        return false
                end
        elseif a.type ~= b.type then
                return a.type < b.type
        elseif a.name ~= b.name then
                return a.name < b.name
        else
                return a.count < b.count
        end
end

local function SortReagents(a, b)
        if a == nil or b == nil then return false end
       
        if a.type ~= b.type then
                if a.type and b.type then
                        return a.type > b.type
                elseif a.type == nil or b.type == nil then
                        return a.type and true or false
                else
                        return false
                end
        elseif a.rarity ~= b.rarity then
                return a.rarity > b.rarity
        elseif a.name ~= b.name then
                return a.name < b.name
        elseif a.count ~= b.count then
                return a.count < b.count
        else
                return false
        end
end

local function SortEmptySlot(self)
        if not self.DropSlot then return end
       
        for k, v in pairs(self.buttons) do
                if v == self.DropSlot then
                        tremove(self.buttons,k)
                end
        end
       
        tinsert(self.buttons,self.DropSlot)
end

local function isBank(bagID)
        for _, value in pairs({-1,5,6,7,8,9,10,11}) do
                if bagID == value then
                        return true
                end
        end
       
        return false
end

local function isEnabled(container, button)
        if container.buttons then
                for _, ref in pairs(container.buttons) do
                        if ref == button then
                                return false
                        end
                end

                return true
        end
end

local function SplitStacks(button, split)
        SplitContainerItem(button:GetParent():GetID(), button:GetID(), split)
end               


-- Assign / Remove Functions
local function CreateNewContainer()
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local numDefault = #ItemCategories
        local numTotal = numDefault + #dataBase or 0
       
        -- Bags
        for index = numDefault + 1, numTotal do
                do -- Bags
                        local container = _G["SyncUI_BagFrame_Container"..index]
                        local parent = SyncUI_BagFrame.ScrollFrame.ScrollChild
                       
                        if not container then
                                local prevFrame = _G["SyncUI_BankFrame_Container"..index-1]
                               
                                container = CreateFrame("Frame", "SyncUI_BagFrame_Container"..index, parent, "SyncUI_ItemContainerTemplate")
                                container:SetPoint("TOPLEFT", prevFrame, "BOTTOMLEFT")
                                container:SetID(index)
                                container:Hide()
                        end
                end
               
                do -- Bank
                        local container = _G["SyncUI_BankFrame_Container"..index]
                        local parent = SyncUI_BankFrame.Normal.ScrollFrame.ScrollChild
                       
                        if not container then
                                container = CreateFrame("Frame","SyncUI_BankFrame_Container"..index,parent,"SyncUI_ItemContainerTemplate")
                                container:SetPoint("TOPLEFT",_G["SyncUI_BankFrame_Container"..index-1],"BOTTOMLEFT")
                                container:SetID(index)
                                container:Hide()
                        end
                end
        end
end

local function AddButtonToContainer(container, button)
        button.container = container
       
        if container == SyncUI_BankFrame_ReagentBank then
                for k, v in pairs(container.buttons) do
                        if v == button then
                                return
                        end
                end       
        end
       
        table.insert(container.buttons,button)
end

local function RemoveButtonFromContainer(container, button)
        for i, ref in pairs(container.buttons) do
                if button == ref then
                        table.remove(container.buttons,i)
                end
        end
end


-- Get Info Functions
local function isEquip(itemID)
        local isEquip = select(9, GetItemInfo(itemID))
       
        if isEquip ~= "" and isEquip ~= "INVTYPE_BAG" then
                return true
        end
       
        return
end

local function isBoE(bagID, slot)
        local scanTooltip = SyncUI_ScanTooltip
       
        if scanTooltip then
                local limit = min(4, scanTooltip:NumLines())
               
                scanTooltip:ClearLines()
                scanTooltip:SetBagItem(bagID, slot)

                for i = 2, limit do
                        local text = _G[scanTooltip:GetName().."TextLeft"..i]:GetText()

                        if text and text:find(ITEM_BIND_ON_EQUIP) then
                                return text                       
                        end
                end
               
                return false
        end
end

local function GetNumContainers()
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local standard = #ItemCategories
        local custom = #dataBase or 0
       
        return standard + custom
end

local function GetNumContainerRows(container, isBank)
        local numButtons = #container.buttons
        local numRows;
       
        if isBank then
                numRows = math.ceil(numButtons/perBankRow)
        else
                numRows = math.ceil(numButtons/perRow)
        end
       
        numRows = numRows + 1
       
        if container.collapsed then
                return 1
        end
       
        return numRows
end

local function GetDefaultContainerID(itemID, bagID, slot)
        local quality = select(3, GetItemInfo(itemID))
        local itemType = select(12, GetItemInfo(itemID))

        if quality == 0 then                        -- Junk
                return 1
        elseif itemType == 7 then                -- Trade Goods
                return 3
        elseif itemType == 0 then                -- Consumables
                return 4
        elseif isEquip(itemID) then                -- Weapons + Armor
                if isBoE(bagID, slot) then
                        return 6
                else
                        return 5
                end
        else
                return 1
        end
end

local function GetContainerID(container, itemID, bagID, slot)
        -- Custom Containers
        for index, name in pairs(SyncUI_Data["Bags"]["ContainerList"]) do
                if container == name then
                        return index + #ItemCategories
                end
        end
       
        -- Base Containers
        for index, name in pairs(ItemCategories) do
                if container == name then
                        return index
                end
        end

        if itemID then
                return GetDefaultContainerID(itemID, bagID, slot)
        end
end

local function GetContainerForItem(bagID, slot)
        local itemID = GetContainerItemID(bagID, slot)
        local newItem = C_NewItems.IsNewItem(bagID, slot)

        if newItem and not SyncUI_IsDev() then
                return SyncUI_BagFrame_Container2
        end
       
        if itemID then
                local dataBase = SyncUI_Data
                local isBank = isBank(bagID)
                local container, index
               
                if dataBase then
                        container = dataBase["Bags"]["ItemList"][itemID]
                end
               
                if container then
                        index = GetContainerID(container, itemID, bagID, slot)
                else       
                        index = GetDefaultContainerID(itemID, bagID, slot)
                end
               
                if isBank then
                        return _G["SyncUI_BankFrame_Container"..index]
                else
                        return _G["SyncUI_BagFrame_Container"..index]
                end
        end
end

local function GetNumFreeSlots(isBank)
        totalFreeSlots = 0
       
        if isBank then
                for bagID = 5, 11 do
                        totalFreeSlots = totalFreeSlots + GetContainerNumFreeSlots(bagID)
                end
               
                totalFreeSlots = totalFreeSlots + GetContainerNumFreeSlots(BANK_CONTAINER)
        else
                for bagID = 0, 4 do
                        totalFreeSlots = totalFreeSlots + GetContainerNumFreeSlots(bagID)
                end
        end
       
        return totalFreeSlots
end

local function GetPrevContainer(self, containerID, isBank)
        local index = containerID - 1
        local container;
       
        if index < 1 then return end
       
        repeat
                if isBank then
                        container = _G["SyncUI_BankFrame_Container"..index]
                else
                        container = _G["SyncUI_BagFrame_Container"..index]
                end
               
                if container:IsShown() then
                        return container:GetName()
                else
                        index = index - 1
                end

        until index == 0
end

local function GetButton(bagID, slot)
        if bagID and slot then
                if bagID == REAGENTBANK_CONTAINER then
                        return _G["SyncUI_BankFrame_ReagentBank_Slot"..slot]
                elseif isBank(bagID) then
                        if bagID == BANK_CONTAINER then
                                return _G["SyncUI_BankFrame_Bag1_Slot"..slot]
                        else
                                return _G["SyncUI_BankFrame_Bag"..bagID-3 .."_Slot"..slot]
                        end
                else
                        return _G["SyncUI_BagFrame_Bag"..bagID+1 .."_Slot"..slot]
                end
        end
end

local function GetItemUpgradeLevel(itemLink)
        if not itemLink or not GetItemInfo(itemLink) then
                return
        end
       
        local scanTooltip = SyncUI_ScanTooltip

        if scanTooltip then
                local limit = min(4, scanTooltip:NumLines())
               
                scanTooltip:ClearLines()
                scanTooltip:SetHyperlink(itemLink)
               
                for i = 2, limit do
                        local text = _G[scanTooltip:GetName().."TextLeft"..i]:GetText()
                        local UPGRADE_LEVEL = gsub(ITEM_LEVEL," %d","")
                       
                        if text and text:find(UPGRADE_LEVEL) then
                                local itemLevel = string.match(text,"%d+")

                                if itemLevel then
                                        return tonumber(itemLevel)
                                end
                        end
                end
        end
end


-- Update Functions
local function UpdateFrameSize(self, numRows, isBank)
        local paddingH, paddingV = 20, 56
        local width = buttonSize * perRow + paddingH
        local height = buttonSize * numRows + paddingV
        local minHeight = buttonSize + paddingV
        local maxHeight = buttonSize * maxRows + paddingV
       
        if isBank then
                width = buttonSize * perBankRow + paddingH
        end
       
        if height > maxHeight then
                height = maxHeight
        elseif height < minHeight then
                height = minHeight
        end
       
        self:SetSize(width,height)
end

local function UpdateScrollChild(self, isBank)
        local scrollFrame = self:GetParent()
        local frame = scrollFrame:GetParent()
        local numRows = 0
        local container
       
        for i = 1, GetNumContainers() do
                if isBank then
                        container = _G["SyncUI_BankFrame_Container"..i]
                else
                        container = _G["SyncUI_BagFrame_Container"..i]
                end
               
                if container and container:IsShown() then
                        numRows = numRows + GetNumContainerRows(container, isBank)
                end
        end

        local height = buttonSize * numRows
       
        self:SetHeight(height)
        UpdateFrameSize(frame, numRows, isBank)
end

local function UpdateContainerAnchors(isBank)
        local container, containerID, containerAnchor;
       
        for i = 1, GetNumContainers() do
                if isBank then
                        container = _G["SyncUI_BankFrame_Container"..i]
                else
                        container = _G["SyncUI_BagFrame_Container"..i]
                end

                if container and container:IsShown() then
                        containerID = container:GetID()
                       
                        if containerID ~= 1 then
                                containerAnchor = GetPrevContainer(container,containerID,isBank)

                                container:ClearAllPoints()
                                container:SetPoint("TOPLEFT",containerAnchor,"BOTTOMLEFT")
                        end
                end
        end
end

local function UpdateContainer(self)
        if not self then return end
       
        local isBank = self:GetName():find("Bank")
        local perRow = perRow
        local numSlots = #self.buttons
       
        table.sort(self.buttons,SortContainer)
        SortEmptySlot(self)
       
        if isBank then
                perRow = perBankRow
        end
               
        for i, button in pairs(self.buttons) do
                local pos = (i-1) % perRow + 1
                local row = math.ceil(i / perRow)
                local xPos = buttonSize * (pos-1)
                local yPos = -buttonSize - (buttonSize * (row-1))
                if self.collapsed then
                        button:Hide()
                else
                        button:Show()
                end
               
                button:ClearAllPoints()
                button:SetPoint("TOPLEFT", self, xPos, yPos)
        end

        if not numSlots or numSlots == 0 then
                if self:GetID() ~= 1 then
                        self:Hide()
                end
        elseif numSlots > 0 then
                local width = buttonSize*perRow
                local numRows = math.ceil(numSlots / perRow)
                local height = (numRows + 1) * buttonSize

                if self.collapsed then
                        height = buttonSize
                end

                self:SetSize(width, height)
                self:Show()
        end

        do        -- Update Header
                local buttonID = self:GetID()
                local adjust = #ItemCategories
                local text
               
                if buttonID <= adjust and buttonID >= 1 then
                        text = ItemCategories[buttonID]
                else
                        text = SyncUI_Data["Bags"]["ContainerList"][buttonID - adjust]
                end
               
                self.Header:SetText(text)
               
                local width = math.ceil(self.Header:GetStringWidth())
                local space;
               
                if width % 2 == 0 then
                        space = 12
                else
                        space = 13
                end
               
                self.Header:SetWidth(width+space)
        end
       
        UpdateContainerAnchors(isBank)
        UpdateScrollChild(self:GetParent(), isBank)
end

local function UpdateAllContainers(isBank)
        for i = 1, GetNumContainers() do
                local container;
               
                if isBank then
                        container = _G["SyncUI_BankFrame_Container"..i]
                else
                        container = _G["SyncUI_BagFrame_Container"..i]
                end
               
                UpdateContainer(container)
        end
end

local function UpdateSlot(bagID, slot)
        local button = GetButton(bagID,slot)

        if bagID == REAGENTBANK_CONTAINER then
                local container = SyncUI_BankFrame_ReagentBank
                local itemLink = GetContainerItemLink(bagID, slot)
               
                if button then
                        if itemLink then
                                AddButtonToContainer(container, button)
                        else
                                RemoveButtonFromContainer(container, button)
                        end
                       
                        SyncUI_ItemSlot_ForceUpdate(button, bagID, slot)
                end
               
                SyncUI_ReagentBank_ForceUpdate(container)
        else
                local container = GetContainerForItem(bagID, slot)
               
                if button then
                        SyncUI_ItemSlot_ForceUpdate(button, bagID, slot)
                end
                       
                if container then
                        if button then
                                local isEnabled = isEnabled(container, button)               
                               
                                if button.container and button.container ~= container then
                                        RemoveButtonFromContainer(button.container, button)
                                        UpdateContainer(button.container)
                                end
                               
                                if isEnabled then
                                        AddButtonToContainer(container, button)
                                        UpdateContainer(container)
                                end
                        end
                elseif button and button.container then
                        RemoveButtonFromContainer(button.container, button)
                        UpdateContainer(button.container)
                end
        end
end

local function UpdateBag(bagID)
        local numSlots = GetContainerNumSlots(bagID)
       
        for slot = 1, numSlots do
                UpdateSlot(bagID,slot)
        end
end

local function UpdateAllBags(isBank)
        if isBank then
                if not SyncUI_BankFrame:IsShown() then
                        return
                end
               
                for _, bagID in pairs({-1,5,6,7,8,9,10,11}) do
                        UpdateBag(bagID)
                end
        else
                for bagID = 0, 4 do
                        UpdateBag(bagID)
                end
        end
end

local function UpdateBankBagSlots()
        local numSlots, full = GetNumBankSlots()
        local cost = GetBankSlotCost(numSlots)
        local purchaseButton = SyncUI_BankFrame.BagFrame.Purchase
       
        for i = 1, NUM_BANKBAGSLOTS, 1 do
                local button = SyncUI_BankFrame.BagFrame["Bag"..i]

                local textureName = GetInventoryItemTexture("player",button:GetInventorySlot())
                local slotTextureName = select(2, GetInventorySlotInfo("Bag"..i))
               
                if textureName then
                        button.icon:SetTexture(textureName)
                        button.icon:Show()
                        SetItemButtonCount(button, GetInventoryItemCount("player", button:GetInventorySlot()))
                        button.hasItem = 1
                elseif slotTextureName and button.isBag then
                        button.icon:SetTexture(slotTextureName)

                        SetItemButtonCount(button,0)
                        button.icon:Show()
                end
               
                if i <= numSlots then
                        SetItemButtonTextureVertexColor(button, 1.0,1.0,1.0)
                        button.tooltipText = BANK_BAG
                else
                        SetItemButtonTextureVertexColor(button, 1.0,0.1,0.1)
                        button.tooltipText = BANK_BAG_PURCHASE
                end
        end
       
        BankFrame.nextSlotCost = cost
       
        if full then
                purchaseButton:Hide()
        else
                purchaseButton:Show()
        end
end

local function UpdateItemDropSlot(self, isBank, isReagent)
        if isReagent then
                local numFreeSlots = 98 - (#self.buttons - 1)
                self.DropSlot.Count:SetText(numFreeSlots)       
        else
                local container = _G[self:GetName().."_Container1"]
                container.DropSlot.Count:SetText(GetNumFreeSlots(isBank))
        end
end

local function UpdateSearchResults(frame)
        local bagID = frame:GetID()
        local numSlots = GetContainerNumSlots(bagID)
       
        for slot = 1, numSlots do
                local button = _G[frame:GetName().."_Slot"..slot]
                local isFiltered = select(8, GetContainerItemInfo(bagID, slot))

                if isFiltered and not button.shouldDelete then
                        button.searchOverlay:Show()
                else
                        button.searchOverlay:Hide()
                end
        end
end

local function UpdateCollapseStates(name, isCollapsed)
        local index = GetContainerID(name)
       
        if index and isCollapsed then
                local container = _G["SyncUI_BagFrame_Container"..index]

                if container then
                        container.Collapse:Click()
                end
        else
                SyncUI_CharData["Bags"][name] = nil
        end
end


-- Global Functions
function SyncUI_ItemSlot_OnLoad(self)
        local bagID = self:GetParent():GetID()
        local slot = self:GetID()
       
        self:RegisterForClicks("LeftButtonUp", "RightButtonUp")
        self:RegisterForDrag("LeftButton")
        self.SplitStack = SplitStacks
        self.container = GetContainerForItem(bagID, slot)
       
        if bagID ~= REAGENTBANK_CONTAINER then
                self.UpdateTooltip = SyncUI_ItemSlot_OnEnter
                self:HookScript("OnClick", SyncUI_ItemSlot_OnClick)
        end

        if self.BattlepayItemTexture then
                self.BattlepayItemTexture:Hide()
        end
       
        self:SetSize(buttonSize, buttonSize)
        self:SetNormalTexture("")
        self:SetPushedTexture("")
        self.IconBorder:SetTexture("")
       
        self.Count:SetFontObject(SyncUI_GameFontNormal_Medium)
        self.Count:ClearAllPoints()
        self.Count:SetPoint("BOTTOMRIGHT",-2,2)
       
        if not self.cooldown then
                self.cooldown = _G[self:GetName().."Cooldown"]
                self.cooldown:ClearAllPoints()
                self.cooldown:SetPoint("TOPLEFT",self.icon)
                self.cooldown:SetPoint("BOTTOMRIGHT",self.icon)
                self.cooldown:SetFrameLevel(self:GetFrameLevel())
                SyncUI_Cooldown_OnRegister(self.cooldown)
        end
end

function SyncUI_ItemSlot_OnEnter(self)
        local bagID = self:GetParent():GetID()
        local slot = self:GetID()
        local x = self:GetRight()

        if x >= (GetScreenWidth() / 2) then
                GameTooltip:SetOwner(self, "ANCHOR_LEFT")
        else
                GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
        end

        local showSell = nil
        local hasCooldown, repairCost, speciesID, level, breedQuality, maxHealth, power, speed, name = GameTooltip:SetBagItem(bagID, slot)
       
        -- Battle Pets
        if speciesID and speciesID > 0 then
                BattlePetToolTip_Show(speciesID, level, breedQuality, maxHealth, power, speed, name)
                return
        else
                if BattlePetTooltip then
                        BattlePetTooltip:Hide()
                end
        end

        -- Repair Mode
        if InRepairMode() and (repairCost and repairCost > 0) then
                GameTooltip:AddLine(REPAIR_COST, nil, nil, nil, true)
                SetTooltipMoney(GameTooltip, repairCost)
                GameTooltip:Show()
        elseif MerchantFrame:IsShown() and MerchantFrame.selectedTab == 1 then
                showSell = 1
        end

        -- Modifier
        if IsControlKeyDown() and IsAltKeyDown() and bagID ~= REAGENTBANK_CONTAINER then
                SetCursor("INTERACT_CURSOR")
        elseif IsModifiedClick("DRESSUP") and self.hasItem then
                ShowInspectCursor()
        elseif showSell then
                ShowContainerSellCursor(bagID,slot)
        elseif self.readable then
                ShowInspectCursor()
        else
                ResetCursor()
        end
end

function SyncUI_ItemSlot_OnClick(self, button)
        local bagID = self:GetParent():GetID()
        local slot = self:GetID()
       
        if IsControlKeyDown() and IsAltKeyDown() then
                if #SyncUI_Data["Bags"]["ContainerList"] > 0 then
                        dropDownItemID = GetContainerItemID(bagID,slot)
                        SyncUI_DropDownMenu_Toggle(self.DropDown, nil, "TOPLEFT", self, "TOPRIGHT", -1, 1)
                        PlaySound("igMainMenuOptionCheckBoxOn")
                end
        elseif (IsAltKeyDown() and button == "LeftButton" and bagID <= 4 and bagID >= 0) then
                if self.shouldDelete then
                        local isFiltered = select(8, GetContainerItemInfo(bagID, slot))
                       
                        if isFiltered then
                                self.searchOverlay:Show()
                        end
                       
                        self.delete:Hide()
                        self.shouldDelete = false
                        deleteQueue[bagID][slot] = nil
                else
                        self.delete:Show()
                        self.searchOverlay:Hide()
                        self.shouldDelete = true
                        deleteQueue[bagID][slot] = true
                end
        end
end
 
function SyncUI_ItemSlot_OnUpdate(self, elapsed)
        if not self.timer then
                self.timer = 0
        end
       
        self.timer = self.timer + elapsed
       
        while self.timer > 1 do
                local bagID = self:GetParent():GetID()
                local slot = self:GetID()
                local start, duration, isEnabled = GetContainerItemCooldown(bagID, slot)
               
                if isEnabled then
                        CooldownFrame_Set(self.cooldown,start,duration,isEnabled)
                end
               
                self.timer = self.timer - 1
        end
end

function SyncUI_ItemSlot_ForceUpdate(self, bagID, slot)
        local itemLink = GetContainerItemLink(bagID, slot)

        if itemLink then
                local texture, itemCount, locked, rarity, readable = GetContainerItemInfo(bagID, slot)
                local noValue, itemID = select(9, GetContainerItemInfo(bagID, slot))
                local isQuest, questID, isActive = GetContainerItemQuestInfo(bagID, slot)
                local isEquip = isEquip(itemLink)
                local itemLevel = select(4, GetItemInfo(itemLink))
               
                SetItemButtonTexture(self, texture)
                SetItemButtonCount(self, itemCount)
                SetItemButtonDesaturated(self, locked)
               
                -- Quality Indicator
                if isQuest or questID then
                        self.quality:SetVertexColor(0.8,0.6,0)
                        self.quality:Show()                       
                elseif not rarity or rarity <= 1 then
                        self.quality:Hide()
                else
                        local c = ITEM_QUALITY_COLORS[rarity]
                        self.quality:SetVertexColor(c.r,c.g,c.b)
                        self.quality:Show()
                end
               
                -- Quest Indicator
                if questID and not isActive then
                        self.quest:Show()
                else
                        self.quest:Hide()
                end

                -- Junk Indicator
                if self.JunkIcon then
                        if rarity == LE_ITEM_QUALITY_POOR and not noValue then
                                self.JunkIcon:Show()
                        else
                                self.JunkIcon:Hide()
                        end
                end

                -- Rarity
                if itemID == 110560 or itemID == 6948 or itemID == 140192 then
                        self.rarity = 10
                else
                        self.rarity = rarity
                end
               
                -- Stacks + iLvl
                if isEquip then
                        local itemLevelUpgrade = GetItemUpgradeLevel(itemLink)
                       
                        if itemLevelUpgrade then
                                itemLevel = itemLevelUpgrade
                        end
                       
                        SetItemButtonCount(self, itemLevel)
                        self.Count:SetVertexColor(1,0.8,0)
                else
                        self.Count:SetVertexColor(1,1,1)
                end
               
                self.hasItem = true
                self.name = GetItemInfo(itemLink)
                self.type = select(7, GetItemInfo(itemLink))
                self.count = itemCount
                self.ilvl = itemLevel
                self.readable = readable               

                if not (self.container and self.container.collapsed) then
                        self:Show()
                end
        else
                self.hasItem = nil
                self:Hide()
        end

        if self.delete then
                if bagID <= 4 and bagID >= 0 then
                        deleteQueue[bagID][slot] = nil
                end
       
                self.shouldDelete = nil
                self.delete:Hide()
        end
end

function SyncUI_ItemSlot_InitDropDown(self, level)
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local bagID = self:GetParent():GetParent():GetID()
        local slot = self:GetParent():GetID()
        local itemID = GetContainerItemID(bagID,slot)
       
        if itemID then
                local itemName,_,quality = GetItemInfo(itemID)
                local colorCode = "|c"..select(4, GetItemQualityColor(quality or 0))
               
                local info = {}
                info.text = itemName
                info.colorCode = colorCode
                info.isTitle = true
                info.justifyH = "CENTER"
                info.height = 20
                SyncUI_DropDownMenu_AddButton(info, level)
        end
       
        local info = {}
        info.isDivider = true
        SyncUI_DropDownMenu_AddButton(info, level)
       
        local info = {}
        info.text = RESET_TO_DEFAULT
        info.clickFunc = function(self) SyncUI_ItemDropDownButton_OnClick(self) end
        SyncUI_DropDownMenu_AddButton(info, level)
       
        local info = {}
        info.isDivider = true
        SyncUI_DropDownMenu_AddButton(info, level)
       
        for index, containerName in pairs(dataBase) do
                local info = {}
                info.buttonID = index
                info.text = containerName
                info.clickFunc = function(self) SyncUI_ItemDropDownButton_OnClick(self) end
                SyncUI_DropDownMenu_AddButton(info, level)
        end
       
        local info = {}
        info.isDivider = true
        SyncUI_DropDownMenu_AddButton(info, level)
       
        local info = {}
        info.text = CANCEL
        info.height = 20
        info.clickFunc = function(self) self:GetParent():Hide() end
        SyncUI_DropDownMenu_AddButton(info, level)
end

function SyncUI_ItemDropDownButton_OnClick(self, button)
        local itemID = dropDownItemID
        local dataBase = SyncUI_Data["Bags"]["ItemList"]
        local category = self:GetText()       
        local buttonID = self:GetID()
       
        if itemID then
                if buttonID > 0 then
                        dataBase[itemID] = category
                else
                        dataBase[itemID] = nil
                end
        end
       
        UpdateAllBags()
        UpdateAllBags(true)
end

function SyncUI_DropItemSlot_OnClick(self)
        local container = self:GetParent():GetName()
        local containerID = self:GetParent():GetID()
       
        -- Bank
        if (container:find("Bank") and container:find("Container1")) then
                for _, bagID in pairs({-1,5,6,7,8,9,10,11}) do
                        for slot = 1, GetContainerNumSlots(bagID) do
                                if not GetContainerItemInfo(bagID,slot) then
                                        return PickupContainerItem(bagID, slot)
                                end
                        end
                end
        end
       
        -- Reagent Bank
        if containerID == REAGENTBANK_CONTAINER then
                for slot = 1, GetContainerNumSlots(containerID) do
                        if not GetContainerItemInfo(containerID, slot) then
                                return PickupContainerItem(containerID, slot)
                        end
                end
        end
       
        -- Normal Bags
        for bagID = 0, 4 do
                for slot = 1, GetContainerNumSlots(bagID) do
                        if not GetContainerItemInfo(bagID,slot) then
                                if InCombatLockdown() then
                                        if bagID == 0 then
                                                return PutItemInBackpack()
                                        else
                                                return PutItemInBag(bagID + 19)
                                        end
                                else
                                        return PickupContainerItem(bagID, slot)
                                end
                        end
                end
        end
       
        return false
end

function SyncUI_ItemContainer_Collapse(self)
        local container = self:GetParent()
        local index = container:GetID()
        local name = ItemCategories[index] or SyncUI_Data["Bags"]["ContainerList"][index-#ItemCategories]
        local isBank = container:GetName():find("Bank")
       
        if not self:GetChecked() then
                container.collapsed = false
               
                if not isBank then
                        SyncUI_CharData["Bags"][name] = nil
                end
        else               
                container.collapsed = true
               
                if not isBank then
                        SyncUI_CharData["Bags"][name] = true
                end
        end
       
        UpdateContainer(container)
end


do        -- Check Bag AddOns
        local BagAddons = {"Bagnon", "ArkInventory", "cargBags_Nivaya", "AdiBags", "Inventorian", "LiteBag", "Baggins"}

        for _, addon in pairs(BagAddons) do
                if IsAddOnLoaded(addon) then
                        return
                end
        end
end


-- Bag Functions
function SyncUI_BagFrame_OnLoad(self)
        tinsert(UISpecialFrames, self:GetName())
       
        hooksecurefunc("ToggleAllBags", SyncUI_BagFrame_Toggle)
       
        self:RegisterEvent("INVENTORY_SEARCH_UPDATE")
        self:RegisterEvent("MERCHANT_SHOW")
        self:RegisterEvent("MERCHANT_CLOSED")
        self:RegisterEvent("MAIL_SHOW")
        self:RegisterEvent("MAIL_CLOSED")
        self:RegisterEvent("AUCTION_HOUSE_SHOW"        )
        self:RegisterEvent("AUCTION_HOUSE_CLOSED")
        self:RegisterEvent("QUEST_ACCEPTED")
        self:RegisterEvent("QUEST_REMOVED")
        self:RegisterEvent("BAG_UPDATE")
        self:RegisterEvent("BAG_NEW_ITEMS_UPDATED")
        self:RegisterEvent("ADDON_LOADED")
       
        for i = 1, 13 do
                SyncUI_DisableFrame("ContainerFrame"..i)
        end
       
        ContainerFrameItemButton_OnEnter = function() end
end

function SyncUI_BagFrame_OnEvent(self, event, ...)
        if event == "INVENTORY_SEARCH_UPDATE" then
                for i = 1, 5 do
                        local bag = _G[self:GetName().."_Bag"..i]
                        UpdateSearchResults(bag)
                end
               
                for i = 1, 8 do
                        local bag = _G["SyncUI_BankFrame_Bag"..i]
                        UpdateSearchResults(bag)
                end

                UpdateSearchResults(SyncUI_BankFrame_ReagentBank)
        end
       
        if event == "MERCHANT_SHOW" or event == "MAIL_SHOW" or event == "AUCTION_HOUSE_SHOW" then
                SyncUI_BagFrame:Show()
               
                if event == "MERCHANT_SHOW" then
                        local profile = SyncUI_GetProfile()
                       
                        if profile.Options.Misc.AutoSellJunk then
                                SellGreyItems()
                        end
                        if profile.Options.Misc.AutoRepair then
                                if profile.Options.Misc.UseGuildRepair and CanGuildBankRepair() then
                                        local repairCost = GetRepairAllCost()
                                        local amount = GetGuildBankWithdrawMoney()
                                        local guildMoney = GetGuildBankMoney()
                                       
                                        if amount == -1 then
                                                amount = guildMoney
                                        else
                                                amount = min(amount, guildMoney)
                                        end
                                       
                                        if amount >= repairCost then
                                                RepairAllItems(true)
                                        else
                                                RepairAllItems()
                                        end
                                else
                                        RepairAllItems()
                                end
                        end
                end
        end
       
        if event == "MERCHANT_CLOSED" or event == "MAIL_CLOSED" or event == "AUCTION_HOUSE_CLOSED" then
                SyncUI_BagFrame:Hide()
        end

        if event == "QUEST_ACCEPTED" or event == "QUEST_REMOVED" then
                UpdateAllBags()
        end
       
        if event == "ITEM_LOCKED" then
                local button = GetButton(...)
                if button then
                        button.icon:SetDesaturated(true)
                end
        end

        if event == "ITEM_UNLOCKED" then
                local button = GetButton(...)
                if button then
                        button.icon:SetDesaturated(false)
                end
        end       

        if event == "BAG_UPDATE" then
                local bagID = ...
               
                UpdateBag(bagID)

                if bagID < 0 or bagID > 4 then
                        UpdateItemDropSlot(SyncUI_BankFrame,true)
                else
                        UpdateItemDropSlot(self)
                end
               
                if MerchantFrame:IsShown() then
                        local profile = SyncUI_GetProfile()
                       
                        if profile.Options.Misc.AutoSellJunk then
                                SellGreyItems()
                        end
                end
        end

        if event == "BAG_NEW_ITEMS_UPDATED" then
                UpdateAllBags()
        end
       
        if event == "ADDON_LOADED" and ... == "SyncUI" then
                CreateNewContainer()
               
                if SyncUI_CharData["Bags"] then
                        for name, isCollapsed in pairs(SyncUI_CharData["Bags"]) do
                                UpdateCollapseStates(name, isCollapsed)
                        end
                else
                        SyncUI_CharData["Bags"] = {}
                end
        end
end

function SyncUI_BagFrame_OnShow(self)
        self:RegisterEvent("ITEM_LOCKED")
        self:RegisterEvent("ITEM_UNLOCKED")
       
        if not self.firstTime then
                UpdateAllBags()
                UpdateAllContainers()
                UpdateItemDropSlot(self)
               
                self.firstTime = true
        end
end

function SyncUI_BagFrame_OnHide(self)
        SyncUI_DropDownMenu_Hide()
        SyncUI_BagCategoryMenu:Hide()
       
        self:UnregisterEvent("ITEM_LOCKED")
        self:UnregisterEvent("ITEM_UNLOCKED")

        C_NewItems.ClearAll()
        UpdateAllBags()
end

function SyncUI_BagFrame_Toggle()
        --if SyncUI_BagFrame:IsShown() and not BankFrame:IsShown() then
        if SyncUI_BagFrame:IsShown() then
                SyncUI_BagFrame:Hide()
        else
                SyncUI_BagFrame:Show()
        end
end

function SyncUI_BagFrame_BagContainer_OnLoad(self)
        self:SetBackdropColor(1,1,1,0.75)
       
        for i = 0, 3 do
                local button = _G["CharacterBag"..i.."Slot"]
               
                button.Highlight = button:GetHighlightTexture()
       
                button:SetParent(self)
                button:SetSize(32,32)
                button:ClearAllPoints()
                button:SetPoint("TOPLEFT",self,13+buttonSize*i,-13)
                button:SetNormalTexture("")
                button:SetPushedTexture("")
                button:SetCheckedTexture("")
                button.IconBorder:SetAlpha(0)
                button.icon:SetTexCoord(0.075,0.925,0.075,0.925)
                button:HookScript("OnUpdate", function(self)
                        PaperDollItemSlotButton_Update(self)
                end)       
               
                if button.Highlight then
                        button.Highlight:ClearAllPoints()
                        button.Highlight:SetPoint("CENTER")
                        button.Highlight:SetSize(32,32)
                        button.Highlight:SetColorTexture(1,1,1,0.25)
                end
       
                button.border = button:CreateTexture(nil,"BORDER")
                button.border:SetSize(42,42)
                button.border:SetPoint("CENTER")
                button.border:SetTexture(SYNCUI_MEDIA_PATH.."ActionBars\\ActionButton_Small")
                button.border:SetTexCoord(0,0.1640625,0,0.65625)
               
                button.glass = button:CreateTexture(nil,"OVERLAY")
                button.glass:SetSize(buttonSize, buttonSize)
                button.glass:SetPoint("CENTER",0,0)
                button.glass:SetTexture(SYNCUI_MEDIA_PATH.."ActionBars\\ActionButton_Small")
                button.glass:SetTexCoord(0.3125,0.4609375,0,0.59375)
        end
end

function SyncUI_BagFrame_DeleteItems(self)
        local string = ""
       
        for bagID, slots in pairs(deleteQueue) do
                for slot, canDelete in pairs(slots) do
                        if canDelete then
                                PickupContainerItem(bagID, slot)
                                DeleteCursorItem()
                               
                                string = string .. GetContainerItemLink(bagID, slot)
                        end
                end
        end
       
        if string ~= "" then
                print(SYNCUI_STRING_UI_LABEL.." - Deleted Items: "..string)
        end
       
        deleteQueue = {
                [0] = {},
                [1] = {},
                [2] = {},
                [3] = {},
                [4] = {},
        }
end


-- Bank Functions
function SyncUI_BankSlot_OnEnter(self)
        GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
        GameTooltip:SetInventoryItem("player", self:GetInventorySlot())
        GameTooltip:Show()
end

function SyncUI_BankBag1_OnLoad(self)
        self:SetID(BANK_CONTAINER)
       
        for i = 1, self:GetNumChildren() do
                local button = _G[self:GetName().."_Slot"..i]

                button.GetInventorySlot = ButtonInventorySlot
                button.UpdateTooltip = SyncUI_BankSlot_OnEnter
                button:SetScript("OnEnter", SyncUI_BankSlot_OnEnter)
        end
end

function SyncUI_BankFrame_OnShow(self)
        BankFrame:Show()
        BankFrame:UnregisterAllEvents()
        BankFrame.selectedTab = 1
       
        SyncUI_BagFrame:Show()
       
        self.Normal:Show()
        self.Reagent:Hide()

        if not self.firstTime then
                UpdateAllContainers(true)
                UpdateAllBags(true)
                UpdateAllContainers(true)
                UpdateBankBagSlots()
                UpdateItemDropSlot(self,true)
               
                self.firstTime = true
        end
end

function SyncUI_BankFrame_OnLoad(self)
        BankFrame:UnregisterAllEvents()
        BankFrame:SetPoint("TOPRIGHT",UIParent,"TOPLEFT")

        self:RegisterEvent("BANKFRAME_OPENED")
        self:RegisterEvent("BANKFRAME_CLOSED")
        self:RegisterEvent("PLAYERBANKSLOTS_CHANGED")
        self:RegisterEvent("PLAYERBANKBAGSLOTS_CHANGED")

        UIPanelWindows[self:GetName()] = { area = "left", pushable = 0, width = 464 }
end

function SyncUI_BankFrame_OnEvent(self, event, ...)
        if event == "BANKFRAME_OPENED" then               
                ShowUIPanel(self)
        end
       
        if event == "BANKFRAME_CLOSED" then
                HideUIPanel(self)
        end
       
        if event == "PLAYERBANKSLOTS_CHANGED" then
                UpdateAllBags(true)
                UpdateBankBagSlots()
                UpdateItemDropSlot(self,true)
        end
       
        if event == "PLAYERBANKBAGSLOTS_CHANGED" then
                UpdateBankBagSlots()
                UpdateItemDropSlot(self,true)
        end
end

function SyncUI_BankFrame_Switch()
        local frame = BankFrame
        local normal = SyncUI_BankFrame.Normal       
        local reagent = SyncUI_BankFrame.Reagent
       
        if frame.selectedTab == 2 then
                normal:Show()
                reagent:Hide()
                frame.selectedTab = 1
        else
                normal:Hide()
                reagent:Show()
                frame.selectedTab = 2
        end
end


-- Reagent Bank Functions
function SyncUI_ReagentBank_OnLoad(self)
        self:RegisterEvent("REAGENTBANK_PURCHASED")
        self:RegisterEvent("REAGENTBANK_UPDATE")
        self:RegisterEvent("PLAYERREAGENTBANKSLOTS_CHANGED")
        self:SetID(REAGENTBANK_CONTAINER)
        self.buttons = {}
       
        for i = 1, 98 do
                local button = _G["SyncUI_BankFrame_ReagentBank_Slot"..i]
               
                SyncUI_ItemSlot_OnLoad(button)
               
                table.insert(self.buttons,button)
        end
end

function SyncUI_ReagentBank_OnShow(self)
        UpdateBag(self:GetID())
       
        if not IsReagentBankUnlocked() then
                self.UnlockFrame:Show()
                self.DropSlot:Hide()
                self.Deposite:Hide()
                self.Restack:Hide()
        end
end

function SyncUI_ReagentBank_OnEvent(self, event, ...)
        if event == "REAGENTBANK_PURCHASED" then
                self.UnlockFrame:Hide()
                self.DropSlot:Show()
                self.Deposite:Show()
                self.Restack:Show()
                SyncUI_BankFrame.Normal.Deposite:Enable()
                SyncUI_ReagentBank_ForceUpdate(self)
        end
       
        if event == "REAGENTBANK_UPDATE" then
                UpdateBag(self:GetID())
        end
       
        if event == "PLAYERREAGENTBANKSLOTS_CHANGED" then
                UpdateSlot(self:GetID(),...)
        end
end

function SyncUI_ReagentBank_ForceUpdate(self)
        local paddingH, paddingV = 20, 56
       
        table.sort(self.buttons, SortReagents)
        SortEmptySlot(self)
       
        for i, button in pairs(self.buttons) do
                local pos = (i-1) % perBankRow + 1
                local row = math.ceil(i / perBankRow)
                local xPos = 15 + (buttonSize * (pos-1))
                local yPos = -15 - (buttonSize * (row-1))
       
                button:ClearAllPoints()
                button:SetPoint("TOPLEFT",self.ContentLayer,xPos,yPos)
        end
       
        local numSlots = #self.buttons
        local width = buttonSize * perBankRow + paddingH
        local height = math.ceil(numSlots / perBankRow) * buttonSize + paddingV

        if not IsReagentBankUnlocked() then
                height = 4 * buttonSize + paddingV
        end
       
        self:SetSize(width, height)
       
        UpdateItemDropSlot(self,false,true)
end


-- Category Menu
local maxLines = 7
local dragID, newID

local function UpdateLineState(self)
        local lineID = self:GetID()
       
        if dragID then
                if dragID == lineID then
                        self:SetButtonState("PUSHED", true)
                        self:GetFontString():SetVertexColor(1,1,1)
                        self:SetAlpha(1)
                else
                        self:SetButtonState("NORMAL")
                       
                        if self:IsMouseOver() or lineID == newID then
                                self:GetFontString():SetVertexColor(0.4,1,0)
                                self:SetAlpha(1)
                        else
                                self:GetFontString():SetVertexColor(1,1,1)
                                self:SetAlpha(0.5)
                        end
                end
        else
                self:SetButtonState("NORMAL")
                self:GetFontString():SetVertexColor(1,1,1)
                self:SetAlpha(1)
        end
end

function SyncUI_BagCategoryMenu_OnShow(self)
        self.ScrollFrame.ScrollBar:SetValue(0)
        SyncUI_BagCategoryMenu_UpdateScrollFrame(self.ScrollFrame)
end

function SyncUI_BagCategoryMenu_AddCategory()
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local frame = SyncUI_BagCategoryMenu
        local scrollFrame = frame.ScrollFrame
        local editBox = frame.EnterName
        local text = editBox:GetText()

        if text == "" or text == nil or (text:gsub("%s","") == "") then
                return
        end

        tinsert(dataBase,text)

        editBox:SetText("")
        scrollFrame.ScrollBar:SetValue(0)
       
        SyncUI_BagCategoryMenu_UpdateScrollFrame(scrollFrame)
        SyncUI_DropDownMenu_Hide()
       
        CreateNewContainer()
        UpdateAllBags()
        UpdateAllBags(true)
end

function SyncUI_BagCategoryMenu_UpdateScrollFrame(self)
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local offset = self.offset
        local size = #dataBase
       
        SyncUI_ScrollFrame_Update(self, size, maxLines, 20)
       
        for i = 1, maxLines do
                local line = SyncUI_BagCategoryMenu["Line"..i]
                local lineID = offset + i
               
                line:SetID(lineID)
               
                if dragID and line:IsMouseOver() then
                        newID = lineID
                end
               
                UpdateLineState(line)
               
                SyncUI_BagCategoryLine_Update(line)
        end       
end

function SyncUI_BagCategoryLine_Update(self)
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local index = self:GetID()

        if dataBase[index] then
                local name = dataBase[index]
               
                if name then
                        self:SetText(name)
                end
               
                if not self:IsShown() then
                        self:Show()
                end
        else
                self:Hide()
                return
        end
end

function SyncUI_BagCategoryLine_Delete(self)
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local scrollFrame = self:GetParent().ScrollFrame
        local name = dataBase[self:GetID()]
       
        tremove(dataBase, self:GetID())
        scrollFrame.ScrollBar:SetValue(0)
        SyncUI_BagCategoryMenu_UpdateScrollFrame(scrollFrame)
        SyncUI_DropDownMenu_Hide()

        UpdateAllBags()
        UpdateAllBags(true)
end

function SyncUI_BagCategoryLine_OnEnter(self, isLine)
        local line = isLine and self or self:GetParent()
       
        if dragID then
                newID = line:GetID()
                UpdateLineState(line)
        else
                line.Delete:SetAlpha(1)
        end
end

function SyncUI_BagCategoryLine_OnLeave(self, isLine)
        local line = isLine and self or self:GetParent()
       
        if dragID then
                newID = nil
                UpdateLineState(line)
        end
       
        if not line:IsMouseOver() then
                line.Delete:SetAlpha(0)
        end       
end

function SyncUI_BagCategoryLine_OnDragStart(self)
        if dragID then
                return
        else
                dragID = self:GetID()
        end

        self.Delete:SetAlpha(0)
               
        for i = 1, maxLines do
                local line = self:GetParent()["Line"..i]
               
                UpdateLineState(line)
        end
       
        SyncUI_BagCategoryLine_OnLeave(self, true)
end

function SyncUI_BagCategoryLine_OnDragStop(self)
        local dataBase = SyncUI_Data["Bags"]["ContainerList"]
        local name = dataBase[dragID]

        if newID and newID ~= dragID then
                tremove(dataBase, dragID)
                tinsert(dataBase, newID, name)
                SyncUI_BagCategoryMenu_UpdateScrollFrame(self:GetParent().ScrollFrame)
               
                UpdateAllBags()
                UpdateAllBags(true)
        end
       
        dragID, newID = nil, nil
       
        for i = 1, maxLines do
                local line = self:GetParent()["Line"..i]
               
                if line:IsMouseOver() then
                        line.Delete:SetAlpha(1)
                end
               
                UpdateLineState(line)
        end
end


syncrow 08-16-17 06:53 AM

Do you mean the item level of the relic itself or ilvl gain for your artifact weapon?

cbdgv 08-16-17 10:06 AM

1 Attachment(s)
Quote:

Originally Posted by syncrow (Post 324654)
Do you mean the item level of the relic itself or ilvl gain for your artifact weapon?

Hello, see figure

And Add ItemSets custom

Thank you

syncrow 08-16-17 10:21 AM

You have to change the isEquip function at line 190 like this:

Lua Code:
  1. local function isEquip(itemID)
  2.     local isEquip = select(9, GetItemInfo(itemID))
  3.     local isRelic = select(7, GetItemInfo(itemID)) == "Artifact Relic" and true or false;
  4.    
  5.     if isRelic or (isEquip ~= "" and isEquip ~= "INVTYPE_BAG") then
  6.         return true
  7.     end
  8.    
  9.     return
  10. end

Note: GetItemInfo returns the subclass string localized. You might change "Artifact Relic" for your client language

cbdgv 08-16-17 10:38 AM

1 Attachment(s)
Quote:

Originally Posted by syncrow (Post 324657)
You have to change the isEquip function at line 190 like this:

Lua Code:
  1. local function isEquip(itemID)
  2.     local isEquip = select(9, GetItemInfo(itemID))
  3.     local isRelic = select(7, GetItemInfo(itemID)) == "Artifact Relic" and true or false;
  4.    
  5.     if isRelic or (isEquip ~= "" and isEquip ~= "INVTYPE_BAG") then
  6.         return true
  7.     end
  8.    
  9.     return
  10. end

Note: GetItemInfo returns the subclass string localized. You might change "Artifact Relic" might be changed for your client language


hi,Modified no change

syncrow 08-16-17 10:41 AM

Quote:

Originally Posted by cbdgv (Post 324659)
hi,Modified no change

Like I said, you might have to figure out the "artifact relic" localized string for your client language.

Lua Code:
  1. local isRelic = select(7, GetItemInfo(itemLink)) == EJ_LOOT_SLOT_FILTER_ARTIFACT_RELIC and true or false;

This should also mark every artifact relic as potential "Equip", if you might wonder why the relics will be handled like weapons / Armor

cbdgv 08-16-17 10:53 AM

Quote:

Originally Posted by syncrow (Post 324660)
Like I said, you might have to figure out the "artifact relic" localized string for your client language.

Lua Code:
  1. local isRelic = select(7, GetItemInfo(itemLink)) == EJ_LOOT_SLOT_FILTER_ARTIFACT_RELIC and true or false;

This should also mark every artifact relic as potential "Equip", if you might wonder why the relics will be handled like weapons / Armor


:banana::banana::banana::banana::banana:
:p:p:p:p
thank you very much
Show ilvl

Can you help again?
And Add ItemSets custom

syncrow 08-16-17 11:02 AM

Quote:

Originally Posted by cbdgv (Post 324661)
Can you help again? & add ItemSets custom

The default containers are designed for common item management: like equip, trade goods, consumables...

Everything else can be customized using the container manager.
Just create a custom container & add your items to it.

cbdgv 08-16-17 11:07 AM

Quote:

Originally Posted by syncrow (Post 324662)
The default containers are designed for common item management: like equip, trade goods, consumables...

Everything else can be customized using the container manager.
Just create a custom container & add your items to it.

I am currently the case, but the equipment will often change, every time to increase or remove.
A bit of trouble

lightspark 08-16-17 06:03 PM

You can also use 12th and 13th returns of GetItemInfo to check for artefact relics, this way you don't need to care about client locale.

Lua Code:
  1. local function isEquip(itemID)
  2.     local equipLoc, _, _, classID, subClassID = select(9, GetItemInfo(itemID))
  3.  
  4.     if (classID == 3 and subClassID == 11) or (equipLoc ~= "" and equipLoc ~= "INVTYPE_BAG") then
  5.         return true
  6.     end
  7.  
  8.     return
  9. end

cbdgv 08-16-17 10:54 PM

Quote:

Originally Posted by lightspark (Post 324666)
You can also use 12th and 13th returns of GetItemInfo to check for artefact relics, this way you don't need to care about client locale.

Lua Code:
  1. local function isEquip(itemID)
  2.     local equipLoc, _, _, classID, subClassID = select(9, GetItemInfo(itemID))
  3.  
  4.     if (classID == 3 and subClassID == 11) or (equipLoc ~= "" and equipLoc ~= "INVTYPE_BAG") then
  5.         return true
  6.     end
  7.  
  8.     return
  9. end

thank you
Syncrow has helped me solve the problem
Your method is better

Can you help again?
And Add ItemSets custom:p

Stuartcutting 10-03-17 09:48 AM

Does SyncUI work with legion then? I loved that UI so much and have never managed to find one as good since.


All times are GMT -6. The time now is 09:54 AM.

vBulletin © 2020, Jelsoft Enterprises Ltd
© 2004 - 2020 MMOUI