ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5117,129 +5117,6 @@
#------------------------------------------------------
#A3 04 玩家扫荡信息 #tagMCFBWipeOutData
class  tagMCFBData(Structure):
    _pack_ = 1
    _fields_ = [
                  ("FBID", c_int),    #fbId
                  ("LineIndex", c_ubyte),    #副本通关场次
                  ("WipeOutCnt", c_ubyte),    #扫荡次数
                  ("passGrade", 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.FBID = 0
        self.LineIndex = 0
        self.WipeOutCnt = 0
        self.passGrade = 0
        return
    def GetLength(self):
        return sizeof(tagMCFBData)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A3 04 玩家扫荡信息 //tagMCFBWipeOutData:
                                FBID:%d,
                                LineIndex:%d,
                                WipeOutCnt:%d,
                                passGrade:%d
                                '''\
                                %(
                                self.FBID,
                                self.LineIndex,
                                self.WipeOutCnt,
                                self.passGrade
                                )
        return DumpString
class  tagMCFBWipeOutData(Structure):
    Head = tagHead()
    WipeOutFBID = 0    #(DWORD WipeOutFBID)//当前扫荡的副本id
    FBDataCnt = 0    #(BYTE FBDataCnt)//
    FBDataList = list()    #(vector<tagMCFBData> FBDataList)//
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.WipeOutFBID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FBDataCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.FBDataCnt):
            temFBDataList = tagMCFBData()
            _pos = temFBDataList.ReadData(_lpData, _pos)
            self.FBDataList.append(temFBDataList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x04
        self.WipeOutFBID = 0
        self.FBDataCnt = 0
        self.FBDataList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        for i in range(self.FBDataCnt):
            length += self.FBDataList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.WipeOutFBID)
        data = CommFunc.WriteBYTE(data, self.FBDataCnt)
        for i in range(self.FBDataCnt):
            data = CommFunc.WriteString(data, self.FBDataList[i].GetLength(), self.FBDataList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                WipeOutFBID:%d,
                                FBDataCnt:%d,
                                FBDataList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.WipeOutFBID,
                                self.FBDataCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCFBWipeOutData=tagMCFBWipeOutData()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBWipeOutData.Head.Cmd,m_NAtagMCFBWipeOutData.Head.SubCmd))] = m_NAtagMCFBWipeOutData
#------------------------------------------------------
# A3 18 极品白拿信息 #tagMCFreeGoodsInfo
class  tagMCFreeGoods(Structure):
@@ -5824,20 +5701,22 @@
#------------------------------------------------------
# A3 12 通知骑宠觉醒信息 #tagMCHorsePetSkinData
# A3 03 坐骑阶级信息 #tagSCHorseClassInfo
class  tagMCHorsePetSkinInfo(Structure):
class  tagSCHorseClassInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Type", c_ubyte),    # 1-坐骑 2-灵宠
                  ("ID", c_int),    # 对应坐骑表灵宠表ID
                  ("Exp", c_int),    #经验
                  ("SkinLV", c_ubyte),    #觉醒等级
                  ("SkinIndex", c_ubyte),    #当前选择外观
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ClassLV", c_ubyte),    #当前阶级,从0开始
                  ("HorseLV", c_ushort),    #当前阶等级,从1开始
                  ("Exp", c_ushort),    #当前阶等级经验,每级从0开始
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -5846,111 +5725,51 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.Type = 0
        self.ID = 0
        self.Cmd = 0xA3
        self.SubCmd = 0x03
        self.ClassLV = 0
        self.HorseLV = 0
        self.Exp = 0
        self.SkinLV = 0
        self.SkinIndex = 0
        return
    def GetLength(self):
        return sizeof(tagMCHorsePetSkinInfo)
        return sizeof(tagSCHorseClassInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 12 通知骑宠觉醒信息 //tagMCHorsePetSkinData:
                                Type:%d,
                                ID:%d,
                                Exp:%d,
                                SkinLV:%d,
                                SkinIndex:%d
        DumpString = '''// A3 03 坐骑阶级信息 //tagSCHorseClassInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ClassLV:%d,
                                HorseLV:%d,
                                Exp:%d
                                '''\
                                %(
                                self.Type,
                                self.ID,
                                self.Exp,
                                self.SkinLV,
                                self.SkinIndex
                                self.Cmd,
                                self.SubCmd,
                                self.ClassLV,
                                self.HorseLV,
                                self.Exp
                                )
        return DumpString
class  tagMCHorsePetSkinData(Structure):
    Head = tagHead()
    Num = 0    #(BYTE Num)//个数
    InfoList = list()    #(vector<tagMCHorsePetSkinInfo> InfoList)// 数据列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x12
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Num):
            temInfoList = tagMCHorsePetSkinInfo()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x12
        self.Num = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Num):
            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.Num)
        for i in range(self.Num):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Num:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Num,
                                "..."
                                )
        return DumpString
m_NAtagMCHorsePetSkinData=tagMCHorsePetSkinData()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHorsePetSkinData.Head.Cmd,m_NAtagMCHorsePetSkinData.Head.SubCmd))] = m_NAtagMCHorsePetSkinData
m_NAtagSCHorseClassInfo=tagSCHorseClassInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCHorseClassInfo.Cmd,m_NAtagSCHorseClassInfo.SubCmd))] = m_NAtagSCHorseClassInfo
#------------------------------------------------------
# A3 10 通知坐骑幻化时效信息 #tagMCHorseSkinTimeInfoList
# A3 04 坐骑外观信息 #tagSCHorseSkinInfo
class  tagMCHorseSkinTimeInfo(Structure):
class  tagSCHorseSkin(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ID", c_int),    # 对应坐骑幻化表ID
                  ("InvalidTime", c_int),    # 失效时间戳
                  ("HorseSkinID", c_ubyte),    #坐骑外观ID
                  ("State", c_ubyte),    #是否已激活
                  ("EndTime", c_int),    #到期时间戳,0为永久
                  ("Star", c_ubyte),    #星级
                  ]
    def __init__(self):
@@ -5963,146 +5782,44 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.ID = 0
        self.InvalidTime = 0
        return
    def GetLength(self):
        return sizeof(tagMCHorseSkinTimeInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 10 通知坐骑幻化时效信息 //tagMCHorseSkinTimeInfoList:
                                ID:%d,
                                InvalidTime:%d
                                '''\
                                %(
                                self.ID,
                                self.InvalidTime
                                )
        return DumpString
class  tagMCHorseSkinTimeInfoList(Structure):
    Head = tagHead()
    TimeCnt = 0    #(BYTE TimeCnt)//个数
    TimeInfoList = list()    #(vector<tagMCHorseSkinTimeInfo> TimeInfoList)// 数据列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x10
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.TimeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TimeCnt):
            temTimeInfoList = tagMCHorseSkinTimeInfo()
            _pos = temTimeInfoList.ReadData(_lpData, _pos)
            self.TimeInfoList.append(temTimeInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x10
        self.TimeCnt = 0
        self.TimeInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.TimeCnt):
            length += self.TimeInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.TimeCnt)
        for i in range(self.TimeCnt):
            data = CommFunc.WriteString(data, self.TimeInfoList[i].GetLength(), self.TimeInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                TimeCnt:%d,
                                TimeInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.TimeCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCHorseSkinTimeInfoList=tagMCHorseSkinTimeInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHorseSkinTimeInfoList.Head.Cmd,m_NAtagMCHorseSkinTimeInfoList.Head.SubCmd))] = m_NAtagMCHorseSkinTimeInfoList
