hxp
2024-06-06 e10ab61842c937cb5f921c4e727e01446493b645
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -995,6 +995,7 @@
    LV = 0    #(WORD LV)// 玩家等级
    Job = 0    #(BYTE Job)// 玩家职业
    RealmLV = 0    #(WORD RealmLV)// 玩家境界等级
    Face = 0    #(DWORD Face)//基本脸型
    data = None
    def __init__(self):
@@ -1012,6 +1013,7 @@
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -1025,6 +1027,7 @@
        self.LV = 0
        self.Job = 0
        self.RealmLV = 0
        self.Face = 0
        return
    def GetLength(self):
@@ -1036,6 +1039,7 @@
        length += 2
        length += 1
        length += 2
        length += 4
        return length
@@ -1048,6 +1052,7 @@
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        return data
    def OutputString(self):
@@ -1058,7 +1063,8 @@
                                Name:%s,
                                LV:%d,
                                Job:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -1067,7 +1073,8 @@
                                self.Name,
                                self.LV,
                                self.Job,
                                self.RealmLV
                                self.RealmLV,
                                self.Face
                                )
        return DumpString
@@ -5021,6 +5028,7 @@
    LV = 0    #(DWORD LV)//等级
    Job = 0    #(BYTE Job)
    RealmLV = 0    #(WORD RealmLV)//境界   
    Face = 0    #(DWORD Face)//基本脸型
    data = None
    def __init__(self):
@@ -5034,6 +5042,7 @@
        self.LV,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -5042,6 +5051,7 @@
        self.LV = 0
        self.Job = 0
        self.RealmLV = 0
        self.Face = 0
        return
    def GetLength(self):
@@ -5051,6 +5061,7 @@
        length += 4
        length += 1
        length += 2
        length += 4
        return length
@@ -5061,6 +5072,7 @@
        data = CommFunc.WriteDWORD(data, self.LV)
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        return data
    def OutputString(self):
@@ -5069,14 +5081,16 @@
                                Name:%s,
                                LV:%d,
                                Job:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d
                                '''\
                                %(
                                self.ID,
                                self.Name,
                                self.LV,
                                self.Job,
                                self.RealmLV
                                self.RealmLV,
                                self.Face
                                )
        return DumpString
@@ -5156,6 +5170,7 @@
    Job = 0    #(BYTE Job)
    LV = 0    #(WORD LV)//等级
    RealmLV = 0    #(WORD RealmLV)//境界
    Face = 0    #(DWORD Face)//基本脸型
    data = None
    def __init__(self):
@@ -5169,6 +5184,7 @@
        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -5177,6 +5193,7 @@
        self.Job = 0
        self.LV = 0
        self.RealmLV = 0
        self.Face = 0
        return
    def GetLength(self):
@@ -5186,6 +5203,7 @@
        length += 1
        length += 2
        length += 2
        length += 4
        return length
@@ -5196,6 +5214,7 @@
        data = CommFunc.WriteBYTE(data, self.Job)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        return data
    def OutputString(self):
@@ -5204,14 +5223,16 @@
                                PlayerName:%s,
                                Job:%d,
                                LV:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d
                                '''\
                                %(
                                self.PlayerID,
                                self.PlayerName,
                                self.Job,
                                self.LV,
                                self.RealmLV
                                self.RealmLV,
                                self.Face
                                )
        return DumpString
@@ -8488,6 +8509,7 @@
    Name = ""    #(char Name[33])
    LV = 0    #(WORD LV)
    RealmLV = 0    #(WORD RealmLV)//境界等级
    Face = 0    #(DWORD Face)//基本脸型
    data = None
    def __init__(self):
@@ -8503,6 +8525,7 @@
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -8514,6 +8537,7 @@
        self.Name = ""
        self.LV = 0
        self.RealmLV = 0
        self.Face = 0
        return
    def GetLength(self):
@@ -8523,6 +8547,7 @@
        length += 33
        length += 2
        length += 2
        length += 4
        return length
@@ -8533,6 +8558,7 @@
        data = CommFunc.WriteString(data, 33, self.Name)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteWORD(data, self.RealmLV)
        data = CommFunc.WriteDWORD(data, self.Face)
        return data
    def OutputString(self):
@@ -8541,14 +8567,16 @@
                                AskID:%d,
                                Name:%s,
                                LV:%d,
                                RealmLV:%d
                                RealmLV:%d,
                                Face:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AskID,
                                self.Name,
                                self.LV,
                                self.RealmLV
                                self.RealmLV,
                                self.Face
                                )
        return DumpString
