xdh
2018-10-25 6366979426fccd97c0cb0bd384ada3a8b9843a24
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -4234,6 +4234,114 @@
#------------------------------------------------------
# A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
class  tagGCStoreServerBuyCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GoodsID", c_int),    #商品标识
                  ("BuyCnt", 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.BuyCnt = 0
        return
    def GetLength(self):
        return sizeof(tagGCStoreServerBuyCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A9 06 商城全服购买次数通知 //tagGCStoreServerBuyCntInfo:
                                GoodsID:%d,
                                BuyCnt:%d
                                '''\
                                %(
                                self.GoodsID,
                                self.BuyCnt
                                )
        return DumpString
class  tagGCStoreServerBuyCntInfo(Structure):
    Head = tagHead()
    Count = 0    #(WORD Count)//数量
    InfoList = list()    #(vector<tagGCStoreServerBuyCnt> InfoList)//次数信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        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):
            temInfoList = tagGCStoreServerBuyCnt()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x06
        self.Count = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        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.WriteWORD(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_NAtagGCStoreServerBuyCntInfo=tagGCStoreServerBuyCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCStoreServerBuyCntInfo.Head.Cmd,m_NAtagGCStoreServerBuyCntInfo.Head.SubCmd))] = m_NAtagGCStoreServerBuyCntInfo
#------------------------------------------------------
#A9 21 角色改名结果 #tagUpdatePlayerNameResult
class  tagUpdatePlayerNameResult(Structure):
@@ -18938,6 +19046,449 @@
#------------------------------------------------------
# AA 1B 许愿池拖动结果 #tagMCActWishingDragResult
class  tagMCPlayerWishingDragInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("WellType", c_ubyte),    # 库 0-可选库 1-结果库
                  ("Index", c_ubyte),    # 索引
                  ("ItemID", c_int),    # 物品ID
                  ("ItemCnt", c_ushort),    # 物品数量
                  ("IsBind", c_ubyte),    # 是否绑定
                  ("IsSpecial", 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.WellType = 0
        self.Index = 0
        self.ItemID = 0
        self.ItemCnt = 0
        self.IsBind = 0
        self.IsSpecial = 0
        return
    def GetLength(self):
        return sizeof(tagMCPlayerWishingDragInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 1B 许愿池拖动结果 //tagMCActWishingDragResult:
                                WellType:%d,
                                Index:%d,
                                ItemID:%d,
                                ItemCnt:%d,
                                IsBind:%d,
                                IsSpecial:%d
                                '''\
                                %(
                                self.WellType,
                                self.Index,
                                self.ItemID,
                                self.ItemCnt,
                                self.IsBind,
                                self.IsSpecial
                                )
        return DumpString
class  tagMCActWishingDragResult(Structure):
    Head = tagHead()
    Cnt = 0    #(BYTE Cnt)
    InfoList = list()    #(vector<tagMCPlayerWishingDragInfo> InfoList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x1B
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Cnt):
            temInfoList = tagMCPlayerWishingDragInfo()
            _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 = 0x1B
        self.Cnt = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Cnt):
            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.Cnt)
        for i in range(self.Cnt):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Cnt:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Cnt,
                                "..."
                                )
        return DumpString
m_NAtagMCActWishingDragResult=tagMCActWishingDragResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingDragResult.Head.Cmd,m_NAtagMCActWishingDragResult.Head.SubCmd))] = m_NAtagMCActWishingDragResult
#------------------------------------------------------
# AA 19 许愿池活动信息 #tagMCActWishingWellInfo
class  tagMCWishingWellItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),    # 物品ID
                  ("ItemCnt", c_ushort),    # 物品数量
                  ("IsBind", c_ubyte),    # 是否绑定
                  ("Mark", 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.ItemCnt = 0
        self.IsBind = 0
        self.Mark = 0
        return
    def GetLength(self):
        return sizeof(tagMCWishingWellItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 19 许愿池活动信息 //tagMCActWishingWellInfo:
                                ItemID:%d,
                                ItemCnt:%d,
                                IsBind:%d,
                                Mark:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCnt,
                                self.IsBind,
                                self.Mark
                                )
        return DumpString
class  tagMCActWishingWellInfo(Structure):
    Head = tagHead()
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
    ResetType = 0    #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    Count = 0    #(WORD Count)// 物品数
    WellItemInfo = list()    #(vector<tagMCWishingWellItem> WellItemInfo)// 随机库物品信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x19
        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.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.Count):
            temWellItemInfo = tagMCWishingWellItem()
            _pos = temWellItemInfo.ReadData(_lpData, _pos)
            self.WellItemInfo.append(temWellItemInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x19
        self.StartDate = ""
        self.EndtDate = ""
        self.IsDayReset = 0
        self.ResetType = 0
        self.LimitLV = 0
        self.Count = 0
        self.WellItemInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 10
        length += 10
        length += 1
        length += 1
        length += 2
        length += 2
        for i in range(self.Count):
            length += self.WellItemInfo[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.WriteBYTE(data, self.IsDayReset)
        data = CommFunc.WriteBYTE(data, self.ResetType)
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteWORD(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.WellItemInfo[i].GetLength(), self.WellItemInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                StartDate:%s,
                                EndtDate:%s,
                                IsDayReset:%d,
                                ResetType:%d,
                                LimitLV:%d,
                                Count:%d,
                                WellItemInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.StartDate,
                                self.EndtDate,
                                self.IsDayReset,
                                self.ResetType,
                                self.LimitLV,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCActWishingWellInfo=tagMCActWishingWellInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingWellInfo.Head.Cmd,m_NAtagMCActWishingWellInfo.Head.SubCmd))] = m_NAtagMCActWishingWellInfo