#------------------------------------------------------
# A3 CD 坐骑星级信息 #tagMCHorseStarInfo
class  tagMCHorseStar(Structure):
    _pack_ = 1
    _fields_ = [
                  ("HorseID", c_int),    # 坐骑表ID
                  ("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.HorseID = 0
        self.HorseSkinID = 0
        self.State = 0
        self.EndTime = 0
        self.Star = 0
        return
    def GetLength(self):
        return sizeof(tagMCHorseStar)
        return sizeof(tagSCHorseSkin)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 CD 坐骑星级信息 //tagMCHorseStarInfo:
                                HorseID:%d,
        DumpString = '''// A3 04 坐骑外观信息 //tagSCHorseSkinInfo:
                                HorseSkinID:%d,
                                State:%d,
                                EndTime:%d,
                                Star:%d
                                '''\
                                %(
                                self.HorseID,
                                self.HorseSkinID,
                                self.State,
                                self.EndTime,
                                self.Star
                                )
        return DumpString
class  tagMCHorseStarInfo(Structure):
class  tagSCHorseSkinInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    HorseStarList = list()    #(vector<tagMCHorseStar> HorseStarList)
    HorseSkinList = list()    #(vector<tagSCHorseSkin> HorseSkinList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xCD
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
@@ -6110,18 +5827,18 @@
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temHorseStarList = tagMCHorseStar()
            _pos = temHorseStarList.ReadData(_lpData, _pos)
            self.HorseStarList.append(temHorseStarList)
            temHorseSkinList = tagSCHorseSkin()
            _pos = temHorseSkinList.ReadData(_lpData, _pos)
            self.HorseSkinList.append(temHorseSkinList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xCD
        self.Head.SubCmd = 0x04
        self.Count = 0
        self.HorseStarList = list()
        self.HorseSkinList = list()
        return
    def GetLength(self):
@@ -6129,7 +5846,7 @@
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.HorseStarList[i].GetLength()
            length += self.HorseSkinList[i].GetLength()
        return length
@@ -6138,14 +5855,14 @@
        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.HorseStarList[i].GetLength(), self.HorseStarList[i].GetBuffer())
            data = CommFunc.WriteString(data, self.HorseSkinList[i].GetLength(), self.HorseSkinList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                HorseStarList:%s
                                HorseSkinList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -6155,8 +5872,8 @@
        return DumpString
m_NAtagMCHorseStarInfo=tagMCHorseStarInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHorseStarInfo.Head.Cmd,m_NAtagMCHorseStarInfo.Head.SubCmd))] = m_NAtagMCHorseStarInfo
m_NAtagSCHorseSkinInfo=tagSCHorseSkinInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCHorseSkinInfo.Head.Cmd,m_NAtagSCHorseSkinInfo.Head.SubCmd))] = m_NAtagSCHorseSkinInfo
#------------------------------------------------------
@@ -9241,121 +8958,6 @@
#------------------------------------------------------
#A3 01 坐骑培养信息 #tagTrainHorseData
class  tagTrainHorseData(Structure):
    Head = tagHead()
    LV = 0    #(BYTE LV)//等阶
    EatItemCount = 0    #(DWORD EatItemCount)//当前阶已吃丹个数
    SkinPlusState = 0    #(DWORD SkinPlusState)//幻化激活状态,按位存储是否激活,幻化编号ID对应位,废弃,使用 SkinPlusStateList
    TrainTypes = 0    #(BYTE TrainTypes)//培养类型数
    TrainLVList = list()    #(vector<DWORD> TrainLVList)//培养等阶列表,索引为培养类型减1
    TrainItemCountList = list()    #(vector<DWORD> TrainItemCountList)//培养当前阶已吃培养丹个数列表,索引为培养类型减1
    SkinPlusStateCount = 0    #(BYTE SkinPlusStateCount)//幻化激活状态值数
    SkinPlusStateList = list()    #(vector<DWORD> SkinPlusStateList)//幻化激活状态值列表,按位存储是否激活,幻化编号ID对应位
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.EatItemCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.SkinPlusState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TrainTypes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainLVList.append(value)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainItemCountList.append(value)
        self.SkinPlusStateCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.SkinPlusStateCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.SkinPlusStateList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x01
        self.LV = 0
        self.EatItemCount = 0
        self.SkinPlusState = 0
        self.TrainTypes = 0
        self.TrainLVList = list()
        self.TrainItemCountList = list()
        self.SkinPlusStateCount = 0
        self.SkinPlusStateList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4
        length += 4
        length += 1
        length += 4 * self.TrainTypes
        length += 4 * self.TrainTypes
        length += 1
        length += 4 * self.SkinPlusStateCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.LV)
        data = CommFunc.WriteDWORD(data, self.EatItemCount)
        data = CommFunc.WriteDWORD(data, self.SkinPlusState)
        data = CommFunc.WriteBYTE(data, self.TrainTypes)
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainLVList[i])
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainItemCountList[i])
        data = CommFunc.WriteBYTE(data, self.SkinPlusStateCount)
        for i in range(self.SkinPlusStateCount):
            data = CommFunc.WriteDWORD(data, self.SkinPlusStateList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                LV:%d,
                                EatItemCount:%d,
                                SkinPlusState:%d,
                                TrainTypes:%d,
                                TrainLVList:%s,
                                TrainItemCountList:%s,
                                SkinPlusStateCount:%d,
                                SkinPlusStateList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.LV,
                                self.EatItemCount,
                                self.SkinPlusState,
                                self.TrainTypes,
                                "...",
                                "...",
                                self.SkinPlusStateCount,
                                "..."
                                )
        return DumpString