@@ -18937,9 +18965,8 @@
                  ("SubCmd", c_ubyte),
                  ("IsReset", c_ubyte),    #是否是重置的
                  ("Score", c_int),    #当前积分
                  ("BattleCountToday", c_ubyte),    #今日已挑战次数
                  ("MatchRefreshCount", c_ubyte),    #当前已刷新匹配列表次数,每次挑战后会重置
                  ("ItemAddBattleCountToday", c_ubyte),    #今日已使用物品增加的挑战次数
                  ("BattleCount", c_ubyte),    #当前可挑战次数
                  ]
    def __init__(self):
@@ -18958,9 +18985,8 @@
        self.SubCmd = 0xC3
        self.IsReset = 0
        self.Score = 0
        self.BattleCountToday = 0
        self.MatchRefreshCount = 0
        self.ItemAddBattleCountToday = 0
        self.BattleCount = 0
        return
    def GetLength(self):
@@ -18975,18 +19001,16 @@
                                SubCmd:%s,
                                IsReset:%d,
                                Score:%d,
                                BattleCountToday:%d,
                                MatchRefreshCount:%d,
                                ItemAddBattleCountToday:%d
                                BattleCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsReset,
                                self.Score,
                                self.BattleCountToday,
                                self.MatchRefreshCount,
                                self.ItemAddBattleCountToday
                                self.BattleCount
                                )
        return DumpString
@@ -31632,6 +31656,331 @@
#------------------------------------------------------
# AA 74 购买次数礼包活动信息 #tagMCActBuyCountGiftInfo
class  tagMCActBuyCountGiftItem(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(tagMCActBuyCountGiftItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 74 购买次数礼包活动信息 //tagMCActBuyCountGiftInfo:
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCActBuyCountGift(Structure):
    NeedBuyCount = 0    #(BYTE NeedBuyCount)// 所需总购买次数,0为免费领取的档次
    Count = 0    #(BYTE Count)// 奖励物品数
    AwardItemList = list()    #(vector<tagMCActBuyCountGiftItem> AwardItemList)// 奖励物品列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.NeedBuyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temAwardItemList = tagMCActBuyCountGiftItem()
            _pos = temAwardItemList.ReadData(_lpData, _pos)
            self.AwardItemList.append(temAwardItemList)
        return _pos
    def Clear(self):
        self.NeedBuyCount = 0
        self.Count = 0
        self.AwardItemList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        for i in range(self.Count):
            length += self.AwardItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.NeedBuyCount)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                NeedBuyCount:%d,
                                Count:%d,
                                AwardItemList:%s
                                '''\
                                %(
                                self.NeedBuyCount,
                                self.Count,
                                "..."
                                )
        return DumpString
class  tagMCActBuyCountCTGID(Structure):
    _pack_ = 1
    _fields_ = [
                  ("CTGID", c_ushort),    # 充值表ID
                  ("Discount", c_ushort),    # 折扣力度百分比
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.CTGID = 0
        self.Discount = 0
        return
    def GetLength(self):
        return sizeof(tagMCActBuyCountCTGID)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 74 购买次数礼包活动信息 //tagMCActBuyCountGiftInfo:
                                CTGID:%d,
                                Discount:%d
                                '''\
                                %(
                                self.CTGID,
                                self.Discount
                                )
        return DumpString
class  tagMCActBuyCountGiftInfo(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)// 活动编号
    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)// 限制等级
    CTGIDCount = 0    #(BYTE CTGIDCount)
    CTGIDInfoList = list()    #(vector<tagMCActBuyCountCTGID> CTGIDInfoList)// CTGID信息列表;总购买次数前端自己统计,直接取CTGID对应的累计购买次数累加
    GiftCount = 0    #(BYTE GiftCount)
    BuyCountGiftList = list()    #(vector<tagMCActBuyCountGift> BuyCountGiftList)// 购买次数礼包列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x74
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_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.CTGIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.CTGIDCount):
            temCTGIDInfoList = tagMCActBuyCountCTGID()
            _pos = temCTGIDInfoList.ReadData(_lpData, _pos)
            self.CTGIDInfoList.append(temCTGIDInfoList)
        self.GiftCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.GiftCount):
            temBuyCountGiftList = tagMCActBuyCountGift()
            _pos = temBuyCountGiftList.ReadData(_lpData, _pos)
            self.BuyCountGiftList.append(temBuyCountGiftList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x74
        self.ActNum = 0
        self.StartDate = ""
        self.EndtDate = ""
        self.IsDayReset = 0
        self.ResetType = 0
        self.LimitLV = 0
        self.CTGIDCount = 0
        self.CTGIDInfoList = list()
        self.GiftCount = 0
        self.BuyCountGiftList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 10
        length += 10
        length += 1
        length += 1
        length += 2
        length += 1
        for i in range(self.CTGIDCount):
            length += self.CTGIDInfoList[i].GetLength()
        length += 1
        for i in range(self.GiftCount):
            length += self.BuyCountGiftList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNum)
        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.WriteBYTE(data, self.CTGIDCount)
        for i in range(self.CTGIDCount):
            data = CommFunc.WriteString(data, self.CTGIDInfoList[i].GetLength(), self.CTGIDInfoList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.GiftCount)
        for i in range(self.GiftCount):
            data = CommFunc.WriteString(data, self.BuyCountGiftList[i].GetLength(), self.BuyCountGiftList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                StartDate:%s,
                                EndtDate:%s,
                                IsDayReset:%d,
                                ResetType:%d,
                                LimitLV:%d,
                                CTGIDCount:%d,
                                CTGIDInfoList:%s,
                                GiftCount:%d,
                                BuyCountGiftList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.StartDate,
                                self.EndtDate,
                                self.IsDayReset,
                                self.ResetType,
                                self.LimitLV,
                                self.CTGIDCount,
                                "...",
                                self.GiftCount,
                                "..."
                                )
        return DumpString
