| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- local Util = require("common.Util")
- local WarZoneConf = require("excel.WarZone")
- 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 Timer = require("core.Timer")
- local CommonDefine = require("common.CommonDefine")
- local ServerCommerceManger = require("serverCommerce.ServerCommerceManager")
- local ServerCommerceActDefine = require("serverCommerce.ServerCommerceActDefine")
- local ServerCommerceRank = require("serverCommerce.ServerCommerceActRank")
- -- 缓存开服天数
- local tServerOpenDay = nil
- local SERVERCOMMERCEOPENDAY = 8 -- 活动开启要求天数
- -- 起服获取信息
- function CommerceMiddle_InitServer()
- if _G.is_middle ~= true then
- return
- end
- Timer.addLater(ServerCommerceActDefine.COMMERCEACT_INITOPENDAY, CommerceMiddle_GetOpen)
- print("[CommerceMiddle_InitServer] 起服定时去获取数据 nTime = "..ServerCommerceActDefine.COMMERCEACT_INITOPENDAY)
- end
- -- 获取(中心服主动去获取)
- function CommerceMiddle_GetOpen()
- if _G.is_middle ~= true then
- return
- end
- print("[CommerceMiddle_GetOpen] 开始去获取服务器开启信息")
-
- local tWarZoneConf = WarZoneConf.group
- for _, v in ipairs(tWarZoneConf) do
- local nFirstServerID = MiddleConnect.MiddleConnect_ConfServerID2TrueServerID(v.nMinServerID)
- print("[CommerceMiddle_GetOpen] nMinServerID = "..v.nMinServerID.." nFirstServerID = "..nFirstServerID)
- local fd = MiddleManager.getFDBySvrIndex(nFirstServerID)
- if fd then
- print("[CommerceMiddle_GetOpen] 中心服主动去获取数据 nFirstServerID = "..nFirstServerID)
- local tMsgData = InnerMsg.wl.WL_COMMERCE_QUERYOPENDAY
- InnerMsg.sendMsg(fd, tMsgData)
- print("[CommerceMiddle_GetOpen] 发送结束")
- else
- print("[CommerceMiddle_GetOpen] 中心服主动去获取数据, 但是获取不到fd nFirstServerID = "..nFirstServerID)
- end
- end
- end
- -- 回复开服天数
- function CommerceMiddle_SendOpenDay(fd, msg)
- local nOpenDay = msg.nOpenDay
- local nServerConfID = MiddleConnect.MiddleConnect_TrueServerID2ConfServerID(msg.nSrcServerID)
- if not tServerOpenDay then
- tServerOpenDay = {}
- end
- tServerOpenDay[nServerConfID] = nOpenDay
- print("[CommerceMiddle_SendOpenDay] 回复开服天数 nServerConfID = "..nServerConfID.." nOpenDay = "..nOpenDay)
- end
- -- 请求开服天数
- function CommerceMiddle_QueryOpenDay(fd, msg)
- local tMsgData = InnerMsg.lw.LW_COMMERCE_SENDOPENDAY
- tMsgData.nOpenDay = CommonDB.getServerOpenDay()
- tMsgData.nSrcServerID = Config.SVR_INDEX
- InnerMsg.sendMsg(0, tMsgData)
- print("[CommerceMiddle_QueryOpenDay] 请求开服天数")
- end
- function CommerceMiddle_QueryOpenAct(fd, msg)
- local nConfServerID = MiddleConnect.MiddleConnect_TrueServerID2ConfServerID(msg.nSrcServerID)
- local nFirstServerID
- for _, v in ipairs(WarZoneConf.group) do
- if v.nMinServerID <= nConfServerID and v.nMaxServerID >= nConfServerID then
- nFirstServerID = v.nMinServerID
- break
- end
- end
-
- if nil == nFirstServerID or not tServerOpenDay or not tServerOpenDay[nFirstServerID] then
- print("[QueryOpenAct] 获取不到战区的第一个服务器\n")
- return
- end
- local nSrcFD = MiddleManager.getFDBySvrIndex(msg.nSrcServerID)
- if not nSrcFD then
- return
- end
- local tMsgData = InnerMsg.wl.WL_COMMERCE_ACTOPEN
- tMsgData.nOpen = tServerOpenDay[nFirstServerID] >= SERVERCOMMERCEOPENDAY and 1 or 0
- tMsgData.nOperate = msg.nOperate
- tMsgData.nServerKey = nFirstServerID
- InnerMsg.sendMsg(nSrcFD, tMsgData)
- print("[CommerceMiddle_QueryOpenAct] 请求中心服活动是否开启 nOpen = "..tMsgData.nOpen)
- end
- function CommerceMiddle_SendOpenAct(fd, msg)
- print("[CommerceMiddle_SendOpenAct] 获取到中心服发送的是否开服数据 nOpen = "..msg.nOpen)
- ServerCommerceManger.CommerceAct_ActCheckOpen(msg.nOpen, msg.nOperate, msg.nServerKey)
- end
- -- 发送玩家排行榜信息
- function CommerveMiddle_HumanPointChange(human, nPoint)
- local tMsgData = InnerMsg.lw.LW_COMMERCE_RANK_POINT_CHANGE
- tMsgData.uuid = human.db._id
- tMsgData.name = human.db.name
- tMsgData.head = human.db.head
- tMsgData.headFrame = human.db.headFrame
- tMsgData.nSrcServerID = Config.SVR_INDEX
- tMsgData.nValue = nPoint
- tMsgData.nRankType = CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE
- tMsgData.nRankSubType = CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_HUMAN
- tMsgData.nOperate = CommonDefine.COMMONRANK_VALUE_REPLACE
- tMsgData.servername = "寻宝"..Config.NEW_SVR_INDEX.."区"
- InnerMsg.sendMsg(0, tMsgData)
- print("[CommerveMiddle_HumanPointChange] 发送玩家排行榜信息结束 name = "..tMsgData.name.." nValue = "..tMsgData.nValue)
- end
- -- 服务器点数改变发送排行榜信息
- function CommerveMiddle_ServerPointChange(nPoint)
- local tMsgData = InnerMsg.lw.LW_COMMERCE_RANK_POINT_CHANGE
- tMsgData.uuid = Config.NEW_SVR_INDEX
- tMsgData.name = "寻宝"..Config.NEW_SVR_INDEX.."区"
- tMsgData.head = -1
- tMsgData.headFrame = -1
- tMsgData.nSrcServerID = Config.SVR_INDEX
- tMsgData.nValue = nPoint
- tMsgData.nRankType = CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE
- tMsgData.nRankSubType = CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_SERVER
- tMsgData.nOperate = CommonDefine.COMMONRANK_VALUE_REPLACE
- tMsgData.servername = "寻宝"..Config.NEW_SVR_INDEX.."区"
- InnerMsg.sendMsg(0, tMsgData)
- print("[CommerveMiddle_HumanPointChange] 发送服务器排行榜信息结束 name = "..tMsgData.name.." nValue = "..tMsgData.nValue)
- end
- -- 请求排行榜数据
- function CommerveMiddle_QueryRankInfo(nRankType, nRankSubType)
- local tMsgData = InnerMsg.lw.LW_COMMERCE_QUERY_RANK_INFO
- tMsgData.nRankType = nRankType
- tMsgData.nRankSubType = nRankSubType
- tMsgData.nSrcServerID = Config.SVR_INDEX
-
- InnerMsg.sendMsg(0, tMsgData)
- print("[CommerveMiddle_QueryRankInfo] 向中心服请求排行榜数据")
- end
- -- 获取到排行榜数据
- function CommerveMiddle_GetRankInfo(tData)
- ServerCommerceRank.CommercerActRank_GetRankInfo(tData)
- end
- ------------------ 活动管理器操作 ------------------------
- -- 请求活动是否开启
- function CommerceMiddle_IsActOpen(nOperate)
- local tMsgData = InnerMsg.lw.LW_COMMERCE_ACTOPEN
- tMsgData.nSrcServerID = Config.SVR_INDEX
- tMsgData.nOperate = nOperate
- InnerMsg.sendMsg(0, tMsgData)
- print("[CommerceMiddle_IsActOpen] 普通服开始请求活动信息")
- end
- -- 请求当前服务器排行最新的排名
- function CommerceMiddle_QueryServerRank(nOperate)
- local tMsgData = InnerMsg.lw.LW_COMMERCE_QUERY_SERVER_RANK
- tMsgData.nSrcServerID = Config.SVR_INDEX
- tMsgData.nServerUuid = tostring(Config.NEW_SVR_INDEX)
- tMsgData.nOperate = nOperate
- InnerMsg.sendMsg(0, tMsgData)
- end
- -- 获取到 当前服务器排行最新的排名
- function CommerceMiddle_GetServerRank(msg)
- ServerCommerceRank.CommercerActRank_GetServerRank(msg)
- end
- -- 通知中心服当前服务器在线全服玩家邮件结束
- function CommerceMiddle_TellServerMailOk()
- local tMsgData = InnerMsg.lw.LW_COMMERCE_TELL_SERVER_MAILOK
- tMsgData.nSrcServerID = Config.SVR_INDEX
- InnerMsg.sendMsg(0, tMsgData)
- print("[CommerceMiddle_TellServerMailOk] 通知中心服当前服务器在线全服玩家邮件结束")
- end
- function CommerceMiddle_GetHumanRank(msg)
- ServerCommerceRank.CommercerActRank_SendHumanRankPrize(msg)
- end
- function CommerceMiddle_ClearRank()
- local tMsgData = InnerMsg.lw.LW_COMMERCE_CLEAR_RANK
- tMsgData.nRankType = CommonDefine.COMMONRANK_TYPE_SERVERCOMMERCE
- tMsgData.nRankSubType = CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_SERVER
- tMsgData.nSrcServerID = Config.SVR_INDEX
- InnerMsg.sendMsg(0, tMsgData)
- tMsgData.nRankSubType = CommonDefine.COMMONRANK_SUB_TYPE_SERVERCOMMERCE_HUMAN
- InnerMsg.sendMsg(0, tMsgData)
- end
- function CommerceMiddle_GMClearMiddleMail()
- local tMsgData = InnerMsg.lw.LW_COMMERCE_GM_CLEAR_MAIL
- tMsgData.nSrcServerID = Config.SVR_INDEX
- InnerMsg.sendMsg(0, tMsgData)
- end
|