From 3f862208516829ee806168cbb633bc9221f0cf6a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 11 十月 2025 20:30:10 +0800
Subject: [PATCH] 271 【内政】古宝系统-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 1133 +++++++++--------------------------------------------------
 1 files changed, 172 insertions(+), 961 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index c32e6bf..a17f6a5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -4395,71 +4395,70 @@
 
 
 #------------------------------------------------------
-#A3 0D 玩家签到信息记录 # tagMCDaySignInfo
+#A3 0D 玩家签到信息记录 # tagSCDaySignInfo
 
-class  tagMCDaySignInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("DaySignCount", c_ubyte),    #已经签到天数
-                  ("ReplenishSignCount", c_ubyte),    # 可以补签天数
-                  ("IsSign", c_ubyte),    #当天是否已经签到,发送0和1
-                  ("IsFrist", c_ubyte),    #是否是第一个月
-                  ("TotalSignCount", c_ushort),    #累计总签到天数
-                  ]
+class  tagSCDaySignInfo(Structure):
+    Head = tagHead()
+    Count = 0    #(BYTE Count)
+    SignStateList = list()    #(vector<BYTE> SignStateList)//每日签到状态记录列表 [第1天状态, ...]  状态:0-不可签到;1-已签到;2-可补签;3-已领取
+    data = None
 
     def __init__(self):
         self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x0D
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x0D
         return
 
-    def ReadData(self, stringData, _pos=0, _len=0):
+    def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Count):
+            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+            self.SignStateList.append(value)
+        return _pos
 
     def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x0D
-        self.DaySignCount = 0
-        self.ReplenishSignCount = 0
-        self.IsSign = 0
-        self.IsFrist = 0
-        self.TotalSignCount = 0
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x0D
+        self.Count = 0
+        self.SignStateList = list()
         return
 
     def GetLength(self):
-        return sizeof(tagMCDaySignInfo)
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1 * self.Count
+
+        return length
 
     def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteBYTE(data, self.SignStateList[i])
+        return data
 
     def OutputString(self):
-        DumpString = '''//A3 0D 玩家签到信息记录 // tagMCDaySignInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                DaySignCount:%d,
-                                ReplenishSignCount:%d,
-                                IsSign:%d,
-                                IsFrist:%d,
-                                TotalSignCount:%d
+        DumpString = '''
+                                Head:%s,
+                                Count:%d,
+                                SignStateList:%s
                                 '''\
                                 %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.DaySignCount,
-                                self.ReplenishSignCount,
-                                self.IsSign,
-                                self.IsFrist,
-                                self.TotalSignCount
+                                self.Head.OutputString(),
+                                self.Count,
+                                "..."
                                 )
         return DumpString
 
 
-m_NAtagMCDaySignInfo=tagMCDaySignInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDaySignInfo.Cmd,m_NAtagMCDaySignInfo.SubCmd))] = m_NAtagMCDaySignInfo
+m_NAtagSCDaySignInfo=tagSCDaySignInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDaySignInfo.Head.Cmd,m_NAtagSCDaySignInfo.Head.SubCmd))] = m_NAtagSCDaySignInfo
 
 
 #------------------------------------------------------
@@ -5088,121 +5087,6 @@
 
 m_NAtagMCEquipPartXLAttrInfo=tagMCEquipPartXLAttrInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartXLAttrInfo.Head.Cmd,m_NAtagMCEquipPartXLAttrInfo.Head.SubCmd))] = m_NAtagMCEquipPartXLAttrInfo
-
-
-#------------------------------------------------------
-# A3 16 仙盟活跃信息通知 #tagMCFamilyActivityInfo
-
-class  tagMCFamilyActionCnt(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("ActionID", c_ubyte),    # ID
-                  ("FinishCnt", c_ushort),    # 已完成次数
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.ActionID = 0
-        self.FinishCnt = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCFamilyActionCnt)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 16 仙盟活跃信息通知 //tagMCFamilyActivityInfo:
-                                ActionID:%d,
-                                FinishCnt:%d
-                                '''\
-                                %(
-                                self.ActionID,
-                                self.FinishCnt
-                                )
-        return DumpString
-
-
-class  tagMCFamilyActivityInfo(Structure):
-    Head = tagHead()
-    AwardRecord = 0    #(DWORD AwardRecord)// 领奖情况记录
-    Count = 0    #(BYTE Count)// 个数
-    InfoList = list()    #(vector<tagMCFamilyActionCnt> InfoList)// 活动信息
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x16
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            temInfoList = tagMCFamilyActionCnt()
-            _pos = temInfoList.ReadData(_lpData, _pos)
-            self.InfoList.append(temInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x16
-        self.AwardRecord = 0
-        self.Count = 0
-        self.InfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        for i in range(self.Count):
-            length += self.InfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.AwardRecord)
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                AwardRecord:%d,
-                                Count:%d,
-                                InfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.AwardRecord,
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCFamilyActivityInfo=tagMCFamilyActivityInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityInfo.Head.Cmd,m_NAtagMCFamilyActivityInfo.Head.SubCmd))] = m_NAtagMCFamilyActivityInfo
 
 
 #------------------------------------------------------
