From b96575fc034c6f56273ee3a7346a10f489bd48a7 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 29 十一月 2018 02:08:48 +0800 Subject: [PATCH] 4762 【后端】混乱妖域社交关系加成取实时,离线玩家不算;增加同步社交总加成信息; --- 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