فهرست منبع

提交天梯赛相关修改

SCFC 10 ماه پیش
والد
کامیت
616aa30760

+ 1 - 0
script/common/Lang.lua

@@ -783,3 +783,4 @@ BATTLE_GET_MOPUPNUM = [[你获得{1}次主线扫荡次数]]
 HEROPUB_STAR_NOT_ENOUGH = [[星级不足]]
 
 JJCNEWLADDERNOFIGHT = [[当前挑战角色正在战斗中稍后重试]]
+JJCNEWLADDERNOOPEN = [[当前不在活动时间]]

+ 1 - 0
script/common/Log.lua

@@ -73,6 +73,7 @@ function init()
     --[[合服日志]] LOGID_OSS_MERGE = lua_log.reg("log/oss_merge","",300)
     --[[通用活动日志]] LOGID_OSS_COMMON_ACT = lua_log.reg("log/oss_actcommon","",300)   -- 用于各种活动开启,结束等日志
     --[[渠道返利日志]] LOGID_OSS_REBATE = lua_log.reg("log/oss_rebate","",300)   -- 用于各种活动开启,结束等日志
+    --[[天梯赛]] LOGID_OSS_JJCNEWLADDER = lua_log.reg("log/oss_jjcladder","",300)   -- 天梯赛日志
 end
 init()
 

+ 54 - 5
script/module/jjcnewladder/jjcNewLadderDB.lua

@@ -18,6 +18,7 @@ local JjcNewLadderDefine = require("jjcnewladder.jjcNewLadderDefine")
 local Timer = require("core.Timer")
 local JjcNewLadderMiddle = require("jjcnewladder.jjcNewLadderMiddle")
 local ObjHuman = require("core.ObjHuman")
+local Log = require("common.Log")
 
 
 local nServerOffSet = 810538  -- 配置中服务器ID偏移量
@@ -31,10 +32,16 @@ UUID_2_RANK = {}
 local JJCLADDER_RANDNUM = 50                 -- 随机次数,防止找到重复的
 local JJCLADDER_FINDRIVALNUM = 5             -- 匹配的对手
 local JJCLADDER_FINDBIGNUM = 4               -- 匹配大于当前排位人数
+local JJCLADDER_SPECIALRANK = 5              -- 特殊处理的前五名
 
 local Jjc_QueryByUuid = {uuid = nil}        -- DB查询数据
 
 -------------------------------- 以下是战区归宿的第一个服操作 ---------------------------
+-- 写日志
+local function JjcNewLadderDB_WriteLog(szText)
+    Log.write(Log.LOGID_OSS_JJCNEWLADDER, szText)
+end
+
 -- 获取战区服务器ID
 function JjcNewLadderDB_ConfServerID2TrueServerID(nServerIDConf)
     return nServerIDConf + nServerOffSet - 1
@@ -82,6 +89,7 @@ function JjcNewLadderDB_SetEndTime()
         CommonDB.SetJjcLadderEndTime(nEndTime)
     
         print("[JjcNewLadderDB_SetEndTime] 设置了活动结束时间 nEndTime = "..nEndTime)
+        JjcNewLadderDB_WriteLog("[JjcNewLadderDB_SetEndTime] 设置活动结束时间 nEndTime = "..nEndTime)
     end
 end
 
@@ -211,6 +219,7 @@ local function JjcNewLadderDB_FirstServerRest(nOperate)
     UUID_2_RANK = {}
     LuaMongo.remove(DB.db_jjcLadder)
 
+    JjcNewLadderDB_WriteLog("[JjcNewLadderDB_FirstServerRest] 清理数据完成")
     -- for i = 1, nLen, 1 do
     --     local tRankData = JJCNEWLADDERDB_ALL_RANK[i]
     --     if false == JjcNewLadderDB_isNpc(tRankData) then
@@ -228,6 +237,8 @@ local function JjcNewLadderDB_FirstServerRest(nOperate)
 
     -- 进行排序和映射
     JjcNewLadderDB_SortRank()
+
+    JjcNewLadderDB_WriteLog("[JjcNewLadderDB_FirstServerRest] 生成机器人,重新排序完成")
 end
 
 -- 根据 uuid从db中取data