m_NAtagMCActBuyCountGiftInfo=tagMCActBuyCountGiftInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActBuyCountGiftInfo.Head.Cmd,m_NAtagMCActBuyCountGiftInfo.Head.SubCmd))] = m_NAtagMCActBuyCountGiftInfo
#------------------------------------------------------
# AA 75 购买次数礼包活动玩家信息 #tagMCActBuyCountGiftPlayerInfo
class  tagMCActBuyCountGiftPlayerInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    # 活动编号
                  ("GiftAwardRecord", c_int),    # 购买次数礼包领奖记录,直接用购买次数做位运算判断是否已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x75
        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 = 0x75
        self.ActNum = 0
        self.GiftAwardRecord = 0
        return
    def GetLength(self):
        return sizeof(tagMCActBuyCountGiftPlayerInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 75 购买次数礼包活动玩家信息 //tagMCActBuyCountGiftPlayerInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d,
                                GiftAwardRecord:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum,
                                self.GiftAwardRecord
                                )
        return DumpString
m_NAtagMCActBuyCountGiftPlayerInfo=tagMCActBuyCountGiftPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActBuyCountGiftPlayerInfo.Cmd,m_NAtagMCActBuyCountGiftPlayerInfo.SubCmd))] = m_NAtagMCActBuyCountGiftPlayerInfo
#------------------------------------------------------
# AA 65 买一送多活动信息 #tagMCActBuyOneInfo
class  tagMCActBuyOneInfoFreeItem(Structure):
@@ -33834,6 +34183,273 @@
#------------------------------------------------------
# AA 69 登录活动信息新 #tagMCActLoginNew
class  tagMCActLoginNewItem(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(tagMCActLoginNewItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 69 登录活动信息新 //tagMCActLoginNew:
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCActLoginNewDay(Structure):
    DayNum = 0    #(BYTE DayNum)//天编号,从1开始,过期未签到领取的天可消耗货币补签领取
    Count = 0    #(BYTE Count)// 奖励物品数
    AwardItemList = list()    #(vector<tagMCActLoginNewItem> AwardItemList)// 奖励物品列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.DayNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temAwardItemList = tagMCActLoginNewItem()
            _pos = temAwardItemList.ReadData(_lpData, _pos)
            self.AwardItemList.append(temAwardItemList)
        return _pos
    def Clear(self):
        self.DayNum = 0
        self.Count = 0
        self.AwardItemList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        for i in range(self.Count):
            length += self.AwardItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.DayNum)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                DayNum:%d,
                                Count:%d,
                                AwardItemList:%s
                                '''\
                                %(
                                self.DayNum,
                                self.Count,
                                "..."
                                )
        return DumpString
class  tagMCActLoginNew(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)// 活动编号
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    RepSignMoneyType = 0    #(BYTE RepSignMoneyType)// 补签消耗货币类型
    RepSignMoneyValue = 0    #(DWORD RepSignMoneyValue)// 补签消耗货币值
    DayCount = 0    #(BYTE DayCount)
    AwardDayList = list()    #(vector<tagMCActLoginNewDay> AwardDayList)// 奖励天列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x69
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RepSignMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RepSignMoneyValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.DayCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.DayCount):
            temAwardDayList = tagMCActLoginNewDay()
            _pos = temAwardDayList.ReadData(_lpData, _pos)
            self.AwardDayList.append(temAwardDayList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x69
        self.ActNum = 0
        self.StartDate = ""
        self.EndtDate = ""
        self.LimitLV = 0
        self.RepSignMoneyType = 0
        self.RepSignMoneyValue = 0
        self.DayCount = 0
        self.AwardDayList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 10
        length += 10
        length += 2
        length += 1
        length += 4
        length += 1
        for i in range(self.DayCount):
            length += self.AwardDayList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNum)
        data = CommFunc.WriteString(data, 10, self.StartDate)
        data = CommFunc.WriteString(data, 10, self.EndtDate)
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteBYTE(data, self.RepSignMoneyType)
        data = CommFunc.WriteDWORD(data, self.RepSignMoneyValue)
        data = CommFunc.WriteBYTE(data, self.DayCount)
        for i in range(self.DayCount):
            data = CommFunc.WriteString(data, self.AwardDayList[i].GetLength(), self.AwardDayList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                StartDate:%s,
                                EndtDate:%s,
                                LimitLV:%d,
                                RepSignMoneyType:%d,
                                RepSignMoneyValue:%d,
                                DayCount:%d,
                                AwardDayList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.StartDate,
                                self.EndtDate,
                                self.LimitLV,
                                self.RepSignMoneyType,
                                self.RepSignMoneyValue,
                                self.DayCount,
                                "..."
                                )
        return DumpString
m_NAtagMCActLoginNew=tagMCActLoginNew()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginNew.Head.Cmd,m_NAtagMCActLoginNew.Head.SubCmd))] = m_NAtagMCActLoginNew
#------------------------------------------------------
# AA 70 登录活动玩家信息新 #tagMCActLoginPlayerInfoNew
class  tagMCActLoginPlayerInfoNew(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    # 活动编号
                  ("LoginAward", c_int),    # 是否已领取,按天索引0代表第1天记录当天是否已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x70
        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 = 0x70
        self.ActNum = 0
        self.LoginAward = 0
        return
    def GetLength(self):
        return sizeof(tagMCActLoginPlayerInfoNew)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 70 登录活动玩家信息新 //tagMCActLoginPlayerInfoNew:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d,
                                LoginAward:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum,
                                self.LoginAward
                                )
        return DumpString
m_NAtagMCActLoginPlayerInfoNew=tagMCActLoginPlayerInfoNew()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginPlayerInfoNew.Cmd,m_NAtagMCActLoginPlayerInfoNew.SubCmd))] = m_NAtagMCActLoginPlayerInfoNew
#------------------------------------------------------
# AA 48 多日连充活动信息 #tagMCActManyDayRechargeInfo
class  tagMCActManyDayRechargeItem(Structure):
@@ -35159,6 +35775,420 @@
#------------------------------------------------------
# AA 71 任务活动信息 #tagMCActTaskInfo
class  tagMCActTaskItem(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(tagMCActTaskItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 71 任务活动信息 //tagMCActTaskInfo:
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCActTask(Structure):
    TaskID = 0    #(DWORD TaskID)// 任务ID,1~n
    TaskType = 0    #(BYTE TaskType)// 任务类型
    NeedValue = 0    #(DWORD NeedValue)// 完成任务所需值
    Count = 0    #(BYTE Count)// 奖励物品数
    AwardItemList = list()    #(vector<tagMCActTaskItem> AwardItemList)// 奖励物品列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.TaskID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TaskType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.NeedValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temAwardItemList = tagMCActTaskItem()
            _pos = temAwardItemList.ReadData(_lpData, _pos)
            self.AwardItemList.append(temAwardItemList)
        return _pos
    def Clear(self):
        self.TaskID = 0
        self.TaskType = 0
        self.NeedValue = 0
        self.Count = 0
        self.AwardItemList = list()
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 1
        length += 4
        length += 1
        for i in range(self.Count):
            length += self.AwardItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.TaskID)
        data = CommFunc.WriteBYTE(data, self.TaskType)
        data = CommFunc.WriteDWORD(data, self.NeedValue)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                TaskID:%d,
                                TaskType:%d,
                                NeedValue:%d,
                                Count:%d,
                                AwardItemList:%s
                                '''\
                                %(
                                self.TaskID,
                                self.TaskType,
                                self.NeedValue,
                                self.Count,
                                "..."
                                )
        return DumpString
class  tagMCActTaskInfo(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)// 活动编号
    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)// 限制等级
    TaskCount = 0    #(BYTE TaskCount)
    TaskList = list()    #(vector<tagMCActTask> TaskList)// 任务列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x71
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_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.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TaskCount):
            temTaskList = tagMCActTask()
            _pos = temTaskList.ReadData(_lpData, _pos)
            self.TaskList.append(temTaskList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x71
        self.ActNum = 0
        self.StartDate = ""
        self.EndtDate = ""
        self.IsDayReset = 0
        self.ResetType = 0
        self.LimitLV = 0
        self.TaskCount = 0
        self.TaskList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 10
        length += 10
        length += 1
        length += 1
        length += 2
        length += 1
        for i in range(self.TaskCount):
            length += self.TaskList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNum)
        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.WriteBYTE(data, self.TaskCount)
        for i in range(self.TaskCount):
            data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                StartDate:%s,
                                EndtDate:%s,
                                IsDayReset:%d,
                                ResetType:%d,
                                LimitLV:%d,
                                TaskCount:%d,
                                TaskList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.StartDate,
                                self.EndtDate,
                                self.IsDayReset,
                                self.ResetType,
                                self.LimitLV,
                                self.TaskCount,
                                "..."
                                )
        return DumpString