m_NAtagTrainHorseData=tagTrainHorseData()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTrainHorseData.Head.Cmd,m_NAtagTrainHorseData.Head.SubCmd))] = m_NAtagTrainHorseData
#------------------------------------------------------
# A3 51 寻宝功能信息 #tagMCTreasureInfo
class  tagMCTreasureGridLimit(Structure):
@@ -9638,152 +9240,6 @@
m_NAtagMCTreasureResult=tagMCTreasureResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTreasureResult.Head.Cmd,m_NAtagMCTreasureResult.Head.SubCmd))] = m_NAtagMCTreasureResult
#------------------------------------------------------
#A3 05 扫荡奖励信息 #tagMCWipeOutPrize
class  tagMCPrizeItemInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ItemID", c_int),    #物品id
                  ("ItemCnt", c_ubyte),    #物品数量
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x05
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x05
        self.ItemID = 0
        self.ItemCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCPrizeItemInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A3 05 扫荡奖励信息 //tagMCWipeOutPrize:
                                Cmd:%s,
                                SubCmd:%s,
                                ItemID:%d,
                                ItemCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ItemID,
                                self.ItemCnt
                                )
        return DumpString
class  tagMCWipeOutPrize(Structure):
    Head = tagHead()
    FBID = 0    #(DWORD FBID)//副本id
    WipeOutCnt = 0    #(DWORD WipeOutCnt)//扫荡次数
    GiveExp = 0    #(DWORD GiveExp)//给予经验
    SilverCnt = 0    #(DWORD SilverCnt)//给予金币
    PrizeCnt = 0    #(BYTE PrizeCnt)//״̬
    PrizeInfo = list()    #(vector<tagMCPrizeItemInfo> PrizeInfo)//״̬
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.FBID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.WipeOutCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GiveExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.SilverCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.PrizeCnt):
            temPrizeInfo = tagMCPrizeItemInfo()
            _pos = temPrizeInfo.ReadData(_lpData, _pos)
            self.PrizeInfo.append(temPrizeInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x05
        self.FBID = 0
        self.WipeOutCnt = 0
        self.GiveExp = 0
        self.SilverCnt = 0
        self.PrizeCnt = 0
        self.PrizeInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 4
        length += 4
        length += 1
        for i in range(self.PrizeCnt):
            length += self.PrizeInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.FBID)
        data = CommFunc.WriteDWORD(data, self.WipeOutCnt)
        data = CommFunc.WriteDWORD(data, self.GiveExp)
        data = CommFunc.WriteDWORD(data, self.SilverCnt)
        data = CommFunc.WriteBYTE(data, self.PrizeCnt)
        for i in range(self.PrizeCnt):
            data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                FBID:%d,
                                WipeOutCnt:%d,
                                GiveExp:%d,
                                SilverCnt:%d,
                                PrizeCnt:%d,
                                PrizeInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.FBID,
                                self.WipeOutCnt,
                                self.GiveExp,
                                self.SilverCnt,
                                self.PrizeCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCWipeOutPrize=tagMCWipeOutPrize()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWipeOutPrize.Head.Cmd,m_NAtagMCWipeOutPrize.Head.SubCmd))] = m_NAtagMCWipeOutPrize
