Przeglądaj źródła

增加新秘宝增加相关修改,增加秘宝一键合成功能,优化种族试炼系统代码

gitxsm 1 rok temu
rodzic
commit
5222a744bb

+ 6 - 4
script/module/bag/BagLogic.lua

@@ -317,12 +317,13 @@ function sendItemGetList1(human, list, logStr)
 	for i=1,len do
 		if cnt >= #msgRet.list then
 			break
-		 end
+		end
 		local itemID = list[i][1]
 		local itemCnt = list[i][2]
         if not ItemDefine.isEquip(itemID) then
-           cnt = cnt + 1
-		   Grid.makeItem(msgRet.list[cnt], itemID, itemCnt)
+        cnt = cnt + 1
+			--Grid.makeItem(msgRet.list[cnt], itemID, itemCnt)
+			Grid.makeItem(msgRet.list[cnt], itemID, itemCnt, nil,nil,nil, Grid.getOpflagAtBag(itemID))
         end
 	end
 
@@ -347,7 +348,8 @@ function sendItemGetList2(human, list, logStr)
 
         if not ItemDefine.isEquip(itemID) then
 			cnt = cnt + 1
-		   	Grid.makeItem(msgRet.list[cnt], itemID, itemCnt)
+			--Grid.makeItem(msgRet.list[cnt], itemID, itemCnt)
+			Grid.makeItem(msgRet.list[cnt], itemID, itemCnt, nil,nil,nil, Grid.getOpflagAtBag(itemID))
         end
 	end
 

+ 2 - 2
script/module/bag/Handler.lua

@@ -76,6 +76,6 @@ function CG_ITEM_GET_BY_ITEM_ID(human,msg)
    ItemLogic.sendItemData(human, msg.id)
 end
 
-function CG_SUIPIAN_SYNTHESIS(human)
-	SuipianLogic.CG_SUIPIAN_SYNTHESIS(human)
+function CG_SUIPIAN_SYNTHESIS(human, msg)
+	SuipianLogic.CG_SUIPIAN_SYNTHESIS(human, msg.type)
 end

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