@@ -6132,6 +6016,7 @@
                   ("GubaoID", c_ushort),    
                   ("GubaoStar", c_ubyte),    
                   ("GubaoLV", c_ubyte),    
+                  ("EffLayer", c_ubyte),    # 该特殊效果累加层值
                   ]
 
     def __init__(self):
@@ -6147,6 +6032,7 @@
         self.GubaoID = 0
         self.GubaoStar = 0
         self.GubaoLV = 0
+        self.EffLayer = 0
         return
 
     def GetLength(self):
@@ -6159,19 +6045,21 @@
         DumpString = '''// A3 C7 古宝信息 //tagMCGubaoInfo:
                                 GubaoID:%d,
                                 GubaoStar:%d,
-                                GubaoLV:%d
+                                GubaoLV:%d,
+                                EffLayer:%d
                                 '''\
                                 %(
                                 self.GubaoID,
                                 self.GubaoStar,
-                                self.GubaoLV
+                                self.GubaoLV,
+                                self.EffLayer
                                 )
         return DumpString
 
 
 class  tagMCGubaoInfo(Structure):
     Head = tagHead()
-    Count = 0    #(BYTE Count)
+    Count = 0    #(WORD Count)
     GubaoInfoList = list()    #(vector<tagMCGubao> GubaoInfoList)
     data = None
 
@@ -6184,7 +6072,7 @@
     def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
         _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
         for i in range(self.Count):
             temGubaoInfoList = tagMCGubao()
             _pos = temGubaoInfoList.ReadData(_lpData, _pos)
@@ -6203,7 +6091,7 @@
     def GetLength(self):
         length = 0
         length += self.Head.GetLength()
-        length += 1
+        length += 2
         for i in range(self.Count):
             length += self.GubaoInfoList[i].GetLength()
 
@@ -6212,7 +6100,7 @@
     def GetBuffer(self):
         data = ''
         data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Count)
+        data = CommFunc.WriteWORD(data, self.Count)
         for i in range(self.Count):
             data = CommFunc.WriteString(data, self.GubaoInfoList[i].GetLength(), self.GubaoInfoList[i].GetBuffer())
         return data
@@ -6233,226 +6121,6 @@
 
 m_NAtagMCGubaoInfo=tagMCGubaoInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGubaoInfo.Head.Cmd,m_NAtagMCGubaoInfo.Head.SubCmd))] = m_NAtagMCGubaoInfo
