hxp
6 天以前 0b314dd1d9f0c39e8d86de7e996c62836aa19aca
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -4207,194 +4207,6 @@
#------------------------------------------------------
# A3 15 日常活动次数通知 #tagMCDailyActionCnt
class  tagMCDailyActionInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ActionID", c_int),    # ID
                  ("DayFinishCnt", c_ushort),    # 今日已完成次数
                  ("DayBuyTimes", c_ubyte),    # 今日购买次数
                  ("DayItemTimes", c_ubyte),    # 今日物品增加次数
                  ("WeekFinishCnt", c_int),    # 本周已完成次数
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.ActionID = 0
        self.DayFinishCnt = 0
        self.DayBuyTimes = 0
        self.DayItemTimes = 0
        self.WeekFinishCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCDailyActionInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 15 日常活动次数通知 //tagMCDailyActionCnt:
                                ActionID:%d,
                                DayFinishCnt:%d,
                                DayBuyTimes:%d,
                                DayItemTimes:%d,
                                WeekFinishCnt:%d
                                '''\
                                %(
                                self.ActionID,
                                self.DayFinishCnt,
                                self.DayBuyTimes,
                                self.DayItemTimes,
                                self.WeekFinishCnt
                                )
        return DumpString
class  tagMCDailyActionCnt(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)// 个数
    ActionInfo = list()    #(vector<tagMCDailyActionInfo> ActionInfo)// 活动信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x15
        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):
            temActionInfo = tagMCDailyActionInfo()
            _pos = temActionInfo.ReadData(_lpData, _pos)
            self.ActionInfo.append(temActionInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x15
        self.Count = 0
        self.ActionInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.ActionInfo[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.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                ActionInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCDailyActionCnt=tagMCDailyActionCnt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyActionCnt.Head.Cmd,m_NAtagMCDailyActionCnt.Head.SubCmd))] = m_NAtagMCDailyActionCnt
#------------------------------------------------------
#A3 33 玩家每日活跃度 #tagMCDailyActivityInfoList
class  tagMCDailyActivityInfoList(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CurValue", c_int),    # 当前总活跃度
                  ("RealmPoint", c_int),    # 可领取修行点
                  ("StageIndex", c_ubyte),    # 当前阶段索引
                  ("AwardRecord", c_int),    # 领奖记录 按位存储
                  ("ExtraPoint", c_int),    # 多倍活动获得的额外修行点
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x33
        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 = 0x33
        self.CurValue = 0
        self.RealmPoint = 0
        self.StageIndex = 0
        self.AwardRecord = 0
        self.ExtraPoint = 0
        return
    def GetLength(self):
        return sizeof(tagMCDailyActivityInfoList)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A3 33 玩家每日活跃度 //tagMCDailyActivityInfoList:
                                Cmd:%s,
                                SubCmd:%s,
                                CurValue:%d,
                                RealmPoint:%d,
                                StageIndex:%d,
                                AwardRecord:%d,
                                ExtraPoint:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CurValue,
                                self.RealmPoint,
                                self.StageIndex,
                                self.AwardRecord,
                                self.ExtraPoint
                                )
        return DumpString
m_NAtagMCDailyActivityInfoList=tagMCDailyActivityInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyActivityInfoList.Cmd,m_NAtagMCDailyActivityInfoList.SubCmd))] = m_NAtagMCDailyActivityInfoList
#------------------------------------------------------
#A3 0D 玩家签到信息记录 # tagSCDaySignInfo
class  tagSCDaySignInfo(Structure):
@@ -5715,118 +5527,6 @@
#------------------------------------------------------
# A3 1D 神兵等级信息 #tagMCGodWeaponLVList
class  tagMCGodWeaponLVInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("WeaponType", c_ubyte),    #神兵类型
                  ("WeaponLV", c_ushort),    #神兵等级
                  ("WeaponExp", c_int),    #当前神兵经验
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.WeaponType = 0
        self.WeaponLV = 0
        self.WeaponExp = 0
        return
    def GetLength(self):
        return sizeof(tagMCGodWeaponLVInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 1D 神兵等级信息 //tagMCGodWeaponLVList:
                                WeaponType:%d,
                                WeaponLV:%d,
                                WeaponExp:%d
                                '''\
                                %(
                                self.WeaponType,
                                self.WeaponLV,
                                self.WeaponExp
                                )
        return DumpString
class  tagMCGodWeaponLVList(Structure):
    Head = tagHead()
    WeaponNum = 0    #(BYTE WeaponNum)//神器个数
    WeaponInfoList = list()    #(vector<tagMCGodWeaponLVInfo> WeaponInfoList)// 副本数据列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x1D
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.WeaponNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.WeaponNum):
            temWeaponInfoList = tagMCGodWeaponLVInfo()
            _pos = temWeaponInfoList.ReadData(_lpData, _pos)
            self.WeaponInfoList.append(temWeaponInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x1D
        self.WeaponNum = 0
        self.WeaponInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.WeaponNum):
            length += self.WeaponInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.WeaponNum)
        for i in range(self.WeaponNum):
            data = CommFunc.WriteString(data, self.WeaponInfoList[i].GetLength(), self.WeaponInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                WeaponNum:%d,
                                WeaponInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.WeaponNum,
                                "..."
                                )
        return DumpString
m_NAtagMCGodWeaponLVList=tagMCGodWeaponLVList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGodWeaponLVList.Head.Cmd,m_NAtagMCGodWeaponLVList.Head.SubCmd))] = m_NAtagMCGodWeaponLVList
#------------------------------------------------------
# A3 37 投资理财信息 #tagMCGoldInvestInfo
class  tagMCInvestReward(Structure):
@@ -5953,58 +5653,6 @@
m_NAtagMCGoldInvestInfo=tagMCGoldInvestInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGoldInvestInfo.Head.Cmd,m_NAtagMCGoldInvestInfo.Head.SubCmd))] = m_NAtagMCGoldInvestInfo
#------------------------------------------------------
# A3 B9 通知玩家今日抢红包次数 #tagMCGrabRedPacketCnt
class  tagMCGrabRedPacketCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Cnt", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0xB9
        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 = 0xB9
        self.Cnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCGrabRedPacketCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 B9 通知玩家今日抢红包次数 //tagMCGrabRedPacketCnt:
                                Cmd:%s,
                                SubCmd:%s,
                                Cnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Cnt
                                )
        return DumpString
m_NAtagMCGrabRedPacketCnt=tagMCGrabRedPacketCnt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGrabRedPacketCnt.Cmd,m_NAtagMCGrabRedPacketCnt.SubCmd))] = m_NAtagMCGrabRedPacketCnt
#------------------------------------------------------
@@ -7782,58 +7430,6 @@
#------------------------------------------------------
# A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
class  tagMCPackDownloadRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Record", c_ubyte),    #0-未领取 1-已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        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 = 0xA3
        self.SubCmd = 0x19
        self.Record = 0
        return
    def GetLength(self):
        return sizeof(tagMCPackDownloadRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 19 分包下载奖励记录 //tagMCPackDownloadRecord:
                                Cmd:%s,
                                SubCmd:%s,
                                Record:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Record
                                )
        return DumpString
m_NAtagMCPackDownloadRecord=tagMCPackDownloadRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPackDownloadRecord.Cmd,m_NAtagMCPackDownloadRecord.SubCmd))] = m_NAtagMCPackDownloadRecord
#------------------------------------------------------
#A3 0B 玩家等级奖励领取记录信息 #tagMCPlayerLVAwardGetRecord
class  tagMCPlayerLVAwardGetRecord(Structure):
@@ -8825,66 +8421,13 @@
#------------------------------------------------------
# A3 41  成就完成 #tagMCSuccessFinish
# A3 42 成就领奖记录列表 #tagSCSuccessAwardRecordList
class  tagMCSuccessFinish(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SuccID", c_int),    #成就id
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x41
        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 = 0x41
        self.SuccID = 0
        return
    def GetLength(self):
        return sizeof(tagMCSuccessFinish)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 41  成就完成 //tagMCSuccessFinish:
                                Cmd:%s,
                                SubCmd:%s,
                                SuccID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.SuccID
                                )
        return DumpString
m_NAtagMCSuccessFinish=tagMCSuccessFinish()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessFinish.Cmd,m_NAtagMCSuccessFinish.SubCmd))] = m_NAtagMCSuccessFinish
#------------------------------------------------------
#A3 42  成就完成领奖记录列表 #tagMCSuccessFinishAwardRecordList
class  tagMCSuccessFinishAwardRecord(Structure):
class  tagSCSuccessAwardRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("RecordIndex", c_ushort),    #第几个记录值 每个key存31个succid   0-30为0, 31-61为1..
                  ("Record", c_int),    #对应是否领取值
                  ("PassportRecord", c_int),    #通行证奖励是否领取值
                  ("Record", c_int),    #根据成就ID位判断是否已领取
                  ]
    def __init__(self):
@@ -8899,33 +8442,30 @@
    def Clear(self):
        self.RecordIndex = 0
        self.Record = 0
        self.PassportRecord = 0
        return
    def GetLength(self):
        return sizeof(tagMCSuccessFinishAwardRecord)
        return sizeof(tagSCSuccessAwardRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A3 42  成就完成领奖记录列表 //tagMCSuccessFinishAwardRecordList:
        DumpString = '''// A3 42 成就领奖记录列表 //tagSCSuccessAwardRecordList:
                                RecordIndex:%d,
                                Record:%d,
                                PassportRecord:%d
                                Record:%d
                                '''\
                                %(
                                self.RecordIndex,
                                self.Record,
                                self.PassportRecord
                                self.Record
                                )
        return DumpString
class  tagMCSuccessFinishAwardRecordList(Structure):
class  tagSCSuccessAwardRecordList(Structure):
    Head = tagHead()
    RecordCnt = 0    #(WORD RecordCnt)//记录个数
    RecordList = list()    #(vector<tagMCSuccessFinishAwardRecord> RecordList)//记录列表
    RecordList = list()    #(vector<tagSCSuccessAwardRecord> RecordList)//记录列表
    data = None
    def __init__(self):
@@ -8939,7 +8479,7 @@
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RecordCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.RecordCnt):
            temRecordList = tagMCSuccessFinishAwardRecord()
            temRecordList = tagSCSuccessAwardRecord()
            _pos = temRecordList.ReadData(_lpData, _pos)
            self.RecordList.append(temRecordList)
        return _pos