@@ -265,6 +265,7 @@ GC_ITEM_BUY_DO = {
 
 --碎片一键合成
 CG_SUIPIAN_SYNTHESIS = {
+	{"type",	1,	"byte"},           -- 1-英雄, 2-装备, 3-皮肤, 4-秘宝
 }
 
 --碎片一键合成结果通知

+ 60 - 18
script/module/bag/SuipianLogic.lua

@@ -242,7 +242,8 @@ function makeResultItemData(net, id, cnt, isHero)
 		HeroGrid.makeHeroSimpleByID(net, id)
 		net.cnt = cnt
 	else
-		Grid.makeItem(net, id, cnt)
+		--Grid.makeItem(net, id, cnt)
+		Grid.makeItem(net, id, cnt, nil,nil,nil, Grid.getOpflagAtBag(id))
 	end
 end
 
@@ -620,10 +621,10 @@ function Suipan_BeginSyntheticFragments(human, nItemID, nItemNum, tMsgData)
 		return false
 	end
 
-	local leftHeroBox =  HeroLogic.getEmptyCnt(human)	
+	local leftHeroBox =  HeroLogic.getEmptyCnt(human)
     if itemConfig.get[2] ~= SUMMON_SUBTYPE_EQUIP then
-        if leftHeroBox <= 0 then
-           return false
+        if leftHeroBox <= 0 and itemConfig.subType == ItemDefine.ITEM_SUBTYPE_SUIPIAN then
+        	return false
         end
     end
 
@@ -747,13 +748,13 @@ function Suipan_BeginSyntheticFragments(human, nItemID, nItemNum, tMsgData)
 		for k, v in pairs(outItemIDList) do
 			netList[0] = netList[0] + 1
 			makeResultItemData(netList[netList[0]], k, v, isHero)
-			print("[Suipan_BeginSyntheticFragments] 合成的数量 英雄ID k = "
+			print("[Suipan_BeginSyntheticFragments] 合成的数量 道具ID k = "
 					..k .. " v ="..v.." cnt = "..netList[netList[0]].cnt)
 		end
 	else
 		netList[0] = netList[0] + 1
 		makeResultItemData(netList[netList[0]], targetID, realItemCnt, isHero)
-		print("[Suipan_BeginSyntheticFragments] 合成的数量 英雄ID targetID = "
+		print("[Suipan_BeginSyntheticFragments] 合成的数量 道具ID targetID = "
 				..targetID .." realItemCnt = "..realItemCnt.. " cnt = "..netList[netList[0]].cnt)
 	end
 	if fenJieList then
@@ -769,14 +770,14 @@ function Suipan_BeginSyntheticFragments(human, nItemID, nItemNum, tMsgData)
 end
 
 -- 碎片合成
-function SUIPIAN_SYNTHESIS(human, tCompositeTable)
+function SUIPIAN_SYNTHESIS(human, tCompositeTable, isHaveHero)
 	if not human or nil == tCompositeTable or nil == _G.next(tCompositeTable) then
 		return false
 	end
 
 	-- 英雄背包空余格子数
 	local nLefeHeroNum =  HeroLogic.getEmptyCnt(human)
-	if 0 >= nLefeHeroNum then
+	if 0 >= nLefeHeroNum and isHaveHero then
 		Broadcast.sendErr(human, Lang.HERO_BAG_FULL)
 		print("[SUIPIAN_SYNTHESIS] 背包格子不够直接返回 nLefeHeroNum = "..nLefeHeroNum)
 		return false
@@ -821,14 +822,14 @@ function SUIPIAN_SYNTHESIS(human, tCompositeTable)
 	-- 正式开始正式生成
 	for nID, nNum in pairs(tCompositeTable) do
 		-- 不存在剩余空位
-		if 0 >= nLefeHeroNum then
+		if 0 >= nLefeHeroNum and isHaveHero then
 			break
 		end
 
 		local itemConfig = ItemExcel.item[nID]
 		if itemConfig then
 			local nCanCreateNum = math.floor(nNum / itemConfig.fullCnt)
-			if nCanCreateNum > nLefeHeroNum then
+			if nCanCreateNum > nLefeHeroNum and isHaveHero then
 				nCanCreateNum = nLefeHeroNum
 			end
 			
@@ -843,29 +844,70 @@ function SUIPIAN_SYNTHESIS(human, tCompositeTable)
 			print("[SUIPIAN_SYNTHESIS] 检测过居然还不存在对应物品的配置 nID = "..nID.." nNum = "..nNum)
 		end
 	end
-
 	Msg.send(msgRet, human.fd)
 end
 
-function CG_SUIPIAN_SYNTHESIS(human)
+
+
+function CG_SUIPIAN_SYNTHESIS(human, synthesisType)
+	if not synthesisType or synthesisType < SUMMON_SUBTYPE_HERO  or synthesisType > SUMMON_SUBTYPE_TALISAM then
+		print("[CG_SUIPIAN_SYNTHESIS] 合成类型错误 synthesisType = "..synthesisType)
+		return
+	end
+
+	--目前只有两种碎片能合成
+	if synthesisType ~= SUMMON_SUBTYPE_HERO and  synthesisType ~= SUMMON_SUBTYPE_TALISAM then
+		print("[CG_SUIPIAN_SYNTHESIS] 合成类型错误 synthesisType = "..synthesisType)
+		return
+	end
+
+
 	local msgRet = Msg.gc.GC_SUIPIAN_SYNTHESIS
 	local status = 1
+	local isHaveHero = false
 	local tCompositeTable = {}
+	-- for itemID,itemCnt in pairs(human.db.bag) do
+	-- 	local itemConfig = ItemExcel.item[itemID]
+	-- 	if itemConfig ~= nil and
+	-- 	   itemConfig.mainType == ItemDefine.MAINTYPE_ITEM and 
+	-- 	   (itemConfig.subType == ItemDefine.ITEM_SUBTYPE_SUIPIAN or
+	-- 	   itemConfig.subType == ItemDefine.ITEM_SUBTYPE_SUIPIAN_TALISMAM) then
+	-- 	   if itemCnt >= itemConfig.fullCnt then
+	-- 			tCompositeTable[itemID] = tCompositeTable[itemID] or 0
+	-- 			tCompositeTable[itemID] = tCompositeTable[itemID] + itemCnt
+
+	-- 			if itemConfig.subType == ItemDefine.ITEM_SUBTYPE_SUIPIAN then
+	-- 				isHaveHero = true
+	-- 			end
+	-- 	   end
+	-- 	end
+	-- end
+	--后续可以优化下,把值对应起来
+	local targetSubType = 0
+	if synthesisType == SUMMON_SUBTYPE_HERO then
+		targetSubType = ItemDefine.ITEM_SUBTYPE_SUIPIAN
+	elseif synthesisType == SUMMON_SUBTYPE_TALISAM then
+		targetSubType = ItemDefine.ITEM_SUBTYPE_SUIPIAN_TALISMAM
+	end
+
 	for itemID,itemCnt in pairs(human.db.bag) do
 		local itemConfig = ItemExcel.item[itemID]
-		if itemConfig ~= nil and 
-		   itemConfig.mainType == ItemDefine.MAINTYPE_ITEM and 
-		   itemConfig.subType == ItemDefine.ITEM_SUBTYPE_SUIPIAN then
-		   if itemCnt >= itemConfig.fullCnt then
+		if itemConfig and itemConfig.mainType == ItemDefine.MAINTYPE_ITEM and itemCnt >= itemConfig.fullCnt then
+			if itemConfig.subType == targetSubType then
 				tCompositeTable[itemID] = tCompositeTable[itemID] or 0
 				tCompositeTable[itemID] = tCompositeTable[itemID] + itemCnt
-		   end
+
+				if synthesisType == SUMMON_SUBTYPE_HERO then
+					isHaveHero = true
+				end
+			end
 		end
 	end
 
+
 	if nil ~= _G.next(tCompositeTable) then
 		status = 0
-		SUIPIAN_SYNTHESIS(human, tCompositeTable)
+		SUIPIAN_SYNTHESIS(human, tCompositeTable, isHaveHero)
 	end
 
 	msgRet.status = status

+ 55 - 28
script/module/battle/BattleLogic.lua

@@ -715,9 +715,9 @@ local function BattleLogic_SetAddFreeMopupNum(human, nValue)
     print("[BattleLogic_SetAddFreeMopupNum] 消耗的额外次数 nValue = "..nValue)
     human.db.mopupAddFreeCnt = human.db.mopupAddFreeCnt + nValue
 
-    if 0 > human.db.mopupAddFreeCnt then
-        human.db.mopupAddFreeCnt = 0
-    end
+    -- if 0 > human.db.mopupAddFreeCnt then
+    --     human.db.mopupAddFreeCnt = 0
+    -- end
 end
 
 function getBattleRoleList(nBattleType, worldMapId)
@@ -1399,7 +1399,9 @@ function query(human)
     end
 
     -- 判断额外增加的扫荡次数
-    if 0 < BattleLogic_GetAddFreeMopupNum(human) and 0 == msgRet.canMopup then
+    --秘宝增加免费扫荡次数
+    local talismanAdd_dailyFeeCnt = TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_SD_FREE_CNT) or 0
+    if 0 < (BattleLogic_GetAddFreeMopupNum(human) + talismanAdd_dailyFeeCnt) and 0 == msgRet.canMopup then
         msgRet.canMopup = 1
     end
 
@@ -1876,7 +1878,11 @@ function calcBattleExpOut(human, now)
     local vipJinAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER8) or 0) / 100
     local vipGreenExpAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER9) or 0) / 100
     local vipQingbaoAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER19) or 0) / 100