-
-
-#------------------------------------------------------
-# A3 CA 古宝物品特殊效果信息 #tagMCGubaoItemEffInfo
-
-class  tagMCGubaoItemEff(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("GubaoID", c_ushort),    
-                  ("EffType", c_ubyte),    # 不同古宝ID允许拥有相同效果类型,进度值每个古宝ID单独统计
-                  ("EffValue", c_int),    # 该效果目前累加值
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.GubaoID = 0
-        self.EffType = 0
-        self.EffValue = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCGubaoItemEff)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 CA 古宝物品特殊效果信息 //tagMCGubaoItemEffInfo:
-                                GubaoID:%d,
-                                EffType:%d,
-                                EffValue:%d
-                                '''\
-                                %(
-                                self.GubaoID,
-                                self.EffType,
-                                self.EffValue
-                                )
-        return DumpString
-
-
-class  tagMCGubaoItemEffInfo(Structure):
-    Head = tagHead()
-    Count = 0    #(WORD Count)
-    ItemEffInfoList = list()    #(vector<tagMCGubaoItemEff> ItemEffInfoList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xCA
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        for i in range(self.Count):
-            temItemEffInfoList = tagMCGubaoItemEff()
-            _pos = temItemEffInfoList.ReadData(_lpData, _pos)
-            self.ItemEffInfoList.append(temItemEffInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xCA
-        self.Count = 0
-        self.ItemEffInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 2
-        for i in range(self.Count):
-            length += self.ItemEffInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteWORD(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.ItemEffInfoList[i].GetLength(), self.ItemEffInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                ItemEffInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCGubaoItemEffInfo=tagMCGubaoItemEffInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGubaoItemEffInfo.Head.Cmd,m_NAtagMCGubaoItemEffInfo.Head.SubCmd))] = m_NAtagMCGubaoItemEffInfo
-
-
-#------------------------------------------------------
-# A3 CB 古宝碎片信息 #tagMCGubaoPieceInfo
-
-class  tagMCGubaoPiece(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("GubaoID", c_ushort),    
-                  ("PieceCount", c_int),    # 当前碎片个数
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.GubaoID = 0
-        self.PieceCount = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCGubaoPiece)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 CB 古宝碎片信息 //tagMCGubaoPieceInfo:
-                                GubaoID:%d,
-                                PieceCount:%d
-                                '''\
-                                %(
-                                self.GubaoID,
-                                self.PieceCount
-                                )
-        return DumpString
-
-
-class  tagMCGubaoPieceInfo(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)
-    PieceInfoList = list()    #(vector<tagMCGubaoPiece> PieceInfoList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xCB
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            temPieceInfoList = tagMCGubaoPiece()
-            _pos = temPieceInfoList.ReadData(_lpData, _pos)
-            self.PieceInfoList.append(temPieceInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0xCB
-        self.Count = 0
-        self.PieceInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Count):
-            length += self.PieceInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.PieceInfoList[i].GetLength(), self.PieceInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                PieceInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCGubaoPieceInfo=tagMCGubaoPieceInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGubaoPieceInfo.Head.Cmd,m_NAtagMCGubaoPieceInfo.Head.SubCmd))] = m_NAtagMCGubaoPieceInfo
 
 
 #------------------------------------------------------
@@ -8114,80 +7782,6 @@
 
 
 #------------------------------------------------------
-#A3 08 在线奖励信息 #tagMCOnlinePrize
-
-class  tagMCOnlinePrize(Structure):
-    Head = tagHead()
-    OnlineTime = 0    #(DWORD OnlineTime)//在线时间毫秒
-    Len = 0    #(BYTE Len)
-    PrizeInfo = list()    #(vector<DWORD> PrizeInfo)//领奖记录
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x08
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Len):
-            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
-            self.PrizeInfo.append(value)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x08
-        self.OnlineTime = 0
-        self.Len = 0
-        self.PrizeInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        length += 4 * self.Len
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.OnlineTime)
-        data = CommFunc.WriteBYTE(data, self.Len)
-        for i in range(self.Len):
-            data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                OnlineTime:%d,
-                                Len:%d,
-                                PrizeInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.OnlineTime,
-                                self.Len,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCOnlinePrize=tagMCOnlinePrize()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrize.Head.Cmd,m_NAtagMCOnlinePrize.Head.SubCmd))] = m_NAtagMCOnlinePrize
-
-
-#------------------------------------------------------
 # A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
 
 class  tagMCPackDownloadRecord(Structure):
@@ -8293,145 +7887,6 @@
 
 m_NAtagMCPlayerLVAwardGetRecord=tagMCPlayerLVAwardGetRecord()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerLVAwardGetRecord.Cmd,m_NAtagMCPlayerLVAwardGetRecord.SubCmd))] = m_NAtagMCPlayerLVAwardGetRecord