@@ -8984,18 +8524,18 @@
        return DumpString
m_NAtagMCSuccessFinishAwardRecordList=tagMCSuccessFinishAwardRecordList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessFinishAwardRecordList.Head.Cmd,m_NAtagMCSuccessFinishAwardRecordList.Head.SubCmd))] = m_NAtagMCSuccessFinishAwardRecordList
m_NAtagSCSuccessAwardRecordList=tagSCSuccessAwardRecordList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCSuccessAwardRecordList.Head.Cmd,m_NAtagSCSuccessAwardRecordList.Head.SubCmd))] = m_NAtagSCSuccessAwardRecordList
#------------------------------------------------------
# A3 40  成就信息列表 #tagMCSuccessInfoList
# A3 40 成就信息列表 #tagSCSuccessInfoList
class  tagMCSuccessInfo(Structure):
class  tagSCSuccessInfo(Structure):
    SuccType = 0    #(WORD SuccType)//成就类型
    Len = 0    #(WORD Len)//条件长度
    Condition = ""    #(String Condition)//成就条件
    CntValue = 0    #(DWORD CntValue)//当前完成进度值
    CLen = 0    #(BYTE CLen)
    Conds = list()    #(vector<DWORD> Conds)// 条件列表
    CurValue = 0    #(DWORD CurValue)// 进度值,相同任务类型条件的进度值共享
    data = None
    def __init__(self):
@@ -9005,23 +8545,25 @@
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.SuccType,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Condition,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
        self.CntValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.CLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.CLen):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.Conds.append(value)
        self.CurValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.SuccType = 0
        self.Len = 0
        self.Condition = ""
        self.CntValue = 0
        self.CLen = 0
        self.Conds = list()
        self.CurValue = 0
        return
    def GetLength(self):
        length = 0
        length += 2
        length += 2
        length += len(self.Condition)
        length += 1
        length += 4 * self.CLen
        length += 4
        return length
@@ -9029,31 +8571,32 @@
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteWORD(data, self.SuccType)
        data = CommFunc.WriteWORD(data, self.Len)
        data = CommFunc.WriteString(data, self.Len, self.Condition)
        data = CommFunc.WriteDWORD(data, self.CntValue)
        data = CommFunc.WriteBYTE(data, self.CLen)
        for i in range(self.CLen):
            data = CommFunc.WriteDWORD(data, self.Conds[i])
        data = CommFunc.WriteDWORD(data, self.CurValue)
        return data
    def OutputString(self):
        DumpString = '''
                                SuccType:%d,
                                Len:%d,
                                Condition:%s,
                                CntValue:%d
                                CLen:%d,
                                Conds:%s,
                                CurValue:%d
                                '''\
                                %(
                                self.SuccType,
                                self.Len,
                                self.Condition,
                                self.CntValue
                                self.CLen,
                                "...",
                                self.CurValue
                                )
        return DumpString
class  tagMCSuccessInfoList(Structure):
class  tagSCSuccessInfoList(Structure):
    Head = tagHead()
    count = 0    #(WORD count)//信息个数
    SuccessInfoList = list()    #(vector<tagMCSuccessInfo> SuccessInfoList)
    Count = 0    #(WORD Count)//信息个数
    SuccessInfoList = list()    #(vector<tagSCSuccessInfo> SuccessInfoList)
    data = None
    def __init__(self):
@@ -9065,9 +8608,9 @@
    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):
            temSuccessInfoList = tagMCSuccessInfo()
        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.Count):
            temSuccessInfoList = tagSCSuccessInfo()
            _pos = temSuccessInfoList.ReadData(_lpData, _pos)
            self.SuccessInfoList.append(temSuccessInfoList)
        return _pos
@@ -9077,7 +8620,7 @@
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x40
        self.count = 0
        self.Count = 0
        self.SuccessInfoList = list()
        return
@@ -9085,7 +8628,7 @@
        length = 0
        length += self.Head.GetLength()
        length += 2
        for i in range(self.count):
        for i in range(self.Count):
            length += self.SuccessInfoList[i].GetLength()
        return length
@@ -9093,79 +8636,27 @@
    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.WriteWORD(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.SuccessInfoList[i].GetLength(), self.SuccessInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                count:%d,
                                Count:%d,
                                SuccessInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.count,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCSuccessInfoList=tagMCSuccessInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessInfoList.Head.Cmd,m_NAtagMCSuccessInfoList.Head.SubCmd))] = m_NAtagMCSuccessInfoList
#------------------------------------------------------
# A3 43  成就积分信息 #tagMCSuccessScoreInfo
class  tagMCSuccessScoreInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ScoreAwardState", c_int),    #成就积分领奖记录,按奖励索引位记录是否领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x43
        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 = 0x43
        self.ScoreAwardState = 0
        return
    def GetLength(self):
        return sizeof(tagMCSuccessScoreInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 43  成就积分信息 //tagMCSuccessScoreInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ScoreAwardState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ScoreAwardState
                                )
        return DumpString
