From e825390224b421ab365aa08a58a1f6b066d5b09e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 01 十一月 2024 15:36:57 +0800
Subject: [PATCH] 10261 【越南】【砍树】【英文】【tqxbqy】头像框,头像(补充通知:A922、A923、A927、A928、B920、B922、B033、B035)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py        |   99 ++++--------
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameXiangong.py          |    8 
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py                |   10 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py |  172 ++++++++++++++++++--
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                      |  172 ++++++++++++++++++--
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py     |    6 
 6 files changed, 352 insertions(+), 115 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 15f9ba7..bce921d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -2996,7 +2996,6 @@
     Job = 0    #(BYTE Job)
     LV = 0    #(WORD LV)//等级
     RealmLV = 0    #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
-    Face = 0    #(DWORD Face)//基本脸型
     FightPower = 0    #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力
     FightPowerEx = 0    #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力
     Score = 0    #(DWORD Score)//积分
@@ -3004,6 +3003,8 @@
     AddScore = ""    #(String AddScore)//本次对战增加的积分,有正负
     IsWin = 0    #(BYTE IsWin)//是否获胜
     Time = 0    #(DWORD Time)//时间戳
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     data = None
 
     def __init__(self):
@@ -3017,7 +3018,6 @@
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -3025,6 +3025,8 @@
         self.AddScore,_pos = CommFunc.ReadString(_lpData, _pos,self.AddScoreLen)
         self.IsWin,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -3033,7 +3035,6 @@
         self.Job = 0
         self.LV = 0
         self.RealmLV = 0
-        self.Face = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.Score = 0
@@ -3041,6 +3042,8 @@
         self.AddScore = ""
         self.IsWin = 0
         self.Time = 0
+        self.Face = 0
+        self.FacePic = 0
         return
 
     def GetLength(self):
@@ -3053,10 +3056,11 @@
         length += 4
         length += 4
         length += 4
-        length += 4
         length += 1
         length += len(self.AddScore)
         length += 1
+        length += 4
+        length += 4
         length += 4
 
         return length
@@ -3068,7 +3072,6 @@
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteWORD(data, self.RealmLV)
-        data = CommFunc.WriteDWORD(data, self.Face)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.Score)
@@ -3076,6 +3079,8 @@
         data = CommFunc.WriteString(data, self.AddScoreLen, self.AddScore)
         data = CommFunc.WriteBYTE(data, self.IsWin)
         data = CommFunc.WriteDWORD(data, self.Time)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         return data
 
     def OutputString(self):
@@ -3085,14 +3090,15 @@
                                 Job:%d,
                                 LV:%d,
                                 RealmLV:%d,
-                                Face:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 Score:%d,
                                 AddScoreLen:%d,
                                 AddScore:%s,
                                 IsWin:%d,
-                                Time:%d
+                                Time:%d,
+                                Face:%d,
+                                FacePic:%d
                                 '''\
                                 %(
                                 self.PlayerID,
@@ -3100,14 +3106,15 @@
                                 self.Job,
                                 self.LV,
                                 self.RealmLV,
-                                self.Face,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.Score,
                                 self.AddScoreLen,
                                 self.AddScore,
                                 self.IsWin,
-                                self.Time
+                                self.Time,
+                                self.Face,
+                                self.FacePic
                                 )
         return DumpString
 
@@ -3187,10 +3194,11 @@
     Job = 0    #(BYTE Job)
     LV = 0    #(WORD LV)//等级
     RealmLV = 0    #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
-    Face = 0    #(DWORD Face)//基本脸型
     FightPower = 0    #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力
     FightPowerEx = 0    #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力
     Score = 0    #(DWORD Score)//积分
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     data = None
 
     def __init__(self):
@@ -3204,10 +3212,11 @@
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -3216,10 +3225,11 @@
         self.Job = 0
         self.LV = 0
         self.RealmLV = 0
-        self.Face = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.Score = 0
+        self.Face = 0
+        self.FacePic = 0
         return
 
     def GetLength(self):
@@ -3229,6 +3239,7 @@
         length += 1
         length += 2
         length += 2
+        length += 4
         length += 4
         length += 4
         length += 4
@@ -3243,10 +3254,11 @@
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteWORD(data, self.RealmLV)
-        data = CommFunc.WriteDWORD(data, self.Face)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.Score)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         return data
 
     def OutputString(self):
@@ -3256,10 +3268,11 @@
                                 Job:%d,
                                 LV:%d,
                                 RealmLV:%d,
-                                Face:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
-                                Score:%d
+                                Score:%d,
+                                Face:%d,
+                                FacePic:%d
                                 '''\
                                 %(
                                 self.PlayerID,
@@ -3267,10 +3280,11 @@
                                 self.Job,
                                 self.LV,
                                 self.RealmLV,
-                                self.Face,
                                 self.FightPower,
                                 self.FightPowerEx,
-                                self.Score
+                                self.Score,
+                                self.Face,
+                                self.FacePic
                                 )
         return DumpString
 
@@ -5845,6 +5859,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     EquipShowSwitch = 0    #(DWORD EquipShowSwitch)
     EquipShowIDCount = 0    #(BYTE EquipShowIDCount)
     EquipShowID = list()    #(vector<DWORD> EquipShowID)
@@ -5864,6 +5880,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.EquipShowIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.EquipShowIDCount):
@@ -5880,6 +5898,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.EquipShowSwitch = 0
         self.EquipShowIDCount = 0
         self.EquipShowID = list()
@@ -5896,6 +5916,8 @@
         length += 1
         length += 2
         length += 4
+        length += 4
+        length += 4
         length += 1
         length += 4 * self.EquipShowIDCount
 
@@ -5911,6 +5933,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.EquipShowSwitch)
         data = CommFunc.WriteBYTE(data, self.EquipShowIDCount)
         for i in range(self.EquipShowIDCount):
@@ -5927,6 +5951,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 EquipShowSwitch:%d,
                                 EquipShowIDCount:%d,
                                 EquipShowID:%s
@@ -5940,6 +5966,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.EquipShowSwitch,
                                 self.EquipShowIDCount,
                                 "..."
@@ -6032,6 +6060,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     data = None
 
     def __init__(self):
@@ -6048,6 +6078,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -6059,6 +6091,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         return
 
     def GetLength(self):
