From 043a9c0e0df19388055bb7ad3b15952d7da91506 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 08 五月 2021 16:52:43 +0800
Subject: [PATCH] 8721 【主干】【BT2】【后端】H.活动-合服庆典(骑宠盛宴)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
index 31f12b4..cd6a3b0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCustomRefresh.py
@@ -328,6 +328,7 @@
         __DoRefreshWorldBossCrossServer(npcRefresh, tick)
         return
     rebornLineID = 0
+    assignLineID = 0
     mapID = GameWorld.GetMap().GetMapID()
     refreshMark = npcRefresh.GetRefreshMark()
     lineID = GameWorld.GetGameWorld().GetLineID()
@@ -364,6 +365,9 @@
         relatedType = ipyData.GetRelatedType()
         relatedID = ipyData.GetRelatedID()
         isNeedShunt = ipyData.GetIsNeedShunt()
+        assignLineID = ipyData.GetRefreshLine() # 指定刷新的线路
+        if assignLineID > 0:
+            rebornLineID = assignLineID - 1
     if not bossID and not stoneNPCID:
         return
     gameFB = GameWorld.GetGameFB()
@@ -379,8 +383,15 @@
         
     # 关联运营活动,待扩展
     elif relatedType == 2:
-        operationActionInfo = PyGameData.g_operationActionDict.get(relatedID, {})
-        operationActionState = operationActionInfo.get(ShareDefine.ActKey_State, 0)
+        actNameInfo = relatedID.split("|")
+        actName = actNameInfo[0]
+        if actName in ShareDefine.MultiActNumOperationActNameList:
+            actNum = GameWorld.ToIntDef(actNameInfo[1] if len(actNameInfo) > 1 else "10")
+            actInfo = GameWorld.GetActInfo(actName, actNum)
+            operationActionState = actInfo.get(ShareDefine.ActKey_State, 0)
+        else:
+            operationActionInfo = PyGameData.g_operationActionDict.get(actName, {})
+            operationActionState = operationActionInfo.get(ShareDefine.ActKey_State, 0)
         rebornBossState = 1 if operationActionState else 0
         
     else:
@@ -394,7 +405,9 @@
         
     # 关联活动boss
     if relatedType:
-        rebornLineID = activityLineID # 活动boss只刷在活动线
+        if assignLineID == 0: # 没有指定刷新线路的,活动boss固定刷在活动线
+            rebornLineID = activityLineID # 活动boss只刷在活动线
+            
         # 不是活动线 
         if rebornBossState and lineID != rebornLineID:
             rebornBossState = 0

--
Gitblit v1.8.0