-
-
-#------------------------------------------------------
-#A3 03 玩家在线奖励信息(暂停使用) #tagMCPlayerOnlinePrizeInfo
-
-class  tagMCOnlinePrizeItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("PrizeItem", c_int),    
-                  ("ItemCount", c_ubyte),    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x03
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x03
-        self.PrizeItem = 0
-        self.ItemCount = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCOnlinePrizeItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A3 03 玩家在线奖励信息(暂停使用) //tagMCPlayerOnlinePrizeInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                PrizeItem:%d,
-                                ItemCount:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.PrizeItem,
-                                self.ItemCount
-                                )
-        return DumpString
-
-
-class  tagMCPlayerOnlinePrizeInfo(Structure):
-    Head = tagHead()
-    RemaindTime = 0    #(DWORD RemaindTime)//产生奖励剩余时间
-    HasPrize = 0    #(BYTE HasPrize)//是否可以领取 
-    PrizeType = 0    #(BYTE PrizeType)//在线奖励类型
-    PrizeCnt = 0    #(BYTE PrizeCnt)//在线奖励类型
-    PrizeInfo = list()    #(vector<tagMCOnlinePrizeItem> PrizeInfo)//在线奖励类型
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x03
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.RemaindTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.HasPrize,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.PrizeType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.PrizeCnt):
-            temPrizeInfo = tagMCOnlinePrizeItem()
-            _pos = temPrizeInfo.ReadData(_lpData, _pos)
-            self.PrizeInfo.append(temPrizeInfo)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x03
-        self.RemaindTime = 0
-        self.HasPrize = 0
-        self.PrizeType = 0
-        self.PrizeCnt = 0
-        self.PrizeInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        length += 1
-        length += 1
-        for i in range(self.PrizeCnt):
-            length += self.PrizeInfo[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.RemaindTime)
-        data = CommFunc.WriteBYTE(data, self.HasPrize)
-        data = CommFunc.WriteBYTE(data, self.PrizeType)
-        data = CommFunc.WriteBYTE(data, self.PrizeCnt)
-        for i in range(self.PrizeCnt):
-            data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                RemaindTime:%d,
-                                HasPrize:%d,
-                                PrizeType:%d,
-                                PrizeCnt:%d,
-                                PrizeInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.RemaindTime,
-                                self.HasPrize,
-                                self.PrizeType,
-                                self.PrizeCnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCPlayerOnlinePrizeInfo=tagMCPlayerOnlinePrizeInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerOnlinePrizeInfo.Head.Cmd,m_NAtagMCPlayerOnlinePrizeInfo.Head.SubCmd))] = m_NAtagMCPlayerOnlinePrizeInfo
 
 
 #------------------------------------------------------
@@ -13120,6 +12575,73 @@
 
 
 #------------------------------------------------------
+# A5 02 捐献次数信息 #tagSCDonateCntInfo
+
+class  tagSCDonateCntInfo(Structure):
+    Head = tagHead()
+    Count = 0    #(BYTE Count)
+    DonateCntList = list()    #(vector<BYTE> DonateCntList)// 今日已捐献次数列表 [捐献类型1次数, ...]
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA5
+        self.Head.SubCmd = 0x02
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Count):
+            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+            self.DonateCntList.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA5
+        self.Head.SubCmd = 0x02
+        self.Count = 0
+        self.DonateCntList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1 * self.Count
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteBYTE(data, self.DonateCntList[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Count:%d,
+                                DonateCntList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagSCDonateCntInfo=tagSCDonateCntInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDonateCntInfo.Head.Cmd,m_NAtagSCDonateCntInfo.Head.SubCmd))] = m_NAtagSCDonateCntInfo
+
+
+#------------------------------------------------------
 # A5 13 家族行为信息 #tagMCFamilyActionInfo
 
 class  tagMCFamilyAction(Structure):
@@ -13308,181 +12830,6 @@
 
 m_NAtagMCFamilyActionInfo=tagMCFamilyActionInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActionInfo.Head.Cmd,m_NAtagMCFamilyActionInfo.Head.SubCmd))] = m_NAtagMCFamilyActionInfo
