ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -1179,6 +1179,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):
@@ -1196,6 +1198,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):
@@ -1209,6 +1213,8 @@
        self.LV = 0
        self.Job = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -1220,6 +1226,8 @@
        length += 2
        length += 1
        length += 2
        length += 4
        length += 4
        return length
@@ -1232,6 +1240,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):
@@ -1242,7 +1252,9 @@
                                Name:%s,
                                LV:%d,
                                Job:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -1251,7 +1263,9 @@
                                self.Name,
                                self.LV,
                                self.Job,
                                self.RealmLV
                                self.RealmLV,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -2409,6 +2423,7 @@
    WarRank = 0    #(BYTE WarRank)//联赛排名
    TotalFightPower = 0    #(DWORD TotalFightPower)//总战力,不足1个亿的部分
    TotalFightPowerEx = 0    #(DWORD TotalFightPowerEx)//总战力点,1点=1亿
    EmblemID = 0    #(BYTE EmblemID)//徽章ID
    data = None
    def __init__(self):
@@ -2431,6 +2446,7 @@
        self.WarRank,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.TotalFightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TotalFightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EmblemID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -2448,6 +2464,7 @@
        self.WarRank = 0
        self.TotalFightPower = 0
        self.TotalFightPowerEx = 0
        self.EmblemID = 0
        return
    def GetLength(self):
@@ -2466,6 +2483,7 @@
        length += 1
        length += 4
        length += 4
        length += 1
        return length
@@ -2485,6 +2503,7 @@
        data = CommFunc.WriteBYTE(data, self.WarRank)
        data = CommFunc.WriteDWORD(data, self.TotalFightPower)
        data = CommFunc.WriteDWORD(data, self.TotalFightPowerEx)
        data = CommFunc.WriteBYTE(data, self.EmblemID)
        return data
    def OutputString(self):