@@ -6071,6 +6105,8 @@
         length += 2
         length += 1
         length += 2
+        length += 4
+        length += 4
 
         return length
 
@@ -6084,6 +6120,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         return data
 
     def OutputString(self):
@@ -6095,7 +6133,9 @@
                                 Name:%s,
                                 LV:%d,
                                 Job:%d,
-                                RealmLV:%d
+                                RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d
                                 '''\
                                 %(
                                 self.AddTime,
@@ -6105,7 +6145,9 @@
                                 self.Name,
                                 self.LV,
                                 self.Job,
-                                self.RealmLV
+                                self.RealmLV,
+                                self.Face,
+                                self.FacePic
                                 )
         return DumpString
 
@@ -8525,7 +8567,9 @@
     RobPlayerID = 0    #(DWORD RobPlayerID)// 抢夺玩家ID,为0时代表没人抢夺
     RobWorkerCount = 0    #(BYTE RobWorkerCount)// 抢夺工人个数
     RobPlayerName = ""    #(char RobPlayerName[33])
+    RobJob = 0    #(BYTE RobJob)
     RobFace = 0    #(DWORD RobFace)
+    RobFacePic = 0    #(DWORD RobFacePic)
     data = None
 
     def __init__(self):
@@ -8547,7 +8591,9 @@
         self.RobPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.RobWorkerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RobPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.RobJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RobFace,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.RobFacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -8564,7 +8610,9 @@
         self.RobPlayerID = 0
         self.RobWorkerCount = 0
         self.RobPlayerName = ""
+        self.RobJob = 0
         self.RobFace = 0
+        self.RobFacePic = 0
         return
 
     def GetLength(self):
@@ -8582,6 +8630,8 @@
         length += 4
         length += 1
         length += 33
+        length += 1
+        length += 4
         length += 4
 
         return length
@@ -8601,7 +8651,9 @@
         data = CommFunc.WriteDWORD(data, self.RobPlayerID)
         data = CommFunc.WriteBYTE(data, self.RobWorkerCount)
         data = CommFunc.WriteString(data, 33, self.RobPlayerName)
+        data = CommFunc.WriteBYTE(data, self.RobJob)
         data = CommFunc.WriteDWORD(data, self.RobFace)
+        data = CommFunc.WriteDWORD(data, self.RobFacePic)
         return data
 
     def OutputString(self):
@@ -8619,7 +8671,9 @@
                                 RobPlayerID:%d,
                                 RobWorkerCount:%d,
                                 RobPlayerName:%s,
-                                RobFace:%d
+                                RobJob:%d,
+                                RobFace:%d,
+                                RobFacePic:%d
                                 '''\
                                 %(
                                 self.Index,
@@ -8635,7 +8689,9 @@
                                 self.RobPlayerID,
                                 self.RobWorkerCount,
                                 self.RobPlayerName,
-                                self.RobFace
+                                self.RobJob,
+                                self.RobFace,
+                                self.RobFacePic
                                 )
         return DumpString
 
@@ -8643,7 +8699,9 @@
 class  tagGCMineArea(Structure):
     PlayerID = 0    #(DWORD PlayerID)// 福地所属玩家ID,可能是自己或其他玩家ID,当ID小于10000时为假人
     PlayerName = ""    #(char PlayerName[33])// 可能为空,如自己或假人
+    Job = 0    #(BYTE Job)
     Face = 0    #(DWORD Face)
+    FacePic = 0    #(DWORD FacePic)
     MineCount = 0    #(BYTE MineCount)
     MineItemList = list()    #(vector<tagGCMineItem> MineItemList)// 矿物列表
     data = None
@@ -8656,7 +8714,9 @@
         self.Clear()
         self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.MineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.MineCount):
             temMineItemList = tagGCMineItem()
@@ -8667,7 +8727,9 @@
     def Clear(self):
         self.PlayerID = 0
         self.PlayerName = ""
+        self.Job = 0
         self.Face = 0
+        self.FacePic = 0
         self.MineCount = 0
         self.MineItemList = list()
         return
@@ -8676,6 +8738,8 @@
         length = 0
         length += 4
         length += 33
+        length += 1
+        length += 4
         length += 4
         length += 1
         for i in range(self.MineCount):
@@ -8687,7 +8751,9 @@
         data = ''
         data = CommFunc.WriteDWORD(data, self.PlayerID)
         data = CommFunc.WriteString(data, 33, self.PlayerName)
+        data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteBYTE(data, self.MineCount)
         for i in range(self.MineCount):
             data = CommFunc.WriteString(data, self.MineItemList[i].GetLength(), self.MineItemList[i].GetBuffer())
@@ -8697,14 +8763,18 @@
         DumpString = '''
                                 PlayerID:%d,
                                 PlayerName:%s,
+                                Job:%d,
                                 Face:%d,
+                                FacePic:%d,
                                 MineCount:%d,
                                 MineItemList:%s
                                 '''\
                                 %(
                                 self.PlayerID,
                                 self.PlayerName,
+                                self.Job,
                                 self.Face,
+                                self.FacePic,
                                 self.MineCount,
                                 "..."
                                 )
@@ -8800,7 +8870,9 @@
     RecordTime = 0    #(DWORD RecordTime)// 记录时间戳
     MineID = 0    #(WORD MineID)// 矿物ID,对应福地采集表中ID
     TagPlayerName = ""    #(char TagPlayerName[33])
+    TagJob = 0    #(BYTE TagJob)
     TagFace = 0    #(DWORD TagFace)
+    TagFacePic = 0    #(DWORD TagFacePic)
     data = None
 
     def __init__(self):
@@ -8814,7 +8886,9 @@
         self.RecordTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.MineID,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.TagPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.TagJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.TagFace,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TagFacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -8823,7 +8897,9 @@
         self.RecordTime = 0
         self.MineID = 0
         self.TagPlayerName = ""
+        self.TagJob = 0
         self.TagFace = 0
+        self.TagFacePic = 0
         return
 
     def GetLength(self):
@@ -8833,6 +8909,8 @@
         length += 4
         length += 2
         length += 33
+        length += 1
+        length += 4
         length += 4
 
         return length