m_NAtagMCSuccessScoreInfo=tagMCSuccessScoreInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessScoreInfo.Cmd,m_NAtagMCSuccessScoreInfo.SubCmd))] = m_NAtagMCSuccessScoreInfo
m_NAtagSCSuccessInfoList=tagSCSuccessInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCSuccessInfoList.Head.Cmd,m_NAtagSCSuccessInfoList.Head.SubCmd))] = m_NAtagSCSuccessInfoList
#------------------------------------------------------
@@ -10976,576 +10467,6 @@
#------------------------------------------------------
# A4 05 家族红包抢的信息 #tagGCFamilyRedPacketGrabInfo
class  tagFGrabRedPacketInfo(Structure):
    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
    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.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
    def Clear(self):
        self.NameLen = 0
        self.Name = ""
        self.PlayeJob = 0
        self.Face = 0
        self.FacePic = 0
        self.MoneyNum = 0
        return
    def GetLength(self):
        length = 0
        length += 1
        length += len(self.Name)
        length += 1
        length += 4
        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.WriteBYTE(data, self.PlayeJob)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteDWORD(data, self.MoneyNum)
        return data
    def OutputString(self):
        DumpString = '''
                                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
class  tagGCFamilyRedPacketGrabInfo(Structure):
    Head = tagHead()
    RedPacketID = 0    #(DWORD RedPacketID)//红包唯一ID
    Count = 0    #(BYTE Count)//数量
    GrabInfo = list()    #(vector<tagFGrabRedPacketInfo> GrabInfo)//size = Count
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temGrabInfo = tagFGrabRedPacketInfo()
            _pos = temGrabInfo.ReadData(_lpData, _pos)
            self.GrabInfo.append(temGrabInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x05
        self.RedPacketID = 0
        self.Count = 0
        self.GrabInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        for i in range(self.Count):
            length += self.GrabInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.GrabInfo[i].GetLength(), self.GrabInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RedPacketID:%d,
                                Count:%d,
                                GrabInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RedPacketID,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyRedPacketGrabInfo=tagGCFamilyRedPacketGrabInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyRedPacketGrabInfo.Head.Cmd,m_NAtagGCFamilyRedPacketGrabInfo.Head.SubCmd))] = m_NAtagGCFamilyRedPacketGrabInfo
#------------------------------------------------------
# A4 04 家族红包总信息 #tagGCFamilyRedPacketInfo
class  tagFRedPacketInfo(Structure):
    RedPacketID = 0    #(DWORD RedPacketID)//红包唯一ID
    PlayerID = 0    #(DWORD PlayerID)//玩家ID
    NameLen = 0    #(BYTE NameLen)
    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)//获得途径
    PacketCnt = 0    #(BYTE PacketCnt)//可抢个数
    State = 0    #(BYTE State)//0未发,1未领取,2已领取,3全部领完
    WishLen = 0    #(BYTE WishLen)
    Wish = ""    #(String Wish)//祝福语
    IsAnonymous = 0    #(BYTE IsAnonymous)//是否匿名
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.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)
        self.PacketCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.WishLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Wish,_pos = CommFunc.ReadString(_lpData, _pos,self.WishLen)
        self.IsAnonymous,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.RedPacketID = 0
        self.PlayerID = 0
        self.NameLen = 0
        self.Name = ""
        self.Time = 0
        self.PlayeJob = 0
        self.Face = 0
        self.FacePic = 0
        self.MoneyType = 0
        self.MoneyNum = 0
        self.GetWay = 0
        self.PacketCnt = 0
        self.State = 0
        self.WishLen = 0
        self.Wish = ""
        self.IsAnonymous = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 4
        length += 1
        length += len(self.Name)
        length += 4
        length += 1
        length += 4
        length += 4
        length += 1
        length += 4
        length += 1
        length += 1
        length += 1
        length += 1
        length += len(self.Wish)
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.NameLen)
        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)
        data = CommFunc.WriteBYTE(data, self.PacketCnt)
        data = CommFunc.WriteBYTE(data, self.State)
        data = CommFunc.WriteBYTE(data, self.WishLen)
        data = CommFunc.WriteString(data, self.WishLen, self.Wish)
        data = CommFunc.WriteBYTE(data, self.IsAnonymous)
        return data
    def OutputString(self):
        DumpString = '''
                                RedPacketID:%d,
                                PlayerID:%d,
                                NameLen:%d,
                                Name:%s,
                                Time:%d,
                                PlayeJob:%d,
                                Face:%d,
                                FacePic:%d,
                                MoneyType:%d,
                                MoneyNum:%d,
                                GetWay:%d,
                                PacketCnt:%d,
                                State:%d,
                                WishLen:%d,
                                Wish:%s,
                                IsAnonymous:%d
                                '''\
                                %(
                                self.RedPacketID,
                                self.PlayerID,
                                self.NameLen,
                                self.Name,
                                self.Time,
                                self.PlayeJob,
                                self.Face,
                                self.FacePic,
                                self.MoneyType,
                                self.MoneyNum,
                                self.GetWay,
                                self.PacketCnt,
                                self.State,
                                self.WishLen,
                                self.Wish,
                                self.IsAnonymous
                                )
        return DumpString
class  tagGCFamilyRedPacketInfo(Structure):
    Head = tagHead()
    IsAll = 0    #(BYTE IsAll)//是否全部红包
    Count = 0    #(BYTE Count)//红包数量
    RedPacketInfo = list()    #(vector<tagFRedPacketInfo> RedPacketInfo)//size = Count
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temRedPacketInfo = tagFRedPacketInfo()
            _pos = temRedPacketInfo.ReadData(_lpData, _pos)
            self.RedPacketInfo.append(temRedPacketInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x04
        self.IsAll = 0
        self.Count = 0
        self.RedPacketInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.Count):
            length += self.RedPacketInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.IsAll)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.RedPacketInfo[i].GetLength(), self.RedPacketInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                IsAll:%d,
                                Count:%d,
                                RedPacketInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.IsAll,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyRedPacketInfo=tagGCFamilyRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyRedPacketInfo.Head.Cmd,m_NAtagGCFamilyRedPacketInfo.Head.SubCmd))] = m_NAtagGCFamilyRedPacketInfo
#------------------------------------------------------
# A4 06 家族仓库物品信息 #tagGCFamilyStoreItemInfo
class  tagGCFamilyStoreItem(Structure):
    Index = 0    #(BYTE Index)// 仓库格子索引,从0开始代表第一格
    ItemID = 0    #(DWORD ItemID)// 物品ID
    ItemDataLen = 0    #(WORD ItemDataLen)
    ItemData = ""    #(String ItemData)//size = ItemDataLen
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.Index,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataLen)
        return _pos
    def Clear(self):
        self.Index = 0
        self.ItemID = 0
        self.ItemDataLen = 0
        self.ItemData = ""
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 4
        length += 2
        length += len(self.ItemData)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.Index)
        data = CommFunc.WriteDWORD(data, self.ItemID)
        data = CommFunc.WriteWORD(data, self.ItemDataLen)
        data = CommFunc.WriteString(data, self.ItemDataLen, self.ItemData)
        return data
    def OutputString(self):
        DumpString = '''
                                Index:%d,
                                ItemID:%d,
                                ItemDataLen:%d,
                                ItemData:%s
                                '''\
                                %(
                                self.Index,
                                self.ItemID,
                                self.ItemDataLen,
                                self.ItemData
                                )
        return DumpString
class  tagGCFamilyStoreItemInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//数量
    StoreItemList = list()    #(vector<tagGCFamilyStoreItem> StoreItemList)//size = Count
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x06
        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):
            temStoreItemList = tagGCFamilyStoreItem()
            _pos = temStoreItemList.ReadData(_lpData, _pos)
            self.StoreItemList.append(temStoreItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x06
        self.Count = 0
        self.StoreItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.StoreItemList[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.StoreItemList[i].GetLength(), self.StoreItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                StoreItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyStoreItemInfo=tagGCFamilyStoreItemInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyStoreItemInfo.Head.Cmd,m_NAtagGCFamilyStoreItemInfo.Head.SubCmd))] = m_NAtagGCFamilyStoreItemInfo
#------------------------------------------------------
# A4 07 家族仓库物品清除 #tagGCFamilyStoreItemClear
class  tagGCFamilyStoreItemClear(Structure):
    Head = tagHead()
    ClearType = 0    #(BYTE ClearType)//0-指定格子清除; 1-所有物品清除
    IndexCount = 0    #(BYTE IndexCount)
    IndexList = list()    #(vector<BYTE> IndexList)//清除的格子索引, 仅指定格子清除时有效,从0开始代表第一格
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ClearType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.IndexCount):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.IndexList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x07
        self.ClearType = 0
        self.IndexCount = 0
        self.IndexList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 1 * self.IndexCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ClearType)
        data = CommFunc.WriteBYTE(data, self.IndexCount)
        for i in range(self.IndexCount):
            data = CommFunc.WriteBYTE(data, self.IndexList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ClearType:%d,
                                IndexCount:%d,
                                IndexList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ClearType,
                                self.IndexCount,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyStoreItemClear=tagGCFamilyStoreItemClear()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyStoreItemClear.Head.Cmd,m_NAtagGCFamilyStoreItemClear.Head.SubCmd))] = m_NAtagGCFamilyStoreItemClear
#------------------------------------------------------
# A4 09 家族守卫人皇信息通知 #tagGCFamilySWRHInfo
class  tagGCFamilySWRHInfo(Structure):
@@ -12279,194 +11200,6 @@
#------------------------------------------------------
# A5 35 王者仙盟每日俸禄奖励状态 #tagMCChampionFamilyDailyReward
class  tagMCChampionFamilyDailyReward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GetState", c_ubyte),    #是否已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x35
        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 = 0xA5
        self.SubCmd = 0x35
        self.GetState = 0
        return
    def GetLength(self):
        return sizeof(tagMCChampionFamilyDailyReward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 35 王者仙盟每日俸禄奖励状态 //tagMCChampionFamilyDailyReward:
                                Cmd:%s,
                                SubCmd:%s,
                                GetState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GetState
                                )
        return DumpString
m_NAtagMCChampionFamilyDailyReward=tagMCChampionFamilyDailyReward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChampionFamilyDailyReward.Cmd,m_NAtagMCChampionFamilyDailyReward.SubCmd))] = m_NAtagMCChampionFamilyDailyReward
#------------------------------------------------------
# A5 10 传功奖励结果 #tagMCChuangongResult
class  tagMCChuangongItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("ItemCount", c_ushort),
                  ]
    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.ItemID = 0
        self.ItemCount = 0
        return
    def GetLength(self):
        return sizeof(tagMCChuangongItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 10 传功奖励结果 //tagMCChuangongResult:
                                ItemID:%d,
                                ItemCount:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount
                                )
        return DumpString
class  tagMCChuangongResult(Structure):
    Head = tagHead()
    FromLV = 0    #(WORD FromLV)// 传功前等级
    ToLV = 0    #(WORD ToLV)// 传功后等级
    Exp = 0    #(DWORD Exp)// 获得经验求余亿部分
    ExpPoint = 0    #(DWORD ExpPoint)// 获得经验整除亿部分
    ItemCount = 0    #(BYTE ItemCount)
    AwardItemList = list()    #(vector<tagMCChuangongItem> AwardItemList)// 奖励物品列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x10
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.FromLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ToLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Exp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ItemCount):
            temAwardItemList = tagMCChuangongItem()
            _pos = temAwardItemList.ReadData(_lpData, _pos)
            self.AwardItemList.append(temAwardItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x10
        self.FromLV = 0
        self.ToLV = 0
        self.Exp = 0
        self.ExpPoint = 0
        self.ItemCount = 0
        self.AwardItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += 2
        length += 4
        length += 4
        length += 1
        for i in range(self.ItemCount):
            length += self.AwardItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.FromLV)
        data = CommFunc.WriteWORD(data, self.ToLV)
        data = CommFunc.WriteDWORD(data, self.Exp)
        data = CommFunc.WriteDWORD(data, self.ExpPoint)
        data = CommFunc.WriteBYTE(data, self.ItemCount)
        for i in range(self.ItemCount):
            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                FromLV:%d,
                                ToLV:%d,
                                Exp:%d,
                                ExpPoint:%d,
                                ItemCount:%d,
                                AwardItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.FromLV,
                                self.ToLV,
                                self.Exp,
                                self.ExpPoint,
                                self.ItemCount,
                                "..."
                                )
        return DumpString
m_NAtagMCChuangongResult=tagMCChuangongResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChuangongResult.Head.Cmd,m_NAtagMCChuangongResult.Head.SubCmd))] = m_NAtagMCChuangongResult
#------------------------------------------------------
# A5 02 捐献次数信息 #tagSCDonateCntInfo
class  tagSCDonateCntInfo(Structure):
@@ -12725,74 +11458,6 @@
#------------------------------------------------------
# A5 07 家族boss副本玩家信息 #tagMCFamilyBosFBPlayerInfo
class  tagMCFamilyBosFBPlayerInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("HurtTotal", c_int),    # 累计伤血,亿求余部分
                  ("HurtTotalPoint", c_int),    # 累计伤血,亿整除部分
                  ("FightSeconds", c_int),    # 已累计战斗时长,秒
                  ("HurtAwardState", c_int),    # 个人总伤血领奖记录,按奖励位二进制位运算表示是否已领取
                  ("HurtAwardStateFamily", c_int),    # 仙盟总伤血领奖记录,按奖励位二进制位运算表示是否已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x07
        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 = 0xA5
        self.SubCmd = 0x07
        self.HurtTotal = 0
        self.HurtTotalPoint = 0
        self.FightSeconds = 0
        self.HurtAwardState = 0
        self.HurtAwardStateFamily = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyBosFBPlayerInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 07 家族boss副本玩家信息 //tagMCFamilyBosFBPlayerInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                HurtTotal:%d,
                                HurtTotalPoint:%d,
                                FightSeconds:%d,
                                HurtAwardState:%d,
                                HurtAwardStateFamily:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.HurtTotal,
                                self.HurtTotalPoint,
                                self.FightSeconds,
                                self.HurtAwardState,
                                self.HurtAwardStateFamily
                                )
        return DumpString
m_NAtagMCFamilyBosFBPlayerInfo=tagMCFamilyBosFBPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyBosFBPlayerInfo.Cmd,m_NAtagMCFamilyBosFBPlayerInfo.SubCmd))] = m_NAtagMCFamilyBosFBPlayerInfo
#------------------------------------------------------
# A5 21 家族变更 #tagMCFamilyChange
class  tagMCFamilyChange(Structure):
@@ -12842,170 +11507,6 @@
m_NAtagMCFamilyChange=tagMCFamilyChange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyChange.Cmd,m_NAtagMCFamilyChange.SubCmd))] = m_NAtagMCFamilyChange
#------------------------------------------------------
# A5 06 仙盟每日福利领取状态 #tagMCFamilyDayAward
class  tagMCFamilyDayAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GetState", c_ubyte),    #是否已领取
                  ("MoneyDonateCount", c_ubyte),    #今日货币捐献次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x06
        self.GetState = 0
        self.MoneyDonateCount = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyDayAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 06 仙盟每日福利领取状态 //tagMCFamilyDayAward:
                                Cmd:%s,
                                SubCmd:%s,
                                GetState:%d,
                                MoneyDonateCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GetState,
                                self.MoneyDonateCount
                                )
        return DumpString
m_NAtagMCFamilyDayAward=tagMCFamilyDayAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyDayAward.Cmd,m_NAtagMCFamilyDayAward.SubCmd))] = m_NAtagMCFamilyDayAward
#------------------------------------------------------
# A5 03 当日祈福信息 #tagMCFamilyPrayInfo
class  tagMCFamilyPrayInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("PrayCntInfo", c_int),    # 当日祈福次数信息, 按位存储祈福类型对应次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x03
        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 = 0xA5
        self.SubCmd = 0x03
        self.PrayCntInfo = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyPrayInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 03 当日祈福信息 //tagMCFamilyPrayInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                PrayCntInfo:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PrayCntInfo
                                )
        return DumpString
m_NAtagMCFamilyPrayInfo=tagMCFamilyPrayInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyPrayInfo.Cmd,m_NAtagMCFamilyPrayInfo.SubCmd))] = m_NAtagMCFamilyPrayInfo
#------------------------------------------------------
# A5 05 通知家族钻石红包已用额度 #tagMCFamilyRedPacketGoldLimit
class  tagMCFamilyRedPacketGoldLimit(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("HasSendGold", c_int),    # 已用额度
                  ("ServerGrabCnt", c_int),    # 全服红包已抢次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x05
        self.HasSendGold = 0
        self.ServerGrabCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyRedPacketGoldLimit)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 05 通知家族钻石红包已用额度 //tagMCFamilyRedPacketGoldLimit:
                                Cmd:%s,
                                SubCmd:%s,
                                HasSendGold:%d,
                                ServerGrabCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.HasSendGold,
                                self.ServerGrabCnt
                                )
        return DumpString
m_NAtagMCFamilyRedPacketGoldLimit=tagMCFamilyRedPacketGoldLimit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyRedPacketGoldLimit.Cmd,m_NAtagMCFamilyRedPacketGoldLimit.SubCmd))] = m_NAtagMCFamilyRedPacketGoldLimit
#------------------------------------------------------
@@ -13207,22 +11708,205 @@
#------------------------------------------------------
# A5 11 打坐信息 #tagMCFamilySitInfo
# A5 04 公会讨伐攻击结果 #tagSCFamilyTaofaAtkRet
class  tagMCFamilySitInfo(Structure):
class  tagSCFamilyTaofaAtkItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("Count", c_int),
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.ItemID = 0
        self.Count = 0
        return
    def GetLength(self):
        return sizeof(tagSCFamilyTaofaAtkItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 04 公会讨伐攻击结果 //tagSCFamilyTaofaAtkRet:
                                ItemID:%d,
                                Count:%d
                                '''\
                                %(
                                self.ItemID,
                                self.Count
                                )
        return DumpString
