hxp
2019-03-29 71e78cbced24dd6b70aaa1dca1404ff10087ce3d
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -899,6 +899,58 @@
#------------------------------------------------------
# A4 0C 多仙盟boss活动信息 #tagGCAllFamilyBossInfo
class  tagGCAllFamilyBossInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsEnd", c_ubyte),    # 是否已结束
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA4
        self.SubCmd = 0x0C
        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 = 0xA4
        self.SubCmd = 0x0C
        self.IsEnd = 0
        return
    def GetLength(self):
        return sizeof(tagGCAllFamilyBossInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A4 0C 多仙盟boss活动信息 //tagGCAllFamilyBossInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                IsEnd:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsEnd
                                )
        return DumpString
m_NAtagGCAllFamilyBossInfo=tagGCAllFamilyBossInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAllFamilyBossInfo.Cmd,m_NAtagGCAllFamilyBossInfo.SubCmd))] = m_NAtagGCAllFamilyBossInfo
#------------------------------------------------------
# A4 0A 假仙盟信息 #tagGCFakeFamilyInfo
class  tagGCFakeFamilyInfo(Structure):
@@ -3319,62 +3371,6 @@
#------------------------------------------------------
#A9 05 天梯竞技场每日奖励信息#tagGCHighLadderRewardInfo
class  tagGCHighLadderRewardInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("hadGot", c_ubyte),    #是否已领取
                  ("Order", c_ushort),    #奖励排名
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA9
        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 = 0xA9
        self.SubCmd = 0x05
        self.hadGot = 0
        self.Order = 0
        return
    def GetLength(self):
        return sizeof(tagGCHighLadderRewardInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A9 05 天梯竞技场每日奖励信息//tagGCHighLadderRewardInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                hadGot:%d,
                                Order:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.hadGot,
                                self.Order
                                )
        return DumpString
m_NAtagGCHighLadderRewardInfo=tagGCHighLadderRewardInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHighLadderRewardInfo.Cmd,m_NAtagGCHighLadderRewardInfo.SubCmd))] = m_NAtagGCHighLadderRewardInfo
#------------------------------------------------------
#A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount
class  tagGCOpenServerCampaignAwardCount(Structure):
@@ -4133,124 +4129,6 @@
m_NAtagGCRecommendFriendsInfo=tagGCRecommendFriendsInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRecommendFriendsInfo.Head.Cmd,m_NAtagGCRecommendFriendsInfo.Head.SubCmd))] = m_NAtagGCRecommendFriendsInfo
#------------------------------------------------------
# A9 07 定时商店刷新倒计时 #tagGCShopRefreshTimeList
class  tagGCShopRefreshTime(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),    # 商店ID
                  ("RemainSecond", c_int),    # 多少秒后刷新
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA9
        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 = 0xA9
        self.SubCmd = 0x07
        self.ShopID = 0
        self.RemainSecond = 0
        return
    def GetLength(self):
        return sizeof(tagGCShopRefreshTime)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A9 07 定时商店刷新倒计时 //tagGCShopRefreshTimeList:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                RemainSecond:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.RemainSecond
                                )
        return DumpString
class  tagGCShopRefreshTimeList(Structure):
    Head = tagHead()
    ShopCnt = 0    #(BYTE ShopCnt)//商店信息个数
    ShopTimeInfoList = list()    #(vector<tagGCShopRefreshTime> ShopTimeInfoList)//商店信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ShopCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ShopCnt):
            temShopTimeInfoList = tagGCShopRefreshTime()
            _pos = temShopTimeInfoList.ReadData(_lpData, _pos)
            self.ShopTimeInfoList.append(temShopTimeInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x07
        self.ShopCnt = 0
        self.ShopTimeInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.ShopCnt):
            length += self.ShopTimeInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ShopCnt)
        for i in range(self.ShopCnt):
            data = CommFunc.WriteString(data, self.ShopTimeInfoList[i].GetLength(), self.ShopTimeInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ShopCnt:%d,
                                ShopTimeInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ShopCnt,
                                "..."
                                )
        return DumpString
m_NAtagGCShopRefreshTimeList=tagGCShopRefreshTimeList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCShopRefreshTimeList.Head.Cmd,m_NAtagGCShopRefreshTimeList.Head.SubCmd))] = m_NAtagGCShopRefreshTimeList
#------------------------------------------------------
@@ -5044,171 +4922,55 @@
#------------------------------------------------------
# AC 01 通知领地争夺占领情况 #tagGCManorWarInfo
# AC 07 骑宠Boss信息 #tagGCHorsePetBossInfo
class  tagGCManorInfo(Structure):
    Head = tagHead()
    MapID = 0    #(DWORD MapID)// 领地地图id
    FamilyID = 0    #(DWORD FamilyID)// 占领战盟id
    FNameLen = 0    #(BYTE FNameLen)// 战盟名字长度
    FamilyName = ""    #(String FamilyName)// 战盟名 size = FNameLen
    LNameLen = 0    #(BYTE LNameLen)// 盟主名字长度
    LeaderName = ""    #(String LeaderName)// 盟主名 size = LNameLen
    OccupyDays = 0    #(WORD OccupyDays)// 连续占领天数
    LastFamilyID = 0    #(DWORD LastFamilyID)// 上次占领的战盟id
    data = None
