From 0db0ef37cd5e9be802c4f920ed69f018f253aea5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 九月 2024 17:01:42 +0800
Subject: [PATCH] 10050 【后端】角色(Face相关处理)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py | 30 +++++++++++++--
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py | 3 +
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py | 3 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 22 +++++++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py | 9 ++--
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 7 ++-
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py | 10 ++++
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py | 3 +
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 22 +++++++++--
10 files changed, 89 insertions(+), 22 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 4a01742..48d2430 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -10461,6 +10461,7 @@
OnlineType = 0 #(BYTE OnlineType)//在线状态, 0 不在线 1在线
IsInTeam = 0 #(BYTE IsInTeam)//是否有队伍
ServerGroupID = 0 #(DWORD ServerGroupID)//服务器组ID
+ Face = 0 #(DWORD Face)//基本脸型
data = None
def __init__(self):
@@ -10480,6 +10481,7 @@
self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.IsInTeam,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.ServerGroupID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -10495,6 +10497,7 @@
self.OnlineType = 0
self.IsInTeam = 0
self.ServerGroupID = 0
+ self.Face = 0
return
def GetLength(self):
@@ -10507,6 +10510,7 @@
length += 2
length += 1
length += 1
+ length += 4
length += 4
return length
@@ -10522,6 +10526,7 @@
data = CommFunc.WriteBYTE(data, self.OnlineType)
data = CommFunc.WriteBYTE(data, self.IsInTeam)
data = CommFunc.WriteDWORD(data, self.ServerGroupID)
+ data = CommFunc.WriteDWORD(data, self.Face)
return data
def OutputString(self):
@@ -10534,7 +10539,8 @@
RealmLV:%d,
OnlineType:%d,
IsInTeam:%d,
- ServerGroupID:%d
+ ServerGroupID:%d,
+ Face:%d
'''\
%(
self.Head.OutputString(),
@@ -10545,7 +10551,8 @@
self.RealmLV,
self.OnlineType,
self.IsInTeam,
- self.ServerGroupID
+ self.ServerGroupID,
+ self.Face
)
return DumpString
@@ -10620,6 +10627,7 @@
LV = 0 #(WORD LV)//等级
RealmLV = 0 #(WORD RealmLV)//境界
OnlineType = 0 #(BYTE OnlineType)//0不在线 1在线 2脱机在线
+ Face = 0 #(DWORD Face)//基本脸型
data = None
def __init__(self):
@@ -10634,6 +10642,7 @@
self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -10643,6 +10652,7 @@
self.LV = 0
self.RealmLV = 0
self.OnlineType = 0
+ self.Face = 0
return
def GetLength(self):
@@ -10653,6 +10663,7 @@
length += 2
length += 2
length += 1
+ length += 4
return length
@@ -10664,6 +10675,7 @@
data = CommFunc.WriteWORD(data, self.LV)
data = CommFunc.WriteWORD(data, self.RealmLV)
data = CommFunc.WriteBYTE(data, self.OnlineType)
+ data = CommFunc.WriteDWORD(data, self.Face)
return data
def OutputString(self):
@@ -10673,7 +10685,8 @@
Job:%d,
LV:%d,
RealmLV:%d,
- OnlineType:%d
+ OnlineType:%d,
+ Face:%d
'''\
%(
self.PlayerID,
@@ -10681,7 +10694,8 @@
self.Job,
self.LV,
self.RealmLV,
- self.OnlineType
+ self.OnlineType,
+ self.Face
)
return DumpString
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 1c6f7dc..f6e7b9f 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -880,7 +880,6 @@
elif packType == IPY_GameServer.CDBPlayerRefresh_LV:
curPlayer.SetLV(packValue)
- PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
#玩家等级记录
playerID = curPlayer.GetID()
if playerID in PyGameData.g_todayPlayerLVDict:
@@ -930,10 +929,14 @@
elif packType == IPY_GameServer.CDBPlayerRefresh_OfficialRank:
curPlayer.SetOfficialRank(packValue)
- PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
#更新排行榜的境界
PlayerBillboard.UpdateBillboardRealm(curPlayer)
+ elif packType == IPY_GameServer.CDBPlayerRefresh_Face:
+ curPlayer.SetFace(packValue)
+ PlayerBillboard.UpdateBillboardFace(curPlayer)
+ #社交信息
+ PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
#组队成员刷新
PlayerTeam.PlayerTeamMemberRefresh(curPlayer, packType, packValue, tick)
#家族刷新
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
index 9b015b2..58dc777 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
@@ -642,10 +642,11 @@
def GetBillboardOperateInfo(curPlayer):
# 排行榜中所保存的运营商相关信息
- platform = curPlayer.GetAccID()
- if platform in ["tencent"]:
- return curPlayer.GetOperateInfo()
- return platform
+ return curPlayer.GetFace()
+# platform = curPlayer.GetAccID()
+# if platform in ["tencent"]:
+# return curPlayer.GetOperateInfo()
+# return platform
def UpdateFamilyBillboard(bType, familyBillInfo, cmpValue, cmpValue2=0):
## 更新仙盟排行榜
@@ -966,3 +967,24 @@
return
+def UpdateBillboardFace(curPlayer):
+ ## 更新排行榜中的玩家头像
+
+ curPlayerID = curPlayer.GetID()
+ curFace = curPlayer.GetFace()
+
+ billboardMgr = GameWorld.GetBillboard()
+ for billboardIndex in ShareDefine.BillboardTypeList:
+ billBoard = billboardMgr.FindBillboard(billboardIndex)
+ if not billBoard:
+ #找不到这类型排行榜
+ continue
+
+ playerBillBoardData = billBoard.FindByID(curPlayerID)
+ if not playerBillBoardData:
+ #该玩家没有在排行榜上
+ continue
+
+ playerBillBoardData.SetName2(str(curFace))
+
+ return
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index 8b22ad5..b30be55 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -2153,7 +2153,7 @@
curMember.SetLV(curPlayer.GetLV())
curMember.SetReincarnationLv(curPlayer.GetReincarnationLv())
curMember.SetJob(curPlayer.GetJob())
- curMember.SetOperateInfo(curPlayer.GetOperateInfo())
+ curMember.SetOperateInfo(curPlayer.GetFace()) #curPlayer.GetOperateInfo()
curMember.SetOfficialRank(curPlayer.GetOfficialRank())
return
#---------------------------------------------------------------------
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py
index 0ad02c8..24c92d0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerSocial.py
@@ -841,6 +841,7 @@
self.playerInfo.LV = curPlayer.GetLV()
self.playerInfo.RealmLV = curPlayer.GetOfficialRank()
self.playerInfo.OnlineType = 1 # 0 不在线 1 在线 2 脱机在线
+ self.playerInfo.Face = curPlayer.GetFace()
if not self.playerInfo.RefCount:
self.playerInfo.RefCount = 1
return
@@ -853,6 +854,7 @@
packStruct.LV = self.playerInfo.LV
packStruct.RealmLV = self.playerInfo.RealmLV
packStruct.OnlineType = self.playerInfo.OnlineType
+ packStruct.Face = self.playerInfo.Face
return packStruct
# 更新玩家数据引用, 根据需求是否更新玩家数据
@@ -900,6 +902,7 @@
playerSocial.LV = 1
playerSocial.RealmLV = 1
playerSocial.OnlineType = ChConfig.Def_Offline
+ playerSocial.Face = 0
else:
cacheDict = PlayerViewCache.GetCachePropDataDict(curCache)
@@ -910,6 +913,7 @@
playerSocial.LV = cacheDict["LV"]
playerSocial.RealmLV = cacheDict["RealmLV"]
playerSocial.OnlineType = ChConfig.Def_Offline
+ playerSocial.Face = cacheDict.get("Face", 0)
self.SocialInfo[playerID] = SocialPlayerData(playerSocial)
socialPlayer = self.SocialInfo[playerID]
@@ -1081,7 +1085,11 @@
socialPlayer.playerInfo.RealmLV = value
elif notifyType == IPY_PlayerDefine.CDBPlayerRefresh_PlayerName:
socialPlayer.playerInfo.PlayerName = value
-
+ elif notifyType == IPY_PlayerDefine.CDBPlayerRefresh_Face:
+ socialPlayer.playerInfo.Face = value
+ else:
+ return
+
Notify_All(playerID, notifyType, value)
return
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
index 110ce43..c6f24d8 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTalk.py
@@ -467,7 +467,8 @@
coupleName = couple.GetCoupleName(playerID)
coupleJob = couple.GetCoupleJob(playerID)
bridePriceMaxID = couple.BridePriceMaxID
- extraValueStr = "%s|%s|%s|%s" % (extraValueStr, coupleName, coupleJob, bridePriceMaxID)
+ face = player.GetFace()
+ extraValueStr = "%s|%s|%s|%s|%s" % (extraValueStr, coupleName, coupleJob, bridePriceMaxID, face)
return extraValueStr
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
index 9e35962..9f40e7c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
@@ -406,6 +406,7 @@
answerPack.RealmLV = 1
answerPack.OnlineType = ChConfig.Def_Offline
answerPack.ServerGroupID = 0
+ answerPack.Face = 0
else:
cacheDict = GetCachePropDataDict(curCache)
answerPack.PlayerID = clientPack.PlayerID
@@ -414,6 +415,7 @@
answerPack.LV = cacheDict["LV"]
answerPack.RealmLV = cacheDict["RealmLV"]
answerPack.OnlineType = ChConfig.Def_Offline
+ answerPack.Face = cacheDict.get("Face", 0)
if GameWorld.IsCrossServer():
answerPack.ServerGroupID = cacheDict.get("ServerGroupID", 0)
@@ -428,6 +430,7 @@
answerPack.OnlineType = ChConfig.Def_Online
answerPack.IsInTeam = tagPlayer.GetTeamID() > 0
answerPack.ServerGroupID = PlayerControl.GetPlayerServerGroupID(tagPlayer)
+ answerPack.Face = tagPlayer.GetFace()
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
NetPackCommon.SendFakePack(curPlayer, answerPack)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 4a01742..48d2430 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -10461,6 +10461,7 @@
OnlineType = 0 #(BYTE OnlineType)//在线状态, 0 不在线 1在线
IsInTeam = 0 #(BYTE IsInTeam)//是否有队伍
ServerGroupID = 0 #(DWORD ServerGroupID)//服务器组ID
+ Face = 0 #(DWORD Face)//基本脸型
data = None
def __init__(self):
@@ -10480,6 +10481,7 @@
self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.IsInTeam,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.ServerGroupID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -10495,6 +10497,7 @@
self.OnlineType = 0
self.IsInTeam = 0
self.ServerGroupID = 0
+ self.Face = 0
return
def GetLength(self):
@@ -10507,6 +10510,7 @@
length += 2
length += 1
length += 1
+ length += 4
length += 4
return length
@@ -10522,6 +10526,7 @@
data = CommFunc.WriteBYTE(data, self.OnlineType)
data = CommFunc.WriteBYTE(data, self.IsInTeam)
data = CommFunc.WriteDWORD(data, self.ServerGroupID)
+ data = CommFunc.WriteDWORD(data, self.Face)
return data
def OutputString(self):
@@ -10534,7 +10539,8 @@
RealmLV:%d,
OnlineType:%d,
IsInTeam:%d,
- ServerGroupID:%d
+ ServerGroupID:%d,
+ Face:%d
'''\
%(
self.Head.OutputString(),
@@ -10545,7 +10551,8 @@
self.RealmLV,
self.OnlineType,
self.IsInTeam,
- self.ServerGroupID
+ self.ServerGroupID,
+ self.Face
)
return DumpString
@@ -10620,6 +10627,7 @@
LV = 0 #(WORD LV)//等级
RealmLV = 0 #(WORD RealmLV)//境界
OnlineType = 0 #(BYTE OnlineType)//0不在线 1在线 2脱机在线
+ Face = 0 #(DWORD Face)//基本脸型
data = None
def __init__(self):
@@ -10634,6 +10642,7 @@
self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -10643,6 +10652,7 @@
self.LV = 0
self.RealmLV = 0
self.OnlineType = 0
+ self.Face = 0
return
def GetLength(self):
@@ -10653,6 +10663,7 @@
length += 2
length += 2
length += 1
+ length += 4
return length
@@ -10664,6 +10675,7 @@
data = CommFunc.WriteWORD(data, self.LV)
data = CommFunc.WriteWORD(data, self.RealmLV)
data = CommFunc.WriteBYTE(data, self.OnlineType)
+ data = CommFunc.WriteDWORD(data, self.Face)
return data
def OutputString(self):
@@ -10673,7 +10685,8 @@
Job:%d,
LV:%d,
RealmLV:%d,
- OnlineType:%d
+ OnlineType:%d,
+ Face:%d
'''\
%(
self.PlayerID,
@@ -10681,7 +10694,8 @@
self.Job,
self.LV,
self.RealmLV,
- self.OnlineType
+ self.OnlineType,
+ self.Face
)
return DumpString
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
index 36ed795..2925c43 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
@@ -32,10 +32,11 @@
def GetBillboardOperateInfo(curPlayer):
# 排行榜中所保存的运营商相关信息
- platform = curPlayer.GetAccID()
- if platform in ["tencent"]:
- return curPlayer.GetOperateInfo()
- return platform
+ return curPlayer.GetFace()
+# platform = curPlayer.GetAccID()
+# if platform in ["tencent"]:
+# return curPlayer.GetOperateInfo()
+# return platform
def GetBillboardJob(curPlayer): return curPlayer.GetJob()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
index fe1d4b5..b97d8eb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
@@ -399,7 +399,8 @@
coupleName = PlayerControl.GetCoupleName(objTalk)
coupleJob = PlayerControl.GetCoupleJob(objTalk)
bridePriceMaxID = PlayerControl.GetBridePriceMaxID(objTalk)
- extraValueStr = "%s|%s|%s|%s" % (extraValueStr, coupleName, coupleJob, bridePriceMaxID)
+ face = objTalk.GetFace()
+ extraValueStr = "%s|%s|%s|%s|%s" % (extraValueStr, coupleName, coupleJob, bridePriceMaxID, face)
return extraValueStr
--
Gitblit v1.8.0