class  tagSCFamilyTaofaAtkHurt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("IsSuper", c_ubyte),    # 是否暴击
                  ("HurtValue", c_int),    # 本次伤害,求余亿部分
                  ("HurtValueEx", c_int),    # 本次伤害,整除亿部分
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.IsSuper = 0
        self.HurtValue = 0
        self.HurtValueEx = 0
        return
    def GetLength(self):
        return sizeof(tagSCFamilyTaofaAtkHurt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 04 公会讨伐攻击结果 //tagSCFamilyTaofaAtkRet:
                                IsSuper:%d,
                                HurtValue:%d,
                                HurtValueEx:%d
                                '''\
                                %(
                                self.IsSuper,
                                self.HurtValue,
                                self.HurtValueEx
                                )
        return DumpString
class  tagSCFamilyTaofaAtkRet(Structure):
    Head = tagHead()
    AtkType = 0    #(BYTE AtkType)// 攻击类型:0-常规;1-怒气攻击
    HurtCount = 0    #(BYTE HurtCount)
    HurtList = list()    #(vector<tagSCFamilyTaofaAtkHurt> HurtList)// 伤害次数列表,如怒气攻击有多次伤害
    ItemCount = 0    #(BYTE ItemCount)
    ItemList = list()    #(vector<tagSCFamilyTaofaAtkItem> ItemList)// 奖励物品列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.AtkType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.HurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.HurtCount):
            temHurtList = tagSCFamilyTaofaAtkHurt()
            _pos = temHurtList.ReadData(_lpData, _pos)
            self.HurtList.append(temHurtList)
        self.ItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ItemCount):
            temItemList = tagSCFamilyTaofaAtkItem()
            _pos = temItemList.ReadData(_lpData, _pos)
            self.ItemList.append(temItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x04
        self.AtkType = 0
        self.HurtCount = 0
        self.HurtList = list()
        self.ItemCount = 0
        self.ItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.HurtCount):
            length += self.HurtList[i].GetLength()
        length += 1
        for i in range(self.ItemCount):
            length += self.ItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.AtkType)
        data = CommFunc.WriteBYTE(data, self.HurtCount)
        for i in range(self.HurtCount):
            data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ItemCount)
        for i in range(self.ItemCount):
            data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                AtkType:%d,
                                HurtCount:%d,
                                HurtList:%s,
                                ItemCount:%d,
                                ItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AtkType,
                                self.HurtCount,
                                "...",
                                self.ItemCount,
                                "..."
                                )
        return DumpString
m_NAtagSCFamilyTaofaAtkRet=tagSCFamilyTaofaAtkRet()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFamilyTaofaAtkRet.Head.Cmd,m_NAtagSCFamilyTaofaAtkRet.Head.SubCmd))] = m_NAtagSCFamilyTaofaAtkRet
#------------------------------------------------------
# A5 03 公会讨伐信息 #tagSCFamilyTaofaInfo
class  tagSCFamilyTaofaInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ExpRound", c_ushort),    # 已获得经验轮次
                  ("Exp", c_int),    # 获得经验求余亿部分
                  ("ExpPoint", c_int),    # 获得经验整除亿部分
                  ("BuZhenState", c_ubyte),    # 是否已布阵
                  ("AtkCount", c_ushort),    # 已斩杀次数,用于计算剩余次数=免费次数+道具增加次数-已斩杀次数
                  ("ItemAddCount", c_ushort),    # 道具增加斩杀次数
                  ("Anger", c_ushort),    # 当前怒气值
                  ("BoxUnGetCount", c_ushort),    # 当前未领取的宝箱数,即可领取的
                  ("BoxHurt", c_int),    # 宝箱奖励计算累计伤害,求余亿部分;个人今日累计伤害,换公会不会重置
                  ("BoxHurtEx", c_int),    # 宝箱奖励计算累计伤害,整除亿部分
                  ("BoxHurtHis", c_int),    # 宝箱奖励计算累计历史最高伤害,求余亿部分
                  ("BoxHurtHisEx", c_int),    # 宝箱奖励计算累计历史最高伤害,整除亿部分
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x11
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -13232,44 +11916,63 @@
    def Clear(self):
        self.Cmd = 0xA5
        self.SubCmd = 0x11
        self.ExpRound = 0
        self.Exp = 0
        self.ExpPoint = 0
        self.SubCmd = 0x03
        self.BuZhenState = 0
        self.AtkCount = 0
        self.ItemAddCount = 0
        self.Anger = 0
        self.BoxUnGetCount = 0
        self.BoxHurt = 0
        self.BoxHurtEx = 0
        self.BoxHurtHis = 0
        self.BoxHurtHisEx = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilySitInfo)
        return sizeof(tagSCFamilyTaofaInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 11 打坐信息 //tagMCFamilySitInfo:
        DumpString = '''// A5 03 公会讨伐信息 //tagSCFamilyTaofaInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ExpRound:%d,
                                Exp:%d,
                                ExpPoint:%d
                                BuZhenState:%d,
                                AtkCount:%d,
                                ItemAddCount:%d,
                                Anger:%d,
                                BoxUnGetCount:%d,
                                BoxHurt:%d,
                                BoxHurtEx:%d,
                                BoxHurtHis:%d,
                                BoxHurtHisEx:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ExpRound,
                                self.Exp,
                                self.ExpPoint
                                self.BuZhenState,
                                self.AtkCount,
                                self.ItemAddCount,
                                self.Anger,
                                self.BoxUnGetCount,
                                self.BoxHurt,
                                self.BoxHurtEx,
                                self.BoxHurtHis,
                                self.BoxHurtHisEx
                                )
        return DumpString