class  tagGCHorsePetBossInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsEnd", c_int),    # 是否已结束(按位代表对应线路是否结束)
                  ]
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x01
        self.Cmd = 0xAC
        self.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FNameLen)
        self.LNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LNameLen)
        self.OccupyDays,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.LastFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x01
        self.MapID = 0
        self.FamilyID = 0
        self.FNameLen = 0
        self.FamilyName = ""
        self.LNameLen = 0
        self.LeaderName = ""
        self.OccupyDays = 0
        self.LastFamilyID = 0
        self.Cmd = 0xAC
        self.SubCmd = 0x07
        self.IsEnd = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 1
        length += len(self.FamilyName)
        length += 1
        length += len(self.LeaderName)
        length += 2
        length += 4
        return length
        return sizeof(tagGCHorsePetBossInfo)
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteDWORD(data, self.FamilyID)
        data = CommFunc.WriteBYTE(data, self.FNameLen)
        data = CommFunc.WriteString(data, self.FNameLen, self.FamilyName)
        data = CommFunc.WriteBYTE(data, self.LNameLen)
        data = CommFunc.WriteString(data, self.LNameLen, self.LeaderName)
        data = CommFunc.WriteWORD(data, self.OccupyDays)
        data = CommFunc.WriteDWORD(data, self.LastFamilyID)
        return data
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                MapID:%d,
                                FamilyID:%d,
                                FNameLen:%d,
                                FamilyName:%s,
                                LNameLen:%d,
                                LeaderName:%s,
                                OccupyDays:%d,
                                LastFamilyID:%d
        DumpString = '''// AC 07 骑宠Boss信息 //tagGCHorsePetBossInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                IsEnd:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.MapID,
                                self.FamilyID,
                                self.FNameLen,
                                self.FamilyName,
                                self.LNameLen,
                                self.LeaderName,
                                self.OccupyDays,
                                self.LastFamilyID
                                self.Cmd,
                                self.SubCmd,
                                self.IsEnd
                                )
        return DumpString
class  tagGCManorWarInfo(Structure):
    Head = tagHead()
    ManorCnt = 0    #(BYTE ManorCnt)//领地个数
    ManorInfoList = list()    #(vector<tagGCManorInfo> ManorInfoList)//领地信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ManorCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ManorCnt):
            temManorInfoList = tagGCManorInfo()
            _pos = temManorInfoList.ReadData(_lpData, _pos)
            self.ManorInfoList.append(temManorInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x01
        self.ManorCnt = 0
        self.ManorInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.ManorCnt):
            length += self.ManorInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ManorCnt)
        for i in range(self.ManorCnt):
            data = CommFunc.WriteString(data, self.ManorInfoList[i].GetLength(), self.ManorInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ManorCnt:%d,
                                ManorInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ManorCnt,
                                "..."
                                )
        return DumpString
m_NAtagGCManorWarInfo=tagGCManorWarInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCManorWarInfo.Head.Cmd,m_NAtagGCManorWarInfo.Head.SubCmd))] = m_NAtagGCManorWarInfo
m_NAtagGCHorsePetBossInfo=tagGCHorsePetBossInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHorsePetBossInfo.Cmd,m_NAtagGCHorsePetBossInfo.SubCmd))] = m_NAtagGCHorsePetBossInfo
#------------------------------------------------------
@@ -5673,132 +5435,6 @@
m_NAtagGCXMZZFightInfo=tagGCXMZZFightInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZFightInfo.Head.Cmd,m_NAtagGCXMZZFightInfo.Head.SubCmd))] = m_NAtagGCXMZZFightInfo
#------------------------------------------------------
# AD 01 特惠活动信息 #tagGCTeHuiActivityInfoList
class  tagGCTeHuiActivityInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActivityType", c_ubyte),    # 活动类型
                  ("ActivityValue", c_int),    # 活动值
                  ("StartDate", c_int),    # 开始时间time
                  ("EndDate", c_int),    # 结束时间time
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAD
        self.SubCmd = 0x01
        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 = 0xAD
        self.SubCmd = 0x01
        self.ActivityType = 0
        self.ActivityValue = 0
        self.StartDate = 0
        self.EndDate = 0
        return
    def GetLength(self):
        return sizeof(tagGCTeHuiActivityInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AD 01 特惠活动信息 //tagGCTeHuiActivityInfoList:
                                Cmd:%s,
                                SubCmd:%s,
                                ActivityType:%d,
                                ActivityValue:%d,
                                StartDate:%d,
                                EndDate:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActivityType,
                                self.ActivityValue,
                                self.StartDate,
                                self.EndDate
                                )
        return DumpString
class  tagGCTeHuiActivityInfoList(Structure):
    Head = tagHead()
    ActivityCount = 0    #(BYTE ActivityCount)//活动信息个数
    ActivityInfoList = list()    #(vector<tagGCTeHuiActivityInfo> ActivityInfoList)//活动信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAD
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActivityCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ActivityCount):
            temActivityInfoList = tagGCTeHuiActivityInfo()
            _pos = temActivityInfoList.ReadData(_lpData, _pos)
            self.ActivityInfoList.append(temActivityInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAD
        self.Head.SubCmd = 0x01
        self.ActivityCount = 0
        self.ActivityInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.ActivityCount):
            length += self.ActivityInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActivityCount)
        for i in range(self.ActivityCount):
            data = CommFunc.WriteString(data, self.ActivityInfoList[i].GetLength(), self.ActivityInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActivityCount:%d,
                                ActivityInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActivityCount,
                                "..."
                                )
        return DumpString
m_NAtagGCTeHuiActivityInfoList=tagGCTeHuiActivityInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeHuiActivityInfoList.Head.Cmd,m_NAtagGCTeHuiActivityInfoList.Head.SubCmd))] = m_NAtagGCTeHuiActivityInfoList
#------------------------------------------------------
@@ -7039,6 +6675,7 @@
    ItemCount = 0    #(WORD ItemCount)
    AddTime = ""    #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
    BidderPrice = 0    #(WORD BidderPrice)//竞拍玩家出价
    BiddingTime = ""    #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
    UserDataLen = 0    #(WORD UserDataLen)
    UserData = ""    #(String UserData)//自定义数据
    data = None
@@ -7055,6 +6692,7 @@
        self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
        return _pos
@@ -7066,6 +6704,7 @@
        self.ItemCount = 0
        self.AddTime = ""
        self.BidderPrice = 0
        self.BiddingTime = ""
        self.UserDataLen = 0
        self.UserData = ""
        return
@@ -7078,6 +6717,7 @@
        length += 2
        length += 19
        length += 2
        length += 19
        length += 2
        length += len(self.UserData)
@@ -7091,6 +6731,7 @@
        data = CommFunc.WriteWORD(data, self.ItemCount)
        data = CommFunc.WriteString(data, 19, self.AddTime)
        data = CommFunc.WriteWORD(data, self.BidderPrice)
        data = CommFunc.WriteString(data, 19, self.BiddingTime)
        data = CommFunc.WriteWORD(data, self.UserDataLen)
        data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
        return data
@@ -7103,6 +6744,7 @@
                                ItemCount:%d,
                                AddTime:%s,
                                BidderPrice:%d,
                                BiddingTime:%s,
                                UserDataLen:%d,
                                UserData:%s
                                '''\
@@ -7113,6 +6755,7 @@
                                self.ItemCount,
                                self.AddTime,
                                self.BidderPrice,
                                self.BiddingTime,
                                self.UserDataLen,
                                self.UserData
                                )
@@ -7195,6 +6838,7 @@
    ItemCount = 0    #(WORD ItemCount)
    AddTime = ""    #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
    BidderPrice = 0    #(WORD BidderPrice)//竞拍玩家出价
    BiddingTime = ""    #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
    UserDataLen = 0    #(WORD UserDataLen)
    UserData = ""    #(String UserData)//自定义数据
    data = None
