ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -5067,6 +5067,70 @@
#------------------------------------------------------
# AC 12 跨服运营活动结束 # tagGCCrossActEnd
class  tagGCCrossActEnd(Structure):
    Head = tagHead()
    ActNameLen = 0    #(BYTE ActNameLen)
    ActName = ""    #(String ActName)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x12
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ActName,_pos = CommFunc.ReadString(_lpData, _pos,self.ActNameLen)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x12
        self.ActNameLen = 0
        self.ActName = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.ActName)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNameLen)
        data = CommFunc.WriteString(data, self.ActNameLen, self.ActName)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNameLen:%d,
                                ActName:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNameLen,
                                self.ActName
                                )
        return DumpString
m_NAtagGCCrossActEnd=tagGCCrossActEnd()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossActEnd.Head.Cmd,m_NAtagGCCrossActEnd.Head.SubCmd))] = m_NAtagGCCrossActEnd
#------------------------------------------------------
# AC 09 仙界盛典活动信息 #tagGCFairyCeremonyInfo
class  tagGCFairyCeremonyInfo(Structure):
@@ -11037,6 +11101,190 @@
m_NAtagGCTeamMemFuncDataList=tagGCTeamMemFuncDataList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeamMemFuncDataList.Head.Cmd,m_NAtagGCTeamMemFuncDataList.Head.SubCmd))] = m_NAtagGCTeamMemFuncDataList
#------------------------------------------------------
# C0 07 跨服排行榜信息 #tagGCCrossBillboardInfo
class  tagGCCrossBillboardData(Structure):
    ID = 0    #(DWORD ID)
    Name1 = ""    #(char Name1[33])//名字1,用来显示排序对象名字
    Name2 = ""    #(char Name2[33])//名字2
    Type2 = 0    #(BYTE Type2)//附加类型,用来表示排序对象的类型,比如,玩家所属职业门派,宠物类型等
    Value1 = 0    #(DWORD Value1)//自定义值1
    Value2 = 0    #(DWORD Value2)//自定义值2
    CmpValue = 0    #(DWORD CmpValue)// 比较权值
    CmpValue2 = 0    #(DWORD CmpValue2)// 比较权值
    CmpValue3 = 0    #(DWORD CmpValue3)// 比较权值
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Name1,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Type2,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.CmpValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.CmpValue2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.CmpValue3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.ID = 0
        self.Name1 = ""
        self.Name2 = ""
        self.Type2 = 0
        self.Value1 = 0
        self.Value2 = 0
        self.CmpValue = 0
        self.CmpValue2 = 0
        self.CmpValue3 = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 33
        length += 33
        length += 1
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.ID)
        data = CommFunc.WriteString(data, 33, self.Name1)
        data = CommFunc.WriteString(data, 33, self.Name2)
        data = CommFunc.WriteBYTE(data, self.Type2)
        data = CommFunc.WriteDWORD(data, self.Value1)
        data = CommFunc.WriteDWORD(data, self.Value2)
        data = CommFunc.WriteDWORD(data, self.CmpValue)
        data = CommFunc.WriteDWORD(data, self.CmpValue2)
        data = CommFunc.WriteDWORD(data, self.CmpValue3)
        return data
    def OutputString(self):
        DumpString = '''
                                ID:%d,
                                Name1:%s,
                                Name2:%s,
                                Type2:%d,
                                Value1:%d,
                                Value2:%d,
                                CmpValue:%d,
                                CmpValue2:%d,
                                CmpValue3:%d
                                '''\
                                %(
                                self.ID,
                                self.Name1,
                                self.Name2,
                                self.Type2,
                                self.Value1,
                                self.Value2,
                                self.CmpValue,
                                self.CmpValue2,
                                self.CmpValue3
                                )
        return DumpString
