diff --git a/DataBase.lua b/DataBase.lua
index 898a817..7e16b76 100644
--- a/DataBase.lua
+++ b/DataBase.lua
@@ -26,7 +26,7 @@ function DB.OnLoad(eventCode, addOnName)
--Регистрация эвентов
EVENT_MANAGER:RegisterForEvent("DataBase", EVENT_OPEN_BANK, DB.PL_Opened)
- EVENT_MANAGER:RegisterForEvent("DataBase", EVENT_GUILD_BANK_SELECTED, DB.GB_Selected)
+ -- EVENT_MANAGER:RegisterForEvent("DataBase", EVENT_GUILD_BANK_SELECTED, DB.GB_Selected)
EVENT_MANAGER:RegisterForEvent("DataBase", EVENT_OPEN_GUILD_BANK, DB.GB_Opened)
EVENT_MANAGER:RegisterForEvent("DataBase", EVENT_GUILD_BANK_ITEMS_READY, DB.GB_Ready)
@@ -34,17 +34,71 @@ function DB.OnLoad(eventCode, addOnName)
DB.items= ZO_SavedVars:New( "DB_SavedVars" , 2, "items" , DB.dataDefault , nil )
-- Инициализация графического интерфейся
- db_s = WINDOW_MANAGER:CreateTopLevelWindow("DBTotal")
- db_s:SetMouseEnabled(true)
- db_s:SetMovable(true)
- db_s:SetDimensions(425,245)
-
- -- Заголовок1
- db_s_Title = WINDOW_MANAGER:CreateControl("DBTitle",DBTotal,CT_LABEL)
- db_s_Title:SetFont( "ZoFontGame" )
- db_s_Title:SetColor(0,255,255,1.5)
- db_s_Title:SetText( "Test Test Test" )
- db_s_Title:SetAnchor(TOPLEFT,lsSum,TOPLEFT,10,0)
+ db_UI = WINDOW_MANAGER:CreateTopLevelWindow("DBUI")
+ db_UI.BG = WINDOW_MANAGER:CreateControl("DBUI_BG",DBUI,CT_BACKDROP)
+ db_UI.Title = WINDOW_MANAGER:CreateControl("DBUI_Title",DBUI,CT_LABEL)
+ db_UI.Items = WINDOW_MANAGER:CreateControl("DBUI_Items",DBUI,CT_LABEL)
+
+ --Общие настройки интерфейса
+ db_UI:SetDimensions(425,645)
+
+ --Создаем скролл // слайдер
+
+ -- Похоже слайдер придётся рисовать самому.. а при скроллинге только изменять значения 10-15 полей заранее созданых.
+ --а может и нет.. надо бы глянуть текстуры.
+
+ -- db_UI.Scroll = WINDOW_MANAGER:CreateControl("DBUI_Scroll",DBUI,CT_SCROLL)
+ db_UI.Slider = WINDOW_MANAGER:CreateControl("DBUI_Slider",DBUI,CT_SLIDER)
+ -- db_UI.Slider:DoesAllowDraggingFromThumb()
+ -- /script d(db_UI.Slider:DoesAllowDraggingFromThumb())
+
+ -- Фон
+ db_UI.BG:SetDimensions( 425 , 645 )
+ db_UI.BG:SetCenterColor(0,0,0,1)
+ db_UI.BG:SetEdgeColor(0,0,0,1)
+ db_UI.BG:SetEdgeTexture("", 8, 1, 1)
+ db_UI.BG:SetAlpha(0.5)
+ db_UI.BG:SetAnchor(BOTTOM,DBUI,BOTTOM,0,0)
+
+ -- Заголовок
+ db_UI.Title:SetFont("ZoFontGame" )
+ db_UI.Title:SetColor(255,255,255,1.5)
+ db_UI.Title:SetText( "GuildBank Storage" )
+ db_UI.Title:SetAnchor(TOPLEFT,DBUI,TOPLEFT,10,0)
+
+ --Применяем общие настройки
+ db_UI:SetMouseEnabled(false)
+ db_UI:SetMovable(true)
+
+ --Выводим число вещей в инвентаре:
+ db_UI.Items:SetFont("ZoFontGame" )
+ db_UI.Items:SetColor(255,255,255,1.5)
+ db_UI.Items:SetText("ItemsTotal: "..#DB.items.data)
+ db_UI.Items:SetAnchor(TOPLEFT,DBUI,TOPLEFT,10,20)
+
+ --Выводим название и число вещей на экран
+ db_UI.Items.Item={}
+ db_UI.Items.Item.name ={}
+ db_UI.Items.Item.count ={}
+
+ -- Если добавлять фильтры, выносить эту залупу ниже в функцию и скармливать ей заранее подготовленый массив
+ -- for i=1, #DB.items.data, 1 do
+ for i=1, 10, 1 do
+ --Название
+ db_UI.Items.Item.name[i] = WINDOW_MANAGER:CreateControl("DBUI_Item_name_"..i,DBUI,CT_LABEL)
+ db_UI.Items.Item.name[i]:SetFont("ZoFontGame" )
+ db_UI.Items.Item.name[i]:SetColor(255,255,255,1.5)
+ db_UI.Items.Item.name[i]:SetText(DB.items.data[i].name)
+ db_UI.Items.Item.name[i]:SetAnchor(TOPLEFT,db_UI,TOPLEFT,20,20+i*20)
+
+ --Количество
+ db_UI.Items.Item.name[i] = WINDOW_MANAGER:CreateControl("DBUI_Item_count_"..i,DBUI,CT_LABEL)
+ db_UI.Items.Item.name[i]:SetFont("ZoFontGame" )
+ db_UI.Items.Item.name[i]:SetColor(255,255,255,1.5)
+ db_UI.Items.Item.name[i]:SetText(DB.items.data[i].count)
+ db_UI.Items.Item.name[i]:SetAnchor(TOPLEFT,db_UI,TOPLEFT,300,20+i*20)
+ end
+
end
@@ -144,26 +198,22 @@ function DB.gcount()
local data = {}
local dataStr = ""
+ local founditems = false
--Обнуление сохраненной базы
DB.items.data={}
local sv = DB.items.data
-
-
-
+
DB.ItemCounter=0
bagIcon, bagSlots=GetBagInfo(BAG_GUILDBANK)
- d("slot:name:count")
while (DB.ItemCounter < bagSlots) do
if GetItemName(BAG_GUILDBANK,DB.ItemCounter)~="" then
d(DB.ItemCounter.." : "..GetItemLink(BAG_GUILDBANK,DB.ItemCounter).." : "..GetSlotStackSize(BAG_GUILDBANK,DB.ItemCounter))
-
- --DB.items.name=GetItemName(BAG_GUILDBANK,DB.ItemCounter)
- --DB.items.count=GetSlotStackSize(BAG_GUILDBANK,DB.ItemCounter)
-
- if sv == nil or #sv == 0 then
+ founditems=true
+
+ if #sv == 0 then
sv[1] =
{
["name"] = tostring(GetItemLink(BAG_GUILDBANK,DB.ItemCounter)),
@@ -181,6 +231,9 @@ function DB.gcount()
end
d("---------------------")
d("Slots counted: "..DB.ItemCounter)
+ if DB.ItemCounter==bagSlots and founditems==false then
+ d("Found nothing... try again")
+ end
end