-    local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
+
+    --秘宝方面的加成
+    local talismanAdd_qb = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
+    local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_HERO_EXP) or 0) / 100
+
     local exp = nowNodeConfig.hangExp
     local jinbi = nowNodeConfig.hangJinbi
     local greenExp = nowNodeConfig.hangGreenExp
@@ -1885,7 +1891,9 @@ function calcBattleExpOut(human, now)
     tBattleOut.jinbi = tBattleOut.jinbi + math.floor(outCnt * jinbi *(1 + vipJinAdd))
     tBattleOut.greenExp = tBattleOut.greenExp + math.floor(outCnt * greenExp *(1 + vipGreenExpAdd))
     tBattleOut.qingbao = tBattleOut.qingbao + math.floor(outCnt * qingbao *(1 + vipQingbaoAdd))
-    tBattleOut.qingbao = tBattleOut.qingbao + math.ceil(tBattleOut.qingbao * talismanAdd)
+
+    tBattleOut.qingbao = tBattleOut.qingbao + math.ceil(tBattleOut.qingbao * talismanAdd_qb)
+    tBattleOut.greenExp = tBattleOut.greenExp + math.ceil(tBattleOut.greenExp * talismanAdd_hero_exp)
 end
 
 -- 根据时间计算道具产出
@@ -2028,7 +2036,8 @@ function calcBattleItemOut(human, now,isDiamond)
         tBattleOut.itemTs2 = now
     end
 
-    local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
+    local talismanAdd_zs = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
+    
     local nodeConfig = tBattleNodeConfig.node[guajiID]
     local items = getItemOutsByTime(nodeConfig, sec)
     for itemID, itemCnt in pairs(items) do
@@ -2043,8 +2052,8 @@ function calcBattleItemOut(human, now,isDiamond)
         else
             tBattleOut.items = tBattleOut.items or { }
             tBattleOut.items[itemID] = tBattleOut.items[itemID] or 0
-            if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
-                itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
+            if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
+                itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
             end
             tBattleOut.items[itemID] = tBattleOut.items[itemID] + itemCnt
         end
@@ -2666,7 +2675,10 @@ function mopupQuery(human)
     local dropCnt = 0
 
     --秘宝加成
-    local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
+    local talismanAdd_qb = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
+    local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_HERO_EXP) or 0) / 100
+    local talismanAdd_zs = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
+    local talismanAdd_dailyFeeCnt = TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_SD_FREE_CNT) or 0
 
     -- ABS掉落活动显示到第一个
     dropCnt = DropExchangeLogic.getDropItemSaoQuery(human, msgRet, dropCnt)
@@ -2678,8 +2690,8 @@ function mopupQuery(human)
         local tempConfig = dropConfig.dropRule[i]
         local itemID = tempConfig[1]
         local itemCnt = 1
-        if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
-            itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
+        if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
+            itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
         end
         Grid.makeItem(msgRet.item[dropCnt], itemID, itemCnt)
     end
@@ -2691,8 +2703,8 @@ function mopupQuery(human)
         local tempConfig = dropConfig.dropRule3[i]
         local itemID = tempConfig[1]
         local itemCnt = 1
-        if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
-            itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
+        if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
+            itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
         end
         Grid.makeItem(msgRet.item[dropCnt], itemID, itemCnt)
     end
@@ -2702,6 +2714,9 @@ function mopupQuery(human)
     msgRet.name = mapConfig.name
     msgRet.item[0] = dropCnt
     local nNowAddFreeCnt = BattleLogic_GetAddFreeMopupNum(human)
+    nNowAddFreeCnt = nNowAddFreeCnt + talismanAdd_dailyFeeCnt
+
+
     if TequanShopLogic.isActiveMopup(human) then
         msgRet.leftCnt = BATTLE_MOPUP_CNT_VIP - human.db.mopupDoCnt
     else
@@ -2713,6 +2728,7 @@ function mopupQuery(human)
 
     -- 增加额外次数
     msgRet.leftCnt = msgRet.leftCnt + nNowAddFreeCnt
+    msgRet.leftCnt = math.max(msgRet.leftCnt, 0)
     
     -- local mupopExcel = BattleExcel.mupop[nextDoCnt]
     local mupopExcel = tBattleConfig.mupop[nextDoCnt]
@@ -2737,13 +2753,15 @@ function mopupQuery(human)
         msgRet.need = 0
     end
 
-    talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
     msgRet.vip = TequanShopLogic.isActiveMopup(human) and 1 or 0
     msgRet.nowCnt = human.db.mopupDoCnt
     msgRet.exp = nodeConfig.hangExp
     msgRet.jinbi = nodeConfig.hangJinbi
-    msgRet.greenExp = nodeConfig.hangGreenExp
-    msgRet.qingbao = nodeConfig.hangQingbao + math.ceil(nodeConfig.hangQingbao * talismanAdd)
+    --msgRet.greenExp = nodeConfig.hangGreenExp
+
+    msgRet.greenExp = nodeConfig.hangGreenExp + math.ceil(nodeConfig.hangGreenExp * talismanAdd_hero_exp)
+    msgRet.qingbao = nodeConfig.hangQingbao + math.ceil(nodeConfig.hangQingbao * talismanAdd_qb)
+    
     print("[mopupQuery] nowCnt = "..msgRet.nowCnt.." leftCnt = "..msgRet.leftCnt.." nNowAddFreeCnt = "..nNowAddFreeCnt)
     Msg.send(msgRet, human.fd)
 end
