diff --git a/Mirserver/Mir200/Envir/QuestDiary/config/VarCfg.lua b/Mirserver/Mir200/Envir/QuestDiary/config/VarCfg.lua index 35f1b713..d33c0066 100644 --- a/Mirserver/Mir200/Envir/QuestDiary/config/VarCfg.lua +++ b/Mirserver/Mir200/Envir/QuestDiary/config/VarCfg.lua @@ -63,7 +63,6 @@ VarCfg.Player.int.cd[" VarCfg.Player.str = {} ---* 玩家永久str VarCfg.Player.str["神兽淬体"] = "STR_神兽淬体" VarCfg.Player.str["幸运项链"] = "STR_幸运项链" -VarCfg.Player.str["绝学修炼"] = "STR_绝学修炼" VarCfg.Player.str["成长基金"] = "STR_成长基金" VarCfg.Player.str["累充奖励"] = "STR_累充奖励" VarCfg.Player.str["至宝盒子"] = "STR_至宝盒子" ---* 至宝盒子位置解锁记录 @@ -116,6 +115,10 @@ VarCfg.item.int = {} ---* VarCfg.item.int["拾取炼化"] = "INT_拾取炼化" VarCfg.item.int["武器升级"] = "INT_武器升级" VarCfg.item.int["首爆标识"] = "INT_首爆标识" +VarCfg.item.int["绝学修炼_1"] = "INT_绝学修炼_1" +VarCfg.item.int["绝学修炼_2"] = "INT_绝学修炼_2" +VarCfg.item.int["绝学修炼_3"] = "INT_绝学修炼_3" +VarCfg.item.int["绝学修炼_4"] = "INT_绝学修炼_4" ---* 葫芦刀魂 VarCfg.item.int["葫芦刀魂_开启"] = "INT_葫芦刀魂开启" diff --git a/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/缁濆淇偧.lua b/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/缁濆淇偧.lua index b01d9db1..bbb9b56c 100644 --- a/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/缁濆淇偧.lua +++ b/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/缁濆淇偧.lua @@ -32,10 +32,17 @@ end JueXueXiuLianOBJ.qz = JueXueXiuLianOBJ_for() ---* 加入上线同步数据 --- Player.sycCfg[JueXueXiuLianOBJ._name] = JueXueXiuLianOBJ.cfg +Player.sycCfg[JueXueXiuLianOBJ._name] = JueXueXiuLianOBJ.cfg -JueXueXiuLianOBJ.CaChe = {} +JueXueXiuLianOBJ.bookPos = 9 +JueXueXiuLianOBJ.bookName = "武林秘籍" +JueXueXiuLianOBJ.bookVarKeys = { + VarCfg.item.int["绝学修炼_1"], + VarCfg.item.int["绝学修炼_2"], + VarCfg.item.int["绝学修炼_3"], + VarCfg.item.int["绝学修炼_4"], +} function JueXueXiuLianOBJ:up(actor, p1, p2, p3, data) @@ -43,13 +50,21 @@ function JueXueXiuLianOBJ:up(actor, p1, p2, p3, data) return end - local id = data[1].id - if not data or not id then + if not data or not data[1] then + return + end + local id = data[1].id + if not id then return end - local open = Player.getkeycount(actor, VarCfg.Player.str["绝学修炼"], id) or nil - if not open then + local bookItem = self:getBookItem(actor) + if not bookItem then + return + end + local open = self:getBookJueXue(bookItem, id) + + if open <= 0 then Func.sendmsg9(actor, "该位置您未没有解锁!") return end @@ -58,7 +73,7 @@ function JueXueXiuLianOBJ:up(actor, p1, p2, p3, data) setflagstatus(actor, VarCfg.Falg_fangshua, 1) local xilian_id = self:xilian(actor, id) - local _oldid = Player.getkeycount(actor, VarCfg.Player.str["绝学修炼"], id) + local _oldid = self:getBookJueXue(bookItem, id) if self.cfg.juexue[_oldid] and self.cfg.juexue[_oldid].buff then if hasbuff(actor, self.cfg.juexue[_oldid].buff) then delbuff(actor, self.cfg.juexue[_oldid].buff) @@ -66,7 +81,7 @@ function JueXueXiuLianOBJ:up(actor, p1, p2, p3, data) end - Player.setkeycount(actor, VarCfg.Player.str["绝学修炼"], id, xilian_id) + self:setBookJueXue(actor, bookItem, id, xilian_id) if self.cfg.juexue[xilian_id].buff then if not hasbuff(actor, self.cfg.juexue[xilian_id].buff) then @@ -74,9 +89,6 @@ function JueXueXiuLianOBJ:up(actor, p1, p2, p3, data) end end Func.sendmsg9(actor, string.format("[绝学修炼]:#70|恭喜您洗练成功,获得:#255|%s#215|!", self.cfg.juexue[xilian_id].name)) - - ---* 刷新缓存 - self:get_CaChe(actor) end end @@ -85,14 +97,21 @@ function JueXueXiuLianOBJ:jiesuo(actor, p1, p2, p3, data) return end + if not data or not data[1] then + return + end local id = data[1].id - if not data or not id then + if not id then return end - local open = Player.getkeycount(actor, VarCfg.Player.str["绝学修炼"], id) or nil + local bookItem = self:getBookItem(actor) + if not bookItem then + return + end + local open = self:getBookJueXue(bookItem, id) - if open then + if open > 0 then Func.sendmsg9(actor, "您已经解锁了该绝学修炼位置!") return end @@ -107,15 +126,12 @@ function JueXueXiuLianOBJ:jiesuo(actor, p1, p2, p3, data) setflagstatus(actor, VarCfg.Falg_fangshua, 1) local xilian_id = self:xilian(actor, id) - Player.setkeycount(actor, VarCfg.Player.str["绝学修炼"], id, xilian_id) + self:setBookJueXue(actor, bookItem, id, xilian_id) if self.cfg.juexue[xilian_id].buff then if not hasbuff(actor, self.cfg.juexue[xilian_id].buff) then addbuff(actor, self.cfg.juexue[xilian_id].buff) end end - - ---* 刷新缓存 - self:get_CaChe(actor) end end @@ -146,41 +162,83 @@ function JueXueXiuLianOBJ:xilian(actor, id) return tonumber(result1) end +function JueXueXiuLianOBJ:getBookItem(actor, tips) + local bookItem = GetItemByPos(actor, self.bookPos) + if not bookItem or bookItem == "0" then + if tips ~= false then + Func.sendmsg9(actor, "请先佩戴武林秘籍!") + end + return nil + end + + local itemName = getiteminfo(actor, bookItem, ConstCfg.iteminfo.name) + if itemName ~= self.bookName then + if tips ~= false then + Func.sendmsg9(actor, "请先佩戴武林秘籍!") + end + return nil + end + return bookItem +end + +function JueXueXiuLianOBJ:getBookJueXue(bookItem, id) + local key = self.bookVarKeys[id] + if not key then + return 0 + end + return Item.getint(bookItem, key) or 0 +end + +function JueXueXiuLianOBJ:getBookJueXueTbl(actor) + local bookItem = self:getBookItem(actor, false) + local tbl = {} + if not bookItem then + return tbl + end + + for i, key in ipairs(self.bookVarKeys or {}) do + tbl[i] = Item.getint(bookItem, key) or 0 + end + return tbl +end + +function JueXueXiuLianOBJ:setBookJueXue(actor, bookItem, id, juexueId) + local key = self.bookVarKeys[id] + if not key then + return + end + Item.setint(actor, bookItem, key, juexueId or 0) +end + function JueXueXiuLianOBJ:get_juexue(actor, id) if not id then return end - local juexueCfg = Player.getkeytbl(actor, VarCfg.Player.str["绝学修炼"]) or {} + local juexueCfg = self:getBookJueXueTbl(actor) local tbl = {} for i, v in pairs(juexueCfg or {}) do - if id and id ~= i then + if id ~= i and v > 0 and self.cfg.juexue[v] then tbl[self.cfg.juexue[v].calss] = true end end return tbl end -function JueXueXiuLianOBJ:get_CaChe(actor) - local juexueCfg = Player.getkeytbl(actor, VarCfg.Player.str["绝学修炼"]) or {} - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - self.CaChe[self_id] = {} - - for i, v in pairs(juexueCfg or {}) do - self.CaChe[self_id][v] = true +function JueXueXiuLianOBJ:hasJueXue(actor, juexueId) + if not juexueId then + return false end + + local juexueCfg = self:getBookJueXueTbl(actor) + for i, v in pairs(juexueCfg or {}) do + if v == juexueId then + return true + end + end + return false end -GameEvent.add(EventCfg.onLoginEnd, function(actor) - JueXueXiuLianOBJ:get_CaChe(actor) -end, JueXueXiuLianOBJ) - -GameEvent.add(EventCfg.onqfloadend, function(actor) - JueXueXiuLianOBJ:get_CaChe(actor) -end, JueXueXiuLianOBJ) - - - JueXueXiuLianOBJ.AttackdamageCfg = { --* 基本剑术伤害提升5% @@ -345,10 +403,9 @@ JueXueXiuLianOBJ.onAttackPlayCfg = { --------------* 注册攻击事件 ---* 攻击前触发 对人对怪 local function _onAttackdamage(actor, target, hitter, magicId, damage, model, Info) - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - for i, v in pairs(JueXueXiuLianOBJ.CaChe[self_id]) do - if JueXueXiuLianOBJ.AttackdamageCfg[i] then - local func = JueXueXiuLianOBJ.AttackdamageCfg[i] + for i, v in pairs(JueXueXiuLianOBJ:getBookJueXueTbl(actor)) do + if v > 0 and JueXueXiuLianOBJ.AttackdamageCfg[v] then + local func = JueXueXiuLianOBJ.AttackdamageCfg[v] func(actor, target, hitter, magicId, damage, model, Info) end end @@ -357,10 +414,9 @@ GameEvent.add(EventCfg.onAttackdamage, _onAttackdamage, JueXueXiuLianOBJ) ---* 攻击前触发 对人 local function _onAttackHumandamage(actor, target, hitter, magicId, damage, model, Info) - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - for i, v in pairs(JueXueXiuLianOBJ.CaChe[self_id]) do - if JueXueXiuLianOBJ.AttackHumandamageCfg[i] then - local func = JueXueXiuLianOBJ.AttackHumandamageCfg[i] + for i, v in pairs(JueXueXiuLianOBJ:getBookJueXueTbl(actor)) do + if v > 0 and JueXueXiuLianOBJ.AttackHumandamageCfg[v] then + local func = JueXueXiuLianOBJ.AttackHumandamageCfg[v] func(actor, target, hitter, magicId, damage, model, Info) end end @@ -370,10 +426,9 @@ GameEvent.add(EventCfg.onAttackHumandamage, _onAttackHumandamage, JueXueXiuLianO ---* 攻击后触发 对人对怪 local function _onAttack(actor, target, hitter, magicId, Info) - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - for i, v in pairs(JueXueXiuLianOBJ.CaChe[self_id]) do - if JueXueXiuLianOBJ.onAttackCfg[i] then - local func = JueXueXiuLianOBJ.onAttackCfg[i] + for i, v in pairs(JueXueXiuLianOBJ:getBookJueXueTbl(actor)) do + if v > 0 and JueXueXiuLianOBJ.onAttackCfg[v] then + local func = JueXueXiuLianOBJ.onAttackCfg[v] func(actor, target, hitter, magicId, Info) end end @@ -382,10 +437,9 @@ GameEvent.add(EventCfg.onAttack, _onAttack, JueXueXiuLianOBJ) ---* 攻击后触发 对怪 local function _onAttackMon(actor, target, hitter, magicId, Info) - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - for i, v in pairs(JueXueXiuLianOBJ.CaChe[self_id]) do - if JueXueXiuLianOBJ.onAttackMonCfg[i] then - local func = JueXueXiuLianOBJ.onAttackMonCfg[i] + for i, v in pairs(JueXueXiuLianOBJ:getBookJueXueTbl(actor)) do + if v > 0 and JueXueXiuLianOBJ.onAttackMonCfg[v] then + local func = JueXueXiuLianOBJ.onAttackMonCfg[v] func(actor, target, hitter, magicId, Info) end end @@ -395,10 +449,9 @@ GameEvent.add(EventCfg.onAttackMon, _onAttackMon, JueXueXiuLianOBJ) ---* 攻击后触发 对人 local function _onAttackPlay(actor, target, hitter, magicId, Info) - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - for i, v in pairs(JueXueXiuLianOBJ.CaChe[self_id]) do - if JueXueXiuLianOBJ.onAttackPlayCfg[i] then - local func = JueXueXiuLianOBJ.onAttackPlayCfg[i] + for i, v in pairs(JueXueXiuLianOBJ:getBookJueXueTbl(actor)) do + if v > 0 and JueXueXiuLianOBJ.onAttackPlayCfg[v] then + local func = JueXueXiuLianOBJ.onAttackPlayCfg[v] func(actor, target, hitter, magicId, Info) end end diff --git a/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/瑁呭鐐煎寲.lua b/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/瑁呭鐐煎寲.lua index a0eac2c8..2ac87f36 100644 --- a/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/瑁呭鐐煎寲.lua +++ b/Mirserver/Mir200/Envir/QuestDiary/娓告垙鍔熻兘/A1_涓澶ч檰/瑁呭鐐煎寲.lua @@ -59,8 +59,8 @@ ZhuangBeiLianHuaOBJ.onwhere = { -- 基类_主窗体 function ZhuangBeiLianHuaOBJ:main(actor, ...) - if getbaseinfo(actor, ConstCfg.gbase.renew_level) < 4 then - Func.sendmsg9(actor, "[装备炼化]:#70|人物4转后开放!") + if getbaseinfo(actor, ConstCfg.gbase.renew_level) < 6 then + Func.sendmsg9(actor, "[装备炼化]:#70|人物6转后开放!") return end diff --git a/Mirserver/Mir200/Envir/QuestDiary/绯荤粺绫/鎶鑳借Е鍙.lua b/Mirserver/Mir200/Envir/QuestDiary/绯荤粺绫/鎶鑳借Е鍙.lua index b3857f46..f2c76dbe 100644 --- a/Mirserver/Mir200/Envir/QuestDiary/绯荤粺绫/鎶鑳借Е鍙.lua +++ b/Mirserver/Mir200/Envir/QuestDiary/绯荤粺绫/鎶鑳借Е鍙.lua @@ -2,8 +2,7 @@ MagicOBJ = {} function beginmagic(actor, magicId, magicName, target, x, y) if magicId == 25 and isplayer(actor) then - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - if JueXueXiuLianOBJ.CaChe[self_id][7] then + if JueXueXiuLianOBJ:hasJueXue(actor, 7) then ---* 圆月刀法 releasemagic(actor, 2012, 1, 3, target, 1) return false @@ -11,8 +10,7 @@ function beginmagic(actor, magicId, magicName, target, x, y) end if magicId == 56 and isplayer(actor) then - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - if JueXueXiuLianOBJ.CaChe[self_id][20] then + if JueXueXiuLianOBJ:hasJueXue(actor, 20) then if Func.random(20) then makeposion(target, 12, 2, 1) Func.sendmsg(actor, string.format("[技能绝学]:#70|%s#215|触发,冰冻目标持续2s.#7", "追云逐日")) @@ -47,8 +45,7 @@ end -- 对目标人物使用野蛮冲撞时自身触发 function magtagfunc27(actor, roleObject) if isplayer(actor) then - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - if JueXueXiuLianOBJ.CaChe[self_id][10] then + if JueXueXiuLianOBJ:hasJueXue(actor, 10) then if not hasbuff(roleObject, 10002) then addbuff(roleObject, 10002, 1) playeffect(roleObject, 33, 0, 0, 1, 0, 0) @@ -56,7 +53,7 @@ function magtagfunc27(actor, roleObject) end end - if JueXueXiuLianOBJ.CaChe[self_id][11] then + if JueXueXiuLianOBJ:hasJueXue(actor, 11) then if not hasbuff(roleObject, 10003) then addbuff(roleObject, 10003, 3) Func.sendmsg(actor, string.format("[技能绝学]:#70|%s#215|触发,使目标禁止使用回城、随机、传送.#7", "恶魔降临")) @@ -67,8 +64,7 @@ end function magselffunc27(actor) if isplayer(actor) then - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - if JueXueXiuLianOBJ.CaChe[self_id][12] then + if JueXueXiuLianOBJ:hasJueXue(actor, 12) then if Player.gettempint(actor, VarCfg.Player.temp.int["迅捷如风"]) == 0 then if Func.random(20) then SetSkillCD(actor, 27, 0) @@ -86,8 +82,7 @@ end function magselffunc26(actor) if isplayer(actor) then - local self_id = getbaseinfo(actor, ConstCfg.gbase.id) - if JueXueXiuLianOBJ.CaChe[self_id][15] then + if JueXueXiuLianOBJ:hasJueXue(actor, 15) then if Player.gettempint(actor, VarCfg.Player.temp.int["熔灵再生"]) == 0 then if Func.random(30) then releasemagic(actor, 26, 1, 3, 1, 1) diff --git a/client/dev/GUILayout/game/A/JueXueXiuLianOBJ.lua b/client/dev/GUILayout/game/A/JueXueXiuLianOBJ.lua index 84c6f992..cb57b6e9 100644 --- a/client/dev/GUILayout/game/A/JueXueXiuLianOBJ.lua +++ b/client/dev/GUILayout/game/A/JueXueXiuLianOBJ.lua @@ -10,6 +10,14 @@ JueXueXiuLianOBJ.UIfile = "game/A/JueXueXiuLianUI" -- 閰嶇疆鏂囦欢 JueXueXiuLianOBJ.cfg = {} +JueXueXiuLianOBJ.bookPos = 9 +JueXueXiuLianOBJ.bookName = "姝︽灄绉樼睄" +JueXueXiuLianOBJ.bookVarKeys = { + "INT_缁濆淇偧_1", + "INT_缁濆淇偧_2", + "INT_缁濆淇偧_3", + "INT_缁濆淇偧_4", +} --* 鍒濆鍖栫粷瀛︾晫闈 @@ -66,7 +74,7 @@ end function JueXueXiuLianOBJ:get(id) - local jiesuoCfg = hk.getkeytbl("HUMAN(STR_缁濆淇偧)") + local jiesuoCfg = self:getBookJueXueTbl() for i, v in pairs(jiesuoCfg or {}) do if v == id then return false @@ -78,16 +86,18 @@ end ----* 浜虹墿瑙i攣鏍煎瓙鍒濆鍖 function JueXueXiuLianOBJ:jiesuo() self.id = self.id or 1 - local jiesuoCfg = hk.getkeytbl("HUMAN(STR_缁濆淇偧)") + GUI:setVisible(self.ui.up_btn, false) + local hasBook = self:getBookItem() and true or false + local jiesuoCfg = self:getBookJueXueTbl() GUI:ListView_removeAllItems(self.ui.xl_ListView) for i = 1, 4, 1 do - local open = jiesuoCfg[i] and true or false + local open = jiesuoCfg[i] and jiesuoCfg[i] > 0 local jiesuolist = string.format("jiesuolist_%d", i) self.ui[jiesuolist] = GUI:Image_Create(self.ui.xl_ListView, jiesuolist, 0, 0, string.format("res/custom/11/box/%d.png", not open and i or 6)) GUI:setTouchEnabled(self.ui[jiesuolist], true) - if open and jiesuoCfg[i] > 0 then + if open then local jiesuo_icon = string.format("jiesuo_icon_%d", i) self.ui[jiesuo_icon] = GUI:Image_Create(self.ui[jiesuolist], jiesuo_icon, 34, 54, string.format("res/custom/11/magicIcon/%d.png", self.cfg.juexue[jiesuoCfg[i]].icon)) GUI:setContentSize(self.ui[jiesuo_icon], 60, 60) @@ -97,7 +107,7 @@ function JueXueXiuLianOBJ:jiesuo() self.ui[juexue_name] = GUI:Text_Create(self.ui[jiesuolist], juexue_name, 34, 12, 13, "#ffffff", self.cfg.juexue[jiesuoCfg[i]].name) - if self.id == i then + if hasBook and self.id == i then if GUI:Win_IsNotNull(self.ui.select_bg) then GUI:removeFromParent(self.ui.select_bg) end @@ -130,11 +140,24 @@ function JueXueXiuLianOBJ:jiesuo() end) end) else - GUI:addOnClickEvent(self.ui[jiesuolist], function() + if hasBook and self.id == i then GUI:Button_loadTextureNormal(self.ui.up_btn, "res/custom/11/10.png") GUI:Button_loadTexturePressed(self.ui.up_btn, "res/custom/11/11.png") self.xh = self.cfg.jiesuo[i].xh self:setxh() + GUI:setVisible(self.ui.up_btn, true) + GUI:addOnClickEvent(self.ui.up_btn, function() + ssrMessage:SubLink(self.__cname .. "_jiesuo", { id = i }) + end) + end + + GUI:addOnClickEvent(self.ui[jiesuolist], function() + self.id = i + GUI:Button_loadTextureNormal(self.ui.up_btn, "res/custom/11/10.png") + GUI:Button_loadTexturePressed(self.ui.up_btn, "res/custom/11/11.png") + self.xh = self.cfg.jiesuo[i].xh + self:setxh() + GUI:setVisible(self.ui.up_btn, hasBook) GUI:addOnClickEvent(self.ui.up_btn, function() ssrMessage:SubLink(self.__cname .. "_jiesuo", { id = i }) @@ -144,6 +167,25 @@ function JueXueXiuLianOBJ:jiesuo() end end +function JueXueXiuLianOBJ:getBookItem() + local equipData = GUIFunction:GetEquipDataByPos(self.bookPos) + if equipData and equipData.Name == self.bookName and equipData.MakeIndex then + return equipData + end +end + +function JueXueXiuLianOBJ:getBookJueXueTbl() + local equipData = self:getBookItem() + local tbl = {} + if not equipData then + return tbl + end + + for i, key in ipairs(self.bookVarKeys or {}) do + tbl[i] = tonumber(SL:GetValue("ITEM_CUSTOM_VAR_BY_VNAME", equipData.MakeIndex, key)) or 0 + end + return tbl +end function JueXueXiuLianOBJ:setxh() GUI:removeAllChildren(self.ui.xh_Layout) local index = 1 @@ -170,14 +212,25 @@ end ---* 娉ㄥ唽浜嬩欢 function JueXueXiuLianOBJ:EventBind() - local function JueXueXiuLianOBJ_Var_Change(data) + local function reloadBook() if GUI:Win_IsNotNull(self._parent) then - if data.key == "HUMAN(STR_缁濆淇偧)" then - self:updata() - end + self:updata() end end - SL:RegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname, JueXueXiuLianOBJ_Var_Change, self._parent) + + local function JueXueXiuLianOBJ_Item_Var_Change(data) + if not GUI:Win_IsNotNull(self._parent) then + return + end + + local equipData = self:getBookItem() + if equipData and data and tostring(data.MakeIndex) == tostring(equipData.MakeIndex) then + self:updata() + end + end + SL:RegisterLUAEvent(LUA_EVENT_ITEM_CUSTOM_ATTR, self.__cname, JueXueXiuLianOBJ_Item_Var_Change, self._parent) + SL:RegisterLUAEvent(LUA_EVENT_TAKE_ON_EQUIP, self.__cname, reloadBook, self._parent) + SL:RegisterLUAEvent(LUA_EVENT_TAKE_OFF_EQUIP, self.__cname, reloadBook, self._parent) --鍏抽棴绐楀彛 SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName) @@ -193,7 +246,9 @@ function JueXueXiuLianOBJ:OnClose(widgetName) end function JueXueXiuLianOBJ:UnRegisterEvent() - SL:UnRegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname) + SL:UnRegisterLUAEvent(LUA_EVENT_ITEM_CUSTOM_ATTR, self.__cname) + SL:UnRegisterLUAEvent(LUA_EVENT_TAKE_ON_EQUIP, self.__cname) + SL:UnRegisterLUAEvent(LUA_EVENT_TAKE_OFF_EQUIP, self.__cname) SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname) end diff --git a/client/dev/GUILayout/item/ItemTips.lua b/client/dev/GUILayout/item/ItemTips.lua index f02c1894..f703fd7d 100644 --- a/client/dev/GUILayout/item/ItemTips.lua +++ b/client/dev/GUILayout/item/ItemTips.lua @@ -2463,6 +2463,42 @@ function ItemTips.PushItemList(cellView, widgetList) end end +function ItemTips.GetJueXueBookStr(itemData) + if not itemData or itemData.Name ~= "姝︽灄绉樼睄" or not itemData.MakeIndex then + return nil + end + + local keys = { + "INT_缁濆淇偧_1", + "INT_缁濆淇偧_2", + "INT_缁濆淇偧_3", + "INT_缁濆淇偧_4", + } + local lines = {"<[姝︽灄缁濆]/FCOLOR=70>"} + for i, key in ipairs(keys) do + local juexueId = tonumber(SL:GetValue("ITEM_CUSTOM_VAR_BY_VNAME", itemData.MakeIndex, key)) or 0 + local line = string.format("%d.鏈В閿", i) + local color = 249 + if juexueId > 0 then + color = 250 + local cfg = JueXueXiuLianOBJ and JueXueXiuLianOBJ.cfg and JueXueXiuLianOBJ.cfg.juexue and JueXueXiuLianOBJ.cfg.juexue[juexueId] + if cfg then + line = string.format("%d.%s锛%s", i, cfg.name or ("缁濆ID:" .. juexueId), cfg.effec or "") + else + line = string.format("%d.缁濆ID:%d", i, juexueId) + end + end + table.insert(lines, string.format("<%s/FCOLOR=%s>", line, color)) + end + return table.concat(lines, "\\") +end +function ItemTips.CreateJueXueBookWidget(param) + local itemData = param and param.tip_itemData + local richStr = ItemTips.GetJueXueBookStr(itemData) + if richStr and string.len(richStr) > 0 then + return GUI:RichTextFCOLOR_Create(-1, "rich_juexue_book", 0, 0, richStr, ItemTips._richWid, fontSize, "#FFFFFF", vspace, nil, fontPath) + end +end function ItemTips.FillTipsContent(tipsLayout, cellView, tipsParam) local groupList = ItemTips._config.group local maxWidth = ItemTips._maxWidth @@ -2588,7 +2624,12 @@ function ItemTips.FillTipsContent(tipsLayout, cellView, tipsParam) -- else end - + -- 姝︽灄绉樼睄缁濆 + local juexueBookWidget = ItemTips.CreateJueXueBookWidget(tipsParam) + ItemTips.PushItem(cellView, juexueBookWidget) + if juexueBookWidget then + ItemTips.PushItem(cellView, ItemTips.CreateSplitLine()) + end -- 鑷畾涔夊睘鎬 local diyAttWidget = ItemTips.CreateDiyAttrWidget(tipsParam) ItemTips.PushItem(cellView, diyAttWidget) diff --git a/client/env.json b/client/env.json index fed46f6b..5b4e125f 100644 --- a/client/env.json +++ b/client/env.json @@ -1 +1 @@ -{"gm":0,"signkey":"634eff98723b31da43ed35f0dd4edf36","oper_mode":1,"modlist":"http://list.dhsf.xqhuyu.com/testmodlist/modlist_tool_11557.txt","resolution":"1024x768","channel":1} +{"oper_mode":2,"modlist":"http:\/\/list.dhsf.xqhuyu.com\/testmodlist\/modlist_tool_11557.txt","channel":1,"gm":0,"signkey":"634eff98723b31da43ed35f0dd4edf36","resolution":"1136x640"} \ No newline at end of file