-------------------------------- -- 文件名 : ServerCommerceActPeakBettleMiddle.lua -- 文件说明 : 巅峰战场跨服相关 -- 创建时间 : 2025/11/13 -- 创建人 : WWF -------------------------------- local Util = require("common.Util") local MiddleConnect = require("middle.MiddleConnect") local MiddleManager = require("middle.MiddleManager") local InnerMsg = require("core.InnerMsg") local Config = require("Config") local CommonDB = require("common.CommonDB") local Log = require("common.Log") local ServerCommerceActPeakBettle = require("serverCommerce.ServerCommerceActPeakBettle") local CommonDefine = require("common.CommonDefine") ----------------------------------- 内部操作 --------------------------- local function PeakBettleMiddle_WriteLog(szLogText) Log.write(Log.LOGID_OSS_COMMON_ACT, szLogText) end --------------------------- 跨服请求 ------------------------------ -- 普通服请求跨服排名数据(普通->中心) function LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C(fd, msg) if _G.is_middle ~= true then return end print("[LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C] 收到普通服请求跨服排名数据 nSrcServerID = "..msg.nSrcServerID.." nRankType = "..msg.nRankType) -- 转发到数据服(如果需要跨服排名) -- 这里可以根据实际需求实现跨服排名逻辑 -- 暂时先记录日志 PeakBettleMiddle_WriteLog("[LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C] 收到跨服排名请求") end -- 请求跨服排名数据(中心->数据服) function WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D(fd, msg) print("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D] 数据服收到跨服排名请求") -- 这里需要实现从数据库获取跨服排名数据的逻辑 -- 暂时先记录日志 PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D] 数据服收到跨服排名请求") end -- 请求跨服排名数据(数据服->中心) function LW_PEAK_BATTLEFIELD_QUERY_RANK_D2C(fd, msg) if _G.is_middle ~= true then return end print("[LW_PEAK_BATTLEFIELD_QUERY_RANK_D2C] 数据服回复跨服排名数据") -- 转发到普通服 local nSrcFD = MiddleManager.getFDBySvrIndex(msg.nSrcServerID) if nSrcFD then local tMsgData = InnerMsg.wl.WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O tMsgData.nFirst = msg.nFirst tMsgData.nIsEnd = msg.nIsEnd tMsgData.tRankInfo = msg.tRankInfo InnerMsg.sendMsg(nSrcFD, tMsgData) end end -- 获取到跨服排名数据(中心->普通) function WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O(fd, msg) print("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O] 普通服收到跨服排名数据") -- 这里可以调用 ServerCommerceActPeakBettle 的处理函数 -- 暂时先记录日志 PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O] 普通服收到跨服排名数据") end -- 普通服通知排名变化(普通->中心) function LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C(fd, msg) if _G.is_middle ~= true then return end print("[LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C] 收到排名变化通知 uuid = "..msg.uuid.." nRank = "..msg.nRank) -- 转发到数据服 -- 这里可以根据实际需求实现跨服排名更新逻辑 PeakBettleMiddle_WriteLog("[LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C] 收到排名变化通知") end -- 排名变化通知(中心->数据服) function WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D(fd, msg) print("[WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D] 数据服收到排名变化通知") -- 这里需要实现更新跨服排名数据的逻辑 PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D] 数据服收到排名变化通知") end -- 发送排名奖励(数据服->中心) function LW_PEAK_BATTLEFIELD_SEND_RANK_REWARD_D2C(fd, msg) if _G.is_middle ~= true then return end print("[LW_PEAK_BATTLEFIELD_SEND_RANK_REWARD_D2C] 数据服发送排名奖励 uuid = "..msg.uuid.." nRank = "..msg.nRank) -- 转发到普通服 local nSrcFD = MiddleManager.getFDBySvrIndex(msg.nServerID) if nSrcFD then local tMsgData = InnerMsg.wl.WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O tMsgData.uuid = msg.uuid tMsgData.nRank = msg.nRank tMsgData.tReward = msg.tReward InnerMsg.sendMsg(nSrcFD, tMsgData) end end -- 发送排名奖励(中心->普通) function WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O(fd, msg) print("[WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O] 普通服收到排名奖励 uuid = "..msg.uuid) -- 调用 ServerCommerceActPeakBettle 的处理函数发送奖励 -- 暂时先记录日志 PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O] 普通服收到排名奖励") end