class  tagGCCrossBillboardInfo(Structure):
    Head = tagHead()
    Type = 0    #(BYTE Type)//榜单类型
    GroupValue1 = 0    #(BYTE GroupValue1)// 分组值1
    GroupValue2 = 0    #(BYTE GroupValue2)// 分组值2,与分组值1组合归为同组榜单数据
    BillboardCount = 0    #(BYTE BillboardCount)
    CrossBillboardDataList = list()    #(vector<tagGCCrossBillboardData> CrossBillboardDataList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xC0
        self.Head.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.GroupValue1,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.GroupValue2,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.BillboardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.BillboardCount):
            temCrossBillboardDataList = tagGCCrossBillboardData()
            _pos = temCrossBillboardDataList.ReadData(_lpData, _pos)
            self.CrossBillboardDataList.append(temCrossBillboardDataList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xC0
        self.Head.SubCmd = 0x07
        self.Type = 0
        self.GroupValue1 = 0
        self.GroupValue2 = 0
        self.BillboardCount = 0
        self.CrossBillboardDataList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 1
        length += 1
        for i in range(self.BillboardCount):
            length += self.CrossBillboardDataList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Type)
        data = CommFunc.WriteBYTE(data, self.GroupValue1)
        data = CommFunc.WriteBYTE(data, self.GroupValue2)
        data = CommFunc.WriteBYTE(data, self.BillboardCount)
        for i in range(self.BillboardCount):
            data = CommFunc.WriteString(data, self.CrossBillboardDataList[i].GetLength(), self.CrossBillboardDataList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Type:%d,
                                GroupValue1:%d,
                                GroupValue2:%d,
                                BillboardCount:%d,
                                CrossBillboardDataList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Type,
                                self.GroupValue1,
                                self.GroupValue2,
                                self.BillboardCount,
                                "..."
                                )
        return DumpString
m_NAtagGCCrossBillboardInfo=tagGCCrossBillboardInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossBillboardInfo.Head.Cmd,m_NAtagGCCrossBillboardInfo.Head.SubCmd))] = m_NAtagGCCrossBillboardInfo
#------------------------------------------------------
@@ -25809,6 +26057,427 @@
#------------------------------------------------------
# AA 32 跨服充值排行活动信息 #tagMCCACTGBillboardInfo
class  tagMCCACTGBillboardAwardItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("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.ItemID = 0
        self.ItemCount = 0
        self.IsBind = 0
        return
    def GetLength(self):
        return sizeof(tagMCCACTGBillboardAwardItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 32 跨服充值排行活动信息 //tagMCCACTGBillboardInfo:
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCCACTGBillboardDabiao(Structure):
    AwardIndex = 0    #(BYTE AwardIndex)// 奖励索引 0~31
    NeedRMB = 0    #(DWORD NeedRMB)// 所需充值RMB
    AwardItemCount = 0    #(BYTE AwardItemCount)// 奖励物品数
    AwardItemList = list()    #(vector<tagMCCACTGBillboardAwardItem> AwardItemList)// 奖励物品信息
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.NeedRMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardItemCount):
            temAwardItemList = tagMCCACTGBillboardAwardItem()
            _pos = temAwardItemList.ReadData(_lpData, _pos)
            self.AwardItemList.append(temAwardItemList)
        return _pos
    def Clear(self):
        self.AwardIndex = 0
        self.NeedRMB = 0
        self.AwardItemCount = 0
        self.AwardItemList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 4
        length += 1
        for i in range(self.AwardItemCount):
            length += self.AwardItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.AwardIndex)
        data = CommFunc.WriteDWORD(data, self.NeedRMB)
        data = CommFunc.WriteBYTE(data, self.AwardItemCount)
        for i in range(self.AwardItemCount):
            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                AwardIndex:%d,
                                NeedRMB:%d,
                                AwardItemCount:%d,
                                AwardItemList:%s
                                '''\
                                %(
                                self.AwardIndex,
                                self.NeedRMB,
                                self.AwardItemCount,
                                "..."
                                )
        return DumpString
class  tagMCCACTGBillboardOrder(Structure):
    OrderA = 0    #(BYTE OrderA)// 名次A
    OrderB = 0    #(BYTE OrderB)// 至名次B
    NeedRMB = 0    #(DWORD NeedRMB)// 所需充值RMB,未达标的该名次空,排名后面的玩家向下顺延
    AwardItemCount = 0    #(BYTE AwardItemCount)// 奖励物品数
    AwardItemList = list()    #(vector<tagMCCACTGBillboardAwardItem> AwardItemList)// 奖励物品信息
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.OrderA,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.OrderB,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.NeedRMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardItemCount):
            temAwardItemList = tagMCCACTGBillboardAwardItem()
            _pos = temAwardItemList.ReadData(_lpData, _pos)
            self.AwardItemList.append(temAwardItemList)
        return _pos
    def Clear(self):
        self.OrderA = 0
        self.OrderB = 0
        self.NeedRMB = 0
        self.AwardItemCount = 0
        self.AwardItemList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        length += 4
        length += 1
        for i in range(self.AwardItemCount):
            length += self.AwardItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.OrderA)
        data = CommFunc.WriteBYTE(data, self.OrderB)
        data = CommFunc.WriteDWORD(data, self.NeedRMB)
        data = CommFunc.WriteBYTE(data, self.AwardItemCount)
        for i in range(self.AwardItemCount):
            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                OrderA:%d,
                                OrderB:%d,
                                NeedRMB:%d,
                                AwardItemCount:%d,
                                AwardItemList:%s
                                '''\
                                %(
                                self.OrderA,
                                self.OrderB,
                                self.NeedRMB,
                                self.AwardItemCount,
                                "..."
                                )
        return DumpString