@@ -7211,6 +6855,7 @@
        self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
        return _pos
@@ -7222,6 +6867,7 @@
        self.ItemCount = 0
        self.AddTime = ""
        self.BidderPrice = 0
        self.BiddingTime = ""
        self.UserDataLen = 0
        self.UserData = ""
        return
@@ -7234,6 +6880,7 @@
        length += 2
        length += 19
        length += 2
        length += 19
        length += 2
        length += len(self.UserData)
@@ -7247,6 +6894,7 @@
        data = CommFunc.WriteWORD(data, self.ItemCount)
        data = CommFunc.WriteString(data, 19, self.AddTime)
        data = CommFunc.WriteWORD(data, self.BidderPrice)
        data = CommFunc.WriteString(data, 19, self.BiddingTime)
        data = CommFunc.WriteWORD(data, self.UserDataLen)
        data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
        return data
@@ -7259,6 +6907,7 @@
                                ItemCount:%d,
                                AddTime:%s,
                                BidderPrice:%d,
                                BiddingTime:%s,
                                UserDataLen:%d,
                                UserData:%s
                                '''\
@@ -7269,6 +6918,7 @@
                                self.ItemCount,
                                self.AddTime,
                                self.BidderPrice,
                                self.BiddingTime,
                                self.UserDataLen,
                                self.UserData
                                )
@@ -7428,6 +7078,7 @@
    AddTime = ""    #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
    BidderID = 0    #(DWORD BidderID)//竞拍玩家ID,也就是当前最高竞价玩家ID
    BidderPrice = 0    #(WORD BidderPrice)//竞拍玩家出价
    BiddingTime = ""    #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
    UserDataLen = 0    #(WORD UserDataLen)
    UserData = ""    #(String UserData)//自定义数据
    data = None
@@ -7445,6 +7096,7 @@
        self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
        return _pos
@@ -7457,6 +7109,7 @@
        self.AddTime = ""
        self.BidderID = 0
        self.BidderPrice = 0
        self.BiddingTime = ""
        self.UserDataLen = 0
        self.UserData = ""
        return
@@ -7470,6 +7123,7 @@
        length += 19
        length += 4
        length += 2
        length += 19
        length += 2
        length += len(self.UserData)
@@ -7484,6 +7138,7 @@
        data = CommFunc.WriteString(data, 19, self.AddTime)
        data = CommFunc.WriteDWORD(data, self.BidderID)
        data = CommFunc.WriteWORD(data, self.BidderPrice)
        data = CommFunc.WriteString(data, 19, self.BiddingTime)
        data = CommFunc.WriteWORD(data, self.UserDataLen)
        data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
        return data
@@ -7497,6 +7152,7 @@
                                AddTime:%s,
                                BidderID:%d,
                                BidderPrice:%d,
                                BiddingTime:%s,
                                UserDataLen:%d,
                                UserData:%s
                                '''\
@@ -7508,6 +7164,7 @@
                                self.AddTime,
                                self.BidderID,
                                self.BidderPrice,
                                self.BiddingTime,
                                self.UserDataLen,
                                self.UserData
                                )
@@ -7697,6 +7354,7 @@
    ItemCount = 0    #(WORD ItemCount)
    AddTime = ""    #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
    BidderPrice = 0    #(WORD BidderPrice)//竞拍玩家出价
    BiddingTime = ""    #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
    UserDataLen = 0    #(WORD UserDataLen)
    UserData = ""    #(String UserData)//自定义数据
    FamilyPlayerIDLen = 0    #(WORD FamilyPlayerIDLen)
@@ -7716,6 +7374,7 @@
        self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
        self.FamilyPlayerIDLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -7730,6 +7389,7 @@
        self.ItemCount = 0
        self.AddTime = ""
        self.BidderPrice = 0
        self.BiddingTime = ""
        self.UserDataLen = 0
        self.UserData = ""
        self.FamilyPlayerIDLen = 0
@@ -7745,6 +7405,7 @@
        length += 2
        length += 19
        length += 2
        length += 19
        length += 2
        length += len(self.UserData)
        length += 2
@@ -7761,6 +7422,7 @@
        data = CommFunc.WriteWORD(data, self.ItemCount)
        data = CommFunc.WriteString(data, 19, self.AddTime)
        data = CommFunc.WriteWORD(data, self.BidderPrice)
        data = CommFunc.WriteString(data, 19, self.BiddingTime)
        data = CommFunc.WriteWORD(data, self.UserDataLen)
        data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
        data = CommFunc.WriteWORD(data, self.FamilyPlayerIDLen)
@@ -7776,6 +7438,7 @@
                                ItemCount:%d,
                                AddTime:%s,
                                BidderPrice:%d,
                                BiddingTime:%s,
                                UserDataLen:%d,
                                UserData:%s,
                                FamilyPlayerIDLen:%d,
@@ -7789,6 +7452,7 @@
                                self.ItemCount,
                                self.AddTime,
                                self.BidderPrice,
                                self.BiddingTime,
                                self.UserDataLen,
                                self.UserData,
                                self.FamilyPlayerIDLen,
@@ -7874,6 +7538,7 @@
    ItemCount = 0    #(WORD ItemCount)
    AddTime = ""    #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
    BidderPrice = 0    #(WORD BidderPrice)//竞拍玩家出价
    BiddingTime = ""    #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
    UserDataLen = 0    #(WORD UserDataLen)
    UserData = ""    #(String UserData)//自定义数据
    data = None
@@ -7890,6 +7555,7 @@
        self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
        return _pos
@@ -7901,6 +7567,7 @@
        self.ItemCount = 0
        self.AddTime = ""
        self.BidderPrice = 0
        self.BiddingTime = ""
        self.UserDataLen = 0
        self.UserData = ""
        return
@@ -7913,6 +7580,7 @@
        length += 2
        length += 19
        length += 2
        length += 19
        length += 2
        length += len(self.UserData)
@@ -7926,6 +7594,7 @@
        data = CommFunc.WriteWORD(data, self.ItemCount)
        data = CommFunc.WriteString(data, 19, self.AddTime)
        data = CommFunc.WriteWORD(data, self.BidderPrice)
        data = CommFunc.WriteString(data, 19, self.BiddingTime)
        data = CommFunc.WriteWORD(data, self.UserDataLen)
        data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
        return data