@@ -8844,7 +8922,9 @@
         data = CommFunc.WriteDWORD(data, self.RecordTime)
         data = CommFunc.WriteWORD(data, self.MineID)
         data = CommFunc.WriteString(data, 33, self.TagPlayerName)
+        data = CommFunc.WriteBYTE(data, self.TagJob)
         data = CommFunc.WriteDWORD(data, self.TagFace)
+        data = CommFunc.WriteDWORD(data, self.TagFacePic)
         return data
 
     def OutputString(self):
@@ -8854,7 +8934,9 @@
                                 RecordTime:%d,
                                 MineID:%d,
                                 TagPlayerName:%s,
-                                TagFace:%d
+                                TagJob:%d,
+                                TagFace:%d,
+                                TagFacePic:%d
                                 '''\
                                 %(
                                 self.RecordType,
@@ -8862,7 +8944,9 @@
                                 self.RecordTime,
                                 self.MineID,
                                 self.TagPlayerName,
-                                self.TagFace
+                                self.TagJob,
+                                self.TagFace,
+                                self.TagFacePic
                                 )
         return DumpString
 
@@ -13225,6 +13309,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     FightPower = 0    #(DWORD FightPower)// 战力,求余亿
     FightPowerEx = 0    #(DWORD FightPowerEx)// 战力,整除亿
     Value1 = 0    #(DWORD Value1)//值1
@@ -13244,6 +13330,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -13258,6 +13346,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.Value1 = 0
@@ -13277,6 +13367,8 @@
         length += 4
         length += 4
         length += 4
+        length += 4
+        length += 4
 
         return length
 
@@ -13289,6 +13381,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.Value1)
@@ -13304,6 +13398,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 Value1:%d,
@@ -13317,6 +13413,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.Value1,
@@ -13623,6 +13721,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     FightPower = 0    #(DWORD FightPower)// 战力,求余亿
     FightPowerEx = 0    #(DWORD FightPowerEx)// 战力,整除亿
     data = None
@@ -13640,6 +13740,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
@@ -13652,6 +13754,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         return
@@ -13667,6 +13771,8 @@
         length += 2
         length += 4
         length += 4
+        length += 4
+        length += 4
 
         return length
 
@@ -13679,6 +13785,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         return data
@@ -13692,6 +13800,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d
                                 '''\
@@ -13703,6 +13813,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.FightPower,
                                 self.FightPowerEx
                                 )
@@ -13717,6 +13829,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     FightPower = 0    #(DWORD FightPower)// 战力,求余亿
     FightPowerEx = 0    #(DWORD FightPowerEx)// 战力,整除亿
     OfflineValue = 0    #(DWORD OfflineValue)// 离线值:0-在线;1-离线;>1-上次离线时间戳,可用于计算离线多久了;当取不到玩家信息时用1代表已离线;
@@ -13737,6 +13851,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.OfflineValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -13752,6 +13868,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.OfflineValue = 0
@@ -13773,6 +13891,8 @@
         length += 4
         length += 4
         length += 4
+        length += 4
+        length += 4
 
         return length
 
@@ -13785,6 +13905,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.OfflineValue)
@@ -13801,6 +13923,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 OfflineValue:%d,
@@ -13815,6 +13939,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.OfflineValue,
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
index 316afc6..62ff5dd 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
@@ -57,6 +57,8 @@
         self.tagLV = 0
         self.tagJob = 0
         self.tagScore = 0
+        self.tagFace = 0
+        self.tagFacePic = 0
         return
     
 class ArenaBattleRec():
@@ -74,6 +76,8 @@
         self.tagPlayerID = 0 # 小于10000的为机器人ID
         self.tagLV = 0
         self.tagJob = 0
+        self.tagFace = 0
+        self.tagFacePic = 0
         self.tagScore = 0
         
         self.addScore = 0
@@ -92,6 +96,7 @@
 value4        tagScore        目标积分,非实时积分,一般机器人时有用
 strValue1    resultInfo    isWin,addScore
 strValue2    updInfo    isDispose,updScore
