From 3e236bdc51a439594c52f0c558006d3f52997bfe Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期六, 08 十二月 2018 10:45:28 +0800
Subject: [PATCH] 4581 上古战场报错修复
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py | 47 ++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py
index 49de67a..0d1db66 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py
@@ -17,6 +17,8 @@
#导入
import PyGameData
import GameWorld
+import FBHelpBattle
+import traceback
#---------------------------------------------------------------------
@@ -44,11 +46,46 @@
# @remarks 函数详细说明.
def DoResult(curPlayer, callFunName, funResult, tick):
try:
- teamID, friendList, memFamilyIDDict, memNameDict = eval(funResult)
- PyGameData.g_teamFBMemRelationDict[teamID] = [friendList, memFamilyIDDict, memNameDict]
- GameWorld.Log("队员关系信息: teamID=%s,friendList=%s,memFamilyIDDict=%s" % (teamID, friendList, memFamilyIDDict))
- except:
- pass
+ msgList = eval(funResult)
+ msgType = msgList[0]
+ if msgType == "InitRelation":
+ teamID, friendList, memFamilyIDDict, memNameDict = msgList[1:]
+ PyGameData.g_teamFBMemRelationDict[teamID] = [friendList, memFamilyIDDict, memNameDict]
+ GameWorld.Log("队员初始关系信息: teamID=%s,friendList=%s,memFamilyIDDict=%s" % (teamID, friendList, memFamilyIDDict))
+ return
+
+ if msgType == "FriendChange":
+ teamID, playerID, tagPlayerID, isFriend = msgList[1:]
+ GameWorld.Log("队员好友变更: teamID=%s,playerID=%s,tagPlayerID=%s,isFriend=%s" % (teamID, playerID, tagPlayerID, isFriend))
+ if teamID not in PyGameData.g_teamFBMemRelationDict:
+ return
+ friendList = PyGameData.g_teamFBMemRelationDict[teamID][0]
+ if isFriend:
+ friendList.append([playerID, tagPlayerID])
+ friendList.append([tagPlayerID, playerID])
+ else:
+ if [playerID, tagPlayerID] in friendList:
+ friendList.remove([playerID, tagPlayerID])
+ if [tagPlayerID, playerID] in friendList:
+ friendList.remove([tagPlayerID, playerID])
+
+ elif msgType == "FamilyChange":
+ teamID, playerID, familyID = msgList[1:]
+ GameWorld.Log("队员家族变更: teamID=%s,playerID=%s,familyID=%s" % (teamID, playerID, familyID))
+ if teamID not in PyGameData.g_teamFBMemRelationDict:
+ GameWorld.Log("teamID=%s, not in PyGameData.g_teamFBMemRelationDict %s" % (teamID, PyGameData.g_teamFBMemRelationDict))
+ return
+ memFamilyIDDict = PyGameData.g_teamFBMemRelationDict[teamID][1]
+ memFamilyIDDict[playerID] = familyID
+
+ else:
+ return
+
+ # 关系变更刷新
+ FBHelpBattle.RefershTeamFBMemRelation(tick)
+ except BaseException:
+ errorMsg = str(traceback.format_exc())
+ GameWorld.ErrLog("%s" % errorMsg)
return
--
Gitblit v1.8.0