| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- --跨服服务器, 合服后的处理逻辑
- local Config = require("Config")
- local MergeServerDefine = require("merge.MergeServerDefine")
- local GodsAreaDB = require("godsArea.GodsAreaDB")
- -- 服务器服号起始值
- local SRV_BASE_NUM = 810537
- local function getDBInfo()
- 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 = getDBInfo()
- 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 not next(MergeServerDefine.MERGE_CHECK_TB) then
- return
- end
- local updateTb, removeTb = generateArray()
- if (not updateTb and not removeTb) or (not next(updateTb) and not next(removeTb)) then
- return
- end
- GodsAreaDB.UpdateAfterMergeSrv(updateTb, removeTb)
- end
|