+strValue3    faceInfo    face,facePic
 '''
 
 ''' 榜单数据 '''
@@ -103,70 +108,16 @@
 def SetArenaBillRealmLV(billData, realmLV): return billData.SetValue1(realmLV)
 def GetArenaBillLV(billData): return billData.GetValue2()
 def SetArenaBillLV(billData, lv): billData.SetValue2(lv)
+def GetArenaBillFace(billData): return billData.GetValue3()
+def SetArenaBillFace(billData, face): billData.SetValue3(face)
+def GetArenaBillFacePic(billData): return billData.GetValue4()
+def SetArenaBillFacePic(billData, facePic): billData.SetValue4(facePic)
 def GetArenaBillScore(billData): return billData.GetCmpValue()
 def SetArenaBillScore(billData, score): return billData.SetCmpValue(score)
 def GetArenaBillFightPower(billData): return billData.GetCmpValue2() * ShareDefine.Def_PerPointValue + billData.GetCmpValue3()
 def SetArenaBillFightPower(billData, fightPower):
     billData.SetCmpValue2(fightPower / ShareDefine.Def_PerPointValue)
     billData.SetCmpValue3(fightPower % ShareDefine.Def_PerPointValue)
-    return
-
-def RepairArenaBillboardFightPower():
-    ## 修正竞技场榜单的战力数据,支持20亿,bt3_1.100.1 下次大版本更新后可删除
-    
-    repairStateKey = "RepairArenaBillboardFightPower"
-    repairState = PlayerDBGSEvent.GetDBGSTrig_ByKey(repairStateKey)
-    if repairState:
-        GameWorld.DebugLog("=== 已经修正竞技场榜单数据  ===")
-        return
-    
-    GameWorld.Log("=== 修正竞技场榜单数据 Start ===")
-    
-    worldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
-    PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ArenaWorldLV, worldLV)
-    GameWorld.Log("    SetDBGSTrig_ByKey %s=%s" % (PlayerDBGSEvent.Def_ArenaWorldLV, worldLV))
-    
-    robotMaxCount = IpyGameDataPY.GetFuncCfg("ArenaRobot", 1)
-    __RandRobotLVList(robotMaxCount)
-    GameWorld.Log("    PyGameData.g_arenaRobotLVList len=%s, %s" % (len(PyGameData.g_arenaRobotLVList), PyGameData.g_arenaRobotLVList))
-    
-    billBoard = GameWorld.GetBillboard().FindBillboard(ShareDefine.Def_BT_Arena)
-    if not billBoard:
-        return
-    
-    for index in xrange(billBoard.GetCount()):
-        
-        order = index + 1
-        billBoardData = billBoard.At(index)
-        if not billBoardData:
-            continue
-        
-        playerID = billBoardData.GetID()
-        fightPower = billBoardData.GetCmpValue2() # 旧战力只存在比较值2
-        
-        if playerID <= MaxRobotID:
-            curLV = GetArenaBillLV(billBoardData)
-            updLV = curLV
-            if index < len(PyGameData.g_arenaRobotLVList):
-                updLV = PyGameData.g_arenaRobotLVList[index]
-            GameWorld.Log("    修正机器人等级: order=%s,playerID=%s,curLV=%s,updLV=%s" 
-                          % (order, playerID, curLV, updLV))
-            SetArenaBillLV(billBoardData, updLV)
-            SetArenaBillFightPower(billBoardData, 0)
-            continue
-        
-        curCache = PlayerViewCache.FindViewCache(playerID)
-        if curCache:
-            cacheDict = PlayerViewCache.GetCachePropDataDict(curCache)
-            fightPower = cacheDict["FightPower"]
-            
-        SetArenaBillFightPower(billBoardData, fightPower)
-        GameWorld.Log("    修正真玩家战力: order=%s,playerID=%s,fightPower=%s,cmpValue2=%s,cmpValue3=%s" 
-                      % (order, playerID, fightPower, billBoardData.GetCmpValue2(), billBoardData.GetCmpValue3()))
-        
-    billBoard.Sort()
-    PlayerDBGSEvent.SetDBGSTrig_ByKey(repairStateKey, 1)
-    GameWorld.Log("=== 修正竞技场榜单的战力数据 OK ===")
     return
 
 def OnServerStart():
@@ -194,6 +145,11 @@
         battleRec.isDispose = int(updInfo[0] if len(updInfo) > 0 else 0)
         battleRec.updScore = int(updInfo[1] if len(updInfo) > 1 else 0)
         
+        strValue3 = recData.GetStrValue3()
+        faceInfo = strValue3.split(",") if strValue3 else []
+        battleRec.tagFace = int(faceInfo[0] if len(faceInfo) > 0 else 0)
+        battleRec.tagFacePic = int(faceInfo[1] if len(faceInfo) > 1 else 0)
+        
         battleRecList = GetPlayerArenaBattleRecList(playerID)
         battleRecList.append(battleRec)
         
@@ -216,7 +172,6 @@
             else:
                 __ResetArenaRobotBillboard()
                 
-    RepairArenaBillboardFightPower()
     return
 
 def OnServerClose():
@@ -237,6 +192,7 @@
             
             recData.SetStrValue1("%s,%s" % (int(battleRec.isWin), battleRec.addScore))
             recData.SetStrValue2("%s,%s" % (int(battleRec.isDispose), battleRec.updScore))
+            recData.SetStrValue3("%s,%s" % (battleRec.tagFace, battleRec.tagFacePic))
             
     return
 
@@ -598,7 +554,7 @@
         return
     tagPlayerID = valueList[0]
     
-    isFindTag, tagLV, tagJob, tagScore = __findBattleTag(playerID, tagPlayerID)
+    isFindTag, tagLV, tagJob, tagScore, tagFace, tagFacePic = __findBattleTag(playerID, tagPlayerID)
     if not isFindTag:
         GameWorld.ErrLog("找不到对战对手,不在匹配列表或对战记录里!不能战斗!tagPlayerID=%s" % tagPlayerID, playerID)
         return
@@ -833,6 +789,8 @@
                         SetArenaBillRealmLV(billData, cacheDict["RealmLV"])
                         SetArenaBillLV(billData, cacheDict["LV"])
                         SetArenaBillFightPower(billData, cacheDict["FightPower"])
+                        SetArenaBillFace(billData, cacheDict.get("Face", 0))
+                        SetArenaBillFacePic(billData, cacheDict.get("FacePic", 0))
                 else:
                     if matchIndex < len(PyGameData.g_arenaRobotLVList):
                         robotLV = PyGameData.g_arenaRobotLVList[matchIndex] # 同步更新机器人榜单变化等级
@@ -841,6 +799,8 @@
                 matchPlayer.tagLV = GetArenaBillLV(billData)
                 matchPlayer.tagJob = GetArenaBillJob(billData)
                 matchPlayer.tagScore = GetArenaBillScore(billData)
+                matchPlayer.tagFace = GetArenaBillFace(billData)
+                matchPlayer.tagFacePic = GetArenaBillFacePic(billData)
                 
                 GameWorld.DebugLog("    %s 匹配在榜单上的: tagPlayerID=%s,tagLV=%s,tagScore=%s,matchOrder=%s" 
                                    % (i + 1, matchPlayer.tagPlayerID, matchPlayer.tagLV, matchPlayer.tagScore, matchOrder), playerID)
@@ -872,6 +832,8 @@
         matchInfo.Job = matchPlayer.tagJob
         matchInfo.LV = matchPlayer.tagLV
         matchInfo.Score = matchPlayer.tagScore
+        matchInfo.Face = matchPlayer.tagFace
+        matchInfo.FacePic = matchPlayer.tagFacePic
         
         # 玩家读取额外信息, 机器人其他信息不处理,这里直接读最新的查看缓存,防止刷新不及时(并不是实时数据,只是相对实时,前端可自行控制刷新频率)
         if matchInfo.PlayerID > MaxRobotID:
@@ -885,6 +847,7 @@
                 matchInfo.FightPower = fightPower % ShareDefine.Def_PerPointValue
                 matchInfo.FightPowerEx = fightPower / ShareDefine.Def_PerPointValue
                 matchInfo.Face = cacheDict.get("Face", 0)
+                matchInfo.FacePic = cacheDict.get("FacePic", 0)
         else:
             # 此处机器人的暂忽略等级变化的同步,仅在刷新、更新积分时同步,此处省略查询机器人所属榜单排名
             pass
@@ -898,14 +861,14 @@
     ## 检查查找要战斗的对象是否合法
     
     isFindTag = False
-    tagLV, tagJob, tagScore = 0, 0, 0
+    tagLV, tagJob, tagScore, tagFace, tagFacePic = 0, 0, 0, 0, 0
         
     # 先找匹配列表
     matchList = PyGameData.g_arenaPlayerMatchDict.get(playerID, [])
     for matchPlayer in matchList:
         if matchPlayer.tagPlayerID == tagPlayerID:
             isFindTag = True
-            tagLV, tagJob, tagScore = matchPlayer.tagLV, matchPlayer.tagJob, matchPlayer.tagScore
+            tagLV, tagJob, tagScore, tagFace, tagFacePic = matchPlayer.tagLV, matchPlayer.tagJob, matchPlayer.tagScore, matchPlayer.tagFace, matchPlayer.tagFacePic
             GameWorld.DebugLog("    对手在匹配列表中! tagLV=%s, tagJob=%s, tagScore=%s" % (tagLV, tagJob, tagScore), playerID)
             break
         
@@ -915,11 +878,11 @@
         for battleRec in curBattleRecList:
             if battleRec.tagPlayerID == tagPlayerID:
                 isFindTag = True
-                tagLV, tagJob, tagScore = battleRec.tagLV, battleRec.tagJob, battleRec.tagScore
+                tagLV, tagJob, tagScore, tagFace, tagFacePic = battleRec.tagLV, battleRec.tagJob, battleRec.tagScore, battleRec.tagFace, battleRec.tagFacePic
                 GameWorld.DebugLog("    对手在对战记录中! tagLV=%s, tagJob=%s, tagScore=%s" % (tagLV, tagJob, tagScore), playerID)
                 break
             
-    return isFindTag, tagLV, tagJob, tagScore
+    return isFindTag, tagLV, tagJob, tagScore, tagFace, tagFacePic
 
 def __DoArenaBattleResult(curPlayer, cmdDict):
     ## 地图玩家同步战斗结果
@@ -952,7 +915,7 @@
     curScore = playerScore
     tagRealmLV, tagFightPower, tagAccID = 0, 0, "" # 机器人无值
     
-    isFindTag, tagLV, tagJob, tagScore = __findBattleTag(playerID, tagPlayerID)
+    isFindTag, tagLV, tagJob, tagScore, tagFace, tagFacePic = __findBattleTag(playerID, tagPlayerID)
     if not isFindTag:
         GameWorld.ErrLog("找不到对战对手,不在匹配列表或对战记录里!不处理结算!tagPlayerID=%s" % tagPlayerID, playerID)
         return retDict
@@ -1059,6 +1022,8 @@
     battleRec.addScore = addScore
     battleRec.isDispose = 1
     battleRec.updScore = updScore
+    battleRec.tagFace = tagFace
+    battleRec.tagFacePic = tagFacePic
     curBattleRecList.append(battleRec)
     if len(curBattleRecList) > battleRecMaxCount:
         curBattleRecList = curBattleRecList[len(curBattleRecList) - battleRecMaxCount:]
@@ -1077,6 +1042,8 @@
         tagBattleRec.addScore = tagAddScore
         tagBattleRec.isDispose = 1 if tagOnline else 0
         tagBattleRec.updScore = updTagScore
+        tagBattleRec.tagFace = face
+        tagBattleRec.tagFacePic = facePic
         tagBattleRecList.append(tagBattleRec)
         if len(tagBattleRecList) > battleRecMaxCount:
             tagBattleRecList = tagBattleRecList[len(tagBattleRecList) - battleRecMaxCount:]
@@ -1163,6 +1130,8 @@
         recInfo.AddScoreLen = len(recInfo.AddScore)
         recInfo.IsWin = battleRec.isWin
         recInfo.Time = battleRec.battleTime
+        recInfo.Face = battleRec.tagFace
+        recInfo.FacePic = battleRec.tagFacePic
         
         if recInfo.PlayerID > MaxRobotID:
             curCache = PlayerViewCache.FindViewCache(recInfo.PlayerID)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
index e03977e..c647c0e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
@@ -1350,7 +1350,9 @@
         if areaPlayerID > Def_FakeAreaCount:
             cacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(areaPlayerID))
             areaInfo.PlayerName = cacheDict.get("Name", "")
+            areaInfo.Job = cacheDict.get("Job", 0)
             areaInfo.Face = cacheDict.get("Face", 0)
+            areaInfo.FacePic = cacheDict.get("FacePic", 0)
                     
         areaInfo.MineItemList = []
         if not mineIndexList:
@@ -1373,7 +1375,9 @@
             if mineItemData.RobPlayerID:
                 robCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(mineItemData.RobPlayerID))
                 mineItem.RobPlayerName = robCacheDict.get("Name", "")
+                mineItem.RobJob = robCacheDict.get("Job", 0)
                 mineItem.RobFace = robCacheDict.get("Face", 0)
+                mineItem.RobFacePic = robCacheDict.get("FacePic", 0)
             areaInfo.MineItemList.append(mineItem)
         areaInfo.MineCount = len(areaInfo.MineItemList)
         
@@ -1397,7 +1401,9 @@
         if playerID != recordInfo.TagPlayerID and recordInfo.TagPlayerID > Def_FakeAreaCount:
             tagCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(recordInfo.TagPlayerID))
             recordInfo.TagPlayerName = tagCacheDict.get("Name", "")
+            recordInfo.TagJob = tagCacheDict.get("Job", 0)
             recordInfo.TagFace = tagCacheDict.get("Face", 0)
+            recordInfo.TagFacePic = tagCacheDict.get("FacePic", 0)
         clientPack.AreaRecordList.append(recordInfo)
     clientPack.RecordCount = len(clientPack.AreaRecordList)
     NetPackCommon.SendFakePack(curPlayer, clientPack)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameXiangong.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameXiangong.py
index 3db46f0..05f33e9 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameXiangong.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameXiangong.py
@@ -65,7 +65,7 @@
     
     gameRecMgr = PyDataManager.GetDBGameRecDataManager()
     recData = gameRecMgr.AddGameRecData(ShareDefine.Def_GameRecType_Xiangong, xiangongID, [playerID])
-    playerInfo = PlayerViewCache.GetShotCacheDict(playerID, "ServerID")
+    playerInfo = PlayerViewCache.GetShotCacheDict(playerID, "ServerID", "Face", "FacePic")
     
     serverID = playerInfo.get("ServerID", 0)
     saveServerIDList = [] + serverIDList # 重新创建一份存储,不改变传入值
@@ -140,7 +140,7 @@
                 GameWorld.DebugLog("    xgPlayerID=%s,playerServerID=%s not in %s" % (xgPlayerID, playerServerID, serverIDList))
                 continue
             
-        playerInfo = PlayerViewCache.GetShotCacheDict(xgPlayerID, "PlayerID", "ServerID", "Model")
+        playerInfo = PlayerViewCache.GetShotCacheDict(xgPlayerID, "PlayerID", "ServerID", "Model", "Face", "FacePic")
         if not playerInfo:
             GameWorld.Log("找不到玩家缓存的暂不同步仙宫新晋仙官! xgPlayerID=%s" % xgPlayerID)
             continue
@@ -275,6 +275,8 @@
         newP.LV = playerInfo["LV"]
         newP.Job = playerInfo["Job"]
         newP.RealmLV = playerInfo["RealmLV"]
+        newP.Face = playerInfo.get("Face", 0)
+        newP.FacePic = playerInfo.get("FacePic", 0)
         newP.EquipShowSwitch = playerInfo["EquipShowSwitch"]
         newP.EquipShowID = playerInfo["EquipShowID"]
         newP.EquipShowIDCount = len(newP.EquipShowID)
@@ -354,6 +356,8 @@
         recP.LV = playerInfo["LV"]
         recP.Job = playerInfo["Job"]
         recP.RealmLV = playerInfo["RealmLV"]
+        recP.Face = playerInfo.get("Face", 0)
+        recP.FacePic = playerInfo.get("FacePic", 0)
         recPlayerList.append(recP)
         
     clientPack = ChPyNetSendPack.tagGCXiangongRecPlayerInfo()
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFuncTeam.py
index 3e7543a..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.GetShotCacheDict(self.GetPlayerID(), "PlayerID", "FightPower", "ServerID", "OfflineValue"))
+        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.GetShotCacheDict(applyID, "PlayerID", "FightPower", "ServerID")
+                applyPlayerDict = PlayerViewCache.GetShotCacheDict(applyID, "PlayerID", "FightPower", "ServerID", "Face", "FacePic")
                 if not applyPlayerDict:
                     ApplyIDList.remove(applyID)
                 else:
@@ -827,6 +827,8 @@
             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"]
@@ -888,6 +890,8 @@
         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)
@@ -905,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)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 15f9ba7..bce921d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -2996,7 +2996,6 @@
     Job = 0    #(BYTE Job)
     LV = 0    #(WORD LV)//等级
     RealmLV = 0    #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
-    Face = 0    #(DWORD Face)//基本脸型
     FightPower = 0    #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力
     FightPowerEx = 0    #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力
     Score = 0    #(DWORD Score)//积分
@@ -3004,6 +3003,8 @@
     AddScore = ""    #(String AddScore)//本次对战增加的积分,有正负
     IsWin = 0    #(BYTE IsWin)//是否获胜
     Time = 0    #(DWORD Time)//时间戳
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     data = None
 
     def __init__(self):
@@ -3017,7 +3018,6 @@
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -3025,6 +3025,8 @@
         self.AddScore,_pos = CommFunc.ReadString(_lpData, _pos,self.AddScoreLen)
         self.IsWin,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -3033,7 +3035,6 @@
         self.Job = 0
         self.LV = 0
         self.RealmLV = 0
-        self.Face = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.Score = 0
@@ -3041,6 +3042,8 @@
         self.AddScore = ""
         self.IsWin = 0
         self.Time = 0
+        self.Face = 0
+        self.FacePic = 0
         return
 
     def GetLength(self):
@@ -3053,10 +3056,11 @@
         length += 4
         length += 4
         length += 4
-        length += 4
         length += 1
         length += len(self.AddScore)
         length += 1
+        length += 4
+        length += 4
         length += 4
 
         return length
@@ -3068,7 +3072,6 @@
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteWORD(data, self.RealmLV)
-        data = CommFunc.WriteDWORD(data, self.Face)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.Score)
@@ -3076,6 +3079,8 @@
         data = CommFunc.WriteString(data, self.AddScoreLen, self.AddScore)
         data = CommFunc.WriteBYTE(data, self.IsWin)
         data = CommFunc.WriteDWORD(data, self.Time)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         return data
 
     def OutputString(self):
@@ -3085,14 +3090,15 @@
                                 Job:%d,
                                 LV:%d,
                                 RealmLV:%d,
-                                Face:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 Score:%d,
                                 AddScoreLen:%d,
                                 AddScore:%s,
                                 IsWin:%d,
-                                Time:%d
+                                Time:%d,
+                                Face:%d,
+                                FacePic:%d
                                 '''\
                                 %(
                                 self.PlayerID,
@@ -3100,14 +3106,15 @@
                                 self.Job,
                                 self.LV,
                                 self.RealmLV,
-                                self.Face,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.Score,
                                 self.AddScoreLen,
                                 self.AddScore,
                                 self.IsWin,
-                                self.Time
+                                self.Time,
+                                self.Face,
+                                self.FacePic
                                 )
         return DumpString
 