@@ -2767,7 +2785,10 @@ function mopupFight(human)
     nextDoCnt = nextDoCnt >= EliteDefine.BATTLE_MOPUP_MAX_LEN and EliteDefine.BATTLE_MOPUP_MAX_LEN or nextDoCnt
     -- local mupopExcel = BattleExcel.mupop[nextDoCnt]
     local mupopExcel = tBattleConfig.mupop[nextDoCnt]
+
+    local talismanAdd_dailyFeeCnt = TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_SD_FREE_CNT) or 0
     local nNowAddFreeCnt = BattleLogic_GetAddFreeMopupNum(human)
+    nNowAddFreeCnt = nNowAddFreeCnt + talismanAdd_dailyFeeCnt
 
     if not mupopExcel then
         return Broadcast.sendErr(human, Lang.BATTLE_MOPUP_CNT_OVER)
@@ -2796,10 +2817,6 @@ function mopupFight(human)
         end
     end
 
-    if not ObjHuman.checkRMB(human, need) then
-        return
-    end
-
     local bUseAddFree = false
     if need <= 0 and bUseFree == true then
         human.db.mopupFreeCnt = human.db.mopupFreeCnt + 1
@@ -2811,7 +2828,12 @@ function mopupFight(human)
         end
     end
 
-    ObjHuman.decZuanshi(human, - need, "battleMopup")
+    if need > 0 then
+        if not ObjHuman.checkRMB(human, need) then
+            return
+        end
+        ObjHuman.decZuanshi(human, - need, "battleMopup")
+    end
 
     human.db.mopupDoCnt = bUseAddFree == true and human.db.mopupDoCnt or human.db.mopupDoCnt + 1
 
@@ -2829,7 +2851,12 @@ function mopupFight(human)
     local vipJinAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER8) or 0) / 100
     local vipGreenExpAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER9) or 0) / 100
     local vipQingbaoAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER19) or 0) / 100
-    local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
+
+    --秘宝加成
+    local talismanAdd_qb = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
+    local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_HERO_EXP) or 0) / 100
+    local talismanAdd_zs = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
+
     local exp = config.hangExp * 120
     local jinbi = config.hangJinbi * 120
     local greenExp = config.hangGreenExp * 120
@@ -2838,7 +2865,9 @@ function mopupFight(human)
     local addJinbi = math.floor(jinbi *(1 + vipJinAdd))
     local addGreenExp = math.floor(greenExp *(1 + vipGreenExpAdd))
     local addQingbao = math.floor(qingbao *(1 + vipQingbaoAdd))
-    addQingbao = addQingbao + math.ceil(addQingbao * talismanAdd)
+
+    addQingbao = addQingbao + math.ceil(addQingbao * talismanAdd_qb)
+    addGreenExp = addGreenExp + math.ceil(addGreenExp * talismanAdd_hero_exp)
 
     local time = 7200
     local itemTable = getItemOutsByTime(config, time)
@@ -2862,16 +2891,14 @@ function mopupFight(human)
     itemTable[ItemDefine.ITEM_QINGBAO_ID] = itemTable[ItemDefine.ITEM_QINGBAO_ID] + addQingbao
     msgRet.item[0] = 0
 
-    --秘宝
-    talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
     -- 双倍日
     local double = RoleSystemLogic.isDouble(human, RoleSystemDefine.ROLE_SYS_ID_1101)
     local rewardCnt = double and 2 or 1
     for itemID, itemCnt in pairs(itemTable) do
         itemCnt = itemCnt * rewardCnt
         
-        if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
-            itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
+        if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
+            itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
         end
 
         if not ItemDefine.isEquip(itemID) then

+ 17 - 8
script/module/copy/CopyLogic.lua

@@ -131,7 +131,8 @@ function challengeQuery(human, copyType)
 	msgRet.nextRefreshTime = 24 * 60 * 60 - (now - ts1)
 	
 	--秘宝加成
-	local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.NW_JB) or 0) / 100
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.NW_JB) or 0) / 100
+	local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.NW_HERO_EXP) or 0) / 100
 
 	local j = 0  -- 存储相同副本类型的数量
 	for i=1, #CopyExcel.copy do
@@ -147,8 +148,10 @@ function challengeQuery(human, copyType)
 			for key,value in ipairs (copyConfig.reward) do
 				local itemID = value[1]
 				local itemCnt = value[2]
-				if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd > 0 then
-					itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
+				if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+					itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_jinbi)
+				elseif itemID == ItemDefine.ITEM_GREEN_EXP_ID and talismanAdd_hero_exp > 0 then
+					itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_hero_exp)
 				end
 				Grid.makeItem(msgRet.list[j].reward[key], itemID, itemCnt)
 			end
@@ -218,18 +221,24 @@ function doFightEnd(human,copyID,combatInfo, touch)
 
     local double = RoleSystemLogic.isDouble(human,  RoleSystemDefine.ROLE_SYS_ID_1206)
 
+
+	--秘宝加成
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.NW_JB) or 0) / 100
+	local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.NW_HERO_EXP) or 0) / 100
+
+
 	-- 给奖励
 	local rewardRate = double and 2 or 1
-	--秘宝加成
-	local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.NW_JB) or 0) / 100
 
 	local itemList = {}
 	for i = 1, #copyConfig.reward do
 		local itemID = copyConfig.reward[i][1]
 		local itemCnt = copyConfig.reward[i][2]
 		local finalCnt = itemCnt * rewardRate * fightCnt
