From 7e2fba6800afaaeef3ac9d2d3c8c42ebcefd2016 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 05 三月 2019 15:53:48 +0800 Subject: [PATCH] 6328 【后端】优化代码eval --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py | 19 +++++++++---------- 1 files changed, 9 insertions(+), 10 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py index b8430ba..b83b6f9 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py @@ -50,7 +50,7 @@ import CrossBoss import time - +import json ''' @@ -717,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: @@ -731,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: @@ -739,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 @@ -753,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) @@ -790,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