-
-
-#------------------------------------------------------
-# A5 02 家族活跃令兑换结果 #tagMCFamilyActivityExchangeResult
-
-class  tagMCFamilyActivityExchangeResult(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("Point", c_int),    # 活跃令
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x02
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.Cmd = 0xA5
-        self.SubCmd = 0x02
-        self.Point = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCFamilyActivityExchangeResult)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 02 家族活跃令兑换结果 //tagMCFamilyActivityExchangeResult:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                Point:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.Point
-                                )
-        return DumpString
-
-
-m_NAtagMCFamilyActivityExchangeResult=tagMCFamilyActivityExchangeResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityExchangeResult.Cmd,m_NAtagMCFamilyActivityExchangeResult.SubCmd))] = m_NAtagMCFamilyActivityExchangeResult
-
-
-#------------------------------------------------------
-# A5 08 家族事务信息 #tagMCFamilyAffairInfo
-
-class  tagMCFamilyAffair(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("AffairID", c_ushort),    # 事务ID
-                  ("Star", c_ubyte),    # 星级
-                  ("State", c_ubyte),    # 状态:0-无;1-进行中;2-已完成
-                  ("RemainDuration", c_ushort),    # 剩余时长,秒,有剩余时间代表进行中
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.AffairID = 0
-        self.Star = 0
-        self.State = 0
-        self.RemainDuration = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCFamilyAffair)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 08 家族事务信息 //tagMCFamilyAffairInfo:
-                                AffairID:%d,
-                                Star:%d,
-                                State:%d,
-                                RemainDuration:%d
-                                '''\
-                                %(
-                                self.AffairID,
-                                self.Star,
-                                self.State,
-                                self.RemainDuration
-                                )
-        return DumpString
-
-
-class  tagMCFamilyAffairInfo(Structure):
-    Head = tagHead()
-    RefreshFreeCount = 0    #(BYTE RefreshFreeCount)// 今日已免费刷新次数
-    Count = 0    #(BYTE Count)
-    AffairInfoList = list()    #(vector<tagMCFamilyAffair> AffairInfoList)// 事务列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA5
-        self.Head.SubCmd = 0x08
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.RefreshFreeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            temAffairInfoList = tagMCFamilyAffair()
-            _pos = temAffairInfoList.ReadData(_lpData, _pos)
-            self.AffairInfoList.append(temAffairInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA5
-        self.Head.SubCmd = 0x08
-        self.RefreshFreeCount = 0
-        self.Count = 0
-        self.AffairInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        length += 1
-        for i in range(self.Count):
-            length += self.AffairInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.RefreshFreeCount)
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.AffairInfoList[i].GetLength(), self.AffairInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                RefreshFreeCount:%d,
-                                Count:%d,
-                                AffairInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.RefreshFreeCount,
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCFamilyAffairInfo=tagMCFamilyAffairInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyAffairInfo.Head.Cmd,m_NAtagMCFamilyAffairInfo.Head.SubCmd))] = m_NAtagMCFamilyAffairInfo
 
 
 #------------------------------------------------------
@@ -14035,6 +13382,7 @@
     JoinLVMin = 0    #(WORD JoinLVMin)//限制最低可加入的玩家等级
     ServerID = 0    #(DWORD ServerID)//区服ID
     EmblemID = 0    #(DWORD EmblemID)//徽章ID
+    EmblemWord = ""    #(char EmblemWord[3])//徽章文字
     FightPower = 0    #(DWORD FightPower)//总战力,求余亿部分
     FightPowerEx = 0    #(DWORD FightPowerEx)//总战力,整除亿部分
     MemberCount = 0    #(BYTE MemberCount)//成员人数
@@ -14057,6 +13405,7 @@
         self.JoinLVMin,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.EmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -14074,6 +13423,7 @@
         self.JoinLVMin = 0
         self.ServerID = 0
         self.EmblemID = 0
+        self.EmblemWord = ""
         self.FightPower = 0
         self.FightPowerEx = 0
         self.MemberCount = 0
@@ -14092,6 +13442,7 @@
         length += 2
         length += 4
         length += 4
+        length += 3
         length += 4
         length += 4
         length += 1
@@ -14111,6 +13462,7 @@
         data = CommFunc.WriteWORD(data, self.JoinLVMin)
         data = CommFunc.WriteDWORD(data, self.ServerID)
         data = CommFunc.WriteDWORD(data, self.EmblemID)
+        data = CommFunc.WriteString(data, 3, self.EmblemWord)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteBYTE(data, self.MemberCount)
@@ -14129,6 +13481,7 @@
                                 JoinLVMin:%d,
                                 ServerID:%d,
                                 EmblemID:%d,
+                                EmblemWord:%s,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 MemberCount:%d
@@ -14145,6 +13498,7 @@
                                 self.JoinLVMin,
                                 self.ServerID,
                                 self.EmblemID,
+                                self.EmblemWord,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.MemberCount
@@ -14496,114 +13850,6 @@
 
 
 #------------------------------------------------------
-# A5 04 玩家战盟科技等级 #tagMCPlayerTechInfo
-
-class  tagMCPlayerTech(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("TechID", c_ushort),    # 科技ID
-                  ("TechLV", c_ushort),    # 特技等级
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.TechID = 0
-        self.TechLV = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCPlayerTech)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 04 玩家战盟科技等级 //tagMCPlayerTechInfo:
-                                TechID:%d,
-                                TechLV:%d
-                                '''\
-                                %(
-                                self.TechID,
-                                self.TechLV
-                                )
-        return DumpString
-
-
-class  tagMCPlayerTechInfo(Structure):
-    Head = tagHead()
-    TechCnt = 0    #(BYTE TechCnt)// 科技个数
-    TechInfoList = list()    #(vector<tagMCPlayerTech> TechInfoList)// 科技信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA5
-        self.Head.SubCmd = 0x04
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.TechCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.TechCnt):
-            temTechInfoList = tagMCPlayerTech()
-            _pos = temTechInfoList.ReadData(_lpData, _pos)
-            self.TechInfoList.append(temTechInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA5
-        self.Head.SubCmd = 0x04
-        self.TechCnt = 0
-        self.TechInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.TechCnt):
-            length += self.TechInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.TechCnt)
-        for i in range(self.TechCnt):
-            data = CommFunc.WriteString(data, self.TechInfoList[i].GetLength(), self.TechInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                TechCnt:%d,
-                                TechInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.TechCnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCPlayerTechInfo=tagMCPlayerTechInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerTechInfo.Head.Cmd,m_NAtagMCPlayerTechInfo.Head.SubCmd))] = m_NAtagMCPlayerTechInfo
-
-
-#------------------------------------------------------
 # A5 20 玩家家族信息 #tagMCRoleFamilyInfo
 
 class  tagMCRoleFamilyMember(Structure):