class  tagMCCACTGBillboardTempInfo(Structure):
    TemplateID = 0    #(BYTE TemplateID)// 活动模板ID
    DabiaoAwardCount = 0    #(BYTE DabiaoAwardCount)// 达标奖励档数
    DabiaoAwardInfo = list()    #(vector<tagMCCACTGBillboardDabiao> DabiaoAwardInfo)// 达标奖励信息
    OrderAwardCount = 0    #(BYTE OrderAwardCount)// 排行奖励档数
    OrderAwardInfo = list()    #(vector<tagMCCACTGBillboardOrder> OrderAwardInfo)// 排行奖励信息
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.TemplateID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.DabiaoAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.DabiaoAwardCount):
            temDabiaoAwardInfo = tagMCCACTGBillboardDabiao()
            _pos = temDabiaoAwardInfo.ReadData(_lpData, _pos)
            self.DabiaoAwardInfo.append(temDabiaoAwardInfo)
        self.OrderAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.OrderAwardCount):
            temOrderAwardInfo = tagMCCACTGBillboardOrder()
            _pos = temOrderAwardInfo.ReadData(_lpData, _pos)
            self.OrderAwardInfo.append(temOrderAwardInfo)
        return _pos
    def Clear(self):
        self.TemplateID = 0
        self.DabiaoAwardCount = 0
        self.DabiaoAwardInfo = list()
        self.OrderAwardCount = 0
        self.OrderAwardInfo = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        for i in range(self.DabiaoAwardCount):
            length += self.DabiaoAwardInfo[i].GetLength()
        length += 1
        for i in range(self.OrderAwardCount):
            length += self.OrderAwardInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.TemplateID)
        data = CommFunc.WriteBYTE(data, self.DabiaoAwardCount)
        for i in range(self.DabiaoAwardCount):
            data = CommFunc.WriteString(data, self.DabiaoAwardInfo[i].GetLength(), self.DabiaoAwardInfo[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.OrderAwardCount)
        for i in range(self.OrderAwardCount):
            data = CommFunc.WriteString(data, self.OrderAwardInfo[i].GetLength(), self.OrderAwardInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                TemplateID:%d,
                                DabiaoAwardCount:%d,
                                DabiaoAwardInfo:%s,
                                OrderAwardCount:%d,
                                OrderAwardInfo:%s
                                '''\
                                %(
                                self.TemplateID,
                                self.DabiaoAwardCount,
                                "...",
                                self.OrderAwardCount,
                                "..."
                                )
        return DumpString
class  tagMCCACTGBillboardInfo(Structure):
    Head = tagHead()
    ServerInfoLen = 0    #(BYTE ServerInfoLen)
    ServerIDRangeInfo = ""    #(String ServerIDRangeInfo)//开放该活动的服务器ID范围列表,json格式 [[IDA, IDB], ...], [] 为全服
    GroupValue1 = 0    #(BYTE GroupValue1)// 活动榜单分组值1,用于查询对应榜单
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    TemplateID = 0    #(BYTE TemplateID)// 当前活动模板ID
    TemplateCount = 0    #(BYTE TemplateCount)
    TempInfo = list()    #(vector<tagMCCACTGBillboardTempInfo> TempInfo)// 模板信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x32
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ServerInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ServerIDRangeInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.ServerInfoLen)
        self.GroupValue1,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.TemplateID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.TemplateCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TemplateCount):
            temTempInfo = tagMCCACTGBillboardTempInfo()
            _pos = temTempInfo.ReadData(_lpData, _pos)
            self.TempInfo.append(temTempInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x32
        self.ServerInfoLen = 0
        self.ServerIDRangeInfo = ""
        self.GroupValue1 = 0
        self.StartDate = ""
        self.EndtDate = ""
        self.TemplateID = 0
        self.TemplateCount = 0
        self.TempInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.ServerIDRangeInfo)
        length += 1
        length += 10
        length += 10
        length += 1
        length += 1
        for i in range(self.TemplateCount):
            length += self.TempInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ServerInfoLen)
        data = CommFunc.WriteString(data, self.ServerInfoLen, self.ServerIDRangeInfo)
        data = CommFunc.WriteBYTE(data, self.GroupValue1)
        data = CommFunc.WriteString(data, 10, self.StartDate)
        data = CommFunc.WriteString(data, 10, self.EndtDate)
        data = CommFunc.WriteBYTE(data, self.TemplateID)
        data = CommFunc.WriteBYTE(data, self.TemplateCount)
        for i in range(self.TemplateCount):
            data = CommFunc.WriteString(data, self.TempInfo[i].GetLength(), self.TempInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ServerInfoLen:%d,
                                ServerIDRangeInfo:%s,
                                GroupValue1:%d,
                                StartDate:%s,
                                EndtDate:%s,
                                TemplateID:%d,
                                TemplateCount:%d,
                                TempInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ServerInfoLen,
                                self.ServerIDRangeInfo,
                                self.GroupValue1,
                                self.StartDate,
                                self.EndtDate,
                                self.TemplateID,
                                self.TemplateCount,
                                "..."
                                )
        return DumpString
m_NAtagMCCACTGBillboardInfo=tagMCCACTGBillboardInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCACTGBillboardInfo.Head.Cmd,m_NAtagMCCACTGBillboardInfo.Head.SubCmd))] = m_NAtagMCCACTGBillboardInfo
#------------------------------------------------------
# AA 33 跨服充值排行活动玩家信息 #tagMCCACTGBillboardPlayerInfo
class  tagMCCACTGBillboardPlayerInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("CTGRMBTotal", c_int),    # 活动已累计充值RMB
                  ("DabiaoAwardRecord", c_int),    # 达标奖励记录,与达标奖励索引位或运算判断是否已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x33
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x33
        self.CTGRMBTotal = 0
        self.DabiaoAwardRecord = 0
        return
    def GetLength(self):
        return sizeof(tagMCCACTGBillboardPlayerInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 33 跨服充值排行活动玩家信息 //tagMCCACTGBillboardPlayerInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                CTGRMBTotal:%d,
                                DabiaoAwardRecord:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.CTGRMBTotal,
                                self.DabiaoAwardRecord
                                )
        return DumpString
m_NAtagMCCACTGBillboardPlayerInfo=tagMCCACTGBillboardPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCACTGBillboardPlayerInfo.Cmd,m_NAtagMCCACTGBillboardPlayerInfo.SubCmd))] = m_NAtagMCCACTGBillboardPlayerInfo
#------------------------------------------------------
# AA 09 消费返利活动信息 #tagMCCostRebateInfo
class  tagMCCostRebateAwardItem(Structure):