ServerCommerceActPeakBettleMiddle.lua 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. --------------------------------
  2. -- 文件名 : ServerCommerceActPeakBettleMiddle.lua
  3. -- 文件说明 : 巅峰战场跨服相关
  4. -- 创建时间 : 2025/11/13
  5. -- 创建人 : WWF
  6. --------------------------------
  7. local Util = require("common.Util")
  8. local MiddleConnect = require("middle.MiddleConnect")
  9. local MiddleManager = require("middle.MiddleManager")
  10. local InnerMsg = require("core.InnerMsg")
  11. local Config = require("Config")
  12. local CommonDB = require("common.CommonDB")
  13. local Log = require("common.Log")
  14. local ServerCommerceActPeakBettle = require("serverCommerce.ServerCommerceActPeakBettle")
  15. local CommonDefine = require("common.CommonDefine")
  16. ----------------------------------- 内部操作 ---------------------------
  17. local function PeakBettleMiddle_WriteLog(szLogText)
  18. Log.write(Log.LOGID_OSS_COMMON_ACT, szLogText)
  19. end
  20. --------------------------- 跨服请求 ------------------------------
  21. -- 普通服请求跨服排名数据(普通->中心)
  22. function LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C(fd, msg)
  23. if _G.is_middle ~= true then return end
  24. print("[LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C] 收到普通服请求跨服排名数据 nSrcServerID = "..msg.nSrcServerID.." nRankType = "..msg.nRankType)
  25. -- 转发到数据服(如果需要跨服排名)
  26. -- 这里可以根据实际需求实现跨服排名逻辑
  27. -- 暂时先记录日志
  28. PeakBettleMiddle_WriteLog("[LW_PEAK_BATTLEFIELD_QUERY_RANK_O2C] 收到跨服排名请求")
  29. end
  30. -- 请求跨服排名数据(中心->数据服)
  31. function WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D(fd, msg)
  32. print("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D] 数据服收到跨服排名请求")
  33. -- 这里需要实现从数据库获取跨服排名数据的逻辑
  34. -- 暂时先记录日志
  35. PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2D] 数据服收到跨服排名请求")
  36. end
  37. -- 请求跨服排名数据(数据服->中心)
  38. function LW_PEAK_BATTLEFIELD_QUERY_RANK_D2C(fd, msg)
  39. if _G.is_middle ~= true then return end
  40. print("[LW_PEAK_BATTLEFIELD_QUERY_RANK_D2C] 数据服回复跨服排名数据")
  41. -- 转发到普通服
  42. local nSrcFD = MiddleManager.getFDBySvrIndex(msg.nSrcServerID)
  43. if nSrcFD then
  44. local tMsgData = InnerMsg.wl.WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O
  45. tMsgData.nFirst = msg.nFirst
  46. tMsgData.nIsEnd = msg.nIsEnd
  47. tMsgData.tRankInfo = msg.tRankInfo
  48. InnerMsg.sendMsg(nSrcFD, tMsgData)
  49. end
  50. end
  51. -- 获取到跨服排名数据(中心->普通)
  52. function WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O(fd, msg)
  53. print("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O] 普通服收到跨服排名数据")
  54. -- 这里可以调用 ServerCommerceActPeakBettle 的处理函数
  55. -- 暂时先记录日志
  56. PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_QUERY_RANK_C2O] 普通服收到跨服排名数据")
  57. end
  58. -- 普通服通知排名变化(普通->中心)
  59. function LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C(fd, msg)
  60. if _G.is_middle ~= true then return end
  61. print("[LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C] 收到排名变化通知 uuid = "..msg.uuid.." nRank = "..msg.nRank)
  62. -- 转发到数据服
  63. -- 这里可以根据实际需求实现跨服排名更新逻辑
  64. PeakBettleMiddle_WriteLog("[LW_PEAK_BATTLEFIELD_RANK_CHANGE_O2C] 收到排名变化通知")
  65. end
  66. -- 排名变化通知(中心->数据服)
  67. function WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D(fd, msg)
  68. print("[WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D] 数据服收到排名变化通知")
  69. -- 这里需要实现更新跨服排名数据的逻辑
  70. PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_RANK_CHANGE_C2D] 数据服收到排名变化通知")
  71. end
  72. -- 发送排名奖励(数据服->中心)
  73. function LW_PEAK_BATTLEFIELD_SEND_RANK_REWARD_D2C(fd, msg)
  74. if _G.is_middle ~= true then return end
  75. print("[LW_PEAK_BATTLEFIELD_SEND_RANK_REWARD_D2C] 数据服发送排名奖励 uuid = "..msg.uuid.." nRank = "..msg.nRank)
  76. -- 转发到普通服
  77. local nSrcFD = MiddleManager.getFDBySvrIndex(msg.nServerID)
  78. if nSrcFD then
  79. local tMsgData = InnerMsg.wl.WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O
  80. tMsgData.uuid = msg.uuid
  81. tMsgData.nRank = msg.nRank
  82. tMsgData.tReward = msg.tReward
  83. InnerMsg.sendMsg(nSrcFD, tMsgData)
  84. end
  85. end
  86. -- 发送排名奖励(中心->普通)
  87. function WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O(fd, msg)
  88. print("[WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O] 普通服收到排名奖励 uuid = "..msg.uuid)
  89. -- 调用 ServerCommerceActPeakBettle 的处理函数发送奖励
  90. -- 暂时先记录日志
  91. PeakBettleMiddle_WriteLog("[WL_PEAK_BATTLEFIELD_SEND_RANK_REWARD_C2O] 普通服收到排名奖励")
  92. end