@@ -7938,6 +7607,7 @@
                                ItemCount:%d,
                                AddTime:%s,
                                BidderPrice:%d,
                                BiddingTime:%s,
                                UserDataLen:%d,
                                UserData:%s
                                '''\
@@ -7948,6 +7618,7 @@
                                self.ItemCount,
                                self.AddTime,
                                self.BidderPrice,
                                self.BiddingTime,
                                self.UserDataLen,
                                self.UserData
                                )
@@ -8206,6 +7877,7 @@
    AddTime = ""    #(char AddTime[19])//上架时间
    BidderID = 0    #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID    
    BidderPrice = 0    #(DWORD BidderPrice)//最高竞拍价格
    BiddingTime = ""    #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
    data = None
    def __init__(self):
@@ -8219,6 +7891,7 @@
        self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
        return _pos
    def Clear(self):
@@ -8227,6 +7900,7 @@
        self.AddTime = ""
        self.BidderID = 0
        self.BidderPrice = 0
        self.BiddingTime = ""
        return
    def GetLength(self):
@@ -8236,6 +7910,7 @@
        length += 19
        length += 4
        length += 4
        length += 19
        return length
@@ -8246,6 +7921,7 @@
        data = CommFunc.WriteString(data, 19, self.AddTime)
        data = CommFunc.WriteDWORD(data, self.BidderID)
        data = CommFunc.WriteDWORD(data, self.BidderPrice)
        data = CommFunc.WriteString(data, 19, self.BiddingTime)
        return data
    def OutputString(self):
@@ -8254,14 +7930,16 @@
                                AuctionType:%d,
                                AddTime:%s,
                                BidderID:%d,
                                BidderPrice:%d
                                BidderPrice:%d,
                                BiddingTime:%s
                                '''\
                                %(
                                self.ItemGUID,
                                self.AuctionType,
                                self.AddTime,
                                self.BidderID,
                                self.BidderPrice
                                self.BidderPrice,
                                self.BiddingTime
                                )
        return DumpString
@@ -13890,127 +13568,6 @@
#------------------------------------------------------
# A3 09 通知玩家部位套装等级 #tagMCEquipPartSuiteLVInfo
class  tagMCEquipPartSuiteLV(Structure):
    EquipIndex = 0    #(BYTE EquipIndex)
    Len = 0    #(WORD Len)//长度
    SuiteLVInfo = ""    #(String SuiteLVInfo)//{套装类型:等级}
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.SuiteLVInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
        return _pos
    def Clear(self):
        self.EquipIndex = 0
        self.Len = 0
        self.SuiteLVInfo = ""
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 2
        length += len(self.SuiteLVInfo)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.EquipIndex)
        data = CommFunc.WriteWORD(data, self.Len)
        data = CommFunc.WriteString(data, self.Len, self.SuiteLVInfo)
        return data
    def OutputString(self):
        DumpString = '''
                                EquipIndex:%d,
                                Len:%d,
                                SuiteLVInfo:%s
                                '''\
                                %(
                                self.EquipIndex,
                                self.Len,
                                self.SuiteLVInfo
                                )
        return DumpString
class  tagMCEquipPartSuiteLVInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)// 信息个数
    InfoList = list()    #(vector<tagMCEquipPartSuiteLV> InfoList)// 信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x09
        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):
            temInfoList = tagMCEquipPartSuiteLV()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x09
        self.Count = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCEquipPartSuiteLVInfo=tagMCEquipPartSuiteLVInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartSuiteLVInfo.Head.Cmd,m_NAtagMCEquipPartSuiteLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartSuiteLVInfo
#------------------------------------------------------
# A3 BB 装备位洗练属性信息 #tagMCEquipPartXLAttrInfo
class  tagMCEquipPartXLAttrValue(Structure):
@@ -15176,73 +14733,6 @@
#------------------------------------------------------
# A3 12 通知玩家法宝信息 #tagMCMagicWeaponData
class  tagMCMagicWeaponData(Structure):
    Head = tagHead()
    Num = 0    #(BYTE Num)//个数
    MagicWeaponID = list()    #(vector<DWORD> MagicWeaponID)// 已激活的法宝ID列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x12
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Num):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.MagicWeaponID.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x12
        self.Num = 0
        self.MagicWeaponID = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4 * self.Num
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Num)
        for i in range(self.Num):
            data = CommFunc.WriteDWORD(data, self.MagicWeaponID[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Num:%d,
                                MagicWeaponID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Num,
                                "..."
                                )
        return DumpString
m_NAtagMCMagicWeaponData=tagMCMagicWeaponData()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponData.Head.Cmd,m_NAtagMCMagicWeaponData.Head.SubCmd))] = m_NAtagMCMagicWeaponData
#------------------------------------------------------
# A3 52 法宝等级信息 #tagMCMagicWeaponLVInfo
class  tagMCMagicWeaponInfo(Structure):
@@ -15251,7 +14741,6 @@
                  ("MWID", c_int),    
                  ("LV", c_ubyte),    
                  ("Exp", c_int),    
                  ("State", c_ubyte),    #是否点击法宝认主
                  ("FBPassLV", c_ubyte),    #副本关卡
                  ("IsWear", c_ubyte),    #是否佩戴(仅适用王者法宝)
                  ]
@@ -15269,7 +14758,6 @@
        self.MWID = 0
        self.LV = 0
        self.Exp = 0
        self.State = 0
        self.FBPassLV = 0
        self.IsWear = 0
        return
@@ -15285,7 +14773,6 @@
                                MWID:%d,
                                LV:%d,
                                Exp:%d,
                                State:%d,
                                FBPassLV:%d,
                                IsWear:%d
                                '''\
@@ -15293,7 +14780,6 @@
                                self.MWID,
                                self.LV,
                                self.Exp,
                                self.State,
                                self.FBPassLV,
                                self.IsWear
                                )
@@ -15783,126 +15269,6 @@
m_NAtagMCModuleFightPowerInfo=tagMCModuleFightPowerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCModuleFightPowerInfo.Head.Cmd,m_NAtagMCModuleFightPowerInfo.Head.SubCmd))] = m_NAtagMCModuleFightPowerInfo
#------------------------------------------------------
# A3 53 法宝特权数据 #tagMCMWPrivilegeDataInfo
class  tagMCMWPrivilegeData(Structure):
    _pack_ = 1
    _fields_ = [
                  ("PriID", c_int),    # 特权ID
                  ("State", c_ubyte),    #激活状态
                  ("CurValue", c_int),    #当前总进度
                  ("GotValue", c_int),    #已领取进度
                  ("ItemAwardState", c_ubyte),    #物品奖励是否已领取
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.PriID = 0
        self.State = 0
        self.CurValue = 0
        self.GotValue = 0
        self.ItemAwardState = 0
        return
    def GetLength(self):
        return sizeof(tagMCMWPrivilegeData)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 53 法宝特权数据 //tagMCMWPrivilegeDataInfo:
                                PriID:%d,
                                State:%d,
                                CurValue:%d,
                                GotValue:%d,
                                ItemAwardState:%d
                                '''\
                                %(
                                self.PriID,
                                self.State,
                                self.CurValue,
                                self.GotValue,
                                self.ItemAwardState
                                )
        return DumpString
class  tagMCMWPrivilegeDataInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)// 信息个数
    InfoList = list()    #(vector<tagMCMWPrivilegeData> InfoList)// 信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x53
        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):
            temInfoList = tagMCMWPrivilegeData()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x53
        self.Count = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCMWPrivilegeDataInfo=tagMCMWPrivilegeDataInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMWPrivilegeDataInfo.Head.Cmd,m_NAtagMCMWPrivilegeDataInfo.Head.SubCmd))] = m_NAtagMCMWPrivilegeDataInfo
#------------------------------------------------------
@@ -16649,6 +16015,66 @@
m_NAtagMCPrayElixirResult=tagMCPrayElixirResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPrayElixirResult.Cmd,m_NAtagMCPrayElixirResult.SubCmd))] = m_NAtagMCPrayElixirResult
#------------------------------------------------------
# A3 27 境界修为池信息 #tagMCRealmExpInfo
class  tagMCRealmExpInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("BeginTime", c_int),    #开始计时时间
                  ("CurExp", c_int),    #当前总经验
                  ("CurExpPoint", c_int),    #当前总经验点
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x27
        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 = 0x27
        self.BeginTime = 0
        self.CurExp = 0
        self.CurExpPoint = 0
        return
    def GetLength(self):
        return sizeof(tagMCRealmExpInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 27 境界修为池信息 //tagMCRealmExpInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                BeginTime:%d,
                                CurExp:%d,
                                CurExpPoint:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.BeginTime,
                                self.CurExp,
                                self.CurExpPoint
                                )
        return DumpString
m_NAtagMCRealmExpInfo=tagMCRealmExpInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRealmExpInfo.Cmd,m_NAtagMCRealmExpInfo.SubCmd))] = m_NAtagMCRealmExpInfo
#------------------------------------------------------
@@ -17506,18 +16932,14 @@
#------------------------------------------------------
# A3 11 通知玩家境界渡劫是否开启 #tagMCSyncRealmFBIsOpen
# A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
class  tagMCSyncRealmFBIsOpen(Structure):
class  tagMCSyncRealmInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsOpen", c_ubyte),    #是否开启
                  ("SitAllTime", c_ushort),    #打坐总时间秒
                  ("SitRemainTime", c_int),    #开始打坐前剩余时间秒
                  ("SitStartTime", c_int),    #开始打坐时间
                  ("LastEnterTime", c_int),    #上次进入渡劫副本时间
                  ("IsPass", c_ubyte),    #是否通关副本
                  ]
    def __init__(self):
@@ -17534,43 +16956,31 @@
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x11
        self.IsOpen = 0
        self.SitAllTime = 0
        self.SitRemainTime = 0
        self.SitStartTime = 0
        self.LastEnterTime = 0
        self.IsPass = 0
        return
    def GetLength(self):
        return sizeof(tagMCSyncRealmFBIsOpen)
        return sizeof(tagMCSyncRealmInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 11 通知玩家境界渡劫是否开启 //tagMCSyncRealmFBIsOpen:
        DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                IsOpen:%d,
                                SitAllTime:%d,
                                SitRemainTime:%d,
                                SitStartTime:%d,
                                LastEnterTime:%d
                                IsPass:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsOpen,
                                self.SitAllTime,
                                self.SitRemainTime,
                                self.SitStartTime,
                                self.LastEnterTime
                                self.IsPass
                                )
        return DumpString
m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen
m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
#------------------------------------------------------
@@ -18473,74 +17883,6 @@
m_NAtagMCFamilyRedPacketGoldLimit=tagMCFamilyRedPacketGoldLimit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyRedPacketGoldLimit.Cmd,m_NAtagMCFamilyRedPacketGoldLimit.SubCmd))] = m_NAtagMCFamilyRedPacketGoldLimit
#------------------------------------------------------
#A5 34 天梯竞技场状态#tagMCHighLadderState
class  tagMCHighLadderState(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Count", c_ubyte),    #已挑战次数
                  ("MaxCount", c_ubyte),    #最大次数
                  ("CDTime", c_int),    #累计冷却时间
                  ("IsRelCD", c_ubyte),    #是否正在真实冷却状态
                  ("Currency", c_int),    #积分
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x34
        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 = 0x34
        self.Count = 0
        self.MaxCount = 0
        self.CDTime = 0
        self.IsRelCD = 0
        self.Currency = 0
        return
    def GetLength(self):
        return sizeof(tagMCHighLadderState)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A5 34 天梯竞技场状态//tagMCHighLadderState:
                                Cmd:%s,
                                SubCmd:%s,
                                Count:%d,
                                MaxCount:%d,
                                CDTime:%d,
                                IsRelCD:%d,
                                Currency:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Count,
                                self.MaxCount,
                                self.CDTime,
                                self.IsRelCD,
                                self.Currency
                                )
        return DumpString