@@ -300,6 +311,8 @@ local function JjcNewLadderDB_LoadData()
 
     print("[JjcNewLadderDB_LoadData] 加载数据完成,共加载 "..#JJCNEWLADDERDB_ALL_RANK)
 
+    JjcNewLadderDB_WriteLog("[JjcNewLadderDB_LoadData] 加载数据完成,共加载 "..#JJCNEWLADDERDB_ALL_RANK)
+
     -- 加载完排序
     JjcNewLadderDB_SortRank()
 
@@ -335,9 +348,11 @@ function JjcNewLadderDB_initAfterStart()
             -- 直接重置
             JjcNewLadderDB_Init()
             print("[JjcNewLadderDB_initAfterStart] 重置DB数据结束")
+            JjcNewLadderDB_WriteLog("[JjcNewLadderDB_initAfterStart] 战区所属服 重置DB数据结束 ")
         else
             -- 清理录像
             CombatVideo.cleanJJCLadderVideo()
+            JjcNewLadderDB_WriteLog("[JjcNewLadderDB_initAfterStart] 战区 清理录像 ")
         end
     else
         local nNowTime = os.time()
@@ -396,15 +411,23 @@ end
 function JjcNewLadderDB_CheckIsReset()
     local nNowTime = os.time()
     local nEndTime = CommonDB.GetJjcLadderEndTime()
+    local tDate = os.date("*t",nNowTime)
+    print("[JjcNewLadderDB_CheckIsReset] 进入重置检测 nNowTime = "..nNowTime.." nEndTime = "..nEndTime)
+
     if 0 >= nEndTime then
-        local tDate = os.date("*t",nNowTime)
-        if tDate.wday >= JjcNewLadderDefine.JJC_NEWLADDER_OPENDAY and JjcNewLadderDefine.JJC_NEWLADDER_OPENDAY <= tDate.wday then
+        if tDate.wday >= JjcNewLadderDefine.JJC_NEWLADDER_OPENDAY and JjcNewLadderDefine.JJC_NEWLADDER_ENDDAY >= tDate.wday then
             return true
         end
 
         return false
     else
-        return nNowTime > nEndTime
+        -- 在活动时间内
+        if tDate.wday >= JjcNewLadderDefine.JJC_NEWLADDER_OPENDAY and JjcNewLadderDefine.JJC_NEWLADDER_ENDDAY >= tDate.wday then
+            return nNowTime > nEndTime
+        end
+
+        -- 不在不处理
+        return false
     end
 end
 
@@ -451,6 +474,8 @@ function JjcNewLadderDB_AddHuman(tData)
     JJCNEWLADDERDB_ALL_RANK[#JJCNEWLADDERDB_ALL_RANK + 1] = JjcDBData
 	JjcNewLadderDB_SortRank()
 
+    JjcNewLadderDB_WriteLog("[JjcNewLadderDB_AddHuman] 玩家加入天梯赛活动 name = "..tData.name.." uuid = "..tData.uuid.." nServerID = "..tData.nServerID)
+
     return true
 end
 
@@ -472,8 +497,19 @@ function JjcNewLadderDB_MatchRival(uuid)
     local tChoseID, nFindNum = {}, 0
 
     local bFindBig = true
-    if nMachRank <= 4 then
+    -- 前5特殊处理
+    if nMachRank <= JJCLADDER_SPECIALRANK then
         bFindBig = false
+
+        -- 不是第一名
+        if nNowRank ~= 1 then
+            for i = 1, JJCLADDER_SPECIALRANK, 1 do
+                if i ~= nNowRank then
+                    tChoseID[i] = 1
+                    nFindNum = nFindNum + 1
+                end
+            end
+        end
     end
 
     -- 找50次
@@ -608,11 +644,20 @@ function JjcNewLadderDB_ExChangeRank(uuid, uuidEnemy)
 
     if tRankData.nRank > tRankEnemyData.nRank then
         print("[JjcNewLadderDB_ExChangeRank] 111 nRank = "..tRankData.nRank.." nRank2 = "..tRankEnemyData.nRank)
+
+        local szText = "[JjcNewLadderDB_ExChangeRank] 开始交换排名 我方排名 nRank = "..tRankData.nRank.." 敌方排名 nEnemyRank = "..tRankEnemyData.nRank
+                        .. " name = "..tRankData.name.." nServerID = "..tRankData.nServerID
+        if tRankEnemyData.nIsHuman == 1 then
+            szText = szText.." 敌方为真人 name = "..tRankEnemyData.name.." nServerID = "..tRankEnemyData.nServerID
+        end
+        JjcNewLadderDB_WriteLog(szText)
+
         local nNewRank = tRankEnemyData.nRank
         tRankEnemyData.nRank = tRankData.nRank
         tRankData.nRank = nNewRank
 
         print("[JjcNewLadderDB_ExChangeRank] 222 nRank = "..tRankData.nRank.." nRank2 = "..tRankEnemyData.nRank)
+
         local tNewData = Util.copyTable(tRankData)
         tNewData._id = nil
         -- 更新DB数据
@@ -631,6 +676,7 @@ end
 
 -- 发送对应的数据给奖励
 function JjcNewLadderDB_OnSendPlayerRank(uuid, nServerID, nRank)
+    JjcNewLadderDB_WriteLog("[JjcNewLadderDB_OnSendPlayerRank] 发送奖励 uuid = "..uuid.." nServerID = "..nServerID.." nRank = "..nRank)
     JjcNewLadderMiddle.JjcNewLadderMiddle_SendPrizeMail(uuid, nServerID, nRank)
 end
 
@@ -664,11 +710,14 @@ function JjcNewLadderDB_OnTimeSendMail()
                 worshipCnt = 0,
             }
 
-            table.insert(tQueryWorShip, {uuid = tInfo.uuid, nServerID = tInfo.uuid})
+            JjcNewLadderDB_WriteLog("[JjcNewLadderDB_OnTimeSendMail] 插入前三排名是真人的玩家 name = "..tInfo.name.." uuid = "..tInfo.uuid.." nServerID = "..tInfo.nServerID)
+
+            table.insert(tQueryWorShip, {uuid = tInfo.uuid, nServerID = tInfo.nServerID})
             table.insert(tLastRankInfo, tInfo)
             
             if JjcNewLadderDefine.JJCN_NEWLADDER_LASTRANK_INFO == nRank then
                 CommonDB.SetJjcLadderLast3RankInfo(tLastRankInfo)
+                JjcNewLadderDB_WriteLog("[JjcNewLadderDB_OnTimeSendMail] 插入前三数据完成")
             end
         end
     end

+ 47 - 2
script/module/jjcnewladder/jjcNewLadderLogic.lua

@@ -205,7 +205,7 @@ local function JjcNewLadder_SetRecordList(human, videoUuid)
     table.insert(human.db.JjcNewLadder.recordList, {videoUuid = videoUuid, time = os.time()})   
 end
 
--- 尝试删除对接记录的视频UID
+-- 尝试删除对战记录的视频
 local function JjcNewLadder_TryDelRecordList(human)
     local tRecordList = JjcNewLadder_GetRecordList(human)
     if nil == tRecordList then
@@ -218,8 +218,12 @@ local function JjcNewLadder_TryDelRecordList(human)
     end
 
     local nDelLen = nLen - JjcNewLadderDefine.JJC_NEWLADDER_SAVE_RECORDLIST_LEN
+    local nAllLen = #tRecordList
     for i = nDelLen, 1, -1 do
-        table.remove(tRecordList, i)
+        local tData = tRecordList[nAllLen]
+        CombatVideo.removeCombatVideo(tData.videoUuid)
+        table.remove(tRecordList, nAllLen)
+        nAllLen = nAllLen - 1
     end
 end
 
@@ -441,6 +445,8 @@ local function JjcNewLadder_SaveRecord(human, combatInfo)
     local combatVideo = CombatVideo.createCombatVideo(CombatVideo.VIDEOTYPE_JJCLODDER, combatInfo, human.db._id)
     local videoUuid = combatVideo._id
 
+    JjcNewLadder_TryDelRecordList(human)
+
     JjcNewLadder_SetRecordList(human, videoUuid)
 end
 
@@ -487,6 +493,11 @@ local function JjcNewLaader_GetHumanBaseInfo(tData, human)
     tData.nRank = JjcNewLadder_GetHumanRank(human)
 end
 
+-- 弹不在活动提示
+local function JjcNewLadder_PopNoOpenTips(human)
+    Broadcast.sendErr(human, Lang.JJCNEWLADDERNOOPEN)
+end
+
 ---------------------------------- 内部调用 ----------------------------------------------
 -- 请求加入天梯赛(数据服)
 function JjcNewLadderLogic_JoinHuman(tData)
@@ -1056,6 +1067,11 @@ end
 ---------------------------------- 客户端请求 ----------------------------------------------
 -- 请求天梯赛信息
 function JjcNewLadderLogic_Query(human)
+    if false == JjcNewLadderLogic_CheckIsOpen() then
+        JjcNewLadder_PopNoOpenTips(human)
+        return
+    end
+
     if not human.db.JjcNewLadder then
         JjcNewLadderLogic_CreatDB(human)
     end
@@ -1080,6 +1096,11 @@ end
 
 -- 天梯赛对战记录查询
 function JjcNewLadderLogic_RecordQuery(human)
+    if false == JjcNewLadderLogic_CheckIsOpen() then
+        JjcNewLadder_PopNoOpenTips(human)
+        return
+    end
+
     JjcNewLadder_TryDelRecordList(human)
     local tRecordList = JjcNewLadder_GetRecordList(human)
     local tMsgData = Msg.gc.GC_JJC_NEW_LADDER_RECORD_QUERY
@@ -1115,6 +1136,10 @@ end
 
 -- 天梯赛对手查询
 function JjcNewLadderLogic_TargetFind(human)
+    if false == JjcNewLadderLogic_CheckIsOpen() then
+        JjcNewLadder_PopNoOpenTips(human)
+        return
+    end
     JjcNewLadderMiddle.JjcNewLadderMiddle_RefreshEnemy(human)
 end
 
@@ -1155,6 +1180,11 @@ end
 
 -- 排行榜查询
 function JjcNewLadderLogic_RankQuery(human)
+    if false == JjcNewLadderLogic_CheckIsOpen() then
+        JjcNewLadder_PopNoOpenTips(human)
+        return
+    end
+
     if not tCacheRankInfo or not tCacheRankInfo.tRankList then
         local uuid = human.db._id
         if tCacheQueryRankPlaeyer[uuid] then
@@ -1181,6 +1211,11 @@ end
 
 -- 请求一键挑战 -- 直接获取奖励
 function JjcNewLadderLogic_OneClickChange(human)
+    if false == JjcNewLadderLogic_CheckIsOpen() then
+        JjcNewLadder_PopNoOpenTips(human)
+        return
+    end
+
     local tConfig = JjcExcel.skyladderFightPrize
     local nFreeNum = JjcNewLadder_GetHumanFreeNum(human)
     if 0 >= nFreeNum then
@@ -1226,6 +1261,11 @@ end
 
 -- 请求排行榜奖励信息
 function JjcNewLadderLogic_RankPrizeQuery(human)
+    if false == JjcNewLadderLogic_CheckIsOpen() then
+        JjcNewLadder_PopNoOpenTips(human)
+        return
+    end
+
     local tMsgData = Msg.gc.GC_JJC_NEW_LADDER_QUERY_RANKPRIZE
     tMsgData.nOwnRank = JjcNewLadder_GetHumanRank(human)
     tMsgData.tOwnPrize[0] = 0
@@ -1261,6 +1301,11 @@ end
 
 -- 请求人物所有信息
 function JjcNewLadderLogic_QueryAllInfo(human, uuid, nType)
+    if false == JjcNewLadderLogic_CheckIsOpen() then
+        JjcNewLadder_PopNoOpenTips(human)
+        return
+    end
+
     print("[JjcNewLadderLogic_QueryAllInfo] 请求人物所以信息开始 name = "..human.db.name.." uuid = "..uuid.." nType = "..nType)
 
     local tPlayInfo = JjcNewLadderLogic_GetInfoByUUID(human, uuid, nType)