263 lines
8.1 KiB
Lua
263 lines
8.1 KiB
Lua
ZhuangBeiLianHuaOBJ = {}
|
|
|
|
ZhuangBeiLianHuaOBJ.__cname = "ZhuangBeiLianHuaOBJ"
|
|
|
|
-- 配置文件
|
|
ZhuangBeiLianHuaOBJ.cfg = {}
|
|
|
|
ZhuangBeiLianHuaOBJ.lock = {
|
|
[1] = false,
|
|
[2] = false,
|
|
[3] = false,
|
|
}
|
|
|
|
ZhuangBeiLianHuaOBJ.select_effect = { 50571, 50567, 50569 }
|
|
|
|
function ZhuangBeiLianHuaOBJ:main(arg1, arg2, arg3, data)
|
|
local parent = GUI:Win_Create(self.__cname, 0, 0, 0, 0, false, false, true, false)
|
|
|
|
if data and data.npcid then
|
|
GUI:Win_BindNPC(parent, data.npcid)
|
|
end
|
|
|
|
GUI:LoadExport(parent, "game/A/ZhuangBeiLianHuaUI")
|
|
|
|
self._parent = parent
|
|
self.ui = GUI:ui_delegate(parent)
|
|
|
|
--- 窗口初始化居中与动作
|
|
ssrUIManager:OpenAlgin(self)
|
|
|
|
--背景图关闭
|
|
GUI:addOnClickEvent(self.ui.bg_close, function()
|
|
GUI:Win_Close(self._parent)
|
|
end)
|
|
|
|
--关闭按钮背景板关闭
|
|
GUI:addOnClickEvent(self.ui.btn_close, function()
|
|
GUI:Win_Close(self._parent)
|
|
end)
|
|
---* 绑定事件
|
|
self:EventBind()
|
|
|
|
if data and data.cfg then
|
|
self.cfg = data.cfg
|
|
end
|
|
|
|
self:updata()
|
|
end
|
|
|
|
function ZhuangBeiLianHuaOBJ:updata()
|
|
self.id = self.id or 4
|
|
|
|
|
|
local item = GUI:getChildren(self.ui.w_Layout)
|
|
GUI:setVisible(self.ui.w_Layout, true)
|
|
for i, v in ipairs(item) do
|
|
local item_name = GUI:getName(v)
|
|
local where = tonumber(SL:Split(item_name, "_")[2])
|
|
local equipData = SL:Get_EQUIP_DATA(where)
|
|
if equipData then
|
|
GUI:setVisible(v, true)
|
|
|
|
hk.reloadItemShow(v, equipData.Name, 1, equipData)
|
|
GUI:ItemShow_setItemShowChooseState(v, self.id == where and true or false)
|
|
|
|
GUI:ItemShow_addReplaceClickEvent(v, function()
|
|
GUI:ItemShow_setItemShowChooseState(self.ui["Item_" .. self.id], false)
|
|
GUI:ItemShow_setItemShowChooseState(v, true)
|
|
self.id = where
|
|
self:show()
|
|
end)
|
|
else
|
|
GUI:setVisible(v, false)
|
|
end
|
|
end
|
|
self:show()
|
|
end
|
|
|
|
function ZhuangBeiLianHuaOBJ:show()
|
|
self.lock = {
|
|
[1] = false,
|
|
[2] = false,
|
|
[3] = false,
|
|
}
|
|
|
|
local equipData = SL:Get_EQUIP_DATA(self.id)
|
|
if equipData then
|
|
GUI:setVisible(self.ui.sel_Item, true)
|
|
hk.reloadItemShow(self.ui.sel_Item, equipData.Name, 1, equipData)
|
|
self.Data = equipData
|
|
self:DataShow(equipData.DiyAdv)
|
|
self:setxh()
|
|
|
|
local up_data = {
|
|
w = self.id,
|
|
lock = self.lock
|
|
}
|
|
|
|
GUI:addOnClickEvent(self.ui.Up_btn, function()
|
|
ssrMessage:SubLink("ZhuangBeiLianHuaOBJ_up", up_data)
|
|
end)
|
|
else
|
|
GUI:setVisible(self.ui.sel_Item, false)
|
|
end
|
|
end
|
|
|
|
function ZhuangBeiLianHuaOBJ:DataShow(data)
|
|
GUI:ListView_removeAllItems(self.ui.ct_ListView)
|
|
---* 设置选择部位特效边框
|
|
if GUI:Win_IsNotNull(self.ui.select_effect) then
|
|
GUI:removeFromParent(self.ui.select_effect)
|
|
end
|
|
|
|
-- local Lh_data = {}
|
|
local LH_attStr = {}
|
|
for k, v in pairs(data) do
|
|
if v.Type >= 1 and v.Type <= 3 then
|
|
LH_attStr[v.Type] = (LH_attStr[v.Type] and LH_attStr[v.Type] .. "|" or "") ..
|
|
string.format("%d#%d#%d", v.Job, v.Idx, v.Value)
|
|
end
|
|
end
|
|
|
|
|
|
if #LH_attStr > 0 then
|
|
local LH_attStrList = {}
|
|
for i, v in ipairs(LH_attStr) do
|
|
table.insert(LH_attStrList, hk.getequipAttribute(v)[1])
|
|
end
|
|
|
|
if #LH_attStrList > 0 then
|
|
self.ui.select_effect = GUI:Effect_Create(self.ui["Item_" .. self.id], "select_effect", 31.00, 32.00, 0,
|
|
self.select_effect[#LH_attStrList], 0, 0, 0, 1)
|
|
|
|
for i, v in ipairs(LH_attStrList or {}) do
|
|
local list_Layout = GUI:Layout_Create(self.ui.ct_ListView, "list_Layout" .. i, 0.00, 70.00, 210.00, 30.00,
|
|
false)
|
|
local list_str = GUI:RichTextFCOLOR_Create(list_Layout, "list_str" .. i, 0, 15, v, 210, 16, "#28EF01", 5)
|
|
GUI:setAnchorPoint(list_str, 0, 0.50)
|
|
|
|
local list_lock = GUI:Button_Create(list_Layout, "list_lock" .. i, 186.00, 15.00,
|
|
string.format("res/custom/03/%d.png", self.lock[i] and 4 or 5))
|
|
GUI:setAnchorPoint(list_lock, 0.00, 0.50)
|
|
--设置属性锁
|
|
GUI:addOnClickEvent(list_lock, function()
|
|
if self.lock[i] then
|
|
self.lock[i] = not self.lock[i]
|
|
GUI:Button_loadTextureNormal(list_lock,
|
|
string.format("res/custom/03/%d.png", self.lock[i] and 4 or 5))
|
|
self:setxh()
|
|
else
|
|
local _lock = 0
|
|
for _, lock_state in ipairs(self.lock) do
|
|
if lock_state then
|
|
_lock = _lock + 1
|
|
end
|
|
end
|
|
if _lock < #self.lock - 1 then
|
|
self.lock[i] = not self.lock[i]
|
|
GUI:Button_loadTextureNormal(list_lock,
|
|
string.format("res/custom/03/%d.png", self.lock[i] and 4 or 5))
|
|
self:setxh()
|
|
else
|
|
hk.sendmsg("请至少保留一条属性!")
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function ZhuangBeiLianHuaOBJ:setxh()
|
|
if not self.Data then
|
|
return
|
|
end
|
|
local xh = SL:CopyData(self.cfg.xh)
|
|
local _lock = 0
|
|
for _, lock_state in ipairs(self.lock) do
|
|
if lock_state then
|
|
_lock = _lock + 1
|
|
end
|
|
end
|
|
|
|
if _lock > 0 then
|
|
table.insert(xh, { "元宝", _lock * 50, 1 })
|
|
end
|
|
|
|
|
|
GUI:removeAllChildren(self.ui.xh_Layout)
|
|
hk.SettingXhShow(self.ui, self.ui.xh_Layout, xh, nil, nil, nil, 0, "res/custom/03/1.png", 30, nil, true)
|
|
end
|
|
|
|
function ZhuangBeiLianHuaOBJ:reddot()
|
|
|
|
end
|
|
|
|
|
|
|
|
------------------------网络消息------------------------
|
|
function ZhuangBeiLianHuaOBJ:ZSResponse()
|
|
if GUI:Win_IsNotNull(self._parent) then
|
|
self:updata()
|
|
end
|
|
end
|
|
|
|
---* 注册事件
|
|
function ZhuangBeiLianHuaOBJ:EventBind()
|
|
local function ZhuangBeiLianHuaOBJ_REINLEVELCHANGE(data)
|
|
if GUI:Win_IsNotNull(self._parent) then
|
|
if data.key == "P_SHENSHOUCUITI_LEVEL" then
|
|
self:show()
|
|
end
|
|
end
|
|
end
|
|
SL:RegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname, ZhuangBeiLianHuaOBJ_REINLEVELCHANGE)
|
|
|
|
---* 背包 和 货币 物品变化
|
|
local function ZhuangBeiLianHuaOBJ_REINLEVELCHANGE(data)
|
|
if GUI:Win_IsNotNull(self._parent) then
|
|
self:setxh()
|
|
end
|
|
end
|
|
SL:RegisterLUAEvent(LUA_EVENT_BAG_ITEM_CHANGE, self.__cname, ZhuangBeiLianHuaOBJ_REINLEVELCHANGE)
|
|
SL:RegisterLUAEvent(LUA_EVENT_MONEY_CHANGE, self.__cname, ZhuangBeiLianHuaOBJ_REINLEVELCHANGE)
|
|
|
|
|
|
---* 炼化后刷新
|
|
local function ZhuangBeiLianHuaOBJ_EQUIP_CHANGE(data)
|
|
if GUI:Win_IsNotNull(self._parent) then
|
|
if data.Where == self.id then
|
|
local equipData = SL:Get_EQUIP_DATA(data.Where)
|
|
if equipData then
|
|
hk.reloadItemShow(self.ui.sel_Item, equipData.Name, 1, equipData)
|
|
self:DataShow(equipData.DiyAdv)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
SL:RegisterLUAEvent(LUA_EVENT_PLAYER_EQUIP_CHANGE, self.__cname, ZhuangBeiLianHuaOBJ_EQUIP_CHANGE)
|
|
|
|
--关闭窗口
|
|
SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName)
|
|
self:OnClose(widgetName)
|
|
end)
|
|
end
|
|
|
|
--关闭窗口
|
|
function ZhuangBeiLianHuaOBJ:OnClose(widgetName)
|
|
if widgetName == self.__cname then
|
|
self:UnRegisterEvent()
|
|
end
|
|
end
|
|
|
|
function ZhuangBeiLianHuaOBJ:UnRegisterEvent()
|
|
SL:UnRegisterLUAEvent(LUA_EVENT_PLAYER_EQUIP_CHANGE, self.__cname)
|
|
SL:UnRegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname)
|
|
SL:UnRegisterLUAEvent(LUA_EVENT_MONEY_CHANGE, self.__cname)
|
|
SL:UnRegisterLUAEvent(LUA_EVENT_BAG_ITEM_CHANGE, self.__cname)
|
|
SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname)
|
|
end
|
|
|
|
return ZhuangBeiLianHuaOBJ
|