hxp
2019-12-10 3efbd281d472248b62832b316ba45d823dabf913
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -5778,6 +5778,342 @@
#------------------------------------------------------
# B0 01 新增协助 #tagGCAssistInfoList
class  tagGCAssistInfo(Structure):
    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
    PlayerName = ""    #(char PlayerName[33])
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(BYTE RealmLV)//境界
    MapID = 0    #(DWORD MapID)
    LineID = 0    #(DWORD LineID)
    NPCID = 0    #(DWORD NPCID)
    ExDataLen = 0    #(WORD ExDataLen)
    ExData = ""    #(String ExData)//其他自定义数据
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
        return _pos
    def Clear(self):
        self.AssistGUID = ""
        self.PlayerName = ""
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.MapID = 0
        self.LineID = 0
        self.NPCID = 0
        self.ExDataLen = 0
        self.ExData = ""
        return
    def GetLength(self):
        length = 0
        length += 40
        length += 33
        length += 1
        length += 2
        length += 1
        length += 4
        length += 4
        length += 4
        length += 2
        length += len(self.ExData)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, 40, self.AssistGUID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteDWORD(data, self.LineID)
        data = CommFunc.WriteDWORD(data, self.NPCID)
        data = CommFunc.WriteWORD(data, self.ExDataLen)
        data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
        return data
    def OutputString(self):
        DumpString = '''
                                AssistGUID:%s,
                                PlayerName:%s,
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                MapID:%d,
                                LineID:%d,
                                NPCID:%d,
                                ExDataLen:%d,
                                ExData:%s
                                '''\
                                %(
                                self.AssistGUID,
                                self.PlayerName,
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.MapID,
                                self.LineID,
                                self.NPCID,
                                self.ExDataLen,
                                self.ExData
                                )
        return DumpString
class  tagGCAssistInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    AssistInfoList = list()    #(vector<tagGCAssistInfo> AssistInfoList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x01
        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):
            temAssistInfoList = tagGCAssistInfo()
            _pos = temAssistInfoList.ReadData(_lpData, _pos)
            self.AssistInfoList.append(temAssistInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x01
        self.Count = 0
        self.AssistInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.AssistInfoList[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.AssistInfoList[i].GetLength(), self.AssistInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                AssistInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCAssistInfoList=tagGCAssistInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistInfoList.Head.Cmd,m_NAtagGCAssistInfoList.Head.SubCmd))] = m_NAtagGCAssistInfoList
#------------------------------------------------------
# B0 03 正在进行中的协助 #tagGCAssistingInfo
class  tagGCAssistingInfo(Structure):
    Head = tagHead()
    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x03
        self.AssistGUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.AssistGUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                AssistGUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AssistGUID
                                )
        return DumpString
m_NAtagGCAssistingInfo=tagGCAssistingInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistingInfo.Head.Cmd,m_NAtagGCAssistingInfo.Head.SubCmd))] = m_NAtagGCAssistingInfo
#------------------------------------------------------
# B0 06 可接收协助感谢礼物个数 #tagGCCanGetAssistThanksGiftCount
class  tagGCCanGetAssistThanksGiftCount(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CanGetCount", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB0
        self.SubCmd = 0x06
        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 = 0xB0
        self.SubCmd = 0x06
        self.CanGetCount = 0
        return
    def GetLength(self):
        return sizeof(tagGCCanGetAssistThanksGiftCount)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B0 06 可接收协助感谢礼物个数 //tagGCCanGetAssistThanksGiftCount:
                                Cmd:%s,
                                SubCmd:%s,
                                CanGetCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CanGetCount
                                )
        return DumpString
m_NAtagGCCanGetAssistThanksGiftCount=tagGCCanGetAssistThanksGiftCount()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCanGetAssistThanksGiftCount.Cmd,m_NAtagGCCanGetAssistThanksGiftCount.SubCmd))] = m_NAtagGCCanGetAssistThanksGiftCount
#------------------------------------------------------
# B0 02 删除协助 #tagGCClearAssist
class  tagGCClearAssist(Structure):
    Head = tagHead()
    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x02
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x02
        self.AssistGUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.AssistGUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                AssistGUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AssistGUID
                                )
        return DumpString