@@ -14621,7 +13867,9 @@
     FightPowerEx = 0    #(DWORD FightPowerEx)//战力,整除亿部分
     ServerID = 0    #(DWORD ServerID)//所属区服ID
     ContribTotal = 0    #(DWORD ContribTotal)//总贡献度
-    ContribWeek = 0    #(DWORD ContribWeek)//周贡献度
+    ContribDay = 0    #(DWORD ContribDay)//日贡献度
+    DonateCntTotal = 0    #(DWORD DonateCntTotal)//总捐献次数
+    DonateCntDay = 0    #(BYTE DonateCntDay)//日捐献次数
     OffTime = 0    #(DWORD OffTime)// 0-在线; >0-/离线时间戳
     data = None
 
@@ -14645,7 +13893,9 @@
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.ContribTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ContribWeek,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ContribDay,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.DonateCntTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.DonateCntDay,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.OffTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
@@ -14664,7 +13914,9 @@
         self.FightPowerEx = 0
         self.ServerID = 0
         self.ContribTotal = 0
-        self.ContribWeek = 0
+        self.ContribDay = 0
+        self.DonateCntTotal = 0
+        self.DonateCntDay = 0
         self.OffTime = 0
         return
 
@@ -14686,6 +13938,8 @@
         length += 4
         length += 4
         length += 4
+        length += 1
+        length += 4
 
         return length
 
@@ -14705,7 +13959,9 @@
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteDWORD(data, self.ServerID)
         data = CommFunc.WriteDWORD(data, self.ContribTotal)
-        data = CommFunc.WriteDWORD(data, self.ContribWeek)
+        data = CommFunc.WriteDWORD(data, self.ContribDay)
+        data = CommFunc.WriteDWORD(data, self.DonateCntTotal)
+        data = CommFunc.WriteBYTE(data, self.DonateCntDay)
         data = CommFunc.WriteDWORD(data, self.OffTime)
         return data
 
@@ -14725,7 +13981,9 @@
                                 FightPowerEx:%d,
                                 ServerID:%d,
                                 ContribTotal:%d,
