hxp
2023-09-22 8495b01a0c80894ce04f04b9e37c96479aedcefc
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -18174,6 +18174,7 @@
                  ("KillCnt", c_int),    #击杀次数
                  ("ItemAddCnt", c_int),    #物品增加次数
                  ("BuyCnt", c_ubyte),    #购买次数
                  ("KillCntTotal", c_int),    #击杀次数 - 累计
                  ]
    def __init__(self):
@@ -18190,6 +18191,7 @@
        self.KillCnt = 0
        self.ItemAddCnt = 0
        self.BuyCnt = 0
        self.KillCntTotal = 0
        return
    def GetLength(self):
@@ -18203,13 +18205,15 @@
                                BossType:%d,
                                KillCnt:%d,
                                ItemAddCnt:%d,
                                BuyCnt:%d
                                BuyCnt:%d,
                                KillCntTotal:%d
                                '''\
                                %(
                                self.BossType,
                                self.KillCnt,
                                self.ItemAddCnt,
                                self.BuyCnt
                                self.BuyCnt,
                                self.KillCntTotal
                                )
        return DumpString
@@ -18632,6 +18636,118 @@
m_NAtagMCCollectionItemInfo=tagMCCollectionItemInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCollectionItemInfo.Head.Cmd,m_NAtagMCCollectionItemInfo.Head.SubCmd))] = m_NAtagMCCollectionItemInfo
#------------------------------------------------------
# A3 CC 自定义奖励信息 #tagMCCustomAwardInfo
class  tagMCCustomAwardState(Structure):
    _pack_ = 1
    _fields_ = [
                  ("KeyNum", c_ubyte),    # 奖励记录key编号,0~255,每个key存31个ID记录  0-30为编号0, 31-61为编号1..
                  ("CanGetState", c_int),    # 是否可领取;按位记录是否可领取
                  ("GetState", 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.KeyNum = 0
        self.CanGetState = 0
        self.GetState = 0
        return
    def GetLength(self):
        return sizeof(tagMCCustomAwardState)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 CC 自定义奖励信息 //tagMCCustomAwardInfo:
                                KeyNum:%d,
                                CanGetState:%d,
                                GetState:%d
                                '''\
                                %(
                                self.KeyNum,
                                self.CanGetState,
                                self.GetState
                                )
        return DumpString
class  tagMCCustomAwardInfo(Structure):
    Head = tagHead()
    RecordStateCnt = 0    #(BYTE RecordStateCnt)// 记录个数
    RecordStateList = list()    #(vector<tagMCCustomAwardState> RecordStateList)// 记录列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xCC
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RecordStateCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RecordStateCnt):
            temRecordStateList = tagMCCustomAwardState()
            _pos = temRecordStateList.ReadData(_lpData, _pos)
            self.RecordStateList.append(temRecordStateList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xCC
        self.RecordStateCnt = 0
        self.RecordStateList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.RecordStateCnt):
            length += self.RecordStateList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.RecordStateCnt)
        for i in range(self.RecordStateCnt):
            data = CommFunc.WriteString(data, self.RecordStateList[i].GetLength(), self.RecordStateList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RecordStateCnt:%d,
                                RecordStateList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RecordStateCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCCustomAwardInfo=tagMCCustomAwardInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCustomAwardInfo.Head.Cmd,m_NAtagMCCustomAwardInfo.Head.SubCmd))] = m_NAtagMCCustomAwardInfo
#------------------------------------------------------
@@ -22580,6 +22696,7 @@
    ItemAddCnt = 0    #(WORD ItemAddCnt)//物品增加次数
    PassGradeCnt = 0    #(BYTE PassGradeCnt)//星级值对应个数, 每个key存9个lineID
    PassGrade = list()    #(vector<DWORD> PassGrade)//副本线路对应星级值列表
    EnterCntTotal = 0    #(DWORD EnterCntTotal)//累计进入次数
    data = None
    def __init__(self):
@@ -22596,6 +22713,7 @@
        for i in range(self.PassGradeCnt):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.PassGrade.append(value)
        self.EnterCntTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -22605,6 +22723,7 @@
        self.ItemAddCnt = 0
        self.PassGradeCnt = 0
        self.PassGrade = list()
        self.EnterCntTotal = 0
        return
    def GetLength(self):
@@ -22615,6 +22734,7 @@
        length += 2
        length += 1
        length += 4 * self.PassGradeCnt
        length += 4
        return length
@@ -22627,6 +22747,7 @@
        data = CommFunc.WriteBYTE(data, self.PassGradeCnt)
        for i in range(self.PassGradeCnt):
            data = CommFunc.WriteDWORD(data, self.PassGrade[i])
        data = CommFunc.WriteDWORD(data, self.EnterCntTotal)
        return data
    def OutputString(self):
