hxp
2021-11-17 2520d0018ef346caf176f748dc1afd9360b6376c
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -7467,37 +7467,109 @@
#------------------------------------------------------
# B3 28 收到离婚信息 #tagGCMarryBreakInfo
# B3 19 魅力贡献榜 #tagGCCharmOfferBillboardDataList
class  tagGCMarryBreakInfo(Structure):
    Head = tagHead()
    PlayerID = 0    #(DWORD PlayerID)
class  tagGCCharmOfferBillboardData(Structure):
    OrderIndex = 0    #(DWORD OrderIndex)//名次索引,0代表第一名
    PlayerID = 0    #(DWORD PlayerID)// 玩家ID - 贡献者
    NameLen = 0    #(BYTE NameLen)
    PlayerName = ""    #(String PlayerName)
    CharmValue = 0    #(DWORD CharmValue)//贡献魅力值
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.OrderIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.CharmValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.OrderIndex = 0
        self.PlayerID = 0
        self.NameLen = 0
        self.PlayerName = ""
        self.CharmValue = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 4
        length += 1
        length += len(self.PlayerName)
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.OrderIndex)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
        data = CommFunc.WriteDWORD(data, self.CharmValue)
        return data
    def OutputString(self):
        DumpString = '''
                                OrderIndex:%d,
                                PlayerID:%d,
                                NameLen:%d,
                                PlayerName:%s,
                                CharmValue:%d
                                '''\
                                %(
                                self.OrderIndex,
                                self.PlayerID,
                                self.NameLen,
                                self.PlayerName,
                                self.CharmValue
                                )
        return DumpString
class  tagGCCharmOfferBillboardDataList(Structure):
    Head = tagHead()
    PlayerID = 0    #(DWORD PlayerID)// 魅力玩家ID
    QueryType = 0    #(BYTE QueryType)// 查看类型: 1-总榜,2-周榜,3-日榜
    DataCount = 0    #(BYTE DataCount)
    OfferBillboardDataList = list()    #(vector<tagGCCharmOfferBillboardData> OfferBillboardDataList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB3
        self.Head.SubCmd = 0x28
        self.Head.SubCmd = 0x19
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.QueryType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.DataCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.DataCount):
            temOfferBillboardDataList = tagGCCharmOfferBillboardData()
            _pos = temOfferBillboardDataList.ReadData(_lpData, _pos)
            self.OfferBillboardDataList.append(temOfferBillboardDataList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB3
        self.Head.SubCmd = 0x28
        self.Head.SubCmd = 0x19
        self.PlayerID = 0
        self.NameLen = 0
        self.PlayerName = ""
        self.QueryType = 0
        self.DataCount = 0
        self.OfferBillboardDataList = list()
        return
    def GetLength(self):
@@ -7505,7 +7577,9 @@
        length += self.Head.GetLength()
        length += 4
        length += 1
        length += len(self.PlayerName)
        length += 1
        for i in range(self.DataCount):
            length += self.OfferBillboardDataList[i].GetLength()
        return length
@@ -7513,28 +7587,145 @@
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
        data = CommFunc.WriteBYTE(data, self.QueryType)
        data = CommFunc.WriteBYTE(data, self.DataCount)
        for i in range(self.DataCount):
            data = CommFunc.WriteString(data, self.OfferBillboardDataList[i].GetLength(), self.OfferBillboardDataList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                PlayerID:%d,
                                NameLen:%d,
                                PlayerName:%s
                                QueryType:%d,
                                DataCount:%d,
                                OfferBillboardDataList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.PlayerID,
                                self.NameLen,
                                self.PlayerName
                                self.QueryType,
                                self.DataCount,
                                "..."
                                )
        return DumpString
m_NAtagGCMarryBreakInfo=tagGCMarryBreakInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMarryBreakInfo.Head.Cmd,m_NAtagGCMarryBreakInfo.Head.SubCmd))] = m_NAtagGCMarryBreakInfo
m_NAtagGCCharmOfferBillboardDataList=tagGCCharmOfferBillboardDataList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCharmOfferBillboardDataList.Head.Cmd,m_NAtagGCCharmOfferBillboardDataList.Head.SubCmd))] = m_NAtagGCCharmOfferBillboardDataList
#------------------------------------------------------
# B3 26 伴侣信息 #tagGCCoupleInfo
class  tagGCCoupleInfo(Structure):
    Head = tagHead()
    CoupleID = 0    #(DWORD CoupleID)// 伴侣玩家ID,一定是好友,社交信息从好友系统中获取
    NameLen = 0    #(BYTE NameLen)
    CoupleName = ""    #(String CoupleName)
    NewMarryTime = 0    #(DWORD NewMarryTime)// 新婚时间戳, 秒,计算结婚天数按该时间计算
    MarryTime = 0    #(DWORD MarryTime)// 最近一次提亲成功时间戳, 秒,计算可离婚时间按该时间计算
    BridePriceState = 0    #(DWORD BridePriceState)// 聘礼状态,按位存储已购买次数,如205代表ID1买了5次,ID2买了0次,ID3买了2次,最高9次
    BreakRequestID = 0    #(DWORD BreakRequestID)// 当前请求中的和离时间戳 - 请求方ID,0代表没人发起请求
    BreakRequestTime = 0    #(DWORD BreakRequestTime)// 当前请求中的和离时间戳, 秒,用于计算和离回应有效期
    PlayerBreakRequestTime = 0    #(DWORD PlayerBreakRequestTime)// 玩家最近一次和离请求时间戳, 秒,用于计算自身的请求和离CD
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB3
        self.Head.SubCmd = 0x26
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.CoupleID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.CoupleName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.NewMarryTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MarryTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BridePriceState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BreakRequestID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BreakRequestTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerBreakRequestTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB3
        self.Head.SubCmd = 0x26
        self.CoupleID = 0
        self.NameLen = 0
        self.CoupleName = ""
        self.NewMarryTime = 0
        self.MarryTime = 0
        self.BridePriceState = 0
        self.BreakRequestID = 0
        self.BreakRequestTime = 0
        self.PlayerBreakRequestTime = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        length += len(self.CoupleName)
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.CoupleID)
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.CoupleName)
        data = CommFunc.WriteDWORD(data, self.NewMarryTime)
        data = CommFunc.WriteDWORD(data, self.MarryTime)
        data = CommFunc.WriteDWORD(data, self.BridePriceState)
        data = CommFunc.WriteDWORD(data, self.BreakRequestID)
        data = CommFunc.WriteDWORD(data, self.BreakRequestTime)
        data = CommFunc.WriteDWORD(data, self.PlayerBreakRequestTime)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                CoupleID:%d,
                                NameLen:%d,
                                CoupleName:%s,
                                NewMarryTime:%d,
                                MarryTime:%d,
                                BridePriceState:%d,
                                BreakRequestID:%d,
                                BreakRequestTime:%d,
                                PlayerBreakRequestTime:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.CoupleID,
                                self.NameLen,
                                self.CoupleName,
                                self.NewMarryTime,
                                self.MarryTime,
                                self.BridePriceState,
                                self.BreakRequestID,
                                self.BreakRequestTime,
                                self.PlayerBreakRequestTime
                                )
        return DumpString