#------------------------------------------------------
# AA 1A 许愿池活动玩家信息 #tagMCActWishingWellPlayerInfo
class  tagMCPlayerWishingWellItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),    # 物品ID
                  ("ItemCnt", c_ushort),    # 物品数量
                  ("IsBind", c_ubyte),    # 是否绑定
                  ("IsSpecial", 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.ItemID = 0
        self.ItemCnt = 0
        self.IsBind = 0
        self.IsSpecial = 0
        return
    def GetLength(self):
        return sizeof(tagMCPlayerWishingWellItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 1A 许愿池活动玩家信息 //tagMCActWishingWellPlayerInfo:
                                ItemID:%d,
                                ItemCnt:%d,
                                IsBind:%d,
                                IsSpecial:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCnt,
                                self.IsBind,
                                self.IsSpecial
                                )
        return DumpString
class  tagMCActWishingWellPlayerInfo(Structure):
    Head = tagHead()
    FreeStartTime = 0    #(DWORD FreeStartTime)// 免费开始倒计时时间
    WishCnt = 0    #(DWORD WishCnt)// 许愿付费刷新次数
    WellItemCnt = 0    #(BYTE WellItemCnt)//许愿池物品数量
    WellItemInfo = list()    #(vector<tagMCPlayerWishingWellItem> WellItemInfo)// 随机库物品信息
    CurAwardCnt = 0    #(BYTE CurAwardCnt)// 当前奖励物品数量
    CurAwardItemInfo = list()    #(vector<tagMCPlayerWishingWellItem> CurAwardItemInfo)// 当前奖励物品
    LastAwardCnt = 0    #(BYTE LastAwardCnt)// 可领取奖励物品数量
    LastAwardItemInfo = list()    #(vector<tagMCPlayerWishingWellItem> LastAwardItemInfo)// 可领取奖励物品
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x1A
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.FreeStartTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.WishCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.WellItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.WellItemCnt):
            temWellItemInfo = tagMCPlayerWishingWellItem()
            _pos = temWellItemInfo.ReadData(_lpData, _pos)
            self.WellItemInfo.append(temWellItemInfo)
        self.CurAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.CurAwardCnt):
            temCurAwardItemInfo = tagMCPlayerWishingWellItem()
            _pos = temCurAwardItemInfo.ReadData(_lpData, _pos)
            self.CurAwardItemInfo.append(temCurAwardItemInfo)
        self.LastAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.LastAwardCnt):
            temLastAwardItemInfo = tagMCPlayerWishingWellItem()
            _pos = temLastAwardItemInfo.ReadData(_lpData, _pos)
            self.LastAwardItemInfo.append(temLastAwardItemInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x1A
        self.FreeStartTime = 0
        self.WishCnt = 0
        self.WellItemCnt = 0
        self.WellItemInfo = list()
        self.CurAwardCnt = 0
        self.CurAwardItemInfo = list()
        self.LastAwardCnt = 0
        self.LastAwardItemInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 1
        for i in range(self.WellItemCnt):
            length += self.WellItemInfo[i].GetLength()
        length += 1
        for i in range(self.CurAwardCnt):
            length += self.CurAwardItemInfo[i].GetLength()
        length += 1
        for i in range(self.LastAwardCnt):
            length += self.LastAwardItemInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.FreeStartTime)
        data = CommFunc.WriteDWORD(data, self.WishCnt)
        data = CommFunc.WriteBYTE(data, self.WellItemCnt)
        for i in range(self.WellItemCnt):
            data = CommFunc.WriteString(data, self.WellItemInfo[i].GetLength(), self.WellItemInfo[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.CurAwardCnt)
        for i in range(self.CurAwardCnt):
            data = CommFunc.WriteString(data, self.CurAwardItemInfo[i].GetLength(), self.CurAwardItemInfo[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.LastAwardCnt)
        for i in range(self.LastAwardCnt):
            data = CommFunc.WriteString(data, self.LastAwardItemInfo[i].GetLength(), self.LastAwardItemInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                FreeStartTime:%d,
                                WishCnt:%d,
                                WellItemCnt:%d,
                                WellItemInfo:%s,
                                CurAwardCnt:%d,
                                CurAwardItemInfo:%s,
                                LastAwardCnt:%d,
                                LastAwardItemInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.FreeStartTime,
                                self.WishCnt,
                                self.WellItemCnt,
                                "...",
                                self.CurAwardCnt,
                                "...",
                                self.LastAwardCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCActWishingWellPlayerInfo=tagMCActWishingWellPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingWellPlayerInfo.Head.Cmd,m_NAtagMCActWishingWellPlayerInfo.Head.SubCmd))] = m_NAtagMCActWishingWellPlayerInfo