m_NAtagGCClearAssist=tagGCClearAssist()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAssist.Head.Cmd,m_NAtagGCClearAssist.Head.SubCmd))] = m_NAtagGCClearAssist
#------------------------------------------------------
#B0 26 家族悬赏任务完成情况 #tagFamilyArrestOverStateInfo
class  tagFamilyArrestOverState(Structure):
@@ -5903,6 +6239,338 @@
m_NAtagFamilyArrestOverStateInfo=tagFamilyArrestOverStateInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyArrestOverStateInfo.Head.Cmd,m_NAtagFamilyArrestOverStateInfo.Head.SubCmd))] = m_NAtagFamilyArrestOverStateInfo
#------------------------------------------------------
# B0 05 接收协助感谢礼物预览 #tagGCGetAssistThanksGiftPreview
class  tagGCGetAssistThanksGiftPreview(Structure):
    Head = tagHead()
    GiftGUID = ""    #(char GiftGUID[40])//礼盒GUID
    ItemID = 0    #(DWORD ItemID)//礼盒ID
    PlayerID = 0    #(DWORD PlayerID)//发起玩家ID
    PlayerName = ""    #(char PlayerName[33])
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)
    RealmLV = 0    #(BYTE RealmLV)//境界
    MapID = 0    #(DWORD MapID)
    LineID = 0    #(DWORD LineID)
    NPCID = 0    #(DWORD NPCID)
    ExDataLen = 0    #(WORD ExDataLen)
    ExData = ""    #(String ExData)//其他自定义数据
    TimeStr = ""    #(char TimeStr[19])//协助时间yyyy-MM-dd hh:mm:ss
    ExtraAward = 0    #(BYTE ExtraAward)//是否有额外奖励
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GiftGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
        self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.ExtraAward,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x05
        self.GiftGUID = ""
        self.ItemID = 0
        self.PlayerID = 0
        self.PlayerName = ""
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.MapID = 0
        self.LineID = 0
        self.NPCID = 0
        self.ExDataLen = 0
        self.ExData = ""
        self.TimeStr = ""
        self.ExtraAward = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        length += 4
        length += 4
        length += 33
        length += 1
        length += 2
        length += 1
        length += 4
        length += 4
        length += 4
        length += 2
        length += len(self.ExData)
        length += 19
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GiftGUID)
        data = CommFunc.WriteDWORD(data, self.ItemID)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteDWORD(data, self.LineID)
        data = CommFunc.WriteDWORD(data, self.NPCID)
        data = CommFunc.WriteWORD(data, self.ExDataLen)
        data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
        data = CommFunc.WriteString(data, 19, self.TimeStr)
        data = CommFunc.WriteBYTE(data, self.ExtraAward)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GiftGUID:%s,
                                ItemID:%d,
                                PlayerID:%d,
                                PlayerName:%s,
                                Job:%d,
                                LV:%d,
                                RealmLV:%d,
                                MapID:%d,
                                LineID:%d,
                                NPCID:%d,
                                ExDataLen:%d,
                                ExData:%s,
                                TimeStr:%s,
                                ExtraAward:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GiftGUID,
                                self.ItemID,
                                self.PlayerID,
                                self.PlayerName,
                                self.Job,
                                self.LV,
                                self.RealmLV,
                                self.MapID,
                                self.LineID,
                                self.NPCID,
                                self.ExDataLen,
                                self.ExData,
                                self.TimeStr,
                                self.ExtraAward
                                )
        return DumpString
m_NAtagGCGetAssistThanksGiftPreview=tagGCGetAssistThanksGiftPreview()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGetAssistThanksGiftPreview.Head.Cmd,m_NAtagGCGetAssistThanksGiftPreview.Head.SubCmd))] = m_NAtagGCGetAssistThanksGiftPreview
#------------------------------------------------------
# B0 04 使用协助感谢礼盒预览 #tagGCUseAssistThanksGiftPreview
class  tagGCAssistPlayerInfo(Structure):
    PlayerID = 0    #(DWORD PlayerID)
    PlayerName = ""    #(char PlayerName[33])
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)
    RealmLV = 0    #(BYTE RealmLV)//境界
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.PlayerID = 0
        self.PlayerName = ""
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 33
        length += 1
        length += 2
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.RealmLV)
        return data
    def OutputString(self):
        DumpString = '''
                                PlayerID:%d,
                                PlayerName:%s,
                                Job:%d,
                                LV:%d,
                                RealmLV:%d
                                '''\
                                %(
                                self.PlayerID,
                                self.PlayerName,
                                self.Job,
                                self.LV,
                                self.RealmLV
                                )
        return DumpString