m_NAtagGCCoupleInfo=tagGCCoupleInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCoupleInfo.Head.Cmd,m_NAtagGCCoupleInfo.Head.SubCmd))] = m_NAtagGCCoupleInfo
#------------------------------------------------------
@@ -7763,14 +7954,145 @@
#------------------------------------------------------
# B3 20 送花成功通知 #tagGCSendFlowersOK
# B3 25 玩家魅力值信息 #tagGCPlayerCharmValueInfo
class  tagGCSendFlowersOK(Structure):
    Head = tagHead()
    NameLen = 0    #(BYTE NameLen)// 赠送方玩家名
    Name = ""    #(String Name)//size = SrcNameLen
class  tagGCPlayerCharmValueInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CharmValueTotal", c_int),    #当前魅力值 - 总
                  ("CharmValueWeek", c_int),    #当前魅力值 - 周
                  ("CharmValueDay", c_int),    #当前魅力值 - 日
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        self.SubCmd = 0x25
        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 = 0xB3
        self.SubCmd = 0x25
        self.CharmValueTotal = 0
        self.CharmValueWeek = 0
        self.CharmValueDay = 0
        return
    def GetLength(self):
        return sizeof(tagGCPlayerCharmValueInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 25 玩家魅力值信息 //tagGCPlayerCharmValueInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                CharmValueTotal:%d,
                                CharmValueWeek:%d,
                                CharmValueDay:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CharmValueTotal,
                                self.CharmValueWeek,
                                self.CharmValueDay
                                )
        return DumpString
