From 10a8911b87261fd20314009562b76242901f3e4f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 10 八月 2021 19:02:53 +0800
Subject: [PATCH] 9135 【主干】【BT3】活动逻辑优化(世界等级变更不影响已经开启活动的玩家奖励;多日连充、单笔累充、单日/多日累充、转盘活动、仙匣秘境、boss复活、消费返利、周狂欢)

---
 ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/Bossall.py |   40 ++++++++++++++++++++++++++++------------
 1 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/Bossall.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/Bossall.py
index 952cf26..fa58a28 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/Bossall.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/Bossall.py
@@ -18,25 +18,41 @@
 import GameWorldBoss
 import GameWorld
 import time
+import CrossBoss
 
 ## 执行逻辑
 #  @param curPlayer 当前玩家
 #  @param gmList []
 #  @return None
 def OnExec(curPlayer, gmList):
-    bossIDList = []
-    for i, bossInfo in enumerate(PyGameData.g_sortBOSSRefreshList):
-        bossID, killedTime, refreshTime = bossInfo
-        isAlive = GameWorldBoss.__GetIsAlive(bossID)
-        if isAlive:
-            continue
-        refreshTime = 0
-        killedTime = 0
-        PyGameData.g_sortBOSSRefreshList[i] = [bossID, killedTime, refreshTime]
-        bossIDList.append(bossID)
-    curTime = int(time.time())
-    PyGameData.g_sortBOSSRefreshList.sort(key=lambda asd:max(0, asd[2] - (curTime - asd[1])))
+    bossIDList = __Bossall()
     GameWorld.DebugAnswer(curPlayer, "重生boss:%s" % bossIDList)
     return
 
+def OnMergeServerExec(cmdMsgList, tick):
+    bossIDList = __Bossall()
+    GameWorld.DebugLog("重生boss:%s" % bossIDList)
+    return
+
+def OnGetMergeParam(curPlayer):
+    return []
+
+def __Bossall():
+    isCrossServer = GameWorld.IsCrossServer()
+    bossIDList = []
+    for bossInfo in PyGameData.g_sortBOSSRefreshList:
+        bossID = bossInfo[0]
+        if isCrossServer:
+            zoneID = bossInfo[3]
+            isAlive = CrossBoss.__GetCrossBossIsAlive(zoneID, bossID)
+        else:
+            isAlive = GameWorldBoss.__GetIsAlive(bossID)            
+        if isAlive:
+            continue
+        bossInfo[1] = 0
+        bossInfo[2] = 0
+        bossIDList.append(bossID)
+    curTime = int(time.time())
+    PyGameData.g_sortBOSSRefreshList.sort(key=lambda asd:max(0, asd[2] - (curTime - asd[1])))
+    return bossIDList
 

--
Gitblit v1.8.0