From fa10596d9f3abf523f8e900d7b920e4af8ea6bc5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 07 三月 2019 14:45:41 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode

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

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index 5801e05..b83b6f9 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,7 +50,7 @@
 import CrossBoss
 
 import time
-
+import json
 
 
 '''
@@ -484,7 +485,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
 
@@ -549,7 +550,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
@@ -712,10 +717,12 @@
     def GetBossAttentionDict(self):
         return self.bossAttentionDict
 
+    # RecordData改json记录 bossid存为字符串
     def UpdateBossAttention(self, playerid, bossid, isAdd):
+        bossid = str(bossid)
         if playerid in self.bossAttentionDict:
             bossAttentionData = self.bossAttentionDict[playerid]
-            recordDict = eval(bossAttentionData.RecordData)
+            recordDict = json.loads(bossAttentionData.RecordData)
             if isAdd:
                 recordDict[bossid] = isAdd
             else:
@@ -726,7 +733,7 @@
                 self.bossAttentionDict.pop(playerid)
                 
             else:
-                bossAttentionData.RecordData = str(recordDict)
+                bossAttentionData.RecordData = json.dumps(recordDict, ensure_ascii=False)
                 bossAttentionData.DataLen = len(bossAttentionData.RecordData)
         else:
             if not isAdd:
@@ -734,7 +741,7 @@
             bossAttention = PyGameDataStruct.tagDBPyBossAttention()
             bossAttention.clear()
             bossAttention.PlayerID = playerid
-            bossAttention.RecordData = str({bossid:isAdd})
+            bossAttention.RecordData = json.dumps({bossid:isAdd}, ensure_ascii=False)
             bossAttention.DataLen = len(bossAttention.RecordData)
             self.bossAttentionDict[playerid] = bossAttention
         
@@ -748,12 +755,12 @@
         attentionData = self.bossAttentionDict.get(curPlayer.GetPlayerID())
         if not attentionData:
             return
-        bttentionDict = eval(attentionData.RecordData)
+        bttentionDict = json.loads(attentionData.RecordData)
         packData = ChPyNetSendPack.tagGCBossAttentionInfo()
         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)
         
@@ -785,10 +792,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
 

--
Gitblit v1.8.0