From e74b2fdd8a052d7c40adfeab9b881d7cb2cc8369 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 18 十二月 2024 15:41:47 +0800
Subject: [PATCH] 10297 【越南】【英语】【砍树】【tqxbqy】轮回殿-服务端(增加GM命令: Lunhui)
---
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