From 3b45b8cfa4cb24ad084c4fadf5d31430d0de5d21 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 22 三月 2019 16:54:07 +0800
Subject: [PATCH] 6341 【后端】【2.0】境界改版开发单(修为池通知)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py |   62 ++++++-------------------------
 1 files changed, 12 insertions(+), 50 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index 36086f0..867a071 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
@@ -39,6 +39,7 @@
 import PlayerCompensation
 import IpyGameDataPY
 import PyGameDataStruct
+import CrossRealmPlayer
 import PyDataManager
 import PlayerControl
 import CrossRealmMsg
@@ -49,8 +50,6 @@
 import CrossBoss
 
 import time
-
-
 
 '''
 ShareDefine.Def_UniversalGameRecType_BossInfo
@@ -103,9 +102,9 @@
     if bossID <= 0:
         return
     
-    bossID, killPlayerName, hurtValue, isNotify, realMapID, dataMapID, copyMapID = msgList
+    bossID, killPlayerName, hurtValue, isNotify, realMapID, dataMapID, copyMapID, killerIDList = msgList
     if GameWorld.IsCrossServer():
-        CrossBoss.DoCrossBossOnKilled(bossID, killPlayerName, realMapID, dataMapID, copyMapID)
+        CrossBoss.DoCrossBossOnKilled(bossID, killPlayerName, realMapID, dataMapID, copyMapID, killerIDList)
         return
     
     mapID = dataMapID
@@ -484,7 +483,7 @@
         if not isAlive:
             continue
         mapID = ipyData.GetMapID()
-        if mapID != ChConfig.Def_FBMapID_SealDemon:
+        if mapID not in ChConfig.WorldBossFBMapIDList:
             GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn % bossID, 1)
     return
 
@@ -502,7 +501,6 @@
     state = gameWorld.GetDictByKey(ChConfig.Def_WorldKey_OperationActionState % ShareDefine.OperationActionName_BossReborn)
     if state:
         Sync_BossRebornPoint(curPlayer)
-    Sync_DogzNPCRefreshTime(curPlayer)
     return
 
 ## 地图启动ok通知
@@ -517,10 +515,6 @@
     if IsMapNeedBossShunt(0):
         GameWorld.SendCommMapServerMsg(ShareDefine.Def_Notify_WorldKey_BossShuntPlayer, PyGameData.g_bossShuntPlayerInfo)
         GameWorld.SendCommMapServerMsg(ShareDefine.Def_Notify_WorldKey_BossShuntLineState, PyGameData.g_bossShuntLineState)
-    #通知一个参数
-    bossID = IpyGameDataPY.GetFuncCfg('DogzFBRefreshCfg', 2)
-    onlineCnt = __GetBossOnlineHeroCnt(bossID)[0]
-    GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_BossOnlineHeroCnt % bossID, onlineCnt)
     
     #仙盟击杀骑宠boss数
     if PyGameData.g_familyKillHorsePetRobBossCntDict:
@@ -554,7 +548,11 @@
         # 同步到玩家对应子服
         if not serverGroupID:
             return
-        CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_DropGoodItem, msgList, [serverGroupID])
+        zoneIpyData = CrossRealmPlayer.GetCrossCommZoneIpyDataByServerGroupID(serverGroupID)
+        if not zoneIpyData:
+            return
+        serverGroupIDList = zoneIpyData.GetServerGroupIDList()
+        CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_DropGoodItem, msgList, serverGroupIDList)
         return
     
     recType = ShareDefine.Def_UniversalGameRecType_BossDropGoodItemInfo
@@ -655,8 +653,6 @@
     
     newNum = newOnlieCnt * 100 + unUpdataCnt
     PlayerDBGSEvent.SetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_GameWorldBossOnlineCnt % bossid, newNum)
-    if bossid == IpyGameDataPY.GetFuncCfg('DogzFBRefreshCfg', 2):
-        GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_BossOnlineHeroCnt % bossid, newOnlieCnt)
     GameWorld.DebugLog("设置计算boss刷新时间用的在线人数 Change:bossid=%s, beforeOnlineCnt = %s, newOnlieCnt = %s, unUpdataCnt=%s" % (bossid, beforeOnlineCnt, newOnlieCnt, unUpdataCnt))
     return
 
@@ -719,6 +715,7 @@
     def GetBossAttentionDict(self):
         return self.bossAttentionDict
 
+    # RecordData改json记录 bossid存为字符串
     def UpdateBossAttention(self, playerid, bossid, isAdd):
         if playerid in self.bossAttentionDict:
             bossAttentionData = self.bossAttentionDict[playerid]
@@ -760,7 +757,7 @@
         packData.BossList = []
         for bossid, addState in bttentionDict.items():
             bossInfo = ChPyNetSendPack.tagGCBossAttention()
-            bossInfo.BossID=bossid
+            bossInfo.BossID=int(bossid)
             bossInfo.AddState=addState
             packData.BossList.append(bossInfo)
         
@@ -792,10 +789,7 @@
             data.clear()
             pos += data.readData(datas, pos, dataslen)
             playerID = data.PlayerID
-            if type(eval(data.RecordData)) != list:
-                self.bossAttentionDict[playerID] = data
-            else:
-                data.clear()
+            self.bossAttentionDict[playerID] = data
             
         return pos
 
@@ -1080,38 +1074,6 @@
     packData.RebornCnt = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornCnt)
     playerManager = GameWorld.GetPlayerManager()
     if not curPlayer:
-        for i in xrange(playerManager.GetActivePlayerCount()):
-            curPlayer = playerManager.GetActivePlayerAt(i)
-            if curPlayer == None or not curPlayer.GetInitOK():
-                continue
-            if PlayerControl.GetIsTJG(curPlayer):
-                continue
-            NetPackCommon.SendFakePack(curPlayer, packData)
-    else:
-        if PlayerControl.GetIsTJG(curPlayer):
-            return
-        NetPackCommon.SendFakePack(curPlayer, packData)
-    return
-
-def Sync_DogzNPCRefreshTime(curPlayer=None):
-    #同步神兽副本NPC刷新时间
-    refreshTimeDict = PyGameData.g_dogzNPCRefreshTimeDict
-
-    if not refreshTimeDict:
-        return
-    curTime = int(time.time())
-    packData = ChPyNetSendPack.tagGCDogzNPCRefreshTime()
-    packData.InfoList=[]
-    for npcid, timeinfo in refreshTimeDict.items():
-        lastRefreshTime, nextNeedTime = timeinfo
-        remainTime = max(0, nextNeedTime - curTime + lastRefreshTime)
-        timeInfo = ChPyNetSendPack.tagDogzTimeInfoObj()
-        timeInfo.NPCID = npcid
-        timeInfo.RefreshSecond = remainTime
-        packData.InfoList.append(timeInfo)
-    packData.Cnt = len(packData.InfoList)
-    if not curPlayer:
-        playerManager = GameWorld.GetPlayerManager()
         for i in xrange(playerManager.GetActivePlayerCount()):
             curPlayer = playerManager.GetActivePlayerAt(i)
             if curPlayer == None or not curPlayer.GetInitOK():

--
Gitblit v1.8.0