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