#------------------------------------------------------
@@ -14491,6 +13947,7 @@
    Face = 0    #(DWORD Face)
    FacePic = 0    #(DWORD FacePic)
    ModelMark = 0    #(DWORD ModelMark)//变形模型mark
    EquipShowSwitch = 0    #(DWORD EquipShowSwitch)//其他外观信息
    TitleID = 0    #(DWORD TitleID)//佩戴的称号
    ServerID = 0    #(DWORD ServerID)
    FightPower = 0    #(DWORD FightPower)
@@ -14520,6 +13977,7 @@
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ModelMark,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TitleID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -14545,6 +14003,7 @@
        self.Face = 0
        self.FacePic = 0
        self.ModelMark = 0
        self.EquipShowSwitch = 0
        self.TitleID = 0
        self.ServerID = 0
        self.FightPower = 0
@@ -14573,6 +14032,7 @@
        length += 4
        length += 4
        length += 4
        length += 4
        length += 33
        length += 4
        length += 3
@@ -14592,6 +14052,7 @@
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteDWORD(data, self.ModelMark)
        data = CommFunc.WriteDWORD(data, self.EquipShowSwitch)
        data = CommFunc.WriteDWORD(data, self.TitleID)
        data = CommFunc.WriteDWORD(data, self.ServerID)
        data = CommFunc.WriteDWORD(data, self.FightPower)