class  tagGCUseAssistThanksGiftPreview(Structure):
    Head = tagHead()
    GiftGUID = ""    #(char GiftGUID[40])//礼盒GUID
    ItemID = 0    #(DWORD ItemID)//礼盒ID
    MapID = 0    #(DWORD MapID)
    LineID = 0    #(DWORD LineID)
    NPCID = 0    #(DWORD NPCID)
    ExDataLen = 0    #(WORD ExDataLen)
    ExData = ""    #(String ExData)//其他自定义数据
    AssistPlayerCount = 0    #(BYTE AssistPlayerCount)
    AssistPlayerList = list()    #(vector<tagGCAssistPlayerInfo> AssistPlayerList)//协助玩家列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GiftGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        self.ItemID,_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)
        self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
        self.AssistPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AssistPlayerCount):
            temAssistPlayerList = tagGCAssistPlayerInfo()
            _pos = temAssistPlayerList.ReadData(_lpData, _pos)
            self.AssistPlayerList.append(temAssistPlayerList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB0
        self.Head.SubCmd = 0x04
        self.GiftGUID = ""
        self.ItemID = 0
        self.MapID = 0
        self.LineID = 0
        self.NPCID = 0
        self.ExDataLen = 0
        self.ExData = ""
        self.AssistPlayerCount = 0
        self.AssistPlayerList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 40
        length += 4
        length += 4
        length += 4
        length += 4
        length += 2
        length += len(self.ExData)
        length += 1
        for i in range(self.AssistPlayerCount):
            length += self.AssistPlayerList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 40, self.GiftGUID)
        data = CommFunc.WriteDWORD(data, self.ItemID)
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteDWORD(data, self.LineID)
        data = CommFunc.WriteDWORD(data, self.NPCID)
        data = CommFunc.WriteWORD(data, self.ExDataLen)
        data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
        data = CommFunc.WriteBYTE(data, self.AssistPlayerCount)
        for i in range(self.AssistPlayerCount):
            data = CommFunc.WriteString(data, self.AssistPlayerList[i].GetLength(), self.AssistPlayerList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GiftGUID:%s,
                                ItemID:%d,
                                MapID:%d,
                                LineID:%d,
                                NPCID:%d,
                                ExDataLen:%d,
                                ExData:%s,
                                AssistPlayerCount:%d,
                                AssistPlayerList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GiftGUID,
                                self.ItemID,
                                self.MapID,
                                self.LineID,
                                self.NPCID,
                                self.ExDataLen,
                                self.ExData,
                                self.AssistPlayerCount,
                                "..."
                                )
        return DumpString
m_NAtagGCUseAssistThanksGiftPreview=tagGCUseAssistThanksGiftPreview()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCUseAssistThanksGiftPreview.Head.Cmd,m_NAtagGCUseAssistThanksGiftPreview.Head.SubCmd))] = m_NAtagGCUseAssistThanksGiftPreview
#------------------------------------------------------
@@ -30826,6 +31494,226 @@
#------------------------------------------------------
# B4 15 Boss伤血排行榜信息 #tagMCBossHurtValueRankInfo
class  tagMCBossHurtValueAssist(Structure):
    PlayerID = 0    #(DWORD PlayerID)// 助战玩家ID
    PlayerName = ""    #(char PlayerName[33])
    HurtValue = 0    #(DWORD HurtValue)//不超过亿部分
    HurtValueEx = 0    #(DWORD HurtValueEx)//支持超过20亿
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.HurtValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HurtValueEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.PlayerID = 0
        self.PlayerName = ""
        self.HurtValue = 0
        self.HurtValueEx = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 33
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteDWORD(data, self.HurtValue)
        data = CommFunc.WriteDWORD(data, self.HurtValueEx)
        return data
    def OutputString(self):
        DumpString = '''
                                PlayerID:%d,
                                PlayerName:%s,
                                HurtValue:%d,
                                HurtValueEx:%d
                                '''\
                                %(
                                self.PlayerID,
                                self.PlayerName,
                                self.HurtValue,
                                self.HurtValueEx
                                )
        return DumpString