@@ -3187,10 +3194,11 @@
     Job = 0    #(BYTE Job)
     LV = 0    #(WORD LV)//等级
     RealmLV = 0    #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
-    Face = 0    #(DWORD Face)//基本脸型
     FightPower = 0    #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力
     FightPowerEx = 0    #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力
     Score = 0    #(DWORD Score)//积分
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     data = None
 
     def __init__(self):
@@ -3204,10 +3212,11 @@
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -3216,10 +3225,11 @@
         self.Job = 0
         self.LV = 0
         self.RealmLV = 0
-        self.Face = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.Score = 0
+        self.Face = 0
+        self.FacePic = 0
         return
 
     def GetLength(self):
@@ -3229,6 +3239,7 @@
         length += 1
         length += 2
         length += 2
+        length += 4
         length += 4
         length += 4
         length += 4
@@ -3243,10 +3254,11 @@
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteWORD(data, self.RealmLV)
-        data = CommFunc.WriteDWORD(data, self.Face)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.Score)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         return data
 
     def OutputString(self):
@@ -3256,10 +3268,11 @@
                                 Job:%d,
                                 LV:%d,
                                 RealmLV:%d,
-                                Face:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
-                                Score:%d
+                                Score:%d,
+                                Face:%d,
+                                FacePic:%d
                                 '''\
                                 %(
                                 self.PlayerID,
@@ -3267,10 +3280,11 @@
                                 self.Job,
                                 self.LV,
                                 self.RealmLV,
-                                self.Face,
                                 self.FightPower,
                                 self.FightPowerEx,
-                                self.Score
+                                self.Score,
+                                self.Face,
+                                self.FacePic
                                 )
         return DumpString
 
@@ -5845,6 +5859,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     EquipShowSwitch = 0    #(DWORD EquipShowSwitch)
     EquipShowIDCount = 0    #(BYTE EquipShowIDCount)
     EquipShowID = list()    #(vector<DWORD> EquipShowID)
@@ -5864,6 +5880,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.EquipShowIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.EquipShowIDCount):
@@ -5880,6 +5898,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.EquipShowSwitch = 0
         self.EquipShowIDCount = 0
         self.EquipShowID = list()
@@ -5896,6 +5916,8 @@
         length += 1
         length += 2
         length += 4
+        length += 4
+        length += 4
         length += 1
         length += 4 * self.EquipShowIDCount
 
@@ -5911,6 +5933,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.EquipShowSwitch)
         data = CommFunc.WriteBYTE(data, self.EquipShowIDCount)
         for i in range(self.EquipShowIDCount):
@@ -5927,6 +5951,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 EquipShowSwitch:%d,
                                 EquipShowIDCount:%d,
                                 EquipShowID:%s
@@ -5940,6 +5966,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.EquipShowSwitch,
                                 self.EquipShowIDCount,
                                 "..."
@@ -6032,6 +6060,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     data = None
 
     def __init__(self):
@@ -6048,6 +6078,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -6059,6 +6091,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         return
 
     def GetLength(self):
@@ -6071,6 +6105,8 @@
         length += 2
         length += 1
         length += 2
+        length += 4
+        length += 4
 
         return length
 
@@ -6084,6 +6120,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         return data
 
     def OutputString(self):
@@ -6095,7 +6133,9 @@
                                 Name:%s,
                                 LV:%d,
                                 Job:%d,
-                                RealmLV:%d
+                                RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d
                                 '''\
                                 %(
                                 self.AddTime,
@@ -6105,7 +6145,9 @@
                                 self.Name,
                                 self.LV,
                                 self.Job,
-                                self.RealmLV
+                                self.RealmLV,
+                                self.Face,
+                                self.FacePic
                                 )
         return DumpString
 