m_NAtagMCHighLadderState=tagMCHighLadderState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHighLadderState.Cmd,m_NAtagMCHighLadderState.SubCmd))] = m_NAtagMCHighLadderState
#------------------------------------------------------
@@ -21414,126 +20756,6 @@
#------------------------------------------------------
# A8 04 通知商店限购物品已购买次数信息 # tagMCShopItemBuyCntInfoList
class  tagMCShopItemBuyCntInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ShopID", c_int),
                  ("ItemShopIndex", c_ushort),
                  ("ItemID", c_int),
                  ("BuyCnt", c_int),    # 个人已购买数
                  ("ServerBuyCnt", 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.ShopID = 0
        self.ItemShopIndex = 0
        self.ItemID = 0
        self.BuyCnt = 0
        self.ServerBuyCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCShopItemBuyCntInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 04 通知商店限购物品已购买次数信息 // tagMCShopItemBuyCntInfoList:
                                ShopID:%d,
                                ItemShopIndex:%d,
                                ItemID:%d,
                                BuyCnt:%d,
                                ServerBuyCnt:%d
                                '''\
                                %(
                                self.ShopID,
                                self.ItemShopIndex,
                                self.ItemID,
                                self.BuyCnt,
                                self.ServerBuyCnt
                                )
        return DumpString
class  tagMCShopItemBuyCntInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//通知个数
    BuyCntList = list()    #(vector<tagMCShopItemBuyCntInfo> BuyCntList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x04
        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):
            temBuyCntList = tagMCShopItemBuyCntInfo()
            _pos = temBuyCntList.ReadData(_lpData, _pos)
            self.BuyCntList.append(temBuyCntList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x04
        self.Count = 0
        self.BuyCntList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.BuyCntList[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.BuyCntList[i].GetLength(), self.BuyCntList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                BuyCntList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShopItemBuyCntInfoList=tagMCShopItemBuyCntInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemBuyCntInfoList.Head.Cmd,m_NAtagMCShopItemBuyCntInfoList.Head.SubCmd))] = m_NAtagMCShopItemBuyCntInfoList
#------------------------------------------------------
# A8 02 通知NPC商店物品今日已购买次数 #tagMCShopItemDayBuyCntInfo
class  tagMCShopItemDayBuyCnt(Structure):
@@ -21643,239 +20865,6 @@
m_NAtagMCShopItemDayBuyCntInfo=tagMCShopItemDayBuyCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemDayBuyCntInfo.Head.Cmd,m_NAtagMCShopItemDayBuyCntInfo.Head.SubCmd))] = m_NAtagMCShopItemDayBuyCntInfo
#------------------------------------------------------
# A8 03 通知自定义商店物品信息 #tagMCShopItemInfoList
class  tagMCShopItemInfo(Structure):
    ShopID = 0    #(DWORD ShopID)
    ItemShopIndex = 0    #(WORD ItemShopIndex)
    DataSize = 0    #(DWORD DataSize)
    ItemList = ""    #(String ItemList)//物品列表[[物品ID,数量,是否绑定,是否定制]]
    PriceType = 0    #(BYTE PriceType)
    Price = 0    #(DWORD Price)
    OriginalPrice = 0    #(DWORD OriginalPrice)// 原价
    PlayerLVLimit = 0    #(WORD PlayerLVLimit)// 购买等级限制
    FamilyLVLimit = 0    #(BYTE FamilyLVLimit)// 购买战盟等级限制
    MaxBuyCnt = 0    #(DWORD MaxBuyCnt)// 个人限购数
    ServerMaxBuyCnt = 0    #(DWORD ServerMaxBuyCnt)// 全服限购数
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.ShopID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemShopIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemList,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize)
        self.PriceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Price,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.OriginalPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerLVLimit,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.FamilyLVLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerMaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.ShopID = 0
        self.ItemShopIndex = 0
        self.DataSize = 0
        self.ItemList = ""
        self.PriceType = 0
        self.Price = 0
        self.OriginalPrice = 0
        self.PlayerLVLimit = 0
        self.FamilyLVLimit = 0
        self.MaxBuyCnt = 0
        self.ServerMaxBuyCnt = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 2
        length += 4
        length += len(self.ItemList)
        length += 1
        length += 4
        length += 4
        length += 2
        length += 1
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.ShopID)
        data = CommFunc.WriteWORD(data, self.ItemShopIndex)
        data = CommFunc.WriteDWORD(data, self.DataSize)
        data = CommFunc.WriteString(data, self.DataSize, self.ItemList)
        data = CommFunc.WriteBYTE(data, self.PriceType)
        data = CommFunc.WriteDWORD(data, self.Price)
        data = CommFunc.WriteDWORD(data, self.OriginalPrice)
        data = CommFunc.WriteWORD(data, self.PlayerLVLimit)
        data = CommFunc.WriteBYTE(data, self.FamilyLVLimit)
        data = CommFunc.WriteDWORD(data, self.MaxBuyCnt)
        data = CommFunc.WriteDWORD(data, self.ServerMaxBuyCnt)
        return data
    def OutputString(self):
        DumpString = '''
                                ShopID:%d,
                                ItemShopIndex:%d,
                                DataSize:%d,
                                ItemList:%s,
                                PriceType:%d,
                                Price:%d,
                                OriginalPrice:%d,
                                PlayerLVLimit:%d,
                                FamilyLVLimit:%d,
                                MaxBuyCnt:%d,
                                ServerMaxBuyCnt:%d
                                '''\
                                %(
                                self.ShopID,
                                self.ItemShopIndex,
                                self.DataSize,
                                self.ItemList,
                                self.PriceType,
                                self.Price,
                                self.OriginalPrice,
                                self.PlayerLVLimit,
                                self.FamilyLVLimit,
                                self.MaxBuyCnt,
                                self.ServerMaxBuyCnt
                                )
        return DumpString
class  tagMCShopItemInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//通知个数
    ShopItemList = list()    #(vector<tagMCShopItemInfo> ShopItemList)
    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.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temShopItemList = tagMCShopItemInfo()
            _pos = temShopItemList.ReadData(_lpData, _pos)
            self.ShopItemList.append(temShopItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x03
        self.Count = 0
        self.ShopItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.ShopItemList[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.ShopItemList[i].GetLength(), self.ShopItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                ShopItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShopItemInfoList=tagMCShopItemInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemInfoList.Head.Cmd,m_NAtagMCShopItemInfoList.Head.SubCmd))] = m_NAtagMCShopItemInfoList
#------------------------------------------------------
# A8 05 通知神秘商店刷新次数 #tagMCShopRefreshCnt
class  tagMCShopRefreshCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),    #商店ID
                  ("RefreshCnt", c_ushort),    #已手动刷新次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA8
        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 = 0xA8
        self.SubCmd = 0x05
        self.ShopID = 0
        self.RefreshCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCShopRefreshCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 05 通知神秘商店刷新次数 //tagMCShopRefreshCnt:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                RefreshCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.RefreshCnt
                                )
        return DumpString
m_NAtagMCShopRefreshCnt=tagMCShopRefreshCnt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopRefreshCnt.Cmd,m_NAtagMCShopRefreshCnt.SubCmd))] = m_NAtagMCShopRefreshCnt
#------------------------------------------------------
@@ -23323,240 +22312,6 @@
m_NAtagMCAllPeoplePartyInfo=tagMCAllPeoplePartyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllPeoplePartyInfo.Head.Cmd,m_NAtagMCAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCAllPeoplePartyInfo
#------------------------------------------------------
# AA 03 升阶功能特惠奖励记录 #tagMCClassUPDayAwardRecordList
class  tagMCClassUPDayAwardRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DayType", c_ubyte),    # 奖励日类型
                  ("Record", c_int),    # 奖励记录
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        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 = 0xAA
        self.SubCmd = 0x03
        self.DayType = 0
        self.Record = 0
        return
    def GetLength(self):
        return sizeof(tagMCClassUPDayAwardRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 03 升阶功能特惠奖励记录 //tagMCClassUPDayAwardRecordList:
                                Cmd:%s,
                                SubCmd:%s,
                                DayType:%d,
                                Record:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DayType,
                                self.Record
                                )
        return DumpString
class  tagMCClassUPDayAwardRecordList(Structure):
    Head = tagHead()
    RecordCount = 0    #(BYTE RecordCount)//记录个数
    RecordInfoList = list()    #(vector<tagMCClassUPDayAwardRecord> RecordInfoList)//记录列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RecordCount):
            temRecordInfoList = tagMCClassUPDayAwardRecord()
            _pos = temRecordInfoList.ReadData(_lpData, _pos)
            self.RecordInfoList.append(temRecordInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x03
        self.RecordCount = 0
        self.RecordInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.RecordCount):
            length += self.RecordInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.RecordCount)
        for i in range(self.RecordCount):
            data = CommFunc.WriteString(data, self.RecordInfoList[i].GetLength(), self.RecordInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RecordCount:%d,
                                RecordInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RecordCount,
                                "..."
                                )
        return DumpString
m_NAtagMCClassUPDayAwardRecordList=tagMCClassUPDayAwardRecordList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClassUPDayAwardRecordList.Head.Cmd,m_NAtagMCClassUPDayAwardRecordList.Head.SubCmd))] = m_NAtagMCClassUPDayAwardRecordList
#------------------------------------------------------
# AA 06 消费奖励信息 #tagMCCostProfitInfo
class  tagMCCostProfitInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalCost", c_int),    # 总消费
                  ("AwardState", c_int),    # 奖励领取状态
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        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 = 0xAA
        self.SubCmd = 0x06
        self.ActionID = 0
        self.TotalCost = 0
        self.AwardState = 0
        return
    def GetLength(self):
        return sizeof(tagMCCostProfitInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 06 消费奖励信息 //tagMCCostProfitInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalCost:%d,
                                AwardState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalCost,
                                self.AwardState
                                )
        return DumpString
m_NAtagMCCostProfitInfo=tagMCCostProfitInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostProfitInfo.Cmd,m_NAtagMCCostProfitInfo.SubCmd))] = m_NAtagMCCostProfitInfo
#------------------------------------------------------
# AA 07 消费排行特惠信息 #tagMCCostRankTeHuiInfo
class  tagMCCostRankTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalCost", c_int),    # 总累计消费钻石
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        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 = 0xAA
        self.SubCmd = 0x07
        self.ActionID = 0
        self.TotalCost = 0
        return
    def GetLength(self):
        return sizeof(tagMCCostRankTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 07 消费排行特惠信息 //tagMCCostRankTeHuiInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalCost:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalCost
                                )
        return DumpString
m_NAtagMCCostRankTeHuiInfo=tagMCCostRankTeHuiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRankTeHuiInfo.Cmd,m_NAtagMCCostRankTeHuiInfo.SubCmd))] = m_NAtagMCCostRankTeHuiInfo
#------------------------------------------------------
@@ -25758,198 +24513,6 @@
#------------------------------------------------------
# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
class  tagMCRechargeRankTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalGold", c_int),    # 总累计充值元宝
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        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 = 0xAA
        self.SubCmd = 0x05
        self.ActionID = 0
        self.TotalGold = 0
        return
    def GetLength(self):
        return sizeof(tagMCRechargeRankTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 05 充值排行特惠信息 //tagMCRechargeRankTeHuiInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalGold:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalGold
                                )
        return DumpString
m_NAtagMCRechargeRankTeHuiInfo=tagMCRechargeRankTeHuiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRankTeHuiInfo.Cmd,m_NAtagMCRechargeRankTeHuiInfo.SubCmd))] = m_NAtagMCRechargeRankTeHuiInfo
#------------------------------------------------------
# AA 04 充值特惠信息 #tagMCRechargeTeHuiInfoList
class  tagMCRechargeTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GotCnt", c_ubyte),    # 已领取次数
                  ("CanGetCnt", c_ubyte),    # 当前可领取次数
                  ("CurTotalGold", c_int),    # 当前规则累计充值元宝-仅针对累充规则
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x04
        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 = 0xAA
        self.SubCmd = 0x04
        self.GotCnt = 0
        self.CanGetCnt = 0
        self.CurTotalGold = 0
        return
    def GetLength(self):
        return sizeof(tagMCRechargeTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 04 充值特惠信息 //tagMCRechargeTeHuiInfoList:
                                Cmd:%s,
                                SubCmd:%s,
                                GotCnt:%d,
                                CanGetCnt:%d,
                                CurTotalGold:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GotCnt,
                                self.CanGetCnt,
                                self.CurTotalGold
                                )
        return DumpString
class  tagMCRechargeTeHuiInfoList(Structure):
    Head = tagHead()
    ActionID = 0    #(DWORD ActionID)// 活动ID
    TotalGold = 0    #(DWORD TotalGold)// 总累计充值元宝
    InfoCnt = 0    #(BYTE InfoCnt)// 信息个数
    InfoList = list()    #(vector<tagMCRechargeTeHuiInfo> InfoList)// 信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActionID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TotalGold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.InfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.InfoCnt):
            temInfoList = tagMCRechargeTeHuiInfo()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x04
        self.ActionID = 0
        self.TotalGold = 0
        self.InfoCnt = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 1
        for i in range(self.InfoCnt):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.ActionID)
        data = CommFunc.WriteDWORD(data, self.TotalGold)
        data = CommFunc.WriteBYTE(data, self.InfoCnt)
        for i in range(self.InfoCnt):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActionID:%d,
                                TotalGold:%d,
                                InfoCnt:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActionID,
                                self.TotalGold,
                                self.InfoCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCRechargeTeHuiInfoList=tagMCRechargeTeHuiInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeTeHuiInfoList.Head.Cmd,m_NAtagMCRechargeTeHuiInfoList.Head.SubCmd))] = m_NAtagMCRechargeTeHuiInfoList
#------------------------------------------------------
# AA 11 限时特惠活动信息 #tagMCSpringSaleInfo
class  tagMCSpringSaleItem(Structure):
@@ -27137,310 +25700,6 @@
m_NAtagMCBossRebornPlayerInfo=tagMCBossRebornPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornPlayerInfo.Head.Cmd,m_NAtagMCBossRebornPlayerInfo.Head.SubCmd))] = m_NAtagMCBossRebornPlayerInfo
#------------------------------------------------------
# AB 06 活动物品兑换次数记录 #tagMCExchangeActionItemCntRecord
class  tagMCExchangeActionItemCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ItemID", c_int),
                  ("ExcCnt", c_int),    # 已兑换次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        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 = 0xAB
        self.SubCmd = 0x06
        self.ItemID = 0
        self.ExcCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCExchangeActionItemCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 06 活动物品兑换次数记录 //tagMCExchangeActionItemCntRecord:
                                Cmd:%s,
                                SubCmd:%s,
                                ItemID:%d,
                                ExcCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ItemID,
                                self.ExcCnt
                                )
        return DumpString
class  tagMCExchangeActionItemCntRecord(Structure):
    Head = tagHead()
    ActionKeyLen = 0    #(BYTE ActionKeyLen)
    ActionKey = ""    #(String ActionKey)
    RecordCnt = 0    #(BYTE RecordCnt)
    RecordList = list()    #(vector<tagMCExchangeActionItemCnt> RecordList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x06
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActionKeyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ActionKey,_pos = CommFunc.ReadString(_lpData, _pos,self.ActionKeyLen)
        self.RecordCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RecordCnt):
            temRecordList = tagMCExchangeActionItemCnt()
            _pos = temRecordList.ReadData(_lpData, _pos)
            self.RecordList.append(temRecordList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x06
        self.ActionKeyLen = 0
        self.ActionKey = ""
        self.RecordCnt = 0
        self.RecordList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.ActionKey)
        length += 1
        for i in range(self.RecordCnt):
            length += self.RecordList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActionKeyLen)
        data = CommFunc.WriteString(data, self.ActionKeyLen, self.ActionKey)
        data = CommFunc.WriteBYTE(data, self.RecordCnt)
        for i in range(self.RecordCnt):
            data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActionKeyLen:%d,
                                ActionKey:%s,
                                RecordCnt:%d,
                                RecordList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActionKeyLen,
                                self.ActionKey,
                                self.RecordCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCExchangeActionItemCntRecord=tagMCExchangeActionItemCntRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCExchangeActionItemCntRecord.Head.Cmd,m_NAtagMCExchangeActionItemCntRecord.Head.SubCmd))] = m_NAtagMCExchangeActionItemCntRecord
#------------------------------------------------------
# AB 07 节日活动奖励状态 #tagMCFestivalLoginAwardState
class  tagMCFestivalLoginAwardState(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("FestivalType", c_ubyte),    # 节日类型
                  ("State", c_int),    # 领取状态 <按位取值,0-未领取 1-可领取 2-已领取>
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        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 = 0xAB
        self.SubCmd = 0x07
        self.FestivalType = 0
        self.State = 0
        return
    def GetLength(self):
        return sizeof(tagMCFestivalLoginAwardState)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 07 节日活动奖励状态 //tagMCFestivalLoginAwardState:
                                Cmd:%s,
                                SubCmd:%s,
                                FestivalType:%d,
                                State:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.FestivalType,
                                self.State
                                )
        return DumpString
m_NAtagMCFestivalLoginAwardState=tagMCFestivalLoginAwardState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFestivalLoginAwardState.Cmd,m_NAtagMCFestivalLoginAwardState.SubCmd))] = m_NAtagMCFestivalLoginAwardState
#------------------------------------------------------
# AB 02  领地占领每日奖励领奖情况 #tagMCManorDailyAward
class  tagMCManorDailyAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("AwardRecord", c_int),    # 按位表示每个领地领取情况;0-未领,1-已领
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x02
        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 = 0x02
        self.AwardRecord = 0
        return
    def GetLength(self):
        return sizeof(tagMCManorDailyAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 02  领地占领每日奖励领奖情况 //tagMCManorDailyAward:
                                Cmd:%s,
                                SubCmd:%s,
                                AwardRecord:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.AwardRecord
                                )
        return DumpString
m_NAtagMCManorDailyAward=tagMCManorDailyAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorDailyAward.Cmd,m_NAtagMCManorDailyAward.SubCmd))] = m_NAtagMCManorDailyAward
#------------------------------------------------------
# AB 01  通知领地战结果 #tagMCManorWarResult
class  tagMCManorWarResult(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Type", c_ubyte),    # 0-普通信息;1-活动结果总结
                  ("Result", c_ubyte),    # 战盟胜负情况;0-未知,1-胜利,2-失败
                  ("JoinTime", c_int),    # 活动时总参与时间,毫秒
                  ("JoinAward", c_ubyte),    # 参与奖状态;0-不可领,1-可领,2-已领
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x01
        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 = 0x01
        self.Type = 0
        self.Result = 0
        self.JoinTime = 0
        self.JoinAward = 0
        return
    def GetLength(self):
        return sizeof(tagMCManorWarResult)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 01  通知领地战结果 //tagMCManorWarResult:
                                Cmd:%s,
                                SubCmd:%s,
                                Type:%d,
                                Result:%d,
                                JoinTime:%d,
                                JoinAward:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Type,
                                self.Result,
                                self.JoinTime,
                                self.JoinAward
                                )
        return DumpString
m_NAtagMCManorWarResult=tagMCManorWarResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorWarResult.Cmd,m_NAtagMCManorWarResult.SubCmd))] = m_NAtagMCManorWarResult
#------------------------------------------------------
@@ -28813,6 +27072,83 @@
#------------------------------------------------------
# B1 07 玩家点数信息 #tagMCRolePointInfo
class  tagMCRolePointInfo(Structure):
    Head = tagHead()
    PointAttrIDCount = 0    #(BYTE PointAttrIDCount)// 点类型个数
    PointAttrIDList = list()    #(vector<BYTE> PointAttrIDList)// 点类型列表
    PointValueList = list()    #(vector<WORD> PointValueList)// 点类型对应已加自由点数列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.PointAttrIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.PointAttrIDCount):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.PointAttrIDList.append(value)
        for i in range(self.PointAttrIDCount):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.PointValueList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x07
        self.PointAttrIDCount = 0
        self.PointAttrIDList = list()
        self.PointValueList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1 * self.PointAttrIDCount
        length += 2 * self.PointAttrIDCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.PointAttrIDCount)
        for i in range(self.PointAttrIDCount):
            data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i])
        for i in range(self.PointAttrIDCount):
            data = CommFunc.WriteWORD(data, self.PointValueList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                PointAttrIDCount:%d,
                                PointAttrIDList:%s,
                                PointValueList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.PointAttrIDCount,
                                "...",
                                "..."
                                )
        return DumpString
m_NAtagMCRolePointInfo=tagMCRolePointInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRolePointInfo.Head.Cmd,m_NAtagMCRolePointInfo.Head.SubCmd))] = m_NAtagMCRolePointInfo
#------------------------------------------------------
# B1 01 玩家技能连击通知 #tagMCSkillCombo
class  tagMCSkillCombo(Structure):