@@ -22636,7 +22757,8 @@
                                RecoverCnt:%d,
                                ItemAddCnt:%d,
                                PassGradeCnt:%d,
                                PassGrade:%s
                                PassGrade:%s,
                                EnterCntTotal:%d
                                '''\
                                %(
                                self.FBID,
@@ -22644,7 +22766,8 @@
                                self.RecoverCnt,
                                self.ItemAddCnt,
                                self.PassGradeCnt,
                                "..."
                                "...",
                                self.EnterCntTotal
                                )
        return DumpString
@@ -24504,6 +24627,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsPass", c_ubyte),    #是否通关副本
                  ("XXZLAwardState", c_int),    #修仙之路领奖状态;按二进制位存储每个任务ID是否已领取
                  ]
    def __init__(self):
@@ -24521,6 +24645,7 @@
        self.Cmd = 0xA3
        self.SubCmd = 0x11
        self.IsPass = 0
        self.XXZLAwardState = 0
        return
    def GetLength(self):
@@ -24533,12 +24658,14 @@
        DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                IsPass:%d
                                IsPass:%d,
                                XXZLAwardState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsPass
                                self.IsPass,
                                self.XXZLAwardState
                                )
        return DumpString
@@ -29316,6 +29443,348 @@
m_NAtagMCVirtualItemDrop=tagMCVirtualItemDrop()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVirtualItemDrop.Head.Cmd,m_NAtagMCVirtualItemDrop.Head.SubCmd))] = m_NAtagMCVirtualItemDrop
#------------------------------------------------------
# AA 65 买一送多活动信息 #tagMCActBuyOneInfo
class  tagMCActBuyOneInfoFreeItem(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(tagMCActBuyOneInfoFreeItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 65 买一送多活动信息 //tagMCActBuyOneInfo:
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCActBuyOneInfoFreeGift(Structure):
    FreeIndex = 0    #(BYTE FreeIndex)// 免费领取索引
    FreeItemCount = 0    #(BYTE FreeItemCount)// 免费礼包数
    FreeItemList = list()    #(vector<tagMCActBuyOneInfoFreeItem> FreeItemList)// 免费礼包列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.FreeIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.FreeItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.FreeItemCount):
            temFreeItemList = tagMCActBuyOneInfoFreeItem()
            _pos = temFreeItemList.ReadData(_lpData, _pos)
            self.FreeItemList.append(temFreeItemList)
        return _pos
    def Clear(self):
        self.FreeIndex = 0
        self.FreeItemCount = 0
        self.FreeItemList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        for i in range(self.FreeItemCount):
            length += self.FreeItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.FreeIndex)
        data = CommFunc.WriteBYTE(data, self.FreeItemCount)
        for i in range(self.FreeItemCount):
            data = CommFunc.WriteString(data, self.FreeItemList[i].GetLength(), self.FreeItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                FreeIndex:%d,
                                FreeItemCount:%d,
                                FreeItemList:%s
                                '''\
                                %(
                                self.FreeIndex,
                                self.FreeItemCount,
                                "..."
                                )
        return DumpString