@@ -2502,7 +2521,8 @@
                                JoinAccept:%d,
                                WarRank:%d,
                                TotalFightPower:%d,
                                TotalFightPowerEx:%d
                                TotalFightPowerEx:%d,
                                EmblemID:%d
                                '''\
                                %(
                                self.FamilyIndex,
@@ -2518,7 +2538,8 @@
                                self.JoinAccept,
                                self.WarRank,
                                self.TotalFightPower,
                                self.TotalFightPowerEx
                                self.TotalFightPowerEx,
                                self.EmblemID
                                )
        return DumpString
@@ -5240,6 +5261,8 @@
    LV = 0    #(DWORD LV)//等级
    Job = 0    #(BYTE Job)
    RealmLV = 0    #(WORD RealmLV)//境界   
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -5253,6 +5276,8 @@
        self.LV,_pos = CommFunc.ReadDWORD(_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):
@@ -5261,6 +5286,8 @@
        self.LV = 0
        self.Job = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -5270,6 +5297,8 @@
        length += 4
        length += 1
        length += 2
        length += 4
        length += 4
        return length
@@ -5280,6 +5309,8 @@
        data = CommFunc.WriteDWORD(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):
@@ -5288,14 +5319,18 @@
                                Name:%s,
                                LV:%d,
                                Job:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.ID,
                                self.Name,
                                self.LV,
                                self.Job,
                                self.RealmLV
                                self.RealmLV,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -5375,6 +5410,8 @@
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(WORD RealmLV)//境界
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -5388,6 +5425,8 @@
        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.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -5396,6 +5435,8 @@
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -5405,6 +5446,8 @@
        length += 1
        length += 2
        length += 2
        length += 4
        length += 4
        return length
@@ -5415,6 +5458,8 @@
        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.FacePic)
        return data
    def OutputString(self):
@@ -5423,14 +5468,18 @@
                                PlayerName:%s,
                                Job:%d,
                                LV:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.PlayerID,
                                self.PlayerName,
                                self.Job,
                                self.LV,
                                self.RealmLV
                                self.RealmLV,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -5733,6 +5782,356 @@
m_NAtagUpdatePlayerNameResult=tagUpdatePlayerNameResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUpdatePlayerNameResult.Cmd,m_NAtagUpdatePlayerNameResult.SubCmd))] = m_NAtagUpdatePlayerNameResult
#------------------------------------------------------
# A9 27 仙宫新晋玩家信息 #tagGCXiangongNewPlayerInfo
class  tagGCXiangongNewPlayer(Structure):
    AddTime = 0    #(DWORD AddTime)// 新晋时间戳
    ServerID = 0    #(DWORD ServerID)
    PlayerID = 0    #(DWORD PlayerID)
    NameLen = 0    #(BYTE NameLen)
    Name = ""    #(String Name)// 玩家名,size = NameLen
    LV = 0    #(WORD LV)// 玩家等级
    Job = 0    #(BYTE Job)// 玩家职业
    RealmLV = 0    #(WORD RealmLV)// 玩家境界
    EquipShowSwitch = 0    #(DWORD EquipShowSwitch)
    EquipShowIDCount = 0    #(BYTE EquipShowIDCount)
    EquipShowID = list()    #(vector<DWORD> EquipShowID)
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.AddTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EquipShowIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.EquipShowIDCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.EquipShowID.append(value)
        return _pos
    def Clear(self):
        self.AddTime = 0
        self.ServerID = 0
        self.PlayerID = 0
        self.NameLen = 0
        self.Name = ""
        self.LV = 0
        self.Job = 0
        self.RealmLV = 0
        self.EquipShowSwitch = 0
        self.EquipShowIDCount = 0
        self.EquipShowID = list()
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 4
        length += 4
        length += 1
        length += len(self.Name)
        length += 2
        length += 1
        length += 2
        length += 4
        length += 1
        length += 4 * self.EquipShowIDCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.AddTime)
        data = CommFunc.WriteDWORD(data, self.ServerID)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.EquipShowSwitch)
        data = CommFunc.WriteBYTE(data, self.EquipShowIDCount)
        for i in range(self.EquipShowIDCount):
            data = CommFunc.WriteDWORD(data, self.EquipShowID[i])
        return data
    def OutputString(self):
        DumpString = '''
                                AddTime:%d,
                                ServerID:%d,
                                PlayerID:%d,
                                NameLen:%d,
                                Name:%s,
                                LV:%d,
                                Job:%d,
                                RealmLV:%d,
                                EquipShowSwitch:%d,
                                EquipShowIDCount:%d,
                                EquipShowID:%s
                                '''\
                                %(
                                self.AddTime,
                                self.ServerID,
                                self.PlayerID,
                                self.NameLen,
                                self.Name,
                                self.LV,
                                self.Job,
                                self.RealmLV,
                                self.EquipShowSwitch,
                                self.EquipShowIDCount,
                                "..."
                                )
        return DumpString
class  tagGCXiangongNewPlayerInfo(Structure):
    Head = tagHead()
    XiangongID = 0    #(WORD XiangongID)// 仙宫ID
    NewPlayerCount = 0    #(BYTE NewPlayerCount)
    NewPlayerList = list()    #(vector<tagGCXiangongNewPlayer> NewPlayerList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x27
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.XiangongID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.NewPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.NewPlayerCount):
            temNewPlayerList = tagGCXiangongNewPlayer()
            _pos = temNewPlayerList.ReadData(_lpData, _pos)
            self.NewPlayerList.append(temNewPlayerList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x27
        self.XiangongID = 0
        self.NewPlayerCount = 0
        self.NewPlayerList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += 1
        for i in range(self.NewPlayerCount):
            length += self.NewPlayerList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.XiangongID)
        data = CommFunc.WriteBYTE(data, self.NewPlayerCount)
        for i in range(self.NewPlayerCount):
            data = CommFunc.WriteString(data, self.NewPlayerList[i].GetLength(), self.NewPlayerList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                XiangongID:%d,
                                NewPlayerCount:%d,
                                NewPlayerList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.XiangongID,
                                self.NewPlayerCount,
                                "..."
                                )
        return DumpString
m_NAtagGCXiangongNewPlayerInfo=tagGCXiangongNewPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXiangongNewPlayerInfo.Head.Cmd,m_NAtagGCXiangongNewPlayerInfo.Head.SubCmd))] = m_NAtagGCXiangongNewPlayerInfo
#------------------------------------------------------
# A9 28 仙宫仙名录玩家信息 #tagGCXiangongRecPlayerInfo
class  tagGCXiangongRecPlayer(Structure):
    AddTime = 0    #(DWORD AddTime)// 新晋时间戳
    ServerID = 0    #(DWORD ServerID)
    PlayerID = 0    #(DWORD PlayerID)
    NameLen = 0    #(BYTE NameLen)
    Name = ""    #(String Name)// 玩家名,size = NameLen
    LV = 0    #(WORD LV)// 玩家等级
    Job = 0    #(BYTE Job)// 玩家职业
    RealmLV = 0    #(WORD RealmLV)// 玩家境界
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.AddTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.AddTime = 0
        self.ServerID = 0
        self.PlayerID = 0
        self.NameLen = 0
        self.Name = ""
        self.LV = 0
        self.Job = 0
        self.RealmLV = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 4
        length += 4
        length += 1
        length += len(self.Name)
        length += 2
        length += 1
        length += 2
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.AddTime)
        data = CommFunc.WriteDWORD(data, self.ServerID)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        return data
    def OutputString(self):
        DumpString = '''
                                AddTime:%d,
                                ServerID:%d,
                                PlayerID:%d,
                                NameLen:%d,
                                Name:%s,
                                LV:%d,
                                Job:%d,
                                RealmLV:%d
                                '''\
                                %(
                                self.AddTime,
                                self.ServerID,
                                self.PlayerID,
                                self.NameLen,
                                self.Name,
                                self.LV,
                                self.Job,
                                self.RealmLV
                                )
        return DumpString
class  tagGCXiangongRecPlayerInfo(Structure):
    Head = tagHead()
    XiangongID = 0    #(WORD XiangongID)// 仙宫ID
    RecPlayerCount = 0    #(BYTE RecPlayerCount)
    RecPlayerList = list()    #(vector<tagGCXiangongRecPlayer> RecPlayerList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x28
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.XiangongID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RecPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RecPlayerCount):
            temRecPlayerList = tagGCXiangongRecPlayer()
            _pos = temRecPlayerList.ReadData(_lpData, _pos)
            self.RecPlayerList.append(temRecPlayerList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x28
        self.XiangongID = 0
        self.RecPlayerCount = 0
        self.RecPlayerList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += 1
        for i in range(self.RecPlayerCount):
            length += self.RecPlayerList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.XiangongID)
        data = CommFunc.WriteBYTE(data, self.RecPlayerCount)
        for i in range(self.RecPlayerCount):
            data = CommFunc.WriteString(data, self.RecPlayerList[i].GetLength(), self.RecPlayerList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                XiangongID:%d,
                                RecPlayerCount:%d,
                                RecPlayerList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.XiangongID,
                                self.RecPlayerCount,
                                "..."
                                )
        return DumpString
m_NAtagGCXiangongRecPlayerInfo=tagGCXiangongRecPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXiangongRecPlayerInfo.Head.Cmd,m_NAtagGCXiangongRecPlayerInfo.Head.SubCmd))] = m_NAtagGCXiangongRecPlayerInfo
#------------------------------------------------------
@@ -8914,6 +9313,8 @@
    Name = ""    #(char Name[33])
    LV = 0    #(WORD LV)
    RealmLV = 0    #(WORD RealmLV)//境界等级
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -8929,6 +9330,8 @@
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.LV,_pos = CommFunc.ReadWORD(_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):
@@ -8940,6 +9343,8 @@
        self.Name = ""
        self.LV = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -8949,6 +9354,8 @@
        length += 33
        length += 2
        length += 2
        length += 4
        length += 4
        return length
@@ -8959,6 +9366,8 @@
        data = CommFunc.WriteString(data, 33, self.Name)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        return data
    def OutputString(self):
@@ -8967,14 +9376,18 @@
                                AskID:%d,
                                Name:%s,
                                LV:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AskID,
                                self.Name,
                                self.LV,
                                self.RealmLV
                                self.RealmLV,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -10104,6 +10517,8 @@
    OnlineType = 0    #(BYTE OnlineType)//在线状态, 0 不在线 1在线
    IsInTeam = 0    #(BYTE IsInTeam)//是否有队伍
    ServerGroupID = 0    #(DWORD ServerGroupID)//服务器组ID
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -10123,6 +10538,8 @@
        self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IsInTeam,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ServerGroupID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -10138,6 +10555,8 @@
        self.OnlineType = 0
        self.IsInTeam = 0
        self.ServerGroupID = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -10150,6 +10569,8 @@
        length += 2
        length += 1
        length += 1
        length += 4
        length += 4
        length += 4
        return length
@@ -10165,6 +10586,8 @@
        data = CommFunc.WriteBYTE(data, self.OnlineType)
        data = CommFunc.WriteBYTE(data, self.IsInTeam)
        data = CommFunc.WriteDWORD(data, self.ServerGroupID)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        return data
    def OutputString(self):
@@ -10177,7 +10600,9 @@
                                RealmLV:%d,
                                OnlineType:%d,
                                IsInTeam:%d,
                                ServerGroupID:%d
                                ServerGroupID:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -10188,7 +10613,9 @@
                                self.RealmLV,
                                self.OnlineType,
                                self.IsInTeam,
                                self.ServerGroupID
                                self.ServerGroupID,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -10263,6 +10690,8 @@
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(WORD RealmLV)//境界
    OnlineType = 0    #(BYTE OnlineType)//0不在线 1在线 2脱机在线
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -10277,6 +10706,8 @@
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -10286,6 +10717,8 @@
        self.LV = 0
        self.RealmLV = 0
        self.OnlineType = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -10296,6 +10729,8 @@
        length += 2
        length += 2
        length += 1
        length += 4
        length += 4
        return length
@@ -10307,6 +10742,8 @@
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteBYTE(data, self.OnlineType)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        return data
    def OutputString(self):
@@ -10316,7 +10753,9 @@
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                OnlineType:%d
                                OnlineType:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.PlayerID,
@@ -10324,7 +10763,9 @@
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.OnlineType
                                self.OnlineType,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -18689,6 +19130,9 @@
    ExAttr19 = 0    #(DWORD ExAttr19)//预留的扩展属性字段,用来存放项目特定的属性
    ExAttr20 = 0    #(DWORD ExAttr20)//预留的扩展属性字段,用来存放项目特定的属性
    HPEx = 0    #(DWORD HPEx)//当前血量 超过E的记录
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    RoleType = 0    #(DWORD RoleType)//角色类型(各项目可自定义含义,如种族,与职业区分)
    data = None
    def __init__(self):
@@ -18795,6 +19239,9 @@
        self.ExAttr19,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ExAttr20,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.RoleType,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -18897,6 +19344,9 @@
        self.ExAttr19 = 0
        self.ExAttr20 = 0
        self.HPEx = 0
        self.Face = 0
        self.FacePic = 0
        self.RoleType = 0
        return
    def GetLength(self):
@@ -18989,6 +19439,9 @@
        length += 4
        length += 4
        length += 15
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
@@ -19098,6 +19551,9 @@
        data = CommFunc.WriteDWORD(data, self.ExAttr19)
        data = CommFunc.WriteDWORD(data, self.ExAttr20)
        data = CommFunc.WriteDWORD(data, self.HPEx)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteDWORD(data, self.RoleType)
        return data
    def OutputString(self):
@@ -19197,7 +19653,10 @@
                                ExAttr18:%d,
                                ExAttr19:%d,
                                ExAttr20:%d,
                                HPEx:%d
                                HPEx:%d,
                                Face:%d,
                                FacePic:%d,
                                RoleType:%d
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -19295,7 +19754,10 @@
                                self.ExAttr18,
                                self.ExAttr19,
                                self.ExAttr20,
                                self.HPEx
                                self.HPEx,
                                self.Face,
                                self.FacePic,
                                self.RoleType
                                )
        return DumpString
@@ -30149,18 +30611,17 @@
#------------------------------------------------------
# A7 17 聊天气泡框状态 #tagMCChatBubbleBoxState
class  tagMCChatBubbleBoxState(Structure):
class  tagMCChatBubbleBox(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("BoxState", c_int),    # 按二进制位存储代表是否已开启,暂支持31位,以后有需要再加
                  ("BoxID", c_ubyte),    #气泡ID
                  ("State", c_ubyte),    #是否已激活
                  ("EndTime", c_int),    #到期时间戳,0为永久
                  ("Star", c_ubyte),    #星级
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA7
        self.SubCmd = 0x17
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -30169,33 +30630,98 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA7
        self.SubCmd = 0x17
        self.BoxState = 0
        self.BoxID = 0
        self.State = 0
        self.EndTime = 0
        self.Star = 0
        return
    def GetLength(self):
        return sizeof(tagMCChatBubbleBoxState)
        return sizeof(tagMCChatBubbleBox)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A7 17 聊天气泡框状态 //tagMCChatBubbleBoxState:
                                Cmd:%s,
                                SubCmd:%s,
                                BoxState:%d
                                BoxID:%d,
                                State:%d,
                                EndTime:%d,
                                Star:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.BoxState
                                self.BoxID,
                                self.State,
                                self.EndTime,
                                self.Star
                                )
        return DumpString
class  tagMCChatBubbleBoxState(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    BoxList = list()    #(vector<tagMCChatBubbleBox> BoxList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA7
        self.Head.SubCmd = 0x17
        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):
            temBoxList = tagMCChatBubbleBox()
            _pos = temBoxList.ReadData(_lpData, _pos)
            self.BoxList.append(temBoxList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA7
        self.Head.SubCmd = 0x17
        self.Count = 0
        self.BoxList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.BoxList[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.BoxList[i].GetLength(), self.BoxList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                BoxList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCChatBubbleBoxState=tagMCChatBubbleBoxState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChatBubbleBoxState.Cmd,m_NAtagMCChatBubbleBoxState.SubCmd))] = m_NAtagMCChatBubbleBoxState
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChatBubbleBoxState.Head.Cmd,m_NAtagMCChatBubbleBoxState.Head.SubCmd))] = m_NAtagMCChatBubbleBoxState
#------------------------------------------------------
@@ -30494,6 +31020,118 @@
m_NAtagMCDynamicBarrierState=tagMCDynamicBarrierState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDynamicBarrierState.Head.Cmd,m_NAtagMCDynamicBarrierState.Head.SubCmd))] = m_NAtagMCDynamicBarrierState
#------------------------------------------------------
# A7 21 表情包信息 #tagMCEmojiPackInfo
class  tagMCEmojiPack(Structure):
    _pack_ = 1
    _fields_ = [
                  ("PackID", c_ubyte),    #表情包ID
                  ("State", c_ubyte),    #是否已激活
                  ("EndTime", c_int),    #到期时间戳,0为永久
                  ]
    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.PackID = 0
        self.State = 0
        self.EndTime = 0
        return
    def GetLength(self):
        return sizeof(tagMCEmojiPack)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A7 21 表情包信息 //tagMCEmojiPackInfo:
                                PackID:%d,
                                State:%d,
                                EndTime:%d
                                '''\
                                %(
                                self.PackID,
                                self.State,
                                self.EndTime
                                )
        return DumpString
