Forráskód Böngészése

增加合服后对诸神圣域的处理

gitxsm 9 hónapja
szülő
commit
b78e374ff8
1 módosított fájl, 75 hozzáadás és 0 törlés
  1. 75 0
      script/merge/MergeServerCS.lua

+ 75 - 0
script/merge/MergeServerCS.lua

@@ -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