@@ -8525,7 +8567,9 @@
     RobPlayerID = 0    #(DWORD RobPlayerID)// 抢夺玩家ID,为0时代表没人抢夺
     RobWorkerCount = 0    #(BYTE RobWorkerCount)// 抢夺工人个数
     RobPlayerName = ""    #(char RobPlayerName[33])
+    RobJob = 0    #(BYTE RobJob)
     RobFace = 0    #(DWORD RobFace)
+    RobFacePic = 0    #(DWORD RobFacePic)
     data = None
 
     def __init__(self):
@@ -8547,7 +8591,9 @@
         self.RobPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.RobWorkerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RobPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.RobJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RobFace,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.RobFacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -8564,7 +8610,9 @@
         self.RobPlayerID = 0
         self.RobWorkerCount = 0
         self.RobPlayerName = ""
+        self.RobJob = 0
         self.RobFace = 0
+        self.RobFacePic = 0
         return
 
     def GetLength(self):
@@ -8582,6 +8630,8 @@
         length += 4
         length += 1
         length += 33
+        length += 1
+        length += 4
         length += 4
 
         return length
@@ -8601,7 +8651,9 @@
         data = CommFunc.WriteDWORD(data, self.RobPlayerID)
         data = CommFunc.WriteBYTE(data, self.RobWorkerCount)
         data = CommFunc.WriteString(data, 33, self.RobPlayerName)