#------------------------------------------------------
# AA 15 仙界盛典全民来嗨玩家信息 #tagMCAllPeoplePartyInfo
class  tagMCAllPeoplePartyCount(Structure):
@@ -20177,6 +20728,420 @@
#------------------------------------------------------
# AA 18 限时抢购活动玩家预约信息 #tagMCFlashSaleAppointmentInfo
class  tagMCFlashSaleAppointmentState(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GoodsMark", c_int),    # 商品标识
                  ("State", 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.GoodsMark = 0
        self.State = 0
        return
    def GetLength(self):
        return sizeof(tagMCFlashSaleAppointmentState)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 18 限时抢购活动玩家预约信息 //tagMCFlashSaleAppointmentInfo:
                                GoodsMark:%d,
                                State:%d
                                '''\
                                %(
                                self.GoodsMark,
                                self.State
                                )
        return DumpString
class  tagMCFlashSaleAppointmentInfo(Structure):
    Head = tagHead()
    IsAll = 0    #(BYTE IsAll)// 是否全部
    GoodsCount = 0    #(WORD GoodsCount)// 商品数
    GoodsList = list()    #(vector<tagMCFlashSaleAppointmentState> GoodsList)// 预约的商品
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x18
        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.GoodsCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.GoodsCount):
            temGoodsList = tagMCFlashSaleAppointmentState()
            _pos = temGoodsList.ReadData(_lpData, _pos)
            self.GoodsList.append(temGoodsList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x18
        self.IsAll = 0
        self.GoodsCount = 0
        self.GoodsList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 2
        for i in range(self.GoodsCount):
            length += self.GoodsList[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.WriteWORD(data, self.GoodsCount)
        for i in range(self.GoodsCount):
            data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                IsAll:%d,
                                GoodsCount:%d,
                                GoodsList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.IsAll,
                                self.GoodsCount,
                                "..."
                                )
        return DumpString
m_NAtagMCFlashSaleAppointmentInfo=tagMCFlashSaleAppointmentInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleAppointmentInfo.Head.Cmd,m_NAtagMCFlashSaleAppointmentInfo.Head.SubCmd))] = m_NAtagMCFlashSaleAppointmentInfo
#------------------------------------------------------
# AA 17 限时抢购活动信息 #tagMCFlashSaleInfo
class  tagMCFlashSaleGiftbag(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GiftID", c_int),    #商城表的物品ID
                  ("BuyCountLimit", c_ubyte),    #限购数
                  ("ServerBuyCountLimit", c_ushort),    #全服限购数
                  ("MoneyType", c_ubyte),    #消耗货币类型
                  ("MoneyNumber", c_int),    #消耗货币数量
                  ("MoneyOriginal", c_int),    #原价
                  ("ItemID", c_int),
                  ("ItemCount", c_ushort),
                  ("IsBind", 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.GiftID = 0
        self.BuyCountLimit = 0
        self.ServerBuyCountLimit = 0
        self.MoneyType = 0
        self.MoneyNumber = 0
        self.MoneyOriginal = 0
        self.ItemID = 0
        self.ItemCount = 0
        self.IsBind = 0
        return
    def GetLength(self):
        return sizeof(tagMCFlashSaleGiftbag)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 17 限时抢购活动信息 //tagMCFlashSaleInfo:
                                GiftID:%d,
                                BuyCountLimit:%d,
                                ServerBuyCountLimit:%d,
                                MoneyType:%d,
                                MoneyNumber:%d,
                                MoneyOriginal:%d,
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.GiftID,
                                self.BuyCountLimit,
                                self.ServerBuyCountLimit,
                                self.MoneyType,
                                self.MoneyNumber,
                                self.MoneyOriginal,
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCFlashSaleShop(Structure):
    DayIndex = 0    #(BYTE DayIndex)// 活动第几天
    TimeIndex = 0    #(BYTE TimeIndex)// 第几个时间段
    GiftbagCount = 0    #(BYTE GiftbagCount)// 商店礼包数
    GiftbagInfo = list()    #(vector<tagMCFlashSaleGiftbag> GiftbagInfo)// 礼包信息
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.DayIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.TimeIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.GiftbagCount):
            temGiftbagInfo = tagMCFlashSaleGiftbag()
            _pos = temGiftbagInfo.ReadData(_lpData, _pos)
            self.GiftbagInfo.append(temGiftbagInfo)
        return _pos
    def Clear(self):
        self.DayIndex = 0
        self.TimeIndex = 0
        self.GiftbagCount = 0
        self.GiftbagInfo = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        length += 1
        for i in range(self.GiftbagCount):
            length += self.GiftbagInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.DayIndex)
        data = CommFunc.WriteBYTE(data, self.TimeIndex)
        data = CommFunc.WriteBYTE(data, self.GiftbagCount)
        for i in range(self.GiftbagCount):
            data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                DayIndex:%d,
                                TimeIndex:%d,
                                GiftbagCount:%d,
                                GiftbagInfo:%s
                                '''\
                                %(
                                self.DayIndex,
                                self.TimeIndex,
                                self.GiftbagCount,
                                "..."
                                )
        return DumpString
class  tagMCFlashSaleTime(Structure):
    StartTime = ""    #(char StartTime[5])// 开始时间 H:M
    EndtTime = ""    #(char EndtTime[5])// 结束时间 H:M
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
        self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
        return _pos
    def Clear(self):
        self.StartTime = ""
        self.EndtTime = ""
        return
    def GetLength(self):
        length = 0
        length += 5
        length += 5
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, 5, self.StartTime)
        data = CommFunc.WriteString(data, 5, self.EndtTime)
        return data
    def OutputString(self):
        DumpString = '''
                                StartTime:%s,
                                EndtTime:%s
                                '''\
                                %(
                                self.StartTime,
                                self.EndtTime
                                )
        return DumpString
class  tagMCFlashSaleInfo(Structure):
    Head = tagHead()
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    AdvanceMinutes = 0    #(WORD AdvanceMinutes)// 提前显示分钟
    ActivityTimeCount = 0    #(BYTE ActivityTimeCount)
    ActivityTime = list()    #(vector<tagMCFlashSaleTime> ActivityTime)//活动时间
    IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    ShopCount = 0    #(BYTE ShopCount)// 商店数
    ShopInfo = list()    #(vector<tagMCFlashSaleShop> ShopInfo)// 商店信息, 当有多个商店且有多个活动时间段时则每个时间段对应一个商店;
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x17
        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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ActivityTimeCount):
            temActivityTime = tagMCFlashSaleTime()
            _pos = temActivityTime.ReadData(_lpData, _pos)
            self.ActivityTime.append(temActivityTime)
        self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ShopCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ShopCount):
            temShopInfo = tagMCFlashSaleShop()
            _pos = temShopInfo.ReadData(_lpData, _pos)
            self.ShopInfo.append(temShopInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x17
        self.StartDate = ""
        self.EndtDate = ""
        self.AdvanceMinutes = 0
        self.ActivityTimeCount = 0
        self.ActivityTime = list()
        self.IsDayReset = 0
        self.LimitLV = 0
        self.ShopCount = 0
        self.ShopInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 10
        length += 10
        length += 2
        length += 1
        for i in range(self.ActivityTimeCount):
            length += self.ActivityTime[i].GetLength()
        length += 1
        length += 2
        length += 1
        for i in range(self.ShopCount):
            length += self.ShopInfo[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.AdvanceMinutes)
        data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
        for i in range(self.ActivityTimeCount):
            data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.IsDayReset)
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteBYTE(data, self.ShopCount)
        for i in range(self.ShopCount):
            data = CommFunc.WriteString(data, self.ShopInfo[i].GetLength(), self.ShopInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                StartDate:%s,
                                EndtDate:%s,
                                AdvanceMinutes:%d,
                                ActivityTimeCount:%d,
                                ActivityTime:%s,
                                IsDayReset:%d,
                                LimitLV:%d,
                                ShopCount:%d,
                                ShopInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.StartDate,
                                self.EndtDate,
                                self.AdvanceMinutes,
                                self.ActivityTimeCount,
                                "...",
                                self.IsDayReset,
                                self.LimitLV,
                                self.ShopCount,
                                "..."
                                )
        return DumpString
m_NAtagMCFlashSaleInfo=tagMCFlashSaleInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleInfo.Head.Cmd,m_NAtagMCFlashSaleInfo.Head.SubCmd))] = m_NAtagMCFlashSaleInfo
#------------------------------------------------------
# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
class  tagMCRechargeRankTeHuiInfo(Structure):