소스 검색

符文属性,技能增加锁定功能

gitxsm 10 달 전
부모
커밋
5598087e2d

+ 1 - 0
script/common/ProtoID.lua

@@ -1599,3 +1599,4 @@ _ENV[1615]="GC_FUWEN_HECHENG_ONECLICK"
 -- _ENV[1642]="CG_NEW_BUSTHREEACT_DICEDO"
 -- _ENV[1643]="GC_NEW_BUSTHREEACT_DICEDO"
 
+_ENV[1647]="CG_FUWEN_RESET_LOCK"

+ 18 - 4
script/module/bag/Grid.lua

@@ -55,7 +55,7 @@ function makeItem(net, itemID, itemCnt, shuijingAttrID, itemGrid, itemIndex, opF
     makeItemEquip(net, itemConfig, itemGrid, itemIndex, shuijingAttrID, equipQuality, gemBonus)
 end
 
-function makeFuwenSkill(net, skillID)
+function makeFuwenSkill(net, skillID, skillLockList)
 	local skillConfig = FuwenExcel.skill[skillID]
 	net.skillID = skillID
 	net.skillIcon = skillConfig.icon 
@@ -67,6 +67,11 @@ function makeFuwenSkill(net, skillID)
 	if skillConfig.isBingshuSkill == 1 and skillConfig.isFuwenSkill == 0 then
 		net.isOnlyBinshu = 1
 	end
+
+	net.isLock = 0
+	if skillLockList and skillLockList[skillID] then
+		net.isLock = 1
+	end
 end
 
 function makeItemFuwen(net, itemID, itemConfig, fuwenGrid, fuwenIndex)
@@ -96,19 +101,28 @@ function makeItemFuwen(net, itemID, itemConfig, fuwenGrid, fuwenIndex)
 		for zz = 1, #fuwenGrid.attr do
 			local key = fuwenGrid.attr[zz][1]
 			local value = fuwenGrid.attr[zz][2]
+			local isLock = fuwenGrid.attr[zz][3]
 			netTemp.attrs[zz] = netTemp.attrs[zz] or {}
-			netTemp.attrs[zz].key = key
-			netTemp.attrs[zz].value = value
+			-- netTemp.attrs[zz].key = key
+			-- netTemp.attrs[zz].value = value
+
+			netTemp.attrs[zz].attrArray = netTemp.attrs[zz].attrArray or {key = 0, value = 0}
+			netTemp.attrs[zz].attrArray.key = key
+			netTemp.attrs[zz].attrArray.value = value
+			netTemp.attrs[zz].isLock = isLock or 0
+
 			zhandouli = zhandouli + RoleAttr.getPointByKey(key) * value
 		end
 		netTemp.attrs[0] = #fuwenGrid.attr
 		if fuwenGrid.skill == nil then
 			netTemp.skills[0] = 0
 		else
+			local skillLockList = fuwenGrid.skillLockList
+
 			for zz = 1,#fuwenGrid.skill do
 				local skillID = fuwenGrid.skill[zz]
 				netTemp.skills[zz] = netTemp.skills[zz] or {}
-				makeFuwenSkill(netTemp.skills[zz], skillID)
+				makeFuwenSkill(netTemp.skills[zz], skillID, skillLockList)
 			end
 			netTemp.skills[0] =  #fuwenGrid.skill
 		end

+ 8 - 1
script/module/bag/Proto.lua

@@ -67,15 +67,22 @@ FuwenSkillInfo = {
     {"isRare",      1,       "int"},     -- 符文技能是否珍惜
     {"lv",          1,       "byte"},    -- 符文技能等级  1 初 2 中 3 高
     {"isOnlyBinshu",1,       "byte"},    -- 兵书专属
+	{"isLock",     	1,       "byte"},    -- 是否锁定, 0-没有, 1- 锁定
 }
 
+FuwenAttrInfo = {
+	{"attrArray",     	1,       Attr},
+	{"isLock",       	1,       "byte"},     		-- 是否锁定, 0-没有, 1- 锁定
+}
+
+
 -- 符文
 FuWen = {
 	{"id",			1,		 "int"},	  --id
 	{"index",    	1,       "int"},     -- 背包中索引
     {"fenjieGet",   1,       "int"},     -- 分解可获得的符文精华
     {"refine",      1,       "int"},     -- 精炼次数
-    {"attrs",       3,       Attr},      -- 符文属性
+    {"attrs",       3,       FuwenAttrInfo},      -- 符文属性
     {"skills",      2,       FuwenSkillInfo},     -- 符文技能
     {"zhandouli",	1,		"double"},	 -- 符文战力
 }

+ 90 - 24
script/module/fuwen/FuwenGrid.lua

@@ -14,6 +14,21 @@ FUWEN_SKILL_TOP = FUWEN_SKILL_TOP or {}     --
 FUWEN_SKILL_RARE = FUWEN_SKILL_RARE or {}   --符文稀有技能列表
 
 
+local function getFuwenSkillMaxCnt(fuwenConfig)
+    local nowNum, maxNum = 0, 0
+
+    for _, skillInfo in ipairs(fuwenConfig.skillRate) do
+        nowNum = skillInfo[1] + skillInfo[2] + skillInfo[3] + skillInfo[4]
+
+        if nowNum > maxNum then
+            maxNum = nowNum
+        end
+    end
+
+    return maxNum
+end
+
+
 function initAfterHot()	
     Util.initTable(FUWEN_SKILL_PRIM)
     Util.initTable(FUWEN_SKILL_INTE)
@@ -50,8 +65,10 @@ function create(id)
 	return tb
 end
 
+
+
 function genFuwenAttr(fuwenGrid, luckRefresh)
-    Util.initTable(fuwenGrid.attr)
+    -- Util.initTable(fuwenGrid.attr)
     Util.initTable(fuwenGrid.skill)
 
     local choseSkill = {}
@@ -62,26 +79,76 @@ function genFuwenAttr(fuwenGrid, luckRefresh)
 
     -- 绝对值属性抽选 必定有且仅有1条
     local cnt = #fuwenConfig.absAttrPool
-    local randIndex = math.random(1, cnt)
-    local attrKey = fuwenConfig.absAttrPool[randIndex][1]
-    local attrVal = fuwenConfig.absAttrPool[randIndex][2]
-    fuwenGrid.attr[1] = {attrKey, attrVal}
+    -- local randIndex = math.random(1, cnt)
+    -- local attrKey = fuwenConfig.absAttrPool[randIndex][1]
+    -- local attrVal = fuwenConfig.absAttrPool[randIndex][2]
+    -- fuwenGrid.attr[1] = {attrKey, attrVal}
+    if not fuwenGrid.attr[1] or not fuwenGrid.attr[1][3] or fuwenGrid.attr[1][3] ~= 1 then
+        -- local cnt = #fuwenConfig.absAttrPool
+        local randIndex = math.random(1, cnt)
+        local attrKey = fuwenConfig.absAttrPool[randIndex][1]
+        local attrVal = fuwenConfig.absAttrPool[randIndex][2]
+        fuwenGrid.attr[1] = {attrKey, attrVal}
+    end
+
 	
     -- 百分比属性抽选 不一定有
     cnt = #fuwenConfig.percentAttrPool
     if cnt > 0 then
-        local randIndex = math.random(1, cnt)
-        local attrKey = fuwenConfig.percentAttrPool[randIndex][1]
-        local attrVal = fuwenConfig.percentAttrPool[randIndex][2]
-        fuwenGrid.attr[2] = {attrKey, attrVal}
-        if fuwenGrid.id == 80006 then
-            randIndex = math.random(1, cnt)
-            attrKey = fuwenConfig.percentAttrPool[randIndex][1]
-            attrVal = fuwenConfig.percentAttrPool[randIndex][2]
+        -- local randIndex = math.random(1, cnt)
+        -- local attrKey = fuwenConfig.percentAttrPool[randIndex][1]
+        -- local attrVal = fuwenConfig.percentAttrPool[randIndex][2]
+        -- fuwenGrid.attr[2] = {attrKey, attrVal}
+        -- if fuwenGrid.id == 80006 then
+        --     randIndex = math.random(1, cnt)
+        --     attrKey = fuwenConfig.percentAttrPool[randIndex][1]
+        --     attrVal = fuwenConfig.percentAttrPool[randIndex][2]
+        --     fuwenGrid.attr[3] = {attrKey, attrVal}
+        -- end
+        if not fuwenGrid.attr[2] or not fuwenGrid.attr[2][3] or fuwenGrid.attr[2][3] ~= 1 then
+            local randIndex = math.random(1, cnt)
+            local attrKey = fuwenConfig.percentAttrPool[randIndex][1]
+            local attrVal = fuwenConfig.percentAttrPool[randIndex][2]
+            fuwenGrid.attr[2] = {attrKey, attrVal}
+        end
+
+        if fuwenGrid.id == 80006 and (not fuwenGrid.attr[3] or not fuwenGrid.attr[3][3] or fuwenGrid.attr[3][3] ~= 1) then
+            local randIndex = math.random(1, cnt)
+            local attrKey = fuwenConfig.percentAttrPool[randIndex][1]
+            local attrVal = fuwenConfig.percentAttrPool[randIndex][2]
             fuwenGrid.attr[3] = {attrKey, attrVal}
         end
     end
 
+    -- 锁定技能的处理
+    local allSkillCnt = 0
+    local subTb = {}
+    local skillLockList = fuwenGrid.skillLockList
+
+    if skillLockList and next(skillLockList) then
+        fuwenGrid.skill = fuwenGrid.skill or {}
+
+        for skillId in pairs(skillLockList) do
+            allSkillCnt = allSkillCnt + 1
+            fuwenGrid.skill[allSkillCnt] = skillId
+
+            local skillCfg = FuwenExcel.skill[skillId]
+            subTb[skillCfg.lv] = (subTb[skillCfg.lv] or 0) - 1
+
+            choseSkill[skillCfg.groupID] = 1
+        end
+
+        local skillMaxNum = getFuwenSkillMaxCnt(fuwenConfig)
+        if #fuwenGrid.skill >= skillMaxNum then
+            for fuwenID, config in pairs(FuwenExcel.skill) do
+                if config.isFuwenSkill == 1 then -- 符文技能
+                    subTb[config.lv] = -999
+                end
+            end
+        end
+    end
+
+
     --幸运重铸技能抽选
     if luckRefresh == 1 then
         cnt = #fuwenConfig.skillRate
@@ -106,11 +173,10 @@ function genFuwenAttr(fuwenGrid, luckRefresh)
             end
         end
         if skillGroup ~= nil then
-            local primSkillCnt = skillGroup[1] or 0
-            local inteSkillCnt = skillGroup[2] or 0
-            local highSkillCnt = skillGroup[3] or 0
-            local topSkillCnt = skillGroup[4] or 0
-
+            local primSkillCnt = (skillGroup[1] or 0) + (subTb[1] or 0)
+            local inteSkillCnt = (skillGroup[2] or 0) + (subTb[2] or 0)
+            local highSkillCnt = (skillGroup[3] or 0) + (subTb[3] or 0)
+            local topSkillCnt = (skillGroup[4] or 0) + (subTb[4] or 0)
             --local isHighRare = true
             --if highSkillCnt >= 1 and topSkillCnt >= 1 then
             --    local randCnt = math.random(1, 2)
@@ -121,7 +187,7 @@ function genFuwenAttr(fuwenGrid, luckRefresh)
             --    isHighRare = false
             --end
 
-            local allSkillCnt = 0
+            -- local allSkillCnt = 0
             local skillRandomIndex = 0
             for i = 1,primSkillCnt do
                 local maxPrimSkillCnt = #FUWEN_SKILL_PRIM
@@ -230,11 +296,11 @@ function genFuwenAttr(fuwenGrid, luckRefresh)
             end
         end
         if skillGroup ~= nil then
-            local primSkillCnt = skillGroup[1] or 0
-            local inteSkillCnt = skillGroup[2] or 0
-            local highSkillCnt = skillGroup[3] or 0
-            local topSkillCnt = skillGroup[4] or 0
-            local allSkillCnt = 0
+            local primSkillCnt = (skillGroup[1] or 0) + (subTb[1] or 0)
+            local inteSkillCnt = (skillGroup[2] or 0) + (subTb[2] or 0)
+            local highSkillCnt = (skillGroup[3] or 0) + (subTb[3] or 0)
+            local topSkillCnt = (skillGroup[4] or 0) + (subTb[4] or 0)
+            -- local allSkillCnt = 0
             local skillRandomIndex = 0
             for i = 1,primSkillCnt do
                 local maxPrimSkillCnt = #FUWEN_SKILL_PRIM

+ 178 - 6
script/module/fuwen/FuwenLogic.lua

@@ -28,6 +28,59 @@ local TriggerDefine = require("trigger.TriggerDefine")
 local TriggerLogic = require("trigger.TriggerLogic")
 local Abs365CardLogic = require("absAct.Abs365CardLogic")
 
+-- 符文锁定属性,技能后的刷新时额外消耗的道具Id
+local LOCK_COST_ITEN_ID = 136
+
+-- 支持锁定属性,技能的符文的最低品质
+local LOCK_FUWEN_COLOR_BASE = 5
+
+-- 符文属性 + 技能的最大锁定数量
+local LOCK_FUWEN_MAX_NUM = 4
+
+-- 计算符文属性, 技能锁定后消耗的道具数量
+local function calcLockCost(fuwenGrid)
+    local num = 0
+
+    -- 属性
+    for _, attrInfo in pairs(fuwenGrid.attr or {}) do
+        if attrInfo[3] and attrInfo[3] == 1 then
+            num = num + 2
+        end
+    end
+
+    -- 技能
+    local skillLockList = fuwenGrid.skillLockList
+    if skillLockList then
+        for _, _ in pairs(skillLockList) do
+            num = num + 6
+        end
+    end
+
+    return num
+end
+
+-- 获取符文的锁定信息
+local function getFuwenLockInfo(fuwenGrid)
+    local lockNum = 0
+    -- local attrLockPosTb, skillLockPosTb = {}, {}
+
+    for pos, attrInfo in pairs(fuwenGrid.attr) do
+        if attrInfo[3] and attrInfo[3] == 1 then
+            lockNum = lockNum + 1
+            -- attrLockPosTb[pos] = 1
+        end
+    end
+
+    for skillId, pos in pairs(fuwenGrid.skillLockList or {}) do
+        lockNum = lockNum + 1
+        -- skillLockPosTb[pos] = skillId
+    end
+
+    -- return lockNum, attrLockPosTb, skillLockPosTb
+    return lockNum
+end
+
+
 --发送所有符文列表 onLogin
 function sendFuwenRefineList(human)
 	local msgRet = Msg.gc.GC_FUWEN_ALL_LIST
@@ -572,8 +625,12 @@ function fuwenRefreshQuery(human,fuwenID,fuwenIndex,pos,heroID,heroIndex)
     -- 临时属性备份
     local attrLen = #fuwen.attrTemp
 	for zz = 1,attrLen do
-		msgRet.fuwenTemp.attrs[zz].key = fuwen.attrTemp[zz][1]
-		msgRet.fuwenTemp.attrs[zz].value = fuwen.attrTemp[zz][2]
+		-- msgRet.fuwenTemp.attrs[zz].key = fuwen.attrTemp[zz][1]
+		-- msgRet.fuwenTemp.attrs[zz].value = fuwen.attrTemp[zz][2]
+
+        msgRet.fuwenTemp.attrs[zz].attrArray.key = fuwen.attrTemp[zz][1]
+        msgRet.fuwenTemp.attrs[zz].attrArray.value = fuwen.attrTemp[zz][2]
+        msgRet.fuwenTemp.attrs[zz].isLock = fuwen.attrTemp[zz][3] or 0
 	end
 	msgRet.fuwenTemp.attrs[0] = attrLen
 
@@ -583,7 +640,7 @@ function fuwenRefreshQuery(human,fuwenID,fuwenIndex,pos,heroID,heroIndex)
 	else
         local skillLen = #fuwen.skillTemp
 		for zz = 1,skillLen do
-            Grid.makeFuwenSkill(msgRet.fuwenTemp.skills[zz], fuwen.skillTemp[zz])
+            Grid.makeFuwenSkill(msgRet.fuwenTemp.skills[zz], fuwen.skillTemp[zz], fuwen.skillLockList)
 		end
 		msgRet.fuwenTemp.skills[0] = skillLen
 	end
@@ -600,6 +657,16 @@ function fuwenRefreshQuery(human,fuwenID,fuwenIndex,pos,heroID,heroIndex)
     end
     msgRet.expend[0] = lenth
 
+
+    -- 锁定属性,技能的额外消耗
+    local itemCnt = calcLockCost(fuwen)
+    if itemCnt > 0 then
+        lenth = lenth + 1
+        msgRet.expend[0] = lenth
+        Grid.makeItem(msgRet.expend[lenth], LOCK_COST_ITEN_ID, itemCnt)
+    end
+
+
     msgRet.refreshCnt = 0
     if refreshConfig.rare == ItemDefine.ITEM_RARE_COLOR_5 then
         msgRet.refreshCnt = human.db.fuwenRefreshCnt.sh
@@ -671,6 +738,14 @@ function fuwenRefreshDo(human,fuwenID,fuwenIndex,heroID,heroIndex,pos)
         return Broadcast.sendErr(human,Lang.FUWEN_REFRESH_FILL_ERR)   -- 材料不够
     end
 
+    local itemCnt = calcLockCost(fuwenGrid)
+    if itemCnt > 0 then
+        if BagLogic.getItemCnt(human, LOCK_COST_ITEN_ID) < itemCnt then
+            return Broadcast.sendErr(human,Lang.FUWEN_REFRESH_FILL_ERR)
+        end
+    end
+
+
     if refreshConfig.rare == ItemDefine.ITEM_RARE_COLOR_5 then
         human.db.fuwenRefreshCnt.sh = human.db.fuwenRefreshCnt.sh + 1
     elseif refreshConfig.rare == ItemDefine.ITEM_RARE_COLOR_6 then
@@ -688,7 +763,13 @@ function fuwenRefreshDo(human,fuwenID,fuwenIndex,heroID,heroIndex,pos)
     -- 扣消耗
     local fuwenGridTemp = Util.copyTable(fuwenGrid)
     ObjHuman.updateJinbi(human, -refreshConfig.expend[1][2], "fuwen_refresh")	
-    BagLogic.delItem(human, ItemDefine.ITEM_FUWEN_JINGHUA, refreshConfig.expend[2][2], "fuwen_refresh")	
+    BagLogic.delItem(human, ItemDefine.ITEM_FUWEN_JINGHUA, refreshConfig.expend[2][2], "fuwen_refresh")
+
+    if itemCnt > 0 then
+        BagLogic.delItem(human, LOCK_COST_ITEN_ID, itemCnt, "fuwen_refresh")
+    end
+
+    Util.printTable(fuwenGridTemp.attr)
 
     -- 改属性
     FuwenGrid.genFuwenAttr(fuwenGridTemp,luckRefresh)
@@ -706,6 +787,97 @@ function fuwenRefreshDo(human,fuwenID,fuwenIndex,heroID,heroIndex,pos)
     TriggerLogic.PublishEvent(TriggerDefine.FUWEN_RESET, human.db._id, 1)
 end
 
+
+-- 锁定/解锁符文的属性,技能
+function ResetLock(human, fuwenID,fuwenIndex,heroID,heroIndex,pos, opTarget, opIdx, opType)
+    local refreshConfig = FuwenExcel.fuwen[fuwenID]
+    if refreshConfig == nil then
+        return Broadcast.sendErr(human,Lang.FUWEN_GRID_ERR)     -- 传入参数非法
+    end
+
+    if refreshConfig.order < LOCK_FUWEN_COLOR_BASE then
+        return Broadcast.sendErr(human,Lang.FUWEN_COLOR_ERR)
+    end
+
+    local fuwenGrid = nil
+    if fuwenIndex == -1 then        -- 刷英雄身上的
+        local heroGrid = HeroLogic.getHeroGrid(human, heroID, heroIndex)
+        if heroGrid == nil then
+            return Broadcast.sendErr(human,Lang.FUWEN_HERO_GRID_ERR)         -- 传入的英雄数据非法
+        end
+
+        if pos == nil then
+            return Broadcast.sendErr(human,Lang.FUWEN_PUTOFF_ERR)        -- 传入的参数非法
+        end
+
+        if heroGrid.fuwen == nil or heroGrid.fuwen[pos] == nil or heroGrid.fuwen[pos].id == nil then
+            return Broadcast.sendErr(human,Lang.FUWEN_PUTOFF_ERR)         -- 传入的参数非法
+        end
+
+        fuwenGrid = heroGrid.fuwen[pos]
+    else                            -- 刷背包里的
+        if human.db.fuwenBag == nil or human.db.fuwenBag[fuwenIndex] == nil then
+            return Broadcast.sendErr(human,Lang.FUWEN_HECHENG_FILL_ERR)     -- 材料不存在
+        end
+
+        fuwenGrid = human.db.fuwenBag[fuwenIndex]
+    end
+
+    if fuwenGrid == nil or fuwenGrid.id == nil then
+        return Broadcast.sendErr(human,Lang.FUWEN_HECHENG_FILL_ERR)
+    end
+
+    if fuwenGrid.id ~= nil and fuwenGrid.id ~= fuwenID then
+        return Broadcast.sendErr(human,Lang.FUWEN_ID_ERR)
+    end
+
+
+    if opType ~= 1 and opType ~= 0 then
+        return Broadcast.sendErr(human,Lang.COMMON_ARGUMENT_ERROR)
+    end
+
+    -- 锁定数量判断
+    if opType == 1 then
+        local lockNum = getFuwenLockInfo(fuwenGrid)
+        if lockNum >= LOCK_FUWEN_MAX_NUM then
+            return Broadcast.sendErr(human,Lang.FUWEN_LOCK_MAX_ERR)
+        end
+    end
+
+    -- 对属性进行锁定/解锁
+    if opTarget == 1 then
+        if not fuwenGrid.attr[opIdx] then
+            return Broadcast.sendErr(human,Lang.FUWEN_ATTR_POS_ERR)
+        end
+
+        fuwenGrid.attr[opIdx][3] = opType
+
+    elseif opTarget == 2 then -- 对技能进行锁定/解锁
+        if not fuwenGrid.skill or not fuwenGrid.skill[opIdx] then
+            return Broadcast.sendErr(human,Lang.FUWEN_SKILL_POS_ERR)
+        end
+
+        local skillId = fuwenGrid.skill[opIdx]
+        fuwenGrid.skillLockList = fuwenGrid.skillLockList or {}
+
+        if opType == 1 then
+            fuwenGrid.skillLockList[skillId] = opIdx
+        end
+
+        if opType == 0 then
+            fuwenGrid.skillLockList[skillId] = nil
+        end
+
+    else
+        return Broadcast.sendErr(human,Lang.COMMON_ARGUMENT_ERROR)
+    end
+
+
+    fuwenRefreshQuery(human,fuwenID,fuwenIndex,pos,heroID,heroIndex)
+end
+
+
+
 local function cmpSkill(a, b)
     if a.sortID ~= b.sortID then
         return  a.sortID < b.sortID
@@ -833,14 +1005,14 @@ function fuwenRefreshSave(human,fuwenID,fuwenIndex,pos,heroID,heroIndex)
     end
 
     if fuwen.attrTemp ~= nil or fuwen.skillTemp ~= nil then
-        if next(fuwen.attrTemp) then
+        if fuwen.attrTemp and next(fuwen.attrTemp) then
             fuwen.attr = fuwen.attrTemp
             fuwen.attrTemp = {}
         else
             --Log.write(Log.LOGID_DEBUG, human.db._id, human.db.account, human.db.name, human.db.lv, fuwen.id,"refreshsave attrTemp is empty")
             Log.write(Log.LOGID_DEBUG, human.db._id, human.db.newUniqueTag, human.db.name, human.db.lv, fuwen.id,"refreshsave attrTemp is empty")
         end
-        if next(fuwen.skillTemp) then
+        if fuwen.skillTemp and next(fuwen.skillTemp) then
             fuwen.skill = fuwen.skillTemp
             fuwen.skillTemp = nil
         else

+ 4 - 0
script/module/fuwen/Handler.lua

@@ -103,4 +103,8 @@ end
 
 function CG_FUWEN_GET_WAY_QUERY(human)
     FuwenLogic.sendFuwenGetWay(human)
+end
+
+function CG_FUWEN_RESET_LOCK(human, msg)
+    FuwenLogic.ResetLock(human, msg.fuwenID, msg.fuwenIndex, msg.heroID, msg.heroIndex, msg.pos, msg.opTarget, msg.opIdx, msg.opType)
 end

+ 17 - 0
script/module/fuwen/Proto.lua

@@ -163,6 +163,23 @@ GC_FUWEN_REFRESH_DO = {
     {"fuwen",       1,  ItemData},                               -- 符文
 }
 
+
+--符文属性, 技能锁定/解锁
+CG_FUWEN_RESET_LOCK = {
+    {"fuwenID",     1,  "int"},                              -- 符文id
+    {"fuwenIndex",  1,  "short"},                            -- 符文index
+    {"heroID",      1,  "int"},                              -- 英雄id
+    {"heroIndex",   1,  "short"},                            -- 英雄索引
+    {"pos",         1,  "byte"},                             -- 部位
+
+    {"opTarget",    1,  "byte"},                             -- 操作对象, 1-属性, 2-技能
+    {"opIdx",       1,  "byte"},                             -- 操作对象索引
+    {"opType",      1,  "byte"},                             -- 操作类型, 0- 解锁 ,1-上锁
+
+}
+
+
+
 -- 符文 技能查询
 CG_FUWEN_RARE_SKILL_QUERY = {
     {"type",    1,  "byte"},                                  -- 技能级别       1 初级 2 中级 3 高级