m_NAtagMCFamilySitInfo=tagMCFamilySitInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilySitInfo.Cmd,m_NAtagMCFamilySitInfo.SubCmd))] = m_NAtagMCFamilySitInfo
m_NAtagSCFamilyTaofaInfo=tagSCFamilyTaofaInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFamilyTaofaInfo.Cmd,m_NAtagSCFamilyTaofaInfo.SubCmd))] = m_NAtagSCFamilyTaofaInfo
#------------------------------------------------------
# A5 23 搜索家族返回列表 #tagMCFamilyViewList
class  tagMCFamilyView(Structure):
    Rank = 0    #(WORD Rank)//名次,从1开始
    FamilyID = 0    #(DWORD FamilyID)//家族ID
    FamilyNameLen = 0    #(BYTE FamilyNameLen)
    FamilyName = ""    #(String FamilyName)//size = FamilyNameLen
@@ -13293,6 +11996,7 @@
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.Rank,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen)
@@ -13311,6 +12015,7 @@
        return _pos
    def Clear(self):
        self.Rank = 0
        self.FamilyID = 0
        self.FamilyNameLen = 0
        self.FamilyName = ""
@@ -13330,6 +12035,7 @@
    def GetLength(self):
        length = 0
        length += 2
        length += 4
        length += 1
        length += len(self.FamilyName)
@@ -13350,6 +12056,7 @@
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteWORD(data, self.Rank)
        data = CommFunc.WriteDWORD(data, self.FamilyID)
        data = CommFunc.WriteBYTE(data, self.FamilyNameLen)
        data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName)
@@ -13369,6 +12076,7 @@
    def OutputString(self):
        DumpString = '''
                                Rank:%d,
                                FamilyID:%d,
                                FamilyNameLen:%d,
                                FamilyName:%s,
@@ -13386,6 +12094,7 @@
                                MemberCount:%d
                                '''\
                                %(
                                self.Rank,
                                self.FamilyID,
                                self.FamilyNameLen,
                                self.FamilyName,
@@ -13560,125 +12269,6 @@
m_NAtagMCFamilyZhenbaogeInfo=tagMCFamilyZhenbaogeInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyZhenbaogeInfo.Cmd,m_NAtagMCFamilyZhenbaogeInfo.SubCmd))] = m_NAtagMCFamilyZhenbaogeInfo
#------------------------------------------------------
# A5 09 仙盟阵法信息 #tagMCFamilyZhenfaInfo
class  tagMCFamilyZhenfa(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ZhenfaType", c_ubyte),    # 阵法类型
                  ("ZhenfaLV", c_ushort),    # 阵法等级
                  ("ZhenfaExp", c_int),    # 阵法经验
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.ZhenfaType = 0
        self.ZhenfaLV = 0
        self.ZhenfaExp = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyZhenfa)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 09 仙盟阵法信息 //tagMCFamilyZhenfaInfo:
                                ZhenfaType:%d,
                                ZhenfaLV:%d,
                                ZhenfaExp:%d
                                '''\
                                %(
                                self.ZhenfaType,
                                self.ZhenfaLV,
                                self.ZhenfaExp
                                )
        return DumpString
class  tagMCFamilyZhenfaInfo(Structure):
    Head = tagHead()
    PlayerID = 0    #(DWORD PlayerID)// 当前培养阵法的玩家ID,如果有做自动捐献,需等收到的玩家ID为自己的时候才发送下一个捐献包
    Count = 0    #(BYTE Count)
    ZhenfaInfoList = list()    #(vector<tagMCFamilyZhenfa> ZhenfaInfoList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x09
        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.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temZhenfaInfoList = tagMCFamilyZhenfa()
            _pos = temZhenfaInfoList.ReadData(_lpData, _pos)
            self.ZhenfaInfoList.append(temZhenfaInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x09
        self.PlayerID = 0
        self.Count = 0
        self.ZhenfaInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        for i in range(self.Count):
            length += self.ZhenfaInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.ZhenfaInfoList[i].GetLength(), self.ZhenfaInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                PlayerID:%d,
                                Count:%d,
                                ZhenfaInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.PlayerID,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCFamilyZhenfaInfo=tagMCFamilyZhenfaInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyZhenfaInfo.Head.Cmd,m_NAtagMCFamilyZhenfaInfo.Head.SubCmd))] = m_NAtagMCFamilyZhenfaInfo
#------------------------------------------------------
@@ -16763,373 +15353,6 @@
#------------------------------------------------------
# A8 11 商店购买结果 #tagMCShoppingResult
class  tagMCShoppingResult(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ItemIndex", c_int),
                  ("ItemCnt", c_int),    #购买数量
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA8
        self.SubCmd = 0x11
        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 = 0xA8
        self.SubCmd = 0x11
        self.ItemIndex = 0
        self.ItemCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCShoppingResult)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 11 商店购买结果 //tagMCShoppingResult:
                                Cmd:%s,
                                SubCmd:%s,
                                ItemIndex:%d,
                                ItemCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ItemIndex,
                                self.ItemCnt
                                )
        return DumpString
m_NAtagMCShoppingResult=tagMCShoppingResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShoppingResult.Cmd,m_NAtagMCShoppingResult.SubCmd))] = m_NAtagMCShoppingResult
#------------------------------------------------------
# A8 16 神秘商店商品信息 #tagMCMysticalShopInfo
class  tagMCMysticalShopGoods(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GoodsID", 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.GoodsID = 0
        return
    def GetLength(self):
        return sizeof(tagMCMysticalShopGoods)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 16 神秘商店商品信息 //tagMCMysticalShopInfo:
                                GoodsID:%d
                                '''\
                                %(
                                self.GoodsID
                                )
        return DumpString
class  tagMCMysticalShopInfo(Structure):
    Head = tagHead()
    RefreshCnt = 0    #(WORD RefreshCnt)// 刷新次数
    Count = 0    #(BYTE Count)// 商品数
    GoodsList = list()    #(vector<tagMCMysticalShopGoods> GoodsList)// 商品信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x16
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RefreshCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temGoodsList = tagMCMysticalShopGoods()
            _pos = temGoodsList.ReadData(_lpData, _pos)
            self.GoodsList.append(temGoodsList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x16
        self.RefreshCnt = 0
        self.Count = 0
        self.GoodsList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += 1
        for i in range(self.Count):
            length += self.GoodsList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.RefreshCnt)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RefreshCnt:%d,
                                Count:%d,
                                GoodsList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RefreshCnt,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCMysticalShopInfo=tagMCMysticalShopInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMysticalShopInfo.Head.Cmd,m_NAtagMCMysticalShopInfo.Head.SubCmd))] = m_NAtagMCMysticalShopInfo
