ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -1747,6 +1747,8 @@
    NameLen = 0    #(BYTE NameLen)
    Name = ""    #(String Name)//名字
    PlayeJob = 0    #(BYTE PlayeJob)//玩家职业
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    MoneyNum = 0    #(DWORD MoneyNum)//金钱数量
    data = None
@@ -1759,6 +1761,8 @@
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
@@ -1766,6 +1770,8 @@
        self.NameLen = 0
        self.Name = ""
        self.PlayeJob = 0
        self.Face = 0
        self.FacePic = 0
        self.MoneyNum = 0
        return
@@ -1775,6 +1781,8 @@
        length += len(self.Name)
        length += 1
        length += 4
        length += 4
        length += 4
        return length
@@ -1783,6 +1791,8 @@
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteBYTE(data, self.PlayeJob)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteDWORD(data, self.MoneyNum)
        return data
@@ -1791,12 +1801,16 @@
                                NameLen:%d,
                                Name:%s,
                                PlayeJob:%d,
                                Face:%d,
                                FacePic:%d,
                                MoneyNum:%d
                                '''\
                                %(
                                self.NameLen,
                                self.Name,
                                self.PlayeJob,
                                self.Face,
                                self.FacePic,
                                self.MoneyNum
                                )
        return DumpString
@@ -1885,6 +1899,8 @@
    Name = ""    #(String Name)//玩家名字
    Time = 0    #(DWORD Time)//时间
    PlayeJob = 0    #(BYTE PlayeJob)//玩家职业
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    MoneyType = 0    #(BYTE MoneyType)//金钱类型
    MoneyNum = 0    #(DWORD MoneyNum)//金钱数量
    GetWay = 0    #(BYTE GetWay)//获得途径
@@ -1907,6 +1923,8 @@
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GetWay,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -1924,6 +1942,8 @@
        self.Name = ""
        self.Time = 0
        self.PlayeJob = 0
        self.Face = 0
        self.FacePic = 0
        self.MoneyType = 0
        self.MoneyNum = 0
        self.GetWay = 0
@@ -1942,6 +1962,8 @@
        length += len(self.Name)
        length += 4
        length += 1
        length += 4
        length += 4
        length += 1
        length += 4
        length += 1
@@ -1961,6 +1983,8 @@
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteDWORD(data, self.Time)
        data = CommFunc.WriteBYTE(data, self.PlayeJob)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteBYTE(data, self.MoneyType)
        data = CommFunc.WriteDWORD(data, self.MoneyNum)
        data = CommFunc.WriteBYTE(data, self.GetWay)
@@ -1979,6 +2003,8 @@
                                Name:%s,
                                Time:%d,
                                PlayeJob:%d,
                                Face:%d,
                                FacePic:%d,
                                MoneyType:%d,
                                MoneyNum:%d,
                                GetWay:%d,
@@ -1995,6 +2021,8 @@
                                self.Name,
                                self.Time,
                                self.PlayeJob,
                                self.Face,
                                self.FacePic,
                                self.MoneyType,
                                self.MoneyNum,
                                self.GetWay,
@@ -7680,6 +7708,8 @@
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(BYTE RealmLV)//境界
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    MapID = 0    #(DWORD MapID)
    LineID = 0    #(DWORD LineID)
    NPCID = 0    #(DWORD NPCID)
@@ -7699,6 +7729,8 @@
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -7713,6 +7745,8 @@
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        self.MapID = 0
        self.LineID = 0
        self.NPCID = 0
@@ -7731,6 +7765,8 @@
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 2
        length += len(self.ExData)
@@ -7744,6 +7780,8 @@
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteDWORD(data, self.LineID)
        data = CommFunc.WriteDWORD(data, self.NPCID)
@@ -7759,6 +7797,8 @@
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d,
                                MapID:%d,
                                LineID:%d,
                                NPCID:%d,
@@ -7772,6 +7812,8 @@
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.Face,
                                self.FacePic,
                                self.MapID,
                                self.LineID,
                                self.NPCID,
@@ -8230,6 +8272,8 @@
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)
    RealmLV = 0    #(BYTE RealmLV)//境界
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    MapID = 0    #(DWORD MapID)
    LineID = 0    #(DWORD LineID)
    NPCID = 0    #(DWORD NPCID)
@@ -8254,6 +8298,8 @@
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -8274,6 +8320,8 @@
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        self.MapID = 0
        self.LineID = 0
        self.NPCID = 0
@@ -8295,6 +8343,8 @@
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 2
        length += len(self.ExData)
        length += 19
@@ -8311,6 +8361,8 @@
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteDWORD(data, self.LineID)
        data = CommFunc.WriteDWORD(data, self.NPCID)
@@ -8329,6 +8381,8 @@
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d,
                                MapID:%d,
                                LineID:%d,
                                NPCID:%d,
@@ -8345,6 +8399,8 @@
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.Face,
                                self.FacePic,
                                self.MapID,
                                self.LineID,
                                self.NPCID,
@@ -8929,6 +8985,8 @@
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)
    RealmLV = 0    #(BYTE RealmLV)//境界
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -8942,6 +9000,8 @@
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -8950,6 +9010,8 @@
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -8959,6 +9021,8 @@
        length += 1
        length += 2
        length += 1
        length += 4
        length += 4
        return length
@@ -8969,6 +9033,8 @@
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        return data
    def OutputString(self):
@@ -8977,14 +9043,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
@@ -14304,6 +14374,8 @@
    Job = 0    #(BYTE Job)// 玩家职业
    JobLevel = 0    #(BYTE JobLevel)// 玩家职业阶级
    RealmLV = 0    #(WORD RealmLV)// 玩家境界等级
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -14319,6 +14391,8 @@
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.JobLevel,_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):
@@ -14329,6 +14403,8 @@
        self.Job = 0
        self.JobLevel = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -14340,6 +14416,8 @@
        length += 1
        length += 1
        length += 2
        length += 4
        length += 4
        return length
@@ -14352,6 +14430,8 @@
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteBYTE(data, self.JobLevel)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        return data
    def OutputString(self):
@@ -14362,7 +14442,9 @@
                                LV:%d,
                                Job:%d,
                                JobLevel:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.PlayerID,
@@ -14371,7 +14453,9 @@
                                self.LV,
                                self.Job,
                                self.JobLevel,
                                self.RealmLV
                                self.RealmLV,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -14983,6 +15067,8 @@
    Job = 0    #(BYTE Job)// 玩家职业
    JobLevel = 0    #(BYTE JobLevel)// 玩家职业阶级
    RealmLV = 0    #(WORD RealmLV)// 玩家境界等级
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    PlayerState = 0    #(BYTE PlayerState)// 0: 离线 1:在线
    MapID = 0    #(DWORD MapID)// 地图ID
    LineID = 0    #(BYTE LineID)// 线路ID
@@ -15003,6 +15089,8 @@
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.LineID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -15018,6 +15106,8 @@
        self.Job = 0
        self.JobLevel = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        self.PlayerState = 0
        self.MapID = 0
        self.LineID = 0
@@ -15034,6 +15124,8 @@
        length += 1
        length += 1
        length += 2
        length += 4
        length += 4
        length += 1
        length += 4
        length += 1
@@ -15051,6 +15143,8 @@
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteBYTE(data, self.JobLevel)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteBYTE(data, self.PlayerState)
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteBYTE(data, self.LineID)
@@ -15067,6 +15161,8 @@
                                Job:%d,
                                JobLevel:%d,
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d,
                                PlayerState:%d,
                                MapID:%d,
                                LineID:%d
@@ -15081,6 +15177,8 @@
                                self.Job,
                                self.JobLevel,
                                self.RealmLV,
                                self.Face,
                                self.FacePic,
                                self.PlayerState,
                                self.MapID,
                                self.LineID
@@ -16056,6 +16154,8 @@
    FightPower = 0    #(DWORD FightPower)// 战力求余亿部分
    FightPowerEx = 0    #(DWORD FightPowerEx)// 战力整除亿部分
    RealmLV = 0    #(WORD RealmLV)
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -16072,6 +16172,8 @@
        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_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):
@@ -16083,6 +16185,8 @@
        self.FightPower = 0
        self.FightPowerEx = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -16095,6 +16199,8 @@
        length += 4
        length += 4
        length += 2
        length += 4
        length += 4
        return length
@@ -16108,6 +16214,8 @@
        data = CommFunc.WriteDWORD(data, self.FightPower)
        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        return data
    def OutputString(self):
@@ -16119,7 +16227,9 @@
                                LV:%d,
                                FightPower:%d,
                                FightPowerEx:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.PlayerID,
@@ -16129,7 +16239,9 @@
                                self.LV,
                                self.FightPower,
                                self.FightPowerEx,
                                self.RealmLV
                                self.RealmLV,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -17077,6 +17189,8 @@
    FightPower = 0    #(DWORD FightPower)// 战力求余亿部分
    FightPowerEx = 0    #(DWORD FightPowerEx)// 战力整除亿部分
    RealmLV = 0    #(WORD RealmLV)
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    data = None
    def __init__(self):
@@ -17093,6 +17207,8 @@
        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_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):
@@ -17104,6 +17220,8 @@
        self.FightPower = 0
        self.FightPowerEx = 0
        self.RealmLV = 0
        self.Face = 0
        self.FacePic = 0
        return
    def GetLength(self):
@@ -17116,6 +17234,8 @@
        length += 4
        length += 4
        length += 2
        length += 4
        length += 4
        return length
@@ -17129,6 +17249,8 @@
        data = CommFunc.WriteDWORD(data, self.FightPower)
        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        return data
    def OutputString(self):
@@ -17140,7 +17262,9 @@
                                LV:%d,
                                FightPower:%d,
                                FightPowerEx:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d,
                                FacePic:%d
                                '''\
                                %(
                                self.PlayerID,
@@ -17150,7 +17274,9 @@
                                self.LV,
                                self.FightPower,
                                self.FightPowerEx,
                                self.RealmLV
                                self.RealmLV,
                                self.Face,
                                self.FacePic
                                )
        return DumpString