class  tagMCActBuyOneInfoGiftbag(Structure):
    CTGID = 0    #(DWORD CTGID)//所需充值ID
    RecordIndex = 0    #(BYTE RecordIndex)// 记录索引
    FreeGiftCount = 0    #(BYTE FreeGiftCount)// 免费礼包数
    FreeGiftList = list()    #(vector<tagMCActBuyOneInfoFreeGift> FreeGiftList)// 免费礼包列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.CTGID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.RecordIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.FreeGiftCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.FreeGiftCount):
            temFreeGiftList = tagMCActBuyOneInfoFreeGift()
            _pos = temFreeGiftList.ReadData(_lpData, _pos)
            self.FreeGiftList.append(temFreeGiftList)
        return _pos
    def Clear(self):
        self.CTGID = 0
        self.RecordIndex = 0
        self.FreeGiftCount = 0
        self.FreeGiftList = list()
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 1
        length += 1
        for i in range(self.FreeGiftCount):
            length += self.FreeGiftList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.CTGID)
        data = CommFunc.WriteBYTE(data, self.RecordIndex)
        data = CommFunc.WriteBYTE(data, self.FreeGiftCount)
        for i in range(self.FreeGiftCount):
            data = CommFunc.WriteString(data, self.FreeGiftList[i].GetLength(), self.FreeGiftList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                CTGID:%d,
                                RecordIndex:%d,
                                FreeGiftCount:%d,
                                FreeGiftList:%s
                                '''\
                                %(
                                self.CTGID,
                                self.RecordIndex,
                                self.FreeGiftCount,
                                "..."
                                )
        return DumpString
class  tagMCActBuyOneInfo(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)//是否每天重置
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    GiftbagCount = 0    #(BYTE GiftbagCount)// 活动礼包个数
    GiftbagList = list()    #(vector<tagMCActBuyOneInfoGiftbag> GiftbagList)// 礼包列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x65
        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.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.GiftbagCount):
            temGiftbagList = tagMCActBuyOneInfoGiftbag()
            _pos = temGiftbagList.ReadData(_lpData, _pos)
            self.GiftbagList.append(temGiftbagList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x65
        self.ActNum = 0
        self.StartDate = ""
        self.EndtDate = ""
        self.IsDayReset = 0
        self.LimitLV = 0
        self.GiftbagCount = 0
        self.GiftbagList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 10
        length += 10
        length += 1
        length += 2
        length += 1
        for i in range(self.GiftbagCount):
            length += self.GiftbagList[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.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteBYTE(data, self.GiftbagCount)
        for i in range(self.GiftbagCount):
            data = CommFunc.WriteString(data, self.GiftbagList[i].GetLength(), self.GiftbagList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                StartDate:%s,
                                EndtDate:%s,
                                IsDayReset:%d,
                                LimitLV:%d,
                                GiftbagCount:%d,
                                GiftbagList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.StartDate,
                                self.EndtDate,
                                self.IsDayReset,
                                self.LimitLV,
                                self.GiftbagCount,
                                "..."
                                )
        return DumpString
m_NAtagMCActBuyOneInfo=tagMCActBuyOneInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActBuyOneInfo.Head.Cmd,m_NAtagMCActBuyOneInfo.Head.SubCmd))] = m_NAtagMCActBuyOneInfo
#------------------------------------------------------
# AA 66 买一送多活动玩家信息 #tagMCActBuyOnePlayerInfo
class  tagMCActBuyOnePlayerInfo(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)// 活动编号
    FreeRecordCount = 0    #(BYTE FreeRecordCount)// 免费礼包领奖记录个数
    FreeRecordList = list()    #(vector<DWORD> FreeRecordList)// 免费礼包领奖记录列表,按所需充值ID记录索引取记录,每个记录代表每个充值ID对应免费礼包的领取记录,按免费领取索引位运算记录是否已领取
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x66
        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.FreeRecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.FreeRecordCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.FreeRecordList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x66
        self.ActNum = 0
        self.FreeRecordCount = 0
        self.FreeRecordList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 4 * self.FreeRecordCount
        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.FreeRecordCount)
        for i in range(self.FreeRecordCount):
            data = CommFunc.WriteDWORD(data, self.FreeRecordList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                FreeRecordCount:%d,
                                FreeRecordList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.FreeRecordCount,
                                "..."
                                )
        return DumpString
m_NAtagMCActBuyOnePlayerInfo=tagMCActBuyOnePlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActBuyOnePlayerInfo.Head.Cmd,m_NAtagMCActBuyOnePlayerInfo.Head.SubCmd))] = m_NAtagMCActBuyOnePlayerInfo
#------------------------------------------------------
@@ -40640,6 +41109,7 @@
    TodayExpPoint = 0    #(DWORD TodayExpPoint)
    YestordayExp = 0    #(DWORD YestordayExp)
    YestordayExpPoint = 0    #(DWORD YestordayExpPoint)
    TotalCount = 0    #(DWORD TotalCount)// 累计活跃放置次数
    data = None
    def __init__(self):
@@ -40660,6 +41130,7 @@
        self.TodayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.YestordayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.YestordayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TotalCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -40676,6 +41147,7 @@
        self.TodayExpPoint = 0
        self.YestordayExp = 0
        self.YestordayExpPoint = 0
        self.TotalCount = 0
        return
    def GetLength(self):
@@ -40686,6 +41158,7 @@
        length += 1
        length += 1
        length += len(self.RewardInfo)
        length += 4
        length += 4
        length += 4
        length += 4
@@ -40705,6 +41178,7 @@
        data = CommFunc.WriteDWORD(data, self.TodayExpPoint)
        data = CommFunc.WriteDWORD(data, self.YestordayExp)
        data = CommFunc.WriteDWORD(data, self.YestordayExpPoint)
        data = CommFunc.WriteDWORD(data, self.TotalCount)
        return data
    def OutputString(self):
@@ -40718,7 +41192,8 @@
                                TodayExp:%d,
                                TodayExpPoint:%d,
                                YestordayExp:%d,
                                YestordayExpPoint:%d
                                YestordayExpPoint:%d,
                                TotalCount:%d
                                '''\
                                %(
                                self.Head.OutputString(),
@@ -40730,7 +41205,8 @@
                                self.TodayExp,
                                self.TodayExpPoint,
                                self.YestordayExp,
                                self.YestordayExpPoint
                                self.YestordayExpPoint,
                                self.TotalCount
                                )
        return DumpString