m_NAtagMCActTaskInfo=tagMCActTaskInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskInfo.Head.Cmd,m_NAtagMCActTaskInfo.Head.SubCmd))] = m_NAtagMCActTaskInfo
#------------------------------------------------------
# AA 73 任务活动玩家信息 #tagMCActTaskPlayerInfo
class  tagMCActTaskPlayerInfo(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)// 活动编号
    AwardCount = 0    #(BYTE AwardCount)
    AwardRecordList = list()    #(vector<DWORD> AwardRecordList)// 任务ID领奖记录值列表,根据任务ID位判断是否已领取,一个记录值存31位 [记录值0, 记录值1, ...]
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x73
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.AwardRecordList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x73
        self.ActNum = 0
        self.AwardCount = 0
        self.AwardRecordList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 4 * self.AwardCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNum)
        data = CommFunc.WriteBYTE(data, self.AwardCount)
        for i in range(self.AwardCount):
            data = CommFunc.WriteDWORD(data, self.AwardRecordList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                AwardCount:%d,
                                AwardRecordList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.AwardCount,
                                "..."
                                )
        return DumpString
m_NAtagMCActTaskPlayerInfo=tagMCActTaskPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskPlayerInfo.Head.Cmd,m_NAtagMCActTaskPlayerInfo.Head.SubCmd))] = m_NAtagMCActTaskPlayerInfo
#------------------------------------------------------
# AA 72 任务活动玩家任务值 #tagMCActTaskPlayerValueInfo
class  tagMCActTaskPlayerValue(Structure):
    _pack_ = 1
    _fields_ = [
                  ("TaskType", c_ubyte),    # 任务类型
                  ("TaskValue", 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.TaskType = 0
        self.TaskValue = 0
        return
    def GetLength(self):
        return sizeof(tagMCActTaskPlayerValue)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 72 任务活动玩家任务值 //tagMCActTaskPlayerValueInfo:
                                TaskType:%d,
                                TaskValue:%d
                                '''\
                                %(
                                self.TaskType,
                                self.TaskValue
                                )
        return DumpString
class  tagMCActTaskPlayerValueInfo(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)// 活动编号
    TaskCount = 0    #(BYTE TaskCount)
    TaskValueList = list()    #(vector<tagMCActTaskPlayerValue> TaskValueList)// 有同步的任务类型直接覆盖即可
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x72
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TaskCount):
            temTaskValueList = tagMCActTaskPlayerValue()
            _pos = temTaskValueList.ReadData(_lpData, _pos)
            self.TaskValueList.append(temTaskValueList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x72
        self.ActNum = 0
        self.TaskCount = 0
        self.TaskValueList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.TaskCount):
            length += self.TaskValueList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNum)
        data = CommFunc.WriteBYTE(data, self.TaskCount)
        for i in range(self.TaskCount):
            data = CommFunc.WriteString(data, self.TaskValueList[i].GetLength(), self.TaskValueList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                TaskCount:%d,
                                TaskValueList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.TaskCount,
                                "..."
                                )
        return DumpString
m_NAtagMCActTaskPlayerValueInfo=tagMCActTaskPlayerValueInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskPlayerValueInfo.Head.Cmd,m_NAtagMCActTaskPlayerValueInfo.Head.SubCmd))] = m_NAtagMCActTaskPlayerValueInfo
#------------------------------------------------------
# AA 1D 累计充值活动信息 #tagMCActTotalRechargeInfo
class  tagMCTotalRechargeAwardItem(Structure):