@@ -30611,18 +30737,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):
@@ -30631,33 +30756,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
#------------------------------------------------------
@@ -30956,6 +31146,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
#------------------------------------------------------
@@ -49808,9 +50110,9 @@
    _pack_ = 1
    _fields_ = [
                  ("FaceID", c_int),    #头像ID
                  ("LightTime", c_int),    #点亮时间戳
                  ("ExpireTime", c_int),    #有效时间秒,0为配表固定时间,如果配表时间也为0即代表永久;到期时间=点亮时间+有效时间
                  ("Star", c_ubyte),    # 星级
                  ("State", c_ubyte),    #是否已激活
                  ("EndTime", c_int),    #到期时间戳,0为永久
                  ("Star", c_ubyte),    #星级
                  ]
    def __init__(self):
@@ -49824,8 +50126,8 @@
    def Clear(self):
        self.FaceID = 0
        self.LightTime = 0
        self.ExpireTime = 0
        self.State = 0
        self.EndTime = 0
        self.Star = 0
        return
@@ -49838,14 +50140,14 @@
    def OutputString(self):
        DumpString = '''// B1 17 头像信息 //tagMCFaceInfo:
                                FaceID:%d,
                                LightTime:%d,
                                ExpireTime:%d,
                                State:%d,
                                EndTime:%d,
                                Star:%d
                                '''\
                                %(
                                self.FaceID,
                                self.LightTime,
                                self.ExpireTime,
                                self.State,
                                self.EndTime,
                                self.Star
                                )
        return DumpString