+        data = CommFunc.WriteBYTE(data, self.RobJob)
         data = CommFunc.WriteDWORD(data, self.RobFace)
+        data = CommFunc.WriteDWORD(data, self.RobFacePic)
         return data
 
     def OutputString(self):
@@ -8619,7 +8671,9 @@
                                 RobPlayerID:%d,
                                 RobWorkerCount:%d,
                                 RobPlayerName:%s,
-                                RobFace:%d
+                                RobJob:%d,
+                                RobFace:%d,
+                                RobFacePic:%d
                                 '''\
                                 %(
                                 self.Index,
@@ -8635,7 +8689,9 @@
                                 self.RobPlayerID,
                                 self.RobWorkerCount,
                                 self.RobPlayerName,
-                                self.RobFace
+                                self.RobJob,
+                                self.RobFace,
+                                self.RobFacePic
                                 )
         return DumpString
 
@@ -8643,7 +8699,9 @@
 class  tagGCMineArea(Structure):
     PlayerID = 0    #(DWORD PlayerID)// 福地所属玩家ID,可能是自己或其他玩家ID,当ID小于10000时为假人
     PlayerName = ""    #(char PlayerName[33])// 可能为空,如自己或假人
+    Job = 0    #(BYTE Job)
     Face = 0    #(DWORD Face)
+    FacePic = 0    #(DWORD FacePic)
     MineCount = 0    #(BYTE MineCount)
     MineItemList = list()    #(vector<tagGCMineItem> MineItemList)// 矿物列表
     data = None
@@ -8656,7 +8714,9 @@
         self.Clear()
         self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.MineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.MineCount):
             temMineItemList = tagGCMineItem()
@@ -8667,7 +8727,9 @@
     def Clear(self):
         self.PlayerID = 0
         self.PlayerName = ""
+        self.Job = 0
         self.Face = 0
+        self.FacePic = 0
         self.MineCount = 0
         self.MineItemList = list()
         return
@@ -8676,6 +8738,8 @@
         length = 0
         length += 4
         length += 33
+        length += 1
+        length += 4
         length += 4
         length += 1
         for i in range(self.MineCount):
@@ -8687,7 +8751,9 @@
         data = ''
         data = CommFunc.WriteDWORD(data, self.PlayerID)
         data = CommFunc.WriteString(data, 33, self.PlayerName)
+        data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteBYTE(data, self.MineCount)
         for i in range(self.MineCount):
             data = CommFunc.WriteString(data, self.MineItemList[i].GetLength(), self.MineItemList[i].GetBuffer())
@@ -8697,14 +8763,18 @@
         DumpString = '''
                                 PlayerID:%d,
                                 PlayerName:%s,