@@ -14615,6 +14076,7 @@
                                Face:%d,
                                FacePic:%d,
                                ModelMark:%d,
                                EquipShowSwitch:%d,
                                TitleID:%d,
                                ServerID:%d,
                                FightPower:%d,
@@ -14636,6 +14098,7 @@
                                self.Face,
                                self.FacePic,
                                self.ModelMark,
                                self.EquipShowSwitch,
                                self.TitleID,
                                self.ServerID,
                                self.FightPower,
@@ -38956,6 +38419,74 @@
#------------------------------------------------------
# B4 19 对象最新生命刷新 #tagSCObjHPRefresh
class  tagSCObjHPRefresh(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ObjID", c_int),
                  ("HP", c_int),    # 当前血量,求余20亿部分
                  ("HPEx", c_int),    # 当前血量,整除20亿部分
                  ("MaxHP", c_int),    # 最大血量,求余20亿部分
                  ("MaxHPEx", c_int),    # 最大血量,整除20亿部分
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB4
        self.SubCmd = 0x19
        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 = 0xB4
        self.SubCmd = 0x19
        self.ObjID = 0
        self.HP = 0
        self.HPEx = 0
        self.MaxHP = 0
        self.MaxHPEx = 0
        return
    def GetLength(self):
        return sizeof(tagSCObjHPRefresh)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B4 19 对象最新生命刷新 //tagSCObjHPRefresh:
                                Cmd:%s,
                                SubCmd:%s,
                                ObjID:%d,
                                HP:%d,
                                HPEx:%d,
                                MaxHP:%d,
                                MaxHPEx:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ObjID,
                                self.HP,
                                self.HPEx,
                                self.MaxHP,
                                self.MaxHPEx
                                )
        return DumpString
m_NAtagSCObjHPRefresh=tagSCObjHPRefresh()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCObjHPRefresh.Cmd,m_NAtagSCObjHPRefresh.SubCmd))] = m_NAtagSCObjHPRefresh
#------------------------------------------------------
# B4 18 对象属性刷新展示 #tagSCObjPropertyRefreshView
class  tagSCObjPropertyRefreshView(Structure):