@@ -49924,8 +50226,8 @@
    _pack_ = 1
    _fields_ = [
                  ("FacePicID", c_int),    #头像框ID
                  ("LightTime", c_int),    #点亮时间戳
                  ("ExpireTime", c_int),    #有效时间秒,0为配表固定时间,如果配表时间也为0即代表永久;到期时间=点亮时间+有效时间
                  ("State", c_ubyte),    #是否已激活
                  ("EndTime", c_int),    #到期时间戳,0为永久
                  ("Star", c_ubyte),    #星级
                  ]
@@ -49940,8 +50242,8 @@
    def Clear(self):
        self.FacePicID = 0
        self.LightTime = 0
        self.ExpireTime = 0
        self.State = 0
        self.EndTime = 0
        self.Star = 0
        return
@@ -49954,14 +50256,14 @@
    def OutputString(self):
        DumpString = '''// B1 18 头像框信息 //tagMCFacePicInfo:
                                FacePicID:%d,
                                LightTime:%d,
                                ExpireTime:%d,
                                State:%d,
                                EndTime:%d,
                                Star:%d
                                '''\
                                %(
                                self.FacePicID,
                                self.LightTime,
                                self.ExpireTime,
                                self.State,
                                self.EndTime,
                                self.Star
                                )
        return DumpString