-		if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd > 0 then
-			finalCnt = finalCnt + math.ceil(finalCnt * talismanAdd)
+		if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+			finalCnt = finalCnt + math.ceil(finalCnt * talismanAdd_jinbi)
+		elseif itemID == ItemDefine.ITEM_GREEN_EXP_ID and talismanAdd_hero_exp > 0 then
+			finalCnt = finalCnt + math.ceil(finalCnt * talismanAdd_hero_exp)
 		end
 		BagLogic.addItem(human, itemID, finalCnt, "copy_win")
 		local index = #itemList+1
@@ -242,7 +251,7 @@ function doFightEnd(human,copyID,combatInfo, touch)
 				local nowTotalCnt = #combatInfo.rewardItem
 				combatInfo.rewardItem[nowTotalCnt + 1] = {}
 				combatInfo.rewardItem[nowTotalCnt + 1][1] = itemID
-				if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd > 0 then
+				if itemID == ItemDefine.ITEM_JINBI_ID or itemID == ItemDefine.ITEM_GREEN_EXP_ID then
 					combatInfo.rewardItem[nowTotalCnt + 1][2] = finalCnt
 				else
 					combatInfo.rewardItem[nowTotalCnt + 1][2] = itemCnt * rewardRate * fightCnt

+ 67 - 10
script/module/drill/DrillLogic.lua

@@ -70,6 +70,7 @@ local HeroLogLogic = require("absAct.HeroLogLogic")
 local HeroGrowUp = require("absAct.HeroGrowUp")
 local MengxinLogic = require("present.MengxinLogic")
 local YunYingLogic = require("yunying.YunYingLogic")
+local TalismanLogic = require("talisman.TalismanLogic")
 
 local queryFields = {["uuid"] = 1}
 local queryFieldsList = {}
@@ -289,6 +290,9 @@ function checkSaoDang(human, diff, lastDiff, lastId)
     local double = RoleSystemLogic.isDouble(human, RoleSystemDefine.ROLE_SYS_ID_1204)
     local rewardCnt = double and 2 or 1
 
+	--秘宝加成
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.DRILL_JINBI) or 0) / 100
+
 	if lastDiff and lastDiff == diff and lastId > 10 then
 		id = lastId - 10 
 		for i = 1 , id do
@@ -296,7 +300,10 @@ function checkSaoDang(human, diff, lastDiff, lastId)
 			-- 关卡奖励		
 			for _, item in ipairs(drillItems) do
 				local itemID = item[1]
-				local itemCnt = item[2] * rewardCnt			
+				local itemCnt = item[2] * rewardCnt
+				if itemID == ItemDefine.ITEM_JINBI_ID then
+					itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_jinbi)
+				end
 				drillDB.dayGet = drillDB.dayGet or {}
 				drillDB.dayGet[itemID] = (drillDB.dayGet[itemID] or 0) + itemCnt
 				BagLogic.addItem(human, itemID, itemCnt, "drill")
@@ -408,7 +415,7 @@ function queryDrillId(human, drillData)
 		return diffChoseQuery(human)   -- quest(human)
 	end
 
-	local drill = human.db.drill 
+	local drill = human.db.drill
 	local diff = drill.diff
 	if not drill.diff  or drill.diff == 0 then
 		diff = drillData.diff		 
@@ -428,6 +435,9 @@ function queryDrillId(human, drillData)
 	Grid.makeItem(msgRet.dayGet[1], ItemDefine.ITEM_JINBI_ID,  dayJinbi )
 	Grid.makeItem(msgRet.dayGet[2], ItemDefine.ITEM_DRILL_COIN_ID,  dayCoin )
 
+	--秘宝加成
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.DRILL_JINBI) or 0) / 100
+
 	msgRet.box[0] = #DrillExcel.box
 	for k, config  in ipairs(DrillExcel.box) do
 		local net = msgRet.box[k]	
@@ -436,9 +446,16 @@ function queryDrillId(human, drillData)
 		net.state = getBoxState(drill,  k)
 		local itemID1  = config["items"..diff][1][1]
 		local itemCnt1 = config["items"..diff][1][2]
+		if itemID1 == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+			itemCnt1 = itemCnt1 + math.ceil(itemCnt1 * talismanAdd_jinbi)
+		end
 
 		local itemID2  = config["items"..diff][2][1]
 		local itemCnt2 = config["items"..diff][2][2]
+		if itemID2 == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+			itemCnt2 = itemCnt1 + math.ceil(itemCnt2 * talismanAdd_jinbi)
+		end
+
 		Grid.makeItem(net.reward[1], itemID1,  itemCnt1 )
 		Grid.makeItem(net.reward[2], itemID2,  itemCnt2 )
 		net.reward[0] = 2
@@ -446,6 +463,10 @@ function queryDrillId(human, drillData)
 		if config["items"..diff][3] then
 			local itemID3  = config["items"..diff][3][1]
 			local itemCnt3 = config["items"..diff][3][2]
+			if itemID3 == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+				itemCnt3 = itemCnt1 + math.ceil(itemCnt3 * talismanAdd_jinbi)
+			end
+
 			Grid.makeItem(net.reward[3], itemID3,  itemCnt3 )
 			net.reward[0] = 3
 		end
@@ -490,8 +511,11 @@ function query(human, drillId)
 		return 
 	end
 
+	--秘宝加成
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.DRILL_JINBI) or 0) / 100
+
 	local double = RoleSystemLogic.isDouble(human, RoleSystemDefine.ROLE_SYS_ID_1204)
-	local rewardCnt = double and 2 or 1 
+	local rewardCnt = double and 2 or 1
 	--require("common.Util").printTable(drillObj)
 	local nowId = drillData.drillId
 	local msgRet = Msg.gc.GC_DRILL_INFO