class  tagMCEmojiPackInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    EmojiPackList = list()    #(vector<tagMCEmojiPack> EmojiPackList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA7
        self.Head.SubCmd = 0x21
        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):
            temEmojiPackList = tagMCEmojiPack()
            _pos = temEmojiPackList.ReadData(_lpData, _pos)
            self.EmojiPackList.append(temEmojiPackList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA7
        self.Head.SubCmd = 0x21
        self.Count = 0
        self.EmojiPackList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.EmojiPackList[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.EmojiPackList[i].GetLength(), self.EmojiPackList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                EmojiPackList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCEmojiPackInfo=tagMCEmojiPackInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEmojiPackInfo.Head.Cmd,m_NAtagMCEmojiPackInfo.Head.SubCmd))] = m_NAtagMCEmojiPackInfo
#------------------------------------------------------
@@ -35886,6 +36524,7 @@
    JoinStartTime = ""    #(char JoinStartTime[5])// 参与开始时间点 mm:ss
    JoinEndTime = ""    #(char JoinEndTime[5])// 参与结束时间点 mm:ss
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    ShopType = 0    #(WORD ShopType)// 开放商店类型,可能为0不开放
    PersonalBillCount = 0    #(BYTE PersonalBillCount)
    PersonalBillboardInfoList = list()    #(vector<tagMCActGubaoBillard> PersonalBillboardInfoList)// 个人榜单奖励信息列表,如果没有代表本次活动没有该榜奖励
    data = None
