From 5a7a39b5800cc9825387e0a5ff6a4c9eeaacc3fb Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 30 八月 2018 15:35:49 +0800 Subject: [PATCH] Fix: 修复服务器启动报错; 读功能配置表错误增加详细错误日志输出; --- PySysDB/生成IpyGameDataPY/IpyGameDataPYTemp.py | 36 ++++++++++-------- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 36 ++++++++++-------- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py | 10 ++-- 3 files changed, 45 insertions(+), 37 deletions(-) diff --git "a/PySysDB/\347\224\237\346\210\220IpyGameDataPY/IpyGameDataPYTemp.py" "b/PySysDB/\347\224\237\346\210\220IpyGameDataPY/IpyGameDataPYTemp.py" index 940810b..2a912e4 100644 --- "a/PySysDB/\347\224\237\346\210\220IpyGameDataPY/IpyGameDataPYTemp.py" +++ "b/PySysDB/\347\224\237\346\210\220IpyGameDataPY/IpyGameDataPYTemp.py" @@ -153,22 +153,26 @@ for i, strValue in enumerate(rowList): if i == 0: continue - fieldName = fieldList[i][1] - strValue = strValue.lstrip().rstrip() - if strValue.isdigit(): - configValue = int(strValue) - elif (strValue.startswith("{") and strValue.endswith("}")) \ - or (strValue.startswith("[") and strValue.endswith("]")) \ - or (strValue.startswith("(") and strValue.endswith(")")): - configValue = eval(strValue) - elif "_" in strValue and type(self.__StrToDict(strValue)) == dict: - configValue = self.__StrToDict(strValue) - elif ChConfig.Def_Str_Montant in strValue: - configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ",")) - elif strValue in ["-", ""]: - configValue = "" - else: - configValue = self.__ToFloat(strValue) + try: + fieldName = fieldList[i][1] + strValue = strValue.lstrip().rstrip() + if strValue.isdigit(): + configValue = int(strValue) + elif (strValue.startswith("{") and strValue.endswith("}")) \ + or (strValue.startswith("[") and strValue.endswith("]")) \ + or (strValue.startswith("(") and strValue.endswith(")")): + configValue = eval(strValue) + elif "_" in strValue and type(self.__StrToDict(strValue)) == dict: + configValue = self.__StrToDict(strValue) + elif ChConfig.Def_Str_Montant in strValue: + configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ",")) + elif strValue in ["-", ""]: + configValue = "" + else: + configValue = self.__ToFloat(strValue) + except BaseException: + ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue)) + raise setattr(funcConfigObj, fieldName, configValue) self.ipyFuncConfigDict[key] = funcConfigObj return diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py index a3e0660..490a5ec 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py @@ -3212,22 +3212,26 @@ for i, strValue in enumerate(rowList): if i == 0: continue - fieldName = fieldList[i][1] - strValue = strValue.lstrip().rstrip() - if strValue.isdigit(): - configValue = int(strValue) - elif (strValue.startswith("{") and strValue.endswith("}")) \ - or (strValue.startswith("[") and strValue.endswith("]")) \ - or (strValue.startswith("(") and strValue.endswith(")")): - configValue = eval(strValue) - elif "_" in strValue and type(self.__StrToDict(strValue)) == dict: - configValue = self.__StrToDict(strValue) - elif ChConfig.Def_Str_Montant in strValue: - configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ",")) - elif strValue in ["-", ""]: - configValue = "" - else: - configValue = self.__ToFloat(strValue) + try: + fieldName = fieldList[i][1] + strValue = strValue.lstrip().rstrip() + if strValue.isdigit(): + configValue = int(strValue) + elif (strValue.startswith("{") and strValue.endswith("}")) \ + or (strValue.startswith("[") and strValue.endswith("]")) \ + or (strValue.startswith("(") and strValue.endswith(")")): + configValue = eval(strValue) + elif "_" in strValue and type(self.__StrToDict(strValue)) == dict: + configValue = self.__StrToDict(strValue) + elif ChConfig.Def_Str_Montant in strValue: + configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ",")) + elif strValue in ["-", ""]: + configValue = "" + else: + configValue = self.__ToFloat(strValue) + except BaseException: + ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue)) + raise setattr(funcConfigObj, fieldName, configValue) self.ipyFuncConfigDict[key] = funcConfigObj return diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py index 3ef7bf5..3d2fdf0 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/ChNPC.py @@ -140,15 +140,15 @@ gameWorldIndex = GameWorld.GetGameWorld().GetCurGameWorldIndex() GameWorld.Log("NPC Initing...FB %d" % gameWorldIndex) mapID = GameWorld.GetMap().GetMapID() + hideNPCIDList = [] # 需要隐藏的NPCID列表 # 由于某些常规线boss区域要重复利用,所以活动线独立,不开放给玩家,仅特定活动时系统传入 activityMapLineDict = IpyGameDataPY.GetFuncEvalCfg("MapLine", 2, {}) if mapID in activityMapLineDict: activityLineID = max(0, activityMapLineDict[mapID] - 1) - hideNPCIDList = [] # 需要隐藏的NPCID列表 - if gameWorldIndex == activityLineID: - hideNPCIDList = IpyGameDataPY.GetFuncEvalCfg("MapLine", 3) - GameWorld.Log(" hideNPCIDList=%s" % hideNPCIDList) - + if gameWorldIndex == activityLineID: + hideNPCIDList = IpyGameDataPY.GetFuncEvalCfg("MapLine", 3) + GameWorld.Log(" hideNPCIDList=%s" % hideNPCIDList) + gameNPC = GameWorld.GetNPCManager() npcCount = gameNPC.GetNPCCount() for i in xrange(npcCount): -- Gitblit v1.8.0