#------------------------------------------------------
# A8 06 通知神秘限购商品时间 #tagMCMysticalShopTimeInfo
class  tagMCMysticalShopTime(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GoodsID", c_int),    # 商品ID
                  ("StartTime", c_int),    # 开卖时间
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.GoodsID = 0
        self.StartTime = 0
        return
    def GetLength(self):
        return sizeof(tagMCMysticalShopTime)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 06 通知神秘限购商品时间 //tagMCMysticalShopTimeInfo:
                                GoodsID:%d,
                                StartTime:%d
                                '''\
                                %(
                                self.GoodsID,
                                self.StartTime
                                )
        return DumpString
class  tagMCMysticalShopTimeInfo(Structure):
    Head = tagHead()
    Count = 0    #(WORD Count)// 商品数
    ShopTimeList = list()    #(vector<tagMCMysticalShopTime> ShopTimeList)// 商品开卖信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x06
        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):
            temShopTimeList = tagMCMysticalShopTime()
            _pos = temShopTimeList.ReadData(_lpData, _pos)
            self.ShopTimeList.append(temShopTimeList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x06
        self.Count = 0
        self.ShopTimeList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        for i in range(self.Count):
            length += self.ShopTimeList[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.ShopTimeList[i].GetLength(), self.ShopTimeList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                ShopTimeList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCMysticalShopTimeInfo=tagMCMysticalShopTimeInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMysticalShopTimeInfo.Head.Cmd,m_NAtagMCMysticalShopTimeInfo.Head.SubCmd))] = m_NAtagMCMysticalShopTimeInfo
#------------------------------------------------------
# A8 10 通知获得物品 #tagMCNotifyUseItemGetItem
class  tagMCNotifyUseItemGetItem(Structure):
    Head = tagHead()
    UseItemID = 0    #(DWORD UseItemID)// 使用的物品ID
    UseCount = 0    #(WORD UseCount)// 使用物品个数
    GetItemLen = 0    #(WORD GetItemLen)
    GetItemData = ""    #(String GetItemData)//  获得物品信息 [[itemID,itemCount,isBind], [或itemID,itemCount,isBind,isAppoint], {或物品信息字典}, ...]
    MoneyType = 0    #(BYTE MoneyType)// 获得货币类型
    MoneyCount = 0    #(DWORD MoneyCount)// 获得货币数量
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x10
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.UseItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.UseCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.GetItemLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.GetItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.GetItemLen)
        self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MoneyCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x10
        self.UseItemID = 0
        self.UseCount = 0
        self.GetItemLen = 0
        self.GetItemData = ""
        self.MoneyType = 0
        self.MoneyCount = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 2
        length += 2
        length += len(self.GetItemData)
        length += 1
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.UseItemID)
        data = CommFunc.WriteWORD(data, self.UseCount)
        data = CommFunc.WriteWORD(data, self.GetItemLen)
        data = CommFunc.WriteString(data, self.GetItemLen, self.GetItemData)
        data = CommFunc.WriteBYTE(data, self.MoneyType)
        data = CommFunc.WriteDWORD(data, self.MoneyCount)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                UseItemID:%d,
                                UseCount:%d,
                                GetItemLen:%d,
                                GetItemData:%s,
                                MoneyType:%d,
                                MoneyCount:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.UseItemID,
                                self.UseCount,
                                self.GetItemLen,
                                self.GetItemData,
                                self.MoneyType,
                                self.MoneyCount
                                )
        return DumpString
m_NAtagMCNotifyUseItemGetItem=tagMCNotifyUseItemGetItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyUseItemGetItem.Head.Cmd,m_NAtagMCNotifyUseItemGetItem.Head.SubCmd))] = m_NAtagMCNotifyUseItemGetItem
#------------------------------------------------------
# A8 17 宠物培养信息 #tagMCPetTrainInfo
class  tagMCPetTrainInfo(Structure):
@@ -17207,14 +15430,13 @@
#------------------------------------------------------
# A8 02 通知NPC商店物品今日已购买次数 #tagMCShopItemDayBuyCntInfo
# A8 02 商店物品已购买次数 #tagSCShopItemBuyCntInfo
class  tagMCShopItemDayBuyCnt(Structure):
class  tagSCShopItemBuyCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemIndex", c_int),
                  ("BuyCnt", c_int),    # 今日已购买次数
                  ("IsReset", c_ubyte),    #是否重置
                  ("ShopID", c_int),    # 商品ID
                  ("BuyCnt", c_int),    # 已购买次数
                  ]
    def __init__(self):
@@ -17227,35 +15449,32 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.ItemIndex = 0
        self.ShopID = 0
        self.BuyCnt = 0
        self.IsReset = 0
        return
    def GetLength(self):
        return sizeof(tagMCShopItemDayBuyCnt)
        return sizeof(tagSCShopItemBuyCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 02 通知NPC商店物品今日已购买次数 //tagMCShopItemDayBuyCntInfo:
                                ItemIndex:%d,
                                BuyCnt:%d,
                                IsReset:%d
        DumpString = '''// A8 02 商店物品已购买次数 //tagSCShopItemBuyCntInfo:
                                ShopID:%d,
                                BuyCnt:%d
                                '''\
                                %(
                                self.ItemIndex,
                                self.BuyCnt,
                                self.IsReset
                                self.ShopID,
                                self.BuyCnt
                                )
        return DumpString
class  tagMCShopItemDayBuyCntInfo(Structure):
class  tagSCShopItemBuyCntInfo(Structure):
    Head = tagHead()
    Count = 0    #(WORD Count)//通知个数,注意不限制每日购买次数的默认不通知
    DayBuyCntList = list()    #(vector<tagMCShopItemDayBuyCnt> DayBuyCntList)
    Count = 0    #(WORD Count)
    BuyCntList = list()    #(vector<tagSCShopItemBuyCnt> BuyCntList)//仅通知有限购次数的商品
    data = None
    def __init__(self):
@@ -17269,9 +15488,9 @@
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.Count):
            temDayBuyCntList = tagMCShopItemDayBuyCnt()
            _pos = temDayBuyCntList.ReadData(_lpData, _pos)
            self.DayBuyCntList.append(temDayBuyCntList)
            temBuyCntList = tagSCShopItemBuyCnt()
            _pos = temBuyCntList.ReadData(_lpData, _pos)
            self.BuyCntList.append(temBuyCntList)
        return _pos
    def Clear(self):
@@ -17280,7 +15499,7 @@
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x02
        self.Count = 0
        self.DayBuyCntList = list()
        self.BuyCntList = list()
        return
    def GetLength(self):
@@ -17288,7 +15507,7 @@
        length += self.Head.GetLength()
        length += 2
        for i in range(self.Count):
            length += self.DayBuyCntList[i].GetLength()
            length += self.BuyCntList[i].GetLength()
        return length
@@ -17297,14 +15516,14 @@
        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.DayBuyCntList[i].GetLength(), self.DayBuyCntList[i].GetBuffer())
            data = CommFunc.WriteString(data, self.BuyCntList[i].GetLength(), self.BuyCntList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                DayBuyCntList:%s
                                BuyCntList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -17314,8 +15533,89 @@
        return DumpString
m_NAtagMCShopItemDayBuyCntInfo=tagMCShopItemDayBuyCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemDayBuyCntInfo.Head.Cmd,m_NAtagMCShopItemDayBuyCntInfo.Head.SubCmd))] = m_NAtagMCShopItemDayBuyCntInfo
m_NAtagSCShopItemBuyCntInfo=tagSCShopItemBuyCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCShopItemBuyCntInfo.Head.Cmd,m_NAtagSCShopItemBuyCntInfo.Head.SubCmd))] = m_NAtagSCShopItemBuyCntInfo
#------------------------------------------------------
# A8 03 商店刷新解锁的商品信息 #tagSCShopRefreshItemInfo
class  tagSCShopRefreshItemInfo(Structure):
    Head = tagHead()
    ShopType = 0    #(WORD ShopType)// 商店类型
    RefreshCnt = 0    #(BYTE RefreshCnt)// 今日已刷新次数
    Count = 0    #(BYTE Count)
    ShopIDList = list()    #(vector<DWORD> ShopIDList)// 对应刷新出来的商店表商品ID列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ShopType,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RefreshCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.ShopIDList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x03
        self.ShopType = 0
        self.RefreshCnt = 0
        self.Count = 0
        self.ShopIDList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += 1
        length += 1
        length += 4 * self.Count
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.ShopType)
        data = CommFunc.WriteBYTE(data, self.RefreshCnt)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteDWORD(data, self.ShopIDList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ShopType:%d,
                                RefreshCnt:%d,
                                Count:%d,
                                ShopIDList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ShopType,
                                self.RefreshCnt,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagSCShopRefreshItemInfo=tagSCShopRefreshItemInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCShopRefreshItemInfo.Head.Cmd,m_NAtagSCShopRefreshItemInfo.Head.SubCmd))] = m_NAtagSCShopRefreshItemInfo
#------------------------------------------------------
@@ -17409,6 +15709,7 @@
class  tagSCArenaMatchInfo(Structure):
    PlayerID = 0    #(DWORD PlayerID)//目标玩家ID
    PlayerName = ""    #(char PlayerName[33])
    LV = 0    #(WORD LV)// 玩家等级
    RealmLV = 0    #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
    FightPower = 0    #(DWORD FightPower)//战力求余亿部分
    FightPowerEx = 0    #(DWORD FightPowerEx)//战力整除亿部分
@@ -17425,6 +15726,7 @@
        self.Clear()
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -17436,6 +15738,7 @@
    def Clear(self):
        self.PlayerID = 0
        self.PlayerName = ""
        self.LV = 0
        self.RealmLV = 0
        self.FightPower = 0
        self.FightPowerEx = 0
@@ -17449,6 +15752,7 @@
        length += 4
        length += 33
        length += 2
        length += 2
        length += 4
        length += 4
        length += 4
@@ -17461,6 +15765,7 @@
        data = ''
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.FightPower)
        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
@@ -17473,6 +15778,7 @@
        DumpString = '''
                                PlayerID:%d,
                                PlayerName:%s,
                                LV:%d,
                                RealmLV:%d,
                                FightPower:%d,
                                FightPowerEx:%d,
@@ -17483,6 +15789,7 @@
                                %(
                                self.PlayerID,
                                self.PlayerName,
                                self.LV,
                                self.RealmLV,
                                self.FightPower,
                                self.FightPowerEx,
@@ -18543,169 +16850,6 @@
#------------------------------------------------------
# A9 A7 通知可抢的红包信息 #tagGCGrabRedPacketInfo
class  tagGCGrabRedPacketInfo(Structure):
    Head = tagHead()
    RedPacketCnt = 0    #(DWORD RedPacketCnt)//可抢红包个数
    StrLen = 0    #(WORD StrLen)//字符串长度
    OwnerName = ""    #(String OwnerName)//红包主人名字
    RedPacketID = 0    #(DWORD RedPacketID)//可抢红包ID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA7
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RedPacketCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.StrLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.StrLen)
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA7
        self.RedPacketCnt = 0
        self.StrLen = 0
        self.OwnerName = ""
        self.RedPacketID = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 2
        length += len(self.OwnerName)
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RedPacketCnt)
        data = CommFunc.WriteWORD(data, self.StrLen)
        data = CommFunc.WriteString(data, self.StrLen, self.OwnerName)
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RedPacketCnt:%d,
                                StrLen:%d,
                                OwnerName:%s,
                                RedPacketID:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RedPacketCnt,
                                self.StrLen,
                                self.OwnerName,
                                self.RedPacketID
                                )
        return DumpString
m_NAtagGCGrabRedPacketInfo=tagGCGrabRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGrabRedPacketInfo.Head.Cmd,m_NAtagGCGrabRedPacketInfo.Head.SubCmd))] = m_NAtagGCGrabRedPacketInfo
#------------------------------------------------------
# A9 A6 通知抢红包结果 #tagGCGrabRedPacketResult
class  tagGCGrabRedPacketResult(Structure):
    Head = tagHead()
    StrLen = 0    #(WORD StrLen)//字符串长度
    OwnerName = ""    #(String OwnerName)//红包主人名字
    TotalMoney = 0    #(DWORD TotalMoney)//红包总额
    DataSize = 0    #(DWORD DataSize)
    GrabInfo = ""    #(String GrabInfo)//抢红包具体结果
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA6
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.StrLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.StrLen)
        self.TotalMoney,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GrabInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA6
        self.StrLen = 0
        self.OwnerName = ""
        self.TotalMoney = 0
        self.DataSize = 0
        self.GrabInfo = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += len(self.OwnerName)
        length += 4
        length += 4
        length += len(self.GrabInfo)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.StrLen)
        data = CommFunc.WriteString(data, self.StrLen, self.OwnerName)
        data = CommFunc.WriteDWORD(data, self.TotalMoney)
        data = CommFunc.WriteDWORD(data, self.DataSize)
        data = CommFunc.WriteString(data, self.DataSize, self.GrabInfo)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                StrLen:%d,
                                OwnerName:%s,
                                TotalMoney:%d,
                                DataSize:%d,
                                GrabInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.StrLen,
                                self.OwnerName,
                                self.TotalMoney,
                                self.DataSize,
                                self.GrabInfo
                                )
        return DumpString