-                                ContribWeek:%d,
+                                ContribDay:%d,
+                                DonateCntTotal:%d,
+                                DonateCntDay:%d,
                                 OffTime:%d
                                 '''\
                                 %(
@@ -14743,7 +14001,9 @@
                                 self.FightPowerEx,
                                 self.ServerID,
                                 self.ContribTotal,
-                                self.ContribWeek,
+                                self.ContribDay,
+                                self.DonateCntTotal,
+                                self.DonateCntDay,
                                 self.OffTime
                                 )
         return DumpString
@@ -14759,6 +14019,7 @@
     JoinLVMin = 0    #(WORD JoinLVMin)//限制最低可加入的玩家等级
     ServerID = 0    #(DWORD ServerID)//区服ID,创建时以族长的区服ID赋值
     EmblemID = 0    #(DWORD EmblemID)//徽章ID
+    EmblemWord = ""    #(char EmblemWord[3])//徽章文字
     FightPower = 0    #(DWORD FightPower)//总战力,求余亿部分
     FightPowerEx = 0    #(DWORD FightPowerEx)//总战力,整除亿部分
     BroadcastLen = 0    #(WORD BroadcastLen)//公告
@@ -14785,6 +14046,7 @@
         self.JoinLVMin,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.EmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
         self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.BroadcastLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -14810,6 +14072,7 @@
         self.JoinLVMin = 0
         self.ServerID = 0
         self.EmblemID = 0
+        self.EmblemWord = ""
         self.FightPower = 0
         self.FightPowerEx = 0
         self.BroadcastLen = 0
@@ -14830,6 +14093,7 @@
         length += 2
         length += 4
         length += 4
+        length += 3
         length += 4
         length += 4
         length += 2
@@ -14852,6 +14116,7 @@
         data = CommFunc.WriteWORD(data, self.JoinLVMin)
         data = CommFunc.WriteDWORD(data, self.ServerID)
         data = CommFunc.WriteDWORD(data, self.EmblemID)
+        data = CommFunc.WriteString(data, 3, self.EmblemWord)
         data = CommFunc.WriteDWORD(data, self.FightPower)
         data = CommFunc.WriteDWORD(data, self.FightPowerEx)
         data = CommFunc.WriteWORD(data, self.BroadcastLen)
@@ -14873,6 +14138,7 @@
                                 JoinLVMin:%d,
                                 ServerID:%d,
                                 EmblemID:%d,
+                                EmblemWord:%s,
                                 FightPower:%d,
                                 FightPowerEx:%d,
                                 BroadcastLen:%d,
@@ -14891,6 +14157,7 @@
                                 self.JoinLVMin,
                                 self.ServerID,
                                 self.EmblemID,
+                                self.EmblemWord,
                                 self.FightPower,
                                 self.FightPowerEx,
                                 self.BroadcastLen,
@@ -16851,6 +16118,7 @@
     FamilyID = 0    #(DWORD FamilyID)
     FamilyName = ""    #(char FamilyName[33])
     FamilyEmblemID = 0    #(DWORD FamilyEmblemID)//仙盟徽章ID
+    FamilyEmblemWord = ""    #(char FamilyEmblemWord[3])//徽章文字
     PlusDataSize = 0    #(DWORD PlusDataSize)
     PlusData = ""    #(String PlusData)//扩展记录	
     data = None
@@ -16879,6 +16147,7 @@
         self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33)
         self.FamilyEmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FamilyEmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
         self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
         return _pos
@@ -16903,6 +16172,7 @@
         self.FamilyID = 0
         self.FamilyName = ""
         self.FamilyEmblemID = 0
+        self.FamilyEmblemWord = ""
         self.PlusDataSize = 0
         self.PlusData = ""
         return
@@ -16925,6 +16195,7 @@
         length += 4
         length += 33
         length += 4
+        length += 3
         length += 4
         length += len(self.PlusData)
 
@@ -16948,6 +16219,7 @@
         data = CommFunc.WriteDWORD(data, self.FamilyID)
         data = CommFunc.WriteString(data, 33, self.FamilyName)
         data = CommFunc.WriteDWORD(data, self.FamilyEmblemID)
+        data = CommFunc.WriteString(data, 3, self.FamilyEmblemWord)
         data = CommFunc.WriteDWORD(data, self.PlusDataSize)
         data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
         return data
@@ -16970,6 +16242,7 @@
                                 FamilyID:%d,
                                 FamilyName:%s,
                                 FamilyEmblemID:%d,
+                                FamilyEmblemWord:%s,
                                 PlusDataSize:%d,
                                 PlusData:%s
                                 '''\
@@ -16990,6 +16263,7 @@
                                 self.FamilyID,
                                 self.FamilyName,
                                 self.FamilyEmblemID,
+                                self.FamilyEmblemWord,
                                 self.PlusDataSize,
                                 self.PlusData
                                 )
@@ -30581,6 +29855,7 @@
 class  tagSCFirstCharge(Structure):
     _pack_ = 1
     _fields_ = [
+                  ("FirstID", c_ubyte),    #首充ID
                   ("ChargeTime", c_int),    #充值该首充的时间戳
                   ("AwardRecord", c_ushort),    #首充奖励领奖记录,按二进制位记录首充第X天是否已领取
                   ]
@@ -30595,6 +29870,7 @@
         return _pos + self.GetLength()
 
     def Clear(self):
+        self.FirstID = 0
         self.ChargeTime = 0
         self.AwardRecord = 0
         return