@@ -35905,6 +36544,7 @@
        self.JoinStartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
        self.JoinEndTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ShopType,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.PersonalBillCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.PersonalBillCount):
            temPersonalBillboardInfoList = tagMCActGubaoBillard()
@@ -35923,6 +36563,7 @@
        self.JoinStartTime = ""
        self.JoinEndTime = ""
        self.LimitLV = 0
        self.ShopType = 0
        self.PersonalBillCount = 0
        self.PersonalBillboardInfoList = list()
        return
@@ -35935,6 +36576,7 @@
        length += 10
        length += 5
        length += 5
        length += 2
        length += 2
        length += 1
        for i in range(self.PersonalBillCount):
@@ -35951,6 +36593,7 @@
        data = CommFunc.WriteString(data, 5, self.JoinStartTime)
        data = CommFunc.WriteString(data, 5, self.JoinEndTime)
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteWORD(data, self.ShopType)
        data = CommFunc.WriteBYTE(data, self.PersonalBillCount)
        for i in range(self.PersonalBillCount):
            data = CommFunc.WriteString(data, self.PersonalBillboardInfoList[i].GetLength(), self.PersonalBillboardInfoList[i].GetBuffer())
@@ -35965,6 +36608,7 @@
                                JoinStartTime:%s,
                                JoinEndTime:%s,
                                LimitLV:%d,
                                ShopType:%d,
                                PersonalBillCount:%d,
                                PersonalBillboardInfoList:%s
                                '''\
@@ -35976,6 +36620,7 @@
                                self.JoinStartTime,
                                self.JoinEndTime,
                                self.LimitLV,
                                self.ShopType,
                                self.PersonalBillCount,
                                "..."
                                )
@@ -49333,6 +49978,238 @@
#------------------------------------------------------
# B1 17 头像信息 #tagMCFaceInfo
class  tagMCFace(Structure):
    _pack_ = 1
    _fields_ = [
                  ("FaceID", c_int),    #头像ID
                  ("State", c_ubyte),    #是否已激活
                  ("EndTime", c_int),    #到期时间戳,0为永久
                  ("Star", c_ubyte),    #星级
                  ]
    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.FaceID = 0
        self.State = 0
        self.EndTime = 0
        self.Star = 0
        return
    def GetLength(self):
        return sizeof(tagMCFace)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 17 头像信息 //tagMCFaceInfo:
                                FaceID:%d,
                                State:%d,
                                EndTime:%d,
                                Star:%d
                                '''\
                                %(
                                self.FaceID,
                                self.State,
                                self.EndTime,
                                self.Star
                                )
        return DumpString