m_NAtagGCGrabRedPacketResult=tagGCGrabRedPacketResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGrabRedPacketResult.Head.Cmd,m_NAtagGCGrabRedPacketResult.Head.SubCmd))] = m_NAtagGCGrabRedPacketResult
#------------------------------------------------------
# A9 05 通知广播装备详细信息 #tagGCNotifyEquipDetailInfo
class  tagGCNotifyEquipClassEquip(Structure):
@@ -18887,80 +17031,6 @@
m_NAtagGCNotifyEquipDetailInfo=tagGCNotifyEquipDetailInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNotifyEquipDetailInfo.Head.Cmd,m_NAtagGCNotifyEquipDetailInfo.Head.SubCmd))] = m_NAtagGCNotifyEquipDetailInfo
#------------------------------------------------------
#A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount
class  tagGCOpenServerCampaignAwardCount(Structure):
    Head = tagHead()
    CampaignType = 0    #(BYTE CampaignType)//奖励类型
    AwardTypeCount = 0    #(BYTE AwardTypeCount)//奖品种类数量
    GotCountList = list()    #(vector<DWORD> GotCountList)//奖品已领取数量列表,根据种类索引依次
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.CampaignType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AwardTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardTypeCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.GotCountList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x03
        self.CampaignType = 0
        self.AwardTypeCount = 0
        self.GotCountList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 4 * self.AwardTypeCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.CampaignType)
        data = CommFunc.WriteBYTE(data, self.AwardTypeCount)
        for i in range(self.AwardTypeCount):
            data = CommFunc.WriteDWORD(data, self.GotCountList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                CampaignType:%d,
                                AwardTypeCount:%d,
                                GotCountList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.CampaignType,
                                self.AwardTypeCount,
                                "..."
                                )
        return DumpString
m_NAtagGCOpenServerCampaignAwardCount=tagGCOpenServerCampaignAwardCount()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCOpenServerCampaignAwardCount.Head.Cmd,m_NAtagGCOpenServerCampaignAwardCount.Head.SubCmd))] = m_NAtagGCOpenServerCampaignAwardCount
#------------------------------------------------------
@@ -19721,6 +17791,63 @@
#------------------------------------------------------
# A9 21 角色改名结果 #tagSCRenameResult
class  tagSCRenameResult(Structure):
    Head = tagHead()
    PlayerName = ""    #(char PlayerName[33])// 新名字
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x21
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x21
        self.PlayerName = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 33
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                PlayerName:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.PlayerName
                                )
        return DumpString
m_NAtagSCRenameResult=tagSCRenameResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCRenameResult.Head.Cmd,m_NAtagSCRenameResult.Head.SubCmd))] = m_NAtagSCRenameResult
#------------------------------------------------------
# A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
class  tagGCStoreServerBuyCnt(Structure):
@@ -19826,58 +17953,6 @@
m_NAtagGCStoreServerBuyCntInfo=tagGCStoreServerBuyCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCStoreServerBuyCntInfo.Head.Cmd,m_NAtagGCStoreServerBuyCntInfo.Head.SubCmd))] = m_NAtagGCStoreServerBuyCntInfo
#------------------------------------------------------
#A9 21 角色改名结果 #tagUpdatePlayerNameResult
class  tagUpdatePlayerNameResult(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Result", c_ubyte),    #角色改名结果
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA9
        self.SubCmd = 0x21
        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 = 0xA9
        self.SubCmd = 0x21
        self.Result = 0
        return
    def GetLength(self):
        return sizeof(tagUpdatePlayerNameResult)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A9 21 角色改名结果 //tagUpdatePlayerNameResult:
                                Cmd:%s,
                                SubCmd:%s,
                                Result:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Result
                                )
        return DumpString
m_NAtagUpdatePlayerNameResult=tagUpdatePlayerNameResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUpdatePlayerNameResult.Cmd,m_NAtagUpdatePlayerNameResult.SubCmd))] = m_NAtagUpdatePlayerNameResult
#------------------------------------------------------
@@ -32799,242 +30874,6 @@
#------------------------------------------------------
# AB 25 节日红包信息 #tagMCFeastRedPackInfo
class  tagMCFeastRedPackInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MoneyNum", c_int),    # 累积抢到多少钱
                  ("GrabCnt", c_ushort),    # 已抢红包次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        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 = 0xAB
        self.SubCmd = 0x25
        self.MoneyNum = 0
        self.GrabCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCFeastRedPackInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 25 节日红包信息 //tagMCFeastRedPackInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                MoneyNum:%d,
                                GrabCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MoneyNum,
                                self.GrabCnt
                                )
        return DumpString
m_NAtagMCFeastRedPackInfo=tagMCFeastRedPackInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastRedPackInfo.Cmd,m_NAtagMCFeastRedPackInfo.SubCmd))] = m_NAtagMCFeastRedPackInfo
#------------------------------------------------------
# AB 17 开服活动奖励状态 #tagMCOpenServerCampaignAwardList
class  tagMCOpenServerCampaignAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("CampaignType", c_ubyte),    #奖励类型
                  ("BillAwardRecord", c_ubyte),    #排行奖励是否已领取
                  ("TagAwardRecord", c_int),    #目标奖励索引位领取记录:0-未领;1-已领
                  ("RecordData", c_int),    #活动时的记录值,求余亿部分,为了统一逻辑,其他非战力榜的也使用此规则
                  ("RecordDataEx", c_int),    #活动时的记录值,整除亿部分,1代表1亿
                  ]
    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.CampaignType = 0
        self.BillAwardRecord = 0
        self.TagAwardRecord = 0
        self.RecordData = 0
        self.RecordDataEx = 0
        return
    def GetLength(self):
        return sizeof(tagMCOpenServerCampaignAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 17 开服活动奖励状态 //tagMCOpenServerCampaignAwardList:
                                CampaignType:%d,
                                BillAwardRecord:%d,
                                TagAwardRecord:%d,
                                RecordData:%d,
                                RecordDataEx:%d
                                '''\
                                %(
                                self.CampaignType,
                                self.BillAwardRecord,
                                self.TagAwardRecord,
                                self.RecordData,
                                self.RecordDataEx
                                )
        return DumpString
class  tagMCOpenServerCampaignAwardList(Structure):
    Head = tagHead()
    OSCAwardCnt = 0    #(BYTE OSCAwardCnt)//奖励类型数
    OSCAwardList = list()    #(vector<tagMCOpenServerCampaignAward> OSCAwardList)// 奖励状态列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x17
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.OSCAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.OSCAwardCnt):
            temOSCAwardList = tagMCOpenServerCampaignAward()
            _pos = temOSCAwardList.ReadData(_lpData, _pos)
            self.OSCAwardList.append(temOSCAwardList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x17
        self.OSCAwardCnt = 0
        self.OSCAwardList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.OSCAwardCnt):
            length += self.OSCAwardList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.OSCAwardCnt)
        for i in range(self.OSCAwardCnt):
            data = CommFunc.WriteString(data, self.OSCAwardList[i].GetLength(), self.OSCAwardList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                OSCAwardCnt:%d,
                                OSCAwardList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.OSCAwardCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCOpenServerCampaignAwardList=tagMCOpenServerCampaignAwardList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOpenServerCampaignAwardList.Head.Cmd,m_NAtagMCOpenServerCampaignAwardList.Head.SubCmd))] = m_NAtagMCOpenServerCampaignAwardList
#------------------------------------------------------
# AB 24 开服红包信息 #tagMCOpenServerRedPacketInfo
class  tagMCOpenServerRedPacketInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MoneyNum", c_int),    # 累积抢到多少钱
                  ("GrabCnt", c_ushort),    # 已抢红包次数
                  ("StartTime", c_int),    # 开始倒计时时间
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x24
        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 = 0xAB
        self.SubCmd = 0x24
        self.MoneyNum = 0
        self.GrabCnt = 0
        self.StartTime = 0
        return
    def GetLength(self):
        return sizeof(tagMCOpenServerRedPacketInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 24 开服红包信息 //tagMCOpenServerRedPacketInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                MoneyNum:%d,
                                GrabCnt:%d,
                                StartTime:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MoneyNum,
                                self.GrabCnt,
                                self.StartTime
                                )
        return DumpString
m_NAtagMCOpenServerRedPacketInfo=tagMCOpenServerRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOpenServerRedPacketInfo.Cmd,m_NAtagMCOpenServerRedPacketInfo.SubCmd))] = m_NAtagMCOpenServerRedPacketInfo
#------------------------------------------------------
# AB 19 炼制奖励信息 #tagMCRefineGiftInfo
class  tagMCRefineGiftInfo(Structure):
@@ -33445,151 +31284,6 @@
#------------------------------------------------------
# AC 11 节日红包活动信息 #tagGCFeastRedPacketInfo
class  tagGCFeastRedPacketDay(Structure):
    RedPacketCount = 0    #(BYTE RedPacketCount)
    RedPacketIDList = list()    #(vector<WORD> RedPacketIDList)// 当日定时发放的系统红包表ID列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.RedPacketCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RedPacketCount):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.RedPacketIDList.append(value)
        return _pos
    def Clear(self):
        self.RedPacketCount = 0
        self.RedPacketIDList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 2 * self.RedPacketCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.RedPacketCount)
        for i in range(self.RedPacketCount):
            data = CommFunc.WriteWORD(data, self.RedPacketIDList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                RedPacketCount:%d,
                                RedPacketIDList:%s
                                '''\
                                %(
                                self.RedPacketCount,
                                "..."
                                )
        return DumpString
class  tagGCFeastRedPacketInfo(Structure):
    Head = tagHead()
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    ResetType = 0    #(BYTE ResetType)// 重置类型 0-0点重置 1-5点重置
    RedPacketDays = 0    #(BYTE RedPacketDays)
    RedPacketDayList = list()    #(vector<tagGCFeastRedPacketDay> RedPacketDayList)// 每日系统红包信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x11
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RedPacketDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RedPacketDays):
            temRedPacketDayList = tagGCFeastRedPacketDay()
            _pos = temRedPacketDayList.ReadData(_lpData, _pos)
            self.RedPacketDayList.append(temRedPacketDayList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x11
        self.StartDate = ""
        self.EndtDate = ""
        self.LimitLV = 0
        self.ResetType = 0
        self.RedPacketDays = 0
        self.RedPacketDayList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 10
        length += 10
        length += 2
        length += 1
        length += 1
        for i in range(self.RedPacketDays):
            length += self.RedPacketDayList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 10, self.StartDate)
        data = CommFunc.WriteString(data, 10, self.EndtDate)
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteBYTE(data, self.ResetType)
        data = CommFunc.WriteBYTE(data, self.RedPacketDays)
        for i in range(self.RedPacketDays):
            data = CommFunc.WriteString(data, self.RedPacketDayList[i].GetLength(), self.RedPacketDayList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                StartDate:%s,
                                EndtDate:%s,
                                LimitLV:%d,
                                ResetType:%d,
                                RedPacketDays:%d,
                                RedPacketDayList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.StartDate,
                                self.EndtDate,
                                self.LimitLV,
                                self.ResetType,
                                self.RedPacketDays,
                                "..."
                                )
        return DumpString