m_NAtagGCPlayerCharmValueInfo=tagGCPlayerCharmValueInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPlayerCharmValueInfo.Cmd,m_NAtagGCPlayerCharmValueInfo.SubCmd))] = m_NAtagGCPlayerCharmValueInfo
#------------------------------------------------------
# B3 20 送礼物成功通知 #tagGCSendGiftsOKList
class  tagGCSendGiftsOK(Structure):
    NameLen = 0    #(BYTE NameLen)
    Name = ""    #(String Name)// 赠送方玩家名
    PlayerID = 0    #(DWORD PlayerID)// 赠送方玩家ID
    FlowerCount = 0    #(DWORD FlowerCount)// 赠送花数量
    GiftNum = 0    #(WORD GiftNum)// 赠送礼物编号
    GiftCount = 0    #(DWORD GiftCount)// 赠送礼物数量
    SendTime = 0    #(DWORD SendTime)// 赠送时间戳
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GiftNum,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.GiftCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.SendTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.NameLen = 0
        self.Name = ""
        self.PlayerID = 0
        self.GiftNum = 0
        self.GiftCount = 0
        self.SendTime = 0
        return
    def GetLength(self):
        length = 0
        length += 1
        length += len(self.Name)
        length += 4
        length += 2
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteWORD(data, self.GiftNum)
        data = CommFunc.WriteDWORD(data, self.GiftCount)
        data = CommFunc.WriteDWORD(data, self.SendTime)
        return data
    def OutputString(self):
        DumpString = '''
                                NameLen:%d,
                                Name:%s,
                                PlayerID:%d,
                                GiftNum:%d,
                                GiftCount:%d,
                                SendTime:%d
                                '''\
                                %(
                                self.NameLen,
                                self.Name,
                                self.PlayerID,
                                self.GiftNum,
                                self.GiftCount,
                                self.SendTime
                                )
        return DumpString
class  tagGCSendGiftsOKList(Structure):
    Head = tagHead()
    Count = 0    #(WORD Count)
    SendGiftsOKList = list()    #(vector<tagGCSendGiftsOK> SendGiftsOKList)
    data = None
    def __init__(self):
@@ -7782,10 +8104,11 @@
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FlowerCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.Count):
            temSendGiftsOKList = tagGCSendGiftsOK()
            _pos = temSendGiftsOKList.ReadData(_lpData, _pos)
            self.SendGiftsOKList.append(temSendGiftsOKList)
        return _pos
    def Clear(self):
@@ -7793,51 +8116,151 @@
        self.Head.Clear()
        self.Head.Cmd = 0xB3
        self.Head.SubCmd = 0x20
        self.NameLen = 0
        self.Name = ""
        self.PlayerID = 0
        self.FlowerCount = 0
        self.Count = 0
        self.SendGiftsOKList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.Name)
        length += 4
        length += 4
        length += 2
        for i in range(self.Count):
            length += self.SendGiftsOKList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteDWORD(data, self.FlowerCount)
        data = CommFunc.WriteWORD(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.SendGiftsOKList[i].GetLength(), self.SendGiftsOKList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                NameLen:%d,
                                Name:%s,
                                PlayerID:%d,
                                FlowerCount:%d
                                Count:%d,
                                SendGiftsOKList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.NameLen,
                                self.Name,
                                self.PlayerID,
                                self.FlowerCount
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCSendFlowersOK=tagGCSendFlowersOK()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSendFlowersOK.Head.Cmd,m_NAtagGCSendFlowersOK.Head.SubCmd))] = m_NAtagGCSendFlowersOK
m_NAtagGCSendGiftsOKList=tagGCSendGiftsOKList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSendGiftsOKList.Head.Cmd,m_NAtagGCSendGiftsOKList.Head.SubCmd))] = m_NAtagGCSendGiftsOKList
#------------------------------------------------------
# B3 14 社交人群伴侣信息 #tagGCSocialCouples
class  tagGCSocialCouple(Structure):
    _pack_ = 1
    _fields_ = [
                  ("PlayerID", c_int),
                  ("CoupleID", c_int),    #伴侣ID
                  ]
    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.PlayerID = 0
        self.CoupleID = 0
        return
    def GetLength(self):
        return sizeof(tagGCSocialCouple)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 14 社交人群伴侣信息 //tagGCSocialCouples:
                                PlayerID:%d,
                                CoupleID:%d
                                '''\
                                %(
                                self.PlayerID,
                                self.CoupleID
                                )
        return DumpString
class  tagGCSocialCouples(Structure):
    Head = tagHead()
    Count = 0    #(WORD Count)
    Player = list()    #(vector<tagGCSocialCouple> Player)//size = Count
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB3
        self.Head.SubCmd = 0x14
        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):
            temPlayer = tagGCSocialCouple()
            _pos = temPlayer.ReadData(_lpData, _pos)
            self.Player.append(temPlayer)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB3
        self.Head.SubCmd = 0x14
        self.Count = 0
        self.Player = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        for i in range(self.Count):
            length += self.Player[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.Player[i].GetLength(), self.Player[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                Player:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCSocialCouples=tagGCSocialCouples()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSocialCouples.Head.Cmd,m_NAtagGCSocialCouples.Head.SubCmd))] = m_NAtagGCSocialCouples
#------------------------------------------------------
@@ -8072,7 +8495,6 @@
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(WORD RealmLV)//境界
    OnlineType = 0    #(BYTE OnlineType)//0不在线 1在线 2脱机在线
    CoupleID = 0    #(DWORD CoupleID)//伴侣ID
    data = None
    def __init__(self):
@@ -8087,7 +8509,6 @@
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.CoupleID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -8097,7 +8518,6 @@
        self.LV = 0
        self.RealmLV = 0
        self.OnlineType = 0
        self.CoupleID = 0
        return
    def GetLength(self):
@@ -8108,7 +8528,6 @@
        length += 2
        length += 2
        length += 1
        length += 4
        return length
@@ -8120,7 +8539,6 @@
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteBYTE(data, self.OnlineType)
        data = CommFunc.WriteDWORD(data, self.CoupleID)
        return data
    def OutputString(self):
@@ -8130,8 +8548,7 @@
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                OnlineType:%d,
                                CoupleID:%d
                                OnlineType:%d
                                '''\
                                %(
                                self.PlayerID,
@@ -8139,8 +8556,7 @@
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.OnlineType,
                                self.CoupleID
                                self.OnlineType
                                )
        return DumpString