class  tagMCBossHurtValue(Structure):
    HurtType = 0    #(BYTE HurtType)// 伤血类型 1-玩家,2-队伍
    HurtID = 0    #(DWORD HurtID)//玩家时为玩家ID,队伍时为队伍ID
    HurtName = ""    #(char HurtName[33])// 名称
    HurtValue = 0    #(DWORD HurtValue)//不超过亿部分
    HurtValueEx = 0    #(DWORD HurtValueEx)//支持超过20亿
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.HurtType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.HurtID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HurtName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.HurtValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HurtValueEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.HurtType = 0
        self.HurtID = 0
        self.HurtName = ""
        self.HurtValue = 0
        self.HurtValueEx = 0
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 4
        length += 33
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.HurtType)
        data = CommFunc.WriteDWORD(data, self.HurtID)
        data = CommFunc.WriteString(data, 33, self.HurtName)
        data = CommFunc.WriteDWORD(data, self.HurtValue)
        data = CommFunc.WriteDWORD(data, self.HurtValueEx)
        return data
    def OutputString(self):
        DumpString = '''
                                HurtType:%d,
                                HurtID:%d,
                                HurtName:%s,
                                HurtValue:%d,
                                HurtValueEx:%d
                                '''\
                                %(
                                self.HurtType,
                                self.HurtID,
                                self.HurtName,
                                self.HurtValue,
                                self.HurtValueEx
                                )
        return DumpString
class  tagMCBossHurtValueRankInfo(Structure):
    Head = tagHead()
    ObjID = 0    #(DWORD ObjID)//NPC实例ID
    HurtCount = 0    #(BYTE HurtCount)//伤血数目
    HurtValueList = list()    #(vector<tagMCBossHurtValue> HurtValueList)
    AssistHurtCount = 0    #(BYTE AssistHurtCount)//助战伤血数目
    AssistHurtValueList = list()    #(vector<tagMCBossHurtValueAssist> AssistHurtValueList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB4
        self.Head.SubCmd = 0x15
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.HurtCount):
            temHurtValueList = tagMCBossHurtValue()
            _pos = temHurtValueList.ReadData(_lpData, _pos)
            self.HurtValueList.append(temHurtValueList)
        self.AssistHurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AssistHurtCount):
            temAssistHurtValueList = tagMCBossHurtValueAssist()
            _pos = temAssistHurtValueList.ReadData(_lpData, _pos)
            self.AssistHurtValueList.append(temAssistHurtValueList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB4
        self.Head.SubCmd = 0x15
        self.ObjID = 0
        self.HurtCount = 0
        self.HurtValueList = list()
        self.AssistHurtCount = 0
        self.AssistHurtValueList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        for i in range(self.HurtCount):
            length += self.HurtValueList[i].GetLength()
        length += 1
        for i in range(self.AssistHurtCount):
            length += self.AssistHurtValueList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.ObjID)
        data = CommFunc.WriteBYTE(data, self.HurtCount)
        for i in range(self.HurtCount):
            data = CommFunc.WriteString(data, self.HurtValueList[i].GetLength(), self.HurtValueList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.AssistHurtCount)
        for i in range(self.AssistHurtCount):
            data = CommFunc.WriteString(data, self.AssistHurtValueList[i].GetLength(), self.AssistHurtValueList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ObjID:%d,
                                HurtCount:%d,
                                HurtValueList:%s,
                                AssistHurtCount:%d,
                                AssistHurtValueList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ObjID,
                                self.HurtCount,
                                "...",
                                self.AssistHurtCount,
                                "..."
                                )
        return DumpString
m_NAtagMCBossHurtValueRankInfo=tagMCBossHurtValueRankInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossHurtValueRankInfo.Head.Cmd,m_NAtagMCBossHurtValueRankInfo.Head.SubCmd))] = m_NAtagMCBossHurtValueRankInfo
#------------------------------------------------------
# B4 12 删除恶意攻击玩家 #tagMCDelMaliciousAtkPlayer
class  tagMCDelMaliciousAtkPlayer(Structure):