m_NAtagGCFeastRedPacketInfo=tagGCFeastRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFeastRedPacketInfo.Head.Cmd,m_NAtagGCFeastRedPacketInfo.Head.SubCmd))] = m_NAtagGCFeastRedPacketInfo
#------------------------------------------------------
# AC 06 多倍经验活动信息 #tagGCMultiExpRateInfo
class  tagGCMultiExpRateTime(Structure):
@@ -33814,73 +31508,6 @@
m_NAtagGCMultiRealmPointInfo=tagGCMultiRealmPointInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMultiRealmPointInfo.Head.Cmd,m_NAtagGCMultiRealmPointInfo.Head.SubCmd))] = m_NAtagGCMultiRealmPointInfo
#------------------------------------------------------
# AC 05 红包删除 #tagGCRedPacketDel
class  tagGCRedPacketDel(Structure):
    Head = tagHead()
    Cnt = 0    #(DWORD Cnt)// 个数
    DelRedPacketID = list()    #(vector<DWORD> DelRedPacketID)// 红包ID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Cnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        for i in range(self.Cnt):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.DelRedPacketID.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x05
        self.Cnt = 0
        self.DelRedPacketID = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4 * self.Cnt
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.Cnt)
        for i in range(self.Cnt):
            data = CommFunc.WriteDWORD(data, self.DelRedPacketID[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Cnt:%d,
                                DelRedPacketID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Cnt,
                                "..."
                                )
        return DumpString
m_NAtagGCRedPacketDel=tagGCRedPacketDel()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRedPacketDel.Head.Cmd,m_NAtagGCRedPacketDel.Head.SubCmd))] = m_NAtagGCRedPacketDel
#------------------------------------------------------
@@ -35800,6 +33427,158 @@
#------------------------------------------------------
# B1 09 每日活跃任务信息 #tagSCDailyTaskInfo
class  tagSCDailyTask(Structure):
    TaskType = 0    #(BYTE TaskType)// 任务类型
    CLen = 0    #(BYTE CLen)
    Conds = list()    #(vector<DWORD> Conds)// 条件列表
    CurValue = 0    #(DWORD CurValue)// 进度值,相同任务类型条件的进度值共享
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.TaskType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.CLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.CLen):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.Conds.append(value)
        self.CurValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.TaskType = 0
        self.CLen = 0
        self.Conds = list()
        self.CurValue = 0
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        length += 4 * self.CLen
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.TaskType)
        data = CommFunc.WriteBYTE(data, self.CLen)
        for i in range(self.CLen):
            data = CommFunc.WriteDWORD(data, self.Conds[i])
        data = CommFunc.WriteDWORD(data, self.CurValue)
        return data
    def OutputString(self):
        DumpString = '''
                                TaskType:%d,
                                CLen:%d,
                                Conds:%s,
                                CurValue:%d
                                '''\
                                %(
                                self.TaskType,
                                self.CLen,
                                "...",
                                self.CurValue
                                )
        return DumpString
class  tagSCDailyTaskInfo(Structure):
    Head = tagHead()
    ActivityTotal = 0    #(DWORD ActivityTotal)// 今日累计获得活跃度
    ActivityAward = 0    #(DWORD ActivityAward)// 累计活跃领奖记录,按活跃ID奖励二进制位存储是否已领取
    DailyTaskState = 0    #(DWORD DailyTaskState)// 今日任务是否已领取奖励,按任务ID二进制位存储是否已领取
    TaskCount = 0    #(BYTE TaskCount)
    TaskList = list()    #(vector<tagSCDailyTask> TaskList)// 差异更新的任务信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x09
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActivityTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ActivityAward,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.DailyTaskState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TaskCount):
            temTaskList = tagSCDailyTask()
            _pos = temTaskList.ReadData(_lpData, _pos)
            self.TaskList.append(temTaskList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x09
        self.ActivityTotal = 0
        self.ActivityAward = 0
        self.DailyTaskState = 0
        self.TaskCount = 0
        self.TaskList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 4
        length += 1
        for i in range(self.TaskCount):
            length += self.TaskList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.ActivityTotal)
        data = CommFunc.WriteDWORD(data, self.ActivityAward)
        data = CommFunc.WriteDWORD(data, self.DailyTaskState)
        data = CommFunc.WriteBYTE(data, self.TaskCount)
        for i in range(self.TaskCount):
            data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActivityTotal:%d,
                                ActivityAward:%d,
                                DailyTaskState:%d,
                                TaskCount:%d,
                                TaskList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActivityTotal,
                                self.ActivityAward,
                                self.DailyTaskState,
                                self.TaskCount,
                                "..."
                                )
        return DumpString
m_NAtagSCDailyTaskInfo=tagSCDailyTaskInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDailyTaskInfo.Head.Cmd,m_NAtagSCDailyTaskInfo.Head.SubCmd))] = m_NAtagSCDailyTaskInfo
#------------------------------------------------------
# B1 23 每日掉落战利品信息 #tagSCDropBootyInfo
class  tagSCDropBooty(Structure):
@@ -36508,6 +34287,178 @@
m_NAtagSCLineupInfo=tagSCLineupInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCLineupInfo.Head.Cmd,m_NAtagSCLineupInfo.Head.SubCmd))] = m_NAtagSCLineupInfo
#------------------------------------------------------
# B1 29 阵容推荐信息 #tagSCLineupRecommendInfo
class  tagSCLineupRecommend(Structure):
    _pack_ = 1
    _fields_ = [
                  ("RecommendID", c_ubyte),    #推荐阵容表ID
                  ("AwardState", c_int),    #推荐武将领奖状态,按武将配置的顺序位存储是否已领取
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.RecommendID = 0
        self.AwardState = 0
        return
    def GetLength(self):
        return sizeof(tagSCLineupRecommend)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 29 阵容推荐信息 //tagSCLineupRecommendInfo:
                                RecommendID:%d,
                                AwardState:%d
                                '''\
                                %(
                                self.RecommendID,
                                self.AwardState
                                )
        return DumpString
class  tagSCLineupRecommendInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    RecommendList = list()    #(vector<tagSCLineupRecommend> RecommendList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x29
        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):
            temRecommendList = tagSCLineupRecommend()
            _pos = temRecommendList.ReadData(_lpData, _pos)
            self.RecommendList.append(temRecommendList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x29
        self.Count = 0
        self.RecommendList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.RecommendList[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.RecommendList[i].GetLength(), self.RecommendList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                RecommendList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagSCLineupRecommendInfo=tagSCLineupRecommendInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCLineupRecommendInfo.Head.Cmd,m_NAtagSCLineupRecommendInfo.Head.SubCmd))] = m_NAtagSCLineupRecommendInfo
#------------------------------------------------------
# B1 28 历练秘笈信息 #tagSCLLMJInfo
class  tagSCLLMJInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MJLV", c_ubyte),    # 秘笈等级,激活后从1开始
                  ("Zhanchui", c_int),    # 秘笈累计消耗战锤
                  ("ExpEx", c_int),    # 秘笈今日已额外获得经验
                  ("DecomposeEx", c_int),    # 秘笈今日已额外获得分解货币
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB1
        self.SubCmd = 0x28
        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 = 0xB1
        self.SubCmd = 0x28
        self.MJLV = 0
        self.Zhanchui = 0
        self.ExpEx = 0
        self.DecomposeEx = 0
        return
    def GetLength(self):
        return sizeof(tagSCLLMJInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 28 历练秘笈信息 //tagSCLLMJInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                MJLV:%d,
                                Zhanchui:%d,
                                ExpEx:%d,
                                DecomposeEx:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MJLV,
                                self.Zhanchui,
                                self.ExpEx,
                                self.DecomposeEx
                                )
        return DumpString
m_NAtagSCLLMJInfo=tagSCLLMJInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCLLMJInfo.Cmd,m_NAtagSCLLMJInfo.SubCmd))] = m_NAtagSCLLMJInfo
#------------------------------------------------------
@@ -41005,6 +38956,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):