@@ -8218,8 +8634,7 @@
    _pack_ = 1
    _fields_ = [
                  ("PlayerID", c_int),    
                  ("SortValue", c_int),
                  ("Intimacy", c_int),    #亲密度 - 好友组才有值
                  ("SortValue", c_int),    # 亲密组时为亲密度
                  ]
    def __init__(self):
@@ -8234,7 +8649,6 @@
    def Clear(self):
        self.PlayerID = 0
        self.SortValue = 0
        self.Intimacy = 0
        return
    def GetLength(self):
@@ -8246,20 +8660,18 @@
    def OutputString(self):
        DumpString = '''//B3 08 通知玩家分组信息 //tagGCGroupPlayers:
                                PlayerID:%d,
                                SortValue:%d,
                                Intimacy:%d
                                SortValue:%d
                                '''\
                                %(
                                self.PlayerID,
                                self.SortValue,
                                self.Intimacy
                                self.SortValue
                                )
        return DumpString
class  tagGCGroupPlayers(Structure):
    Head = tagHead()
    GroupType = 0    #(BYTE GroupType)// 分组 1 最近联系人 2 好友 3 仇人 4 黑名单
    GroupType = 0    #(BYTE GroupType)// 分组 1 最近联系人 2 好友 3 仇人 4 黑名单 5亲密组
    Count = 0    #(WORD Count)
    Players = list()    #(vector<tagGCGroupPlayer> Players)//size = Count
    data = None
@@ -12854,126 +13266,6 @@
m_NAtagGCCrossRealmPKStartMatch=tagGCCrossRealmPKStartMatch()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKStartMatch.Cmd,m_NAtagGCCrossRealmPKStartMatch.SubCmd))] = m_NAtagGCCrossRealmPKStartMatch
#------------------------------------------------------
# B3 25 魅力值信息 #tagMCCharmInfo
class  tagMCCharmInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CharmTotal", c_int),    # 魅力值 - 总
                  ("CharmToday", c_int),    # 魅力值 - 今日
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        self.SubCmd = 0x25
        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 = 0xB3
        self.SubCmd = 0x25
        self.CharmTotal = 0
        self.CharmToday = 0
        return
    def GetLength(self):
        return sizeof(tagMCCharmInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 25 魅力值信息 //tagMCCharmInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                CharmTotal:%d,
                                CharmToday:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CharmTotal,
                                self.CharmToday
                                )
        return DumpString
m_NAtagMCCharmInfo=tagMCCharmInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCharmInfo.Cmd,m_NAtagMCCharmInfo.SubCmd))] = m_NAtagMCCharmInfo
#------------------------------------------------------
# B3 26 伴侣信息 #tagMCCoupleInfo
class  tagMCCoupleInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CoupleID", c_int),    # 伴侣玩家ID,一定是好友,社交信息从好友系统中获取
                  ("NewMarryTime", c_int),    # 新婚时间戳, 秒,计算结婚天数按该时间计算
                  ("MarryTime", c_int),    # 最近一次提亲成功时间戳, 秒,计算可离婚时间按该时间计算
                  ("BridePriceState", c_int),    # 聘礼状态,按二进制位存储是否已购买
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        self.SubCmd = 0x26
        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 = 0xB3
        self.SubCmd = 0x26
        self.CoupleID = 0
        self.NewMarryTime = 0
        self.MarryTime = 0
        self.BridePriceState = 0
        return
    def GetLength(self):
        return sizeof(tagMCCoupleInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 26 伴侣信息 //tagMCCoupleInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                CoupleID:%d,
                                NewMarryTime:%d,
                                MarryTime:%d,
                                BridePriceState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CoupleID,
                                self.NewMarryTime,
                                self.MarryTime,
                                self.BridePriceState
                                )
        return DumpString
m_NAtagMCCoupleInfo=tagMCCoupleInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCoupleInfo.Cmd,m_NAtagMCCoupleInfo.SubCmd))] = m_NAtagMCCoupleInfo
#------------------------------------------------------