+                                Job:%d,
                                 Face:%d,
+                                FacePic:%d,
                                 MineCount:%d,
                                 MineItemList:%s
                                 '''\
                                 %(
                                 self.PlayerID,
                                 self.PlayerName,
+                                self.Job,
                                 self.Face,
+                                self.FacePic,
                                 self.MineCount,
                                 "..."
                                 )
@@ -8800,7 +8870,9 @@
     RecordTime = 0    #(DWORD RecordTime)// 记录时间戳
     MineID = 0    #(WORD MineID)// 矿物ID,对应福地采集表中ID
     TagPlayerName = ""    #(char TagPlayerName[33])
+    TagJob = 0    #(BYTE TagJob)
     TagFace = 0    #(DWORD TagFace)
+    TagFacePic = 0    #(DWORD TagFacePic)
     data = None
 
     def __init__(self):
@@ -8814,7 +8886,9 @@
         self.RecordTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.MineID,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.TagPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.TagJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.TagFace,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TagFacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -8823,7 +8897,9 @@
         self.RecordTime = 0
         self.MineID = 0
         self.TagPlayerName = ""
+        self.TagJob = 0
         self.TagFace = 0
+        self.TagFacePic = 0
         return
 
     def GetLength(self):
@@ -8833,6 +8909,8 @@
         length += 4
         length += 2
         length += 33
+        length += 1
+        length += 4
         length += 4
 
         return length
@@ -8844,7 +8922,9 @@
         data = CommFunc.WriteDWORD(data, self.RecordTime)
         data = CommFunc.WriteWORD(data, self.MineID)
         data = CommFunc.WriteString(data, 33, self.TagPlayerName)
+        data = CommFunc.WriteBYTE(data, self.TagJob)
         data = CommFunc.WriteDWORD(data, self.TagFace)
+        data = CommFunc.WriteDWORD(data, self.TagFacePic)
         return data
 
     def OutputString(self):
@@ -8854,7 +8934,9 @@
                                 RecordTime:%d,
                                 MineID:%d,
                                 TagPlayerName:%s,
-                                TagFace:%d
+                                TagJob:%d,
+                                TagFace:%d,
+                                TagFacePic:%d
                                 '''\
                                 %(
                                 self.RecordType,
@@ -8862,7 +8944,9 @@
                                 self.RecordTime,
                                 self.MineID,
                                 self.TagPlayerName,
-                                self.TagFace
+                                self.TagJob,
+                                self.TagFace,
+                                self.TagFacePic
                                 )
         return DumpString
 
@@ -13225,6 +13309,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     FightPower = 0    #(DWORD FightPower)// 战力,求余亿
     FightPowerEx = 0    #(DWORD FightPowerEx)// 战力,整除亿
     Value1 = 0    #(DWORD Value1)//值1
@@ -13244,6 +13330,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -13258,6 +13346,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.Value1 = 0
@@ -13277,6 +13367,8 @@
         length += 4
         length += 4
         length += 4
+        length += 4
+        length += 4
 
         return length
 
@@ -13289,6 +13381,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.Value1)
@@ -13304,6 +13398,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 Value1:%d,
@@ -13317,6 +13413,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.Value1,
@@ -13623,6 +13721,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     FightPower = 0    #(DWORD FightPower)// 战力,求余亿
     FightPowerEx = 0    #(DWORD FightPowerEx)// 战力,整除亿
     data = None
@@ -13640,6 +13740,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
@@ -13652,6 +13754,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         return
@@ -13667,6 +13771,8 @@
         length += 2
         length += 4
         length += 4
+        length += 4
+        length += 4
 
         return length
 
@@ -13679,6 +13785,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         return data
@@ -13692,6 +13800,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d
                                 '''\
@@ -13703,6 +13813,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.FightPower,
                                 self.FightPowerEx
                                 )
@@ -13717,6 +13829,8 @@
     LV = 0    #(WORD LV)// 玩家等级
     Job = 0    #(BYTE Job)// 玩家职业
     RealmLV = 0    #(WORD RealmLV)// 玩家境界
+    Face = 0    #(DWORD Face)//基本脸型
+    FacePic = 0    #(DWORD FacePic)//头像框
     FightPower = 0    #(DWORD FightPower)// 战力,求余亿
     FightPowerEx = 0    #(DWORD FightPowerEx)// 战力,整除亿
     OfflineValue = 0    #(DWORD OfflineValue)// 离线值:0-在线;1-离线;>1-上次离线时间戳,可用于计算离线多久了;当取不到玩家信息时用1代表已离线;
@@ -13737,6 +13851,8 @@
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.OfflineValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -13752,6 +13868,8 @@
         self.LV = 0
         self.Job = 0
         self.RealmLV = 0
+        self.Face = 0
+        self.FacePic = 0
         self.FightPower = 0
         self.FightPowerEx = 0
         self.OfflineValue = 0
@@ -13773,6 +13891,8 @@
         length += 4
         length += 4
         length += 4
+        length += 4
+        length += 4
 
         return length
 
@@ -13785,6 +13905,8 @@
         data = CommFunc.WriteWORD(data, self.LV)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.RealmLV)
+        data = CommFunc.WriteDWORD(data, self.Face)
+        data = CommFunc.WriteDWORD(data, self.FacePic)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.OfflineValue)
@@ -13801,6 +13923,8 @@
                                 LV:%d,
                                 Job:%d,
                                 RealmLV:%d,
+                                Face:%d,
+                                FacePic:%d,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 OfflineValue:%d,
@@ -13815,6 +13939,8 @@
                                 self.LV,
                                 self.Job,
                                 self.RealmLV,
+                                self.Face,
+                                self.FacePic,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.OfflineValue,

--
Gitblit v1.8.0