From 74118947469489a085fa5bf1c43b0ea4f46e2a3a Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 19 二月 2025 14:48:50 +0800 Subject: [PATCH] 10385 【越南】【英语】【BT】【砍树】【GM】福地拉取物品触发任务事件; --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py | 57 +++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 39 insertions(+), 18 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py index 5022816..a224186 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py @@ -70,7 +70,7 @@ def GetSyncDict(self): # Value 暂时只同步1~2 syncDict = {"PlayerID":self.GetPlayerID(), "Value1":self.GetValue1(), "Value2":self.GetValue2()} - syncDict.update(PlayerViewCache.GetShotCahceDict(self.GetPlayerID(), False)) + syncDict.update(PlayerViewCache.GetShotCacheDict(self.GetPlayerID(), "PlayerID", "FightPower", "ServerID", "OfflineValue", "Face", "FacePic")) return syncDict class PyFuncTeam(): @@ -127,7 +127,7 @@ ApplyList = [] if applyDetail: for applyID in ApplyIDList[::-1]: - applyPlayerDict = PlayerViewCache.GetShotCahceDict(applyID, False) + applyPlayerDict = PlayerViewCache.GetShotCacheDict(applyID, "PlayerID", "FightPower", "ServerID", "Face", "FacePic") if not applyPlayerDict: ApplyIDList.remove(applyID) else: @@ -485,6 +485,7 @@ return 0 teamIDDict = self.playerFuncTeamIDDict[playerID] return teamIDDict.get(funcMapID, 0) + def GetPlayerTeamIDDict(self, playerID): return self.playerFuncTeamIDDict.get(playerID, {}) def IsTeamPlayer(self, playerID): if playerID in self.playerFuncTeamIDDict: @@ -819,15 +820,17 @@ memberList = [] for memberInfo in teamInfo["MemberList"]: mem = ChPyNetSendPack.tagGCFuncTeamMem() - mem.ServerID = memberInfo["ServerID"] + mem.ServerID = memberInfo.get("ServerID", 0) mem.PlayerID = memberInfo["PlayerID"] - mem.Name = memberInfo["Name"] + mem.Name = memberInfo.get("Name", "") mem.NameLen = len(mem.Name) - mem.LV = memberInfo["LV"] - mem.Job = memberInfo["Job"] - mem.RealmLV = memberInfo["RealmLV"] - mem.FightPower = memberInfo["FightPower"] % ChConfig.Def_PerPointValue - mem.FightPowerEx = memberInfo["FightPower"] / ChConfig.Def_PerPointValue + mem.LV = memberInfo.get("LV", 0) + mem.Job = memberInfo.get("Job", 0) + mem.RealmLV = memberInfo.get("RealmLV", 0) + mem.Face = memberInfo.get("Face", 0) + mem.FacePic = memberInfo.get("FacePic", 0) + mem.FightPower = memberInfo.get("FightPower", 0) % ChConfig.Def_PerPointValue + mem.FightPowerEx = memberInfo.get("FightPower", 0) / ChConfig.Def_PerPointValue mem.Value1 = memberInfo["Value1"] mem.Value2 = memberInfo["Value2"] memberList.append(mem) @@ -880,15 +883,18 @@ memberList = [] for memberInfo in memberInfoList: mem = ChPyNetSendPack.tagGCFuncTeamRefreshMem() - mem.ServerID = memberInfo["ServerID"] + mem.ServerID = memberInfo.get("ServerID", 0) mem.PlayerID = memberInfo["PlayerID"] - mem.Name = memberInfo["Name"] + mem.Name = memberInfo.get("Name", "") mem.NameLen = len(mem.Name) - mem.LV = memberInfo["LV"] - mem.Job = memberInfo["Job"] - mem.RealmLV = memberInfo["RealmLV"] - mem.FightPower = memberInfo["FightPower"] % ChConfig.Def_PerPointValue - mem.FightPowerEx = memberInfo["FightPower"] / ChConfig.Def_PerPointValue + mem.LV = memberInfo.get("LV", 0) + mem.Job = memberInfo.get("Job", 0) + mem.RealmLV = memberInfo.get("RealmLV", 0) + mem.Face = memberInfo.get("Face", 0) + mem.FacePic = memberInfo.get("FacePic", 0) + mem.FightPower = memberInfo.get("FightPower", 0) % ChConfig.Def_PerPointValue + mem.FightPowerEx = memberInfo.get("FightPower", 0) / ChConfig.Def_PerPointValue + mem.OfflineValue = memberInfo.get("OfflineValue", 0) mem.Value1 = memberInfo["Value1"] mem.Value2 = memberInfo["Value2"] memberList.append(mem) @@ -903,6 +909,8 @@ applyP.LV = applyInfo["LV"] applyP.Job = applyInfo["Job"] applyP.RealmLV = applyInfo["RealmLV"] + applyP.Face = applyInfo.get("Face", 0) + applyP.FacePic = applyInfo.get("FacePic", 0) applyP.FightPower = applyInfo["FightPower"] % ChConfig.Def_PerPointValue applyP.FightPowerEx = applyInfo["FightPower"] / ChConfig.Def_PerPointValue applyList.append(applyP) @@ -1494,12 +1502,25 @@ # 非列表查询,返回玩家相关队伍 if "startIndex" not in msgData: + syncPlayerIDList = [playerID] + serverGroupList = [serverGroupID] + funcTeamMgr = PyDataManager.GetDBPyFuncTeamManager() + # 申请的队伍 + funcTeamList = funcTeamMgr.GetFuncTeamList(zoneID, funcMapID) + for funcTeam in funcTeamList: + if playerID not in funcTeam.GetApplyIDList(): + continue + teamID = funcTeam.GetTeamID() + teamInfo = funcTeam.GetSyncDict(True) + sendMsg = {"infoType":"QueryPlayerFuncTeam", "zoneID":zoneID, "playerID":playerID, "funcMapID":funcMapID, + "teamInfo":teamInfo, "teamID":teamID, "syncPlayerIDList":syncPlayerIDList} + CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_FuncTeamInfo, sendMsg, serverGroupList) + + # 玩家所属队伍 teamID = funcTeamMgr.GetPlayerTeamID(playerID, funcMapID) funcTeam = funcTeamMgr.GetFuncTeam(teamID) teamInfo = funcTeam.GetSyncDict(True) if funcTeam else {} - syncPlayerIDList = [playerID] - serverGroupList = [serverGroupID] sendMsg = {"infoType":"QueryPlayerFuncTeam", "zoneID":zoneID, "playerID":playerID, "funcMapID":funcMapID, "teamInfo":teamInfo, "teamID":teamID, "syncPlayerIDList":syncPlayerIDList} CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_FuncTeamInfo, sendMsg, serverGroupList) -- Gitblit v1.8.0