class  tagMCFaceInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    FaceList = list()    #(vector<tagMCFace> FaceList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x17
        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):
            temFaceList = tagMCFace()
            _pos = temFaceList.ReadData(_lpData, _pos)
            self.FaceList.append(temFaceList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x17
        self.Count = 0
        self.FaceList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.FaceList[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.FaceList[i].GetLength(), self.FaceList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                FaceList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCFaceInfo=tagMCFaceInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFaceInfo.Head.Cmd,m_NAtagMCFaceInfo.Head.SubCmd))] = m_NAtagMCFaceInfo
#------------------------------------------------------
# B1 18 头像框信息 #tagMCFacePicInfo
class  tagMCFacePic(Structure):
    _pack_ = 1
    _fields_ = [
                  ("FacePicID", c_int),    #头像框ID
                  ("State", c_ubyte),    #是否已激活
                  ("EndTime", c_int),    #到期时间戳,0为永久
                  ("Star", c_ubyte),    #星级
                  ]
    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.FacePicID = 0
        self.State = 0
        self.EndTime = 0
        self.Star = 0
        return
    def GetLength(self):
        return sizeof(tagMCFacePic)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 18 头像框信息 //tagMCFacePicInfo:
                                FacePicID:%d,
                                State:%d,
                                EndTime:%d,
                                Star:%d
                                '''\
                                %(
                                self.FacePicID,
                                self.State,
                                self.EndTime,
                                self.Star
                                )
        return DumpString
class  tagMCFacePicInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    FacePicList = list()    #(vector<tagMCFacePic> FacePicList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x18
        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):
            temFacePicList = tagMCFacePic()
            _pos = temFacePicList.ReadData(_lpData, _pos)
            self.FacePicList.append(temFacePicList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x18
        self.Count = 0
        self.FacePicList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.FacePicList[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.FacePicList[i].GetLength(), self.FacePicList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                FacePicList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCFacePicInfo=tagMCFacePicInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFacePicInfo.Head.Cmd,m_NAtagMCFacePicInfo.Head.SubCmd))] = m_NAtagMCFacePicInfo
#------------------------------------------------------
# B1 11 功能系统特权信息 #tagMCFuncSysPrivilegeInfoList
class  tagMCFuncSysPrivilegeInfo(Structure):
@@ -50177,6 +51054,80 @@
#------------------------------------------------------
# B1 15 天道树信息 #tagMCTiandaoTreeInfo
class  tagMCTiandaoTreeInfo(Structure):
    Head = tagHead()
    Qiyun = 0    #(DWORD Qiyun)// 当前气运值
    AwardCount = 0    #(BYTE AwardCount)// 天道果领取记录值个数
    AwardStateList = list()    #(vector<DWORD> AwardStateList)// 天道果领取记录值列表,按奖励索引位二进制记录是否已领取,一个值可存31位,如值1存0~30,值2存31~61,...
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x15
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Qiyun,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.AwardStateList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x15
        self.Qiyun = 0
        self.AwardCount = 0
        self.AwardStateList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        length += 4 * self.AwardCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.Qiyun)
        data = CommFunc.WriteBYTE(data, self.AwardCount)
        for i in range(self.AwardCount):
            data = CommFunc.WriteDWORD(data, self.AwardStateList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Qiyun:%d,
                                AwardCount:%d,
                                AwardStateList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Qiyun,
                                self.AwardCount,
                                "..."
                                )
        return DumpString
m_NAtagMCTiandaoTreeInfo=tagMCTiandaoTreeInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTiandaoTreeInfo.Head.Cmd,m_NAtagMCTiandaoTreeInfo.Head.SubCmd))] = m_NAtagMCTiandaoTreeInfo
#------------------------------------------------------
# B1 12 培养功能境界信息 #tagMCTrainRealmLVInfo
class  tagMCTrainRealmLV(Structure):
@@ -50285,6 +51236,229 @@
#------------------------------------------------------
# B1 16 累计消耗货币信息 #tagMCUseMoneyTotalInfo
class  tagMCUseMoneyTotal(Structure):
    _pack_ = 1
    _fields_ = [
                  ("MoneyType", c_ubyte),    # 货币类型,仅同步需要记录的货币类型
                  ("UseTotal", 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.MoneyType = 0
        self.UseTotal = 0
        return
    def GetLength(self):
        return sizeof(tagMCUseMoneyTotal)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 16 累计消耗货币信息 //tagMCUseMoneyTotalInfo:
                                MoneyType:%d,
                                UseTotal:%d
                                '''\
                                %(
                                self.MoneyType,
                                self.UseTotal
                                )
        return DumpString
class  tagMCUseMoneyTotalInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    InfoList = list()    #(vector<tagMCUseMoneyTotal> InfoList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x16
        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):
            temInfoList = tagMCUseMoneyTotal()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x16
        self.Count = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        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.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,
                                Count:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCUseMoneyTotalInfo=tagMCUseMoneyTotalInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCUseMoneyTotalInfo.Head.Cmd,m_NAtagMCUseMoneyTotalInfo.Head.SubCmd))] = m_NAtagMCUseMoneyTotalInfo
#------------------------------------------------------
# B1 14 仙宫信息 #tagMCXiangongInfo
class  tagMCXiangong(Structure):
    _pack_ = 1
    _fields_ = [
                  ("XiangongID", c_ushort),    # 仙宫ID
                  ("LikeStateToday", c_ubyte),    # 今日是否已点赞
                  ]
    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.XiangongID = 0
        self.LikeStateToday = 0
        return
    def GetLength(self):
        return sizeof(tagMCXiangong)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 14 仙宫信息 //tagMCXiangongInfo:
                                XiangongID:%d,
                                LikeStateToday:%d
                                '''\
                                %(
                                self.XiangongID,
                                self.LikeStateToday
                                )
        return DumpString
class  tagMCXiangongInfo(Structure):
    Head = tagHead()
    LikeStateToday = 0    #(BYTE LikeStateToday)// 今日是否已点赞,指仙宫的外层点赞,非某个指定仙宫
    XiangongCount = 0    #(BYTE XiangongCount)
    XiangongList = list()    #(vector<tagMCXiangong> XiangongList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x14
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.LikeStateToday,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.XiangongCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.XiangongCount):
            temXiangongList = tagMCXiangong()
            _pos = temXiangongList.ReadData(_lpData, _pos)
            self.XiangongList.append(temXiangongList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x14
        self.LikeStateToday = 0
        self.XiangongCount = 0
        self.XiangongList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.XiangongCount):
            length += self.XiangongList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.LikeStateToday)
        data = CommFunc.WriteBYTE(data, self.XiangongCount)
        for i in range(self.XiangongCount):
            data = CommFunc.WriteString(data, self.XiangongList[i].GetLength(), self.XiangongList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                LikeStateToday:%d,
                                XiangongCount:%d,
                                XiangongList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.LikeStateToday,
                                self.XiangongCount,
                                "..."
                                )
        return DumpString
m_NAtagMCXiangongInfo=tagMCXiangongInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCXiangongInfo.Head.Cmd,m_NAtagMCXiangongInfo.Head.SubCmd))] = m_NAtagMCXiangongInfo
#------------------------------------------------------
# B1 20 战令信息 #tagMCZhanlingInfo
class  tagMCZhanling(Structure):