Procházet zdrojové kódy

提交精英副本和礼包显示问题

SCFC před 1 rokem
rodič
revize
be2bfbec0d

+ 1 - 1
script/module/absAct/Proto.lua

@@ -929,7 +929,7 @@ GC_ABS_NEWHERO = {
     {"id",              1,  "int"},         -- 英雄id
     {"startTime",       1,  "int"},         -- 开启时间
     {"endTime",         1,  "int"},         -- 结束时间
-    {"giftlist",        4,  NewHeroGift},   -- 礼包列表
+    {"giftlist",        14,  NewHeroGift},   -- 礼包列表
 }
 
 CG_ABS_NEWHERO_BUYGIFT = {

+ 44 - 7
script/module/battle/BattleLogic.lua

@@ -659,6 +659,37 @@ local function BattleLogic_QueryDifficulty(human)
     print(info)
 end
 
+-- 设置战役通关标记
+local function BattleLogic_SetBattleAdopt(human, nBattleType, nValue)
+    if not human or EliteDefine.COPY_ELITE_ERROR >= nBattleType or EliteDefine.COPY_ELITE_DIFFICULTY < nBattleType then
+        return
+    end
+
+    print("[BattleLogic_SetBattleAdopt] 玩家通过战役 nBattleType = "..nBattleType.." nValue = "..nValue)
+    if EliteDefine.COPY_ELITE_NORMAL == nBattleType then
+        human.db.battleadopt = nValue
+    elseif EliteDefine.COPY_LEVEL_ELITE == nBattleType then
+        human.db.battleadopt_elite = nValue
+    elseif EliteDefine.COPY_ELITE_DIFFICULTY == nBattleType then
+        human.db.battleadopt_haed = nValue
+    end
+end
+
+-- 获取战役通关标记
+local function BattleLogic_GetBattleAdopt(human, nBattleType)
+    if not human or EliteDefine.COPY_ELITE_ERROR >= nBattleType or EliteDefine.COPY_ELITE_DIFFICULTY < nBattleType then
+        return 0
+    end
+
+    if EliteDefine.COPY_ELITE_NORMAL == nBattleType then
+        return human.db.battleadopt 
+    elseif EliteDefine.COPY_LEVEL_ELITE == nBattleType then
+        return human.db.battleadopt_elite
+    elseif EliteDefine.COPY_ELITE_DIFFICULTY == nBattleType then
+        return human.db.battleadopt_haed
+    end
+end
+
 function getBattleRoleList(nBattleType, worldMapId)
     if not BATTLE_LEVEL_PLAYER_LIST then
         BATTLE_LEVEL_PLAYER_LIST = {}
@@ -1179,7 +1210,8 @@ function query(human)
     local nNowBattleID = BattleLogic_GetBattleBattleID(human)
     local tBattleConfig = BattleLogic_GetBattleConfig(human)
     local nNowGuaJiID = BattleLogic_GetBattleGuaJiID(human)
-    if -1 >= nNowBattleID or not tBattleConfig or -1 >= nNowGuaJiID then
+    local nBattleType = BattleLogic_GetBattleType(human)
+    if -1 >= nNowBattleID or not tBattleConfig or -1 >= nNowGuaJiID or -1 >= nBattleType then
         Log.write(Log.LOGID_OSS_BATTLE_MAINGATE, "[query] 获取到的战斗ID或奖励配置不正确")
         print("[query] 获取到的战斗ID或奖励配置不正确 id = "..human.db._id)
         return
@@ -1200,8 +1232,9 @@ function query(human)
         nNowGuaJiID = configNode
         BattleLogic_SetBattleGuaJiID(human, nNowGuaJiID)
     end
-
-    if nNowBattleID == nNowGuaJiID and nNowBattleID == configNode then
+    
+    local nBattleAdopt = BattleLogic_GetBattleAdopt(human, nBattleType)
+    if nBattleAdopt == 1 then
         print("[query] nNowBattleID 为最大值 nNowBattleID = "..nNowBattleID.." nNowGuaJiID = "..nNowGuaJiID)
         msgRet.nowBattleID = configNode + 1
     end
@@ -2274,6 +2307,10 @@ function onFightEnd(human, result, fightTypeID, param1, combatInfo)
     -- local nextBattleConfig = BattleExcel.node[nextBattleID]
     -- local config = BattleExcel.node[battleID]
 
+    if (battleID + 1) > nAllFightLen then
+        BattleLogic_SetBattleAdopt(human, nBattleType, 1)
+    end
+
     local nextBattleConfig = tBattleConfig.node[nextBattleID]
     local config = tBattleConfig.node[battleID]
 
@@ -3430,11 +3467,11 @@ end
 -- 判断是否是最后一关
 function BattleLogic_IsLastLevels(human, nBattleType)
     local tBattleConfig = BattleLogic_GetBattleConfigByType(nBattleType)
-    local nBattleID = BattleLogic_GetBattleBattleID(human)
-    if not tBattleConfig or -1 >= nBattleID then
+    local nBattleType = BattleLogic_GetBattleType(human)
+    if not tBattleConfig or -1 >= nBattleType then
         return false
     end
 
-    local nNodeLen = #tBattleConfig.node
-    return nBattleID == nNodeLen
+    local nValue = BattleLogic_GetBattleAdopt(human, nBattleType)
+    return nValue == 1
 end

+ 1 - 1
script/module/battle/EliteDefine.lua

@@ -12,7 +12,7 @@ COPY_ELITE_NORMAL1 = 4
 --开启玩家等级
 COPY_ELITE_ULEV = 23
 --开启其他难度关卡所需ID
-COPY_ELITE_LEVEL = 80
+COPY_ELITE_LEVEL = 150
 --选择成功
 COPY_SELECT_SUCC = 0
 --玩家等级未达到

+ 20 - 0
script/module/role/RoleDBLogic.lua

@@ -211,11 +211,21 @@ function createDefaultRole(account)
 		heroBook = nil,                         -- 获得过的图鉴英雄[id]= true
 		shop = nil,                             -- 商店购买物品次数记录 shop[shopType][itemID] = cnt
 		
+		battleType = 1,							-- 战役类型(1、普通,2、精英,3、困难)
 		guajiID = 0,						    -- 已通关关卡/挂机关卡
+		guajiID_elite = 0,						-- 精英- 已通关关卡/挂机关卡
+		guajiID_hard = 0,						-- 困难- 已通关关卡/挂机关卡
 		battleID = 1,						    -- 战役即将战斗id
+		battleID_elite = 1,						-- 精英-战役即将战斗id
+		battleID_hard = 1,						-- 困难-战役即将战斗id
 		battleHis = nil,						-- 战役历史记录(用于新手任务第五关特殊处理)
 		battleRewards = nil, 					-- 征战奖励领取记录
+		battleRewards_elite = nil,				-- 精英征战奖励领取记录
+		battleRewards_hard = nil,				-- 困难征战奖励领取记录
 		battleOut = nil,						-- 挂机收益{expTs1--经验开始产出时间戳,expTs2--经验产出结算时间戳,itemTs1--道具产出时间戳,itemTs2--道具产出结算时间戳,exp,jinbi,greenExp,items,itemsHalf}
+		battleadopt = 0,						-- 普通战役是否通关
+		battleadopt_elite = 0,					-- 精英战役是否通关
+		battleadopt_haed = 0,					-- 困难战役是否通关
 		copy = nil,                             -- 活动副本 [1] ={cnt今日已挑战次数,buyCnt已购买次数} 
 		dailyTask = nil,                        -- 每日任务
 		bar = nil,                              -- [taskID] = {isLock是否锁定, star任务星级, nameID阿辛多, actionID委托, itemID, itemCnt, ts开始做任务时间戳, hero={index}上阵英雄, camp = {1,2}任务要求, job = {1}任务要求}
@@ -468,6 +478,16 @@ local newAddDBData = {
 	},  -- 战令相关
 	heroGrowUp = {}, -- 英雄成长
 	cdk = {},
+	battleType = 1,							-- 战役类型(1、普通,2、精英,3、困难)
+	guajiID_elite = 0,						-- 精英- 已通关关卡/挂机关卡
+	guajiID_hard = 0,						-- 困难- 已通关关卡/挂机关卡
+	battleID_elite = 1,						-- 精英-战役即将战斗id
+	battleID_hard = 1,						-- 困难-战役即将战斗id
+	battleRewards_elite = nil,				-- 精英征战奖励领取记录
+	battleRewards_hard = nil,				-- 困难征战奖励领取记录
+	battleadopt = 0,						-- 普通战役是否通关
+	battleadopt_elite = 0,					-- 精英战役是否通关
+	battleadopt_haed = 0,					-- 困难战役是否通关
 }
 local roleDBchanged
 local function handleNew(orgDB, newTable)