|
|
@@ -0,0 +1,75 @@
|
|
|
+--跨服服务器, 合服后的处理逻辑
|
|
|
+
|
|
|
+local Config = require("Config")
|
|
|
+local MergeServerDefine = require("merge.MergeServerDefine")
|
|
|
+local GodsAreaDB = require("godsArea.GodsAreaDB")
|
|
|
+
|
|
|
+
|
|
|
+-- 服务器号起始值
|
|
|
+local SRV_BASE_NUM = 810537
|
|
|
+
|
|
|
+
|
|
|
+local function getDBBase()
|
|
|
+ for _, chanelId in ipairs(Config.SVR_CHANEL) do
|
|
|
+ if MergeServerDefine.MERGE_CHECK_TB[chanelId] then
|
|
|
+ return MergeServerDefine.MERGE_CHECK_TB[chanelId]
|
|
|
+ end
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+local function generateArray()
|
|
|
+ local dbBaseArray = getDBBase()
|
|
|
+ if not dbBaseArray then
|
|
|
+ return
|
|
|
+ end
|
|
|
+
|
|
|
+ local updateTb, removeTb = {}, {}
|
|
|
+
|
|
|
+ for _, v in ipairs(dbBaseArray) do
|
|
|
+ -- local targetChannelId = v[1][1]
|
|
|
+ local targetServerId = v[1][2]
|
|
|
+ local newSrvId = targetServerId + SRV_BASE_NUM
|
|
|
+
|
|
|
+ for i=2, #v do
|
|
|
+ local dbInfo = v[i]
|
|
|
+ local channelId = dbInfo[1]
|
|
|
+ local serverId = dbInfo[2]
|
|
|
+ local opType = dbInfo[3]
|
|
|
+ local oldSrvId = serverId + SRV_BASE_NUM
|
|
|
+
|
|
|
+ if table.find(Config.SVR_CHANEL, channelId) then
|
|
|
+ -- 同个跨服内合并
|
|
|
+ if opType == 1 then
|
|
|
+ updateTb[oldSrvId] = newSrvId
|
|
|
+ end
|
|
|
+
|
|
|
+ -- 合并到其他跨服
|
|
|
+ if opType == 2 then
|
|
|
+ removeTb[oldSrvId] = true
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ return updateTb, removeTb
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+function AfterStart()
|
|
|
+ if _G.is_middle ~= true then return end
|
|
|
+
|
|
|
+ if #MergeServerDefine.MERGE_CHECK_TB <= 0 then
|
|
|
+ return
|
|
|
+ end
|
|
|
+
|
|
|
+ local updateTb, removeTb = generateArray()
|
|
|
+ if not next(updateTb) and not next(removeTb) then
|
|
|
+ return
|
|
|
+ end
|
|
|
+
|
|
|
+ GodsAreaDB.UpdateAfterMergeSrv(updateTb, removeTb)
|
|
|
+end
|