@@ -30607,10 +29883,12 @@
 
     def OutputString(self):
         DumpString = '''// AA 02 首充信息 //tagSCFirstChargeInfo:
+                                FirstID:%d,
                                 ChargeTime:%d,
                                 AwardRecord:%d
                                 '''\
                                 %(
+                                self.FirstID,
                                 self.ChargeTime,
                                 self.AwardRecord
                                 )
@@ -37380,80 +36658,6 @@
 
 
 #------------------------------------------------------
-# B1 13 在线奖励信息新 #tagMCOnlinePrizeNew
-
-class  tagMCOnlinePrizeNew(Structure):
-    Head = tagHead()
-    OnlineTime = 0    #(DWORD OnlineTime)//在线时间毫秒
-    Len = 0    #(BYTE Len)
-    PrizeInfo = list()    #(vector<DWORD> PrizeInfo)//领奖记录
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB1
-        self.Head.SubCmd = 0x13
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Len):
-            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
-            self.PrizeInfo.append(value)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB1
-        self.Head.SubCmd = 0x13
-        self.OnlineTime = 0
-        self.Len = 0
-        self.PrizeInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        length += 4 * self.Len
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.OnlineTime)
-        data = CommFunc.WriteBYTE(data, self.Len)
-        for i in range(self.Len):
-            data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                OnlineTime:%d,
-                                Len:%d,
-                                PrizeInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.OnlineTime,
-                                self.Len,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCOnlinePrizeNew=tagMCOnlinePrizeNew()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrizeNew.Head.Cmd,m_NAtagMCOnlinePrizeNew.Head.SubCmd))] = m_NAtagMCOnlinePrizeNew
-
-
-#------------------------------------------------------
 # B1 03 通知玩家死亡时间 #tagMCPlayerDeadTime
 
 class  tagMCPlayerDeadTime(Structure):
@@ -43426,10 +42630,11 @@
     Head = tagHead()
     ObjID = 0    #(DWORD ObjID)
     PMType = 0    #(BYTE PMType)// 物法类型 0或1-物理;2-法术
-    BattleType = 0    #(BYTE BattleType)// 战斗类型 0-常规;1-连击;2-反击;3-追击
+    BattleType = 0    #(BYTE BattleType)// 战斗类型 0-常规;1-连击;2-反击;3-追击;4-子技能;5-被动触发的
     CurHP = 0    #(DWORD CurHP)// 释放技能后剩余血量,吸血、反弹可能引起变化,求余亿部分
     CurHPEx = 0    #(DWORD CurHPEx)// 释放技能后剩余血量,吸血、反弹可能引起变化,整除亿部分
     SkillID = 0    #(DWORD SkillID)
+    RelatedSkillID = 0    #(DWORD RelatedSkillID)// 关联的技能ID,一般是主技能ID或由于某个技能释放引起的
     HurtCount = 0    #(BYTE HurtCount)//伤害数目
     HurtList = list()    #(vector<tagSCUseSkillHurt> HurtList)//size = HurtCount
     data = None
@@ -43449,6 +42654,7 @@
         self.CurHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.CurHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.SkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.RelatedSkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.HurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.HurtCount):
             temHurtList = tagSCUseSkillHurt()
@@ -43467,6 +42673,7 @@
         self.CurHP = 0
         self.CurHPEx = 0
         self.SkillID = 0
+        self.RelatedSkillID = 0
         self.HurtCount = 0
         self.HurtList = list()
         return
@@ -43477,6 +42684,7 @@
         length += 4
         length += 1
         length += 1
+        length += 4
         length += 4
         length += 4
         length += 4
@@ -43495,6 +42703,7 @@
         data = CommFunc.WriteDWORD(data, self.CurHP)
         data = CommFunc.WriteDWORD(data, self.CurHPEx)
         data = CommFunc.WriteDWORD(data, self.SkillID)
+        data = CommFunc.WriteDWORD(data, self.RelatedSkillID)
         data = CommFunc.WriteBYTE(data, self.HurtCount)
         for i in range(self.HurtCount):
             data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer())
@@ -43509,6 +42718,7 @@
                                 CurHP:%d,
                                 CurHPEx:%d,
                                 SkillID:%d,
+                                RelatedSkillID:%d,
                                 HurtCount:%d,
                                 HurtList:%s
                                 '''\
@@ -43520,6 +42730,7 @@
                                 self.CurHP,
                                 self.CurHPEx,
                                 self.SkillID,
+                                self.RelatedSkillID,
                                 self.HurtCount,
                                 "..."
                                 )

--
Gitblit v1.8.0