@@ -506,11 +530,18 @@ function query(human, drillId)
 	elseif drill.diff == DIFF_INCUBI then
 		itemConfig = drillCfg.items3
 	end
+
 	for _, item in pairs(itemConfig) do
 		msgRet.reward[0] = msgRet.reward[0] + 1
-		Grid.makeItem(msgRet.reward[msgRet.reward[0]], item[1], item[2] * rewardCnt)
+		local itemCnt = item[2] * rewardCnt
+		if item[1] == ItemDefine.ITEM_JINBI_ID then
+			itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_jinbi)
+		end
+		Grid.makeItem(msgRet.reward[msgRet.reward[0]], item[1], itemCnt)
+		--Grid.makeItem(msgRet.reward[msgRet.reward[0]], item[1], item[2] * rewardCnt)
 	end
-	msgRet.defence[0] = 0	
+
+	msgRet.defence[0] = 0
 	for i = 1, CombatDefine.COMBAT_HERO_CNT do
 		local obj = drillObj.heroList[i]	
         if obj then
@@ -525,7 +556,6 @@ function query(human, drillId)
 			else
 				HeroGrid.makeHeroSimpleByID(msgRet.defence[msgRet.defence[0]], obj.id, i, others)
 			end
-           
         end
 	end
 
@@ -646,7 +676,20 @@ function drillBoxGet(human, index)
 		itemConfig = config.items3
 	end
 
-	BagLogic.addItemList(human, itemConfig, "drill")  
+	--秘宝加成
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.DRILL_JINBI) or 0) / 100
+	local awardVec = {}
+	for i, v in ipairs(itemConfig) do
+		local itemID = v[1]
+		local itemCnt = v[2]
+		if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+			itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_jinbi)
+		end
+		awardVec[i]= {itemID, itemCnt}
+	end
+
+	--BagLogic.addItemList(human, itemConfig, "drill")
+	BagLogic.addItemList(human, awardVec, "drill")
 
 	RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_1204)
     RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_1201)
@@ -659,6 +702,10 @@ function rewardPreview(human)
 
     local msgRet = Msg.gc.GC_DRILL_REWARD_PREVIEW
     msgRet.list[0] = 0
+
+	--秘宝加成
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.DRILL_JINBI) or 0) / 100
+
     for drillId, cf in pairs(DrillExcel.drill) do 
     	msgRet.list[0] = msgRet.list[0] + 1
     	local net = msgRet.list[msgRet.list[0]]
@@ -666,7 +713,10 @@ function rewardPreview(human)
 		net.items[0] = #cf.items
 		for i, item in ipairs(cf.items) do
 		    local itemID = item[1]
-		    local itemCnt = item[2] 		
+		    local itemCnt = item[2]
+			if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+				itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_jinbi)
+			end
 	        Grid.makeItem(net.items[i], itemID, itemCnt)
 		end
 	end
@@ -1440,15 +1490,22 @@ function onFightEnd(human, result, combatType, cbParam, combatInfo)
 			return
 		end
 	end
-	local drillItems = getDrillItems(cbParam.drillId, diff) 	
+	local drillItems = getDrillItems(cbParam.drillId, diff)	
 	local double = RoleSystemLogic.isDouble(human, RoleSystemDefine.ROLE_SYS_ID_1204)
 	local rewardCnt = double and 2 or 1
 	combatInfo.double = double and 2 or 0
+
+	--秘宝加成
+	local talismanAdd_jinbi = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.DRILL_JINBI) or 0) / 100
+
 	-- 关卡奖励		
 	local itemList = {}
 	for k, item in ipairs(drillItems) do
 		local itemID = item[1]
-		local itemCnt = item[2] * rewardCnt		
+		local itemCnt = item[2] * rewardCnt
+		if itemID == ItemDefine.ITEM_JINBI_ID and talismanAdd_jinbi > 0 then
+			itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_jinbi)
+		end
 		itemList[k] = {}
 		itemList[k][1] =  itemID
 		itemList[k][2] = itemCnt

+ 105 - 60
script/module/racialTrial/RacialTrialLogic.lua

@@ -21,19 +21,21 @@ local CombatDefine = require("combat.CombatDefine")
 local CombatLogic = require("combat.CombatLogic")
 local HeroLogic = require("hero.HeroLogic")
 local HeroConfig = require("excel.hero")
-local MonsterCfg = require("excel.monster")
 local Grid = require("bag.Grid")
 local MonsterGrid = require("monster.MonsterGrid")
+local Lang = require("common.Lang")
+local Broadcast = require("broadcast.Broadcast")
+local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
 
 --开启玩法的等级要求
 local openCondLevel =  0
 --每日最多可领奖次数
 local dailyAwardTimes = 0
 --种族试炼关卡数据,key为种族,value为该种族的关卡配置
-local racialCfg = {
-    --[camp] = {},
-    --[camp] = {},
-}
+-- local racialCfg = {
+--     --[camp] = {},
+--     --[camp] = {},
+-- }
 
 --日志Tag
 local RACIALTRIALLOG = "racialTrial"
@@ -67,30 +69,65 @@ local function updateCondValue()
 end
 
 --生成配置
-local function generateCfg()
-    local cfg = require("excel.shilianTower")
-    if not cfg then
-        return
+-- local function generateCfg()
+--     local cfg = require("excel.shilianTower")
+--     if not cfg then
+--         return
+--     end
+
+--     local stageCfg = cfg.shilianTower
+--     racialCfg = { [1] = {}, [2] = {}, [3] = {}, [4] = {}}
+--     local n1,n2,n3,n4 = 0,0,0,0
+--     for _, v in ipairs(stageCfg) do
+--         if v.raceID == 101 then
+--             n1 = n1 + 1
+--             racialCfg[1][n1] = v
+--         elseif v.raceID == 102 then
+--             n2 = n2 + 1
+--             racialCfg[2][n2] = v
+--         elseif v.raceID == 103 then
+--             n3 = n3 + 1
+--             racialCfg[3][n3] = v
+--         elseif v.raceID == 104 then
+--             n4 = n4 + 1
+--             racialCfg[4][n4] = v
+--         end
+--     end
+-- end
+
+--通过种族类型获取配置
+local function getCfgByCamp(human, camp)
+    local cfgVec = require("excel.shilianTower").shilianTower
+    if not cfgVec then
+        return Broadcast.sendErr(human, Lang.COMMON_COMFIG_ERROR)
+    end
+
+    local config = {}
+    local targetId = 0
+    if camp == 1 then
+        targetId = 101
+    elseif camp == 2 then
+        targetId = 102
+    elseif camp == 3 then
+        targetId = 103
+    elseif camp == 4 then
+        targetId = 104
+    else
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
-
-    local stageCfg = cfg.shilianTower
-    racialCfg = { [1] = {}, [2] = {}, [3] = {}, [4] = {}}
-    local n1,n2,n3,n4 = 0,0,0,0
-    for _, v in ipairs(stageCfg) do
-        if v.raceID == 101 then
-            n1 = n1 + 1
-            racialCfg[1][n1] = v
-        elseif v.raceID == 102 then
-            n2 = n2 + 1
-            racialCfg[2][n2] = v
-        elseif v.raceID == 103 then
-            n3 = n3 + 1
-            racialCfg[3][n3] = v
-        elseif v.raceID == 104 then
-            n4 = n4 + 1
-            racialCfg[4][n4] = v
+    
+    local len = #config
+    for _, v in ipairs(cfgVec) do
+        if v.raceID == targetId then
+            len = len + 1
+            config[len] = v
         end
     end
+
+    if len == 0 then
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
+    end
+    return config
 end
 
 --初始化数据
@@ -181,7 +218,8 @@ function isDot(human,config)
         if human.db.RacialTrial then
             local num = 0
             for camp, v in pairs(human.db.RacialTrial) do
-                local campCfg = racialCfg[camp]
+                --local campCfg = racialCfg[camp]
+                local campCfg = getCfgByCamp(human, camp)
                 if v.dailyAwardCnt <= 0 or v.lv >= #campCfg then
                     num = num + 1
                 end
@@ -222,8 +260,8 @@ function isDot(human,config)
         if human.db.RacialTrial and human.db.RacialTrial[camp] then
             local dailyAwardCnt = human.db.RacialTrial[camp].dailyAwardCnt
             local lv = human.db.RacialTrial[camp].lv
-            local campCfg = racialCfg[camp]
-    
+            --local campCfg = racialCfg[camp]
+            local campCfg = getCfgByCamp(human, camp)
             if dailyAwardCnt <= 0 or lv >= #campCfg then
                 return false
             end
@@ -240,9 +278,9 @@ function updateDaily(human)
         return
     end
 
-    if not next(racialCfg) then
-        generateCfg()
-    end
+    -- if not next(racialCfg) then
+    --     generateCfg()
+    -- end
 
     --重置每日领奖次数/每日通关次数
     if human.db and human.db.RacialTrial then
@@ -254,24 +292,25 @@ end
 
 function onLogin(human)
     updateCondValue()
-    if human.db.lv < openCondLevel then
-        return
-    end
+    -- if human.db.lv < openCondLevel then
+    --     return
+    -- end
 
-    if not next(racialCfg) then
-        generateCfg()
-    end
+    -- if not next(racialCfg) then
+    --     generateCfg()
+    -- end
 end
 
 --GM 修改某个种族的关卡, levelCnt表示要往前/后打多少关,但是不增加每日领奖次数
 function GmSetlevel(human, camp, levelCnt)
     if not camp or not levelCnt then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
 
-    local singleRacialCfg = racialCfg[camp]
+    local singleRacialCfg = getCfgByCamp(human, camp)
+    --local singleRacialCfg = racialCfg[camp]
     if not singleRacialCfg then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_COMFIG_ERROR)
     end
 
     if not human.db.RacialTrial or not human.db.RacialTrial[camp] then
@@ -298,11 +337,11 @@ end
 --GM 开启某个种族的试炼
 function GmOpenTrial(human, camp)
     if not camp then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
     local wdDays = RACIAL_OPENTIME[camp]
     if not wdDays then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
 
     local wday = Util.getWeekDay()
@@ -317,7 +356,7 @@ end
 --增加某个种族试炼关卡的每次奖励次数/通关数
 function GmAddDailyAwardCnt(human, camp, num)
     if not camp or not num then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
 
     if not human.db.RacialTrial or not human.db.RacialTrial[camp] then
@@ -340,7 +379,7 @@ function getCombatMonsterOutID(human, side, args, combatType)
         camp = camp[1]
     end
     if not camp then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
 
     local nowLelvel = 0
@@ -348,9 +387,12 @@ function getCombatMonsterOutID(human, side, args, combatType)
         nowLelvel =  human.db.RacialTrial[camp].lv
     end
 
-    local config = racialCfg[camp][nowLelvel+1]
+    local configVec = getCfgByCamp(human, camp)
+    local config = configVec[nowLelvel+1]
+    --local config = racialCfg[camp][nowLelvel+1]
+
     if not config then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_COMFIG_ERROR)
     end
     return config.monsterOutID, config.zhandouli
 end
@@ -361,7 +403,7 @@ function fight(human, args, combatType)
         camp = camp[1]
     end
     if not camp then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
 
     if human.db.RacialTrial and human.db.RacialTrial[camp] then
@@ -373,9 +415,10 @@ function fight(human, args, combatType)
         end
 
         --已经到最高层
-        local campCfg = racialCfg[camp]
+        --local campCfg = racialCfg[camp]
+        local campCfg = getCfgByCamp(human, camp)
         if data.lv and data.lv >= #campCfg then
-            return
+            return Broadcast.sendErr(human, Lang.COMMON_MAXLEVEL)
         end
     end
 
@@ -394,7 +437,7 @@ function onFightEnd(human, result, combatType, param1, combatInfo)
         camp = camp[1]
     end
     if not camp then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
 
     if not human.db.RacialTrial or not human.db.RacialTrial[camp] then
@@ -407,10 +450,11 @@ function onFightEnd(human, result, combatType, param1, combatInfo)
     data.lv = data.lv + 1
     data.dailyAwardCnt =  data.dailyAwardCnt - 1
 
-    local singleRacialCfg = racialCfg[camp]
+    --local singleRacialCfg = racialCfg[camp]
+    local singleRacialCfg = getCfgByCamp(human, camp)
     local rewardCfg = singleRacialCfg[data.lv].reward
     if not rewardCfg then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_COMFIG_ERROR)
     end
 
     --已经到最高层或者当日可挑战次数已用完则不能继续挑战
@@ -435,7 +479,7 @@ end
 --入口查询
 function entranceQuery(human)
     if human.db.lv < openCondLevel then
-        return
+        return Broadcast.sendErr(human, Lang.COMMOM_NOT_ENABLED)
     end
 
     local wday = Util.getWeekDay()
@@ -472,11 +516,11 @@ end
 --单个种族关卡数据查询
 function stageQuery(human, camp_m)
     if not camp_m then
-        return
+        return Broadcast.sendErr(human, Lang.COMMON_ARGUMENT_ERROR)
     end
 
     if human.db.lv < openCondLevel then
-        return
+        return Broadcast.sendErr(human, Lang.COMMOM_NOT_ENABLED)
     end
 
     local nowLv = 0
@@ -499,8 +543,9 @@ function stageQuery(human, camp_m)
         endIdx = startIdx + 5
     end
 
-    local singleRecailCfg = racialCfg[camp_m]
-    local levelMaxCnt = #singleRecailCfg
+    --local singleRecailCfg = racialCfg[camp_m]
+    local singleRacialCfg = getCfgByCamp(human, camp_m)
+    local levelMaxCnt = #singleRacialCfg
 
     --已经打到最高层的处理
     if nowLv >= levelMaxCnt then
@@ -514,12 +559,12 @@ function stageQuery(human, camp_m)
         startIdx = startIdx - subLevel + 1
         endIdx = levelMaxCnt
     end
-    
+
     local stageData = msgRet.data.stageData
     stageData[0] = 0
     local cnt = 0
     for i = startIdx, endIdx do
-        local singleCfg = singleRecailCfg[i]
+        local singleCfg = singleRacialCfg[i]
         if not singleCfg then
             return
         end

+ 8 - 0
script/module/roleSystem/RoleSystemDefine.lua

@@ -50,6 +50,14 @@ ROLE_SYS_ID_1206 = 1206 -- 冒险-黄金圣树
 ROLE_SYS_ID_1207 = 1207 -- 冒险-遗迹探险
 ROLE_SYS_ID_1208 = 1208 -- 冒险-失落神庙
 ROLE_SYS_ID_1209 = 1209 -- 冒险-冰龙巢穴
+
+ROLE_SYS_ID_1210 = 1210 -- 种族试炼-入口
+ROLE_SYS_ID_1211 = 1211 -- 种族试炼-妖族试炼
+ROLE_SYS_ID_1212 = 1212 -- 种族试炼-人族试炼
+ROLE_SYS_ID_1213 = 1213 -- 种族试炼-兽族试炼
+ROLE_SYS_ID_1214 = 1214 -- 种族试炼-仙/魔族试炼
+
+
 ROLE_SYS_ID_1300 = 1300 -- 主界面竞技
 ROLE_SYS_ID_1301 = 1301 -- 竞技-冠军联赛
 ROLE_SYS_ID_1302 = 1302 -- 竞技-王者争霸

+ 8 - 4
script/module/talisman/TalismanLogic.lua

@@ -27,10 +27,14 @@ local COND_TOWER_LEVEL = 100 --开启本系统需要通关恶魔之塔的层数
 
 --秘宝对挂机钻石/情报等其他方面加成标识
 OTHER_EFFECT_TBL = {
-    ["GJ_QB"] = "GJ_QB",            --挂机情报类型
-    ["GJ_ZS"] = "GJ_ZS",            --挂机钻石类型
-    ["DJ"] = "DJ",                  --点金
-    ["NW_JB"] = "NW_JB",            --女巫森林金币类型
+    ["GJ_QB"] = "GJ_QB",                            --挂机情报类型
+    ["GJ_ZS"] = "GJ_ZS",                            --挂机钻石类型
+    ["GJ_HERO_EXP"] = "GJ_HERO_EXP",                --挂机英雄经验类型
+    ["GJ_SD_FREE_CNT"] = "GJ_SD_FREE_CNT",          --每日扫荡次数类型
+    ["DJ"] = "DJ",                                  --点金
+    ["NW_JB"] = "NW_JB",                            --女巫森林金币类型
+    ["NW_HERO_EXP"] = "NW_HERO_EXP",                --女巫森林英雄经验类型
+    ["DRILL_JINBI"] = "DRILL_JINBI",                --勇者试炼金币类型
 }
 
 --是否开启本系统