hxp
2025-10-22 48fe7ceb396576b1d87745c426921586b9eb721d
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5527,118 +5527,6 @@
#------------------------------------------------------
# A3 1D 神兵等级信息 #tagMCGodWeaponLVList
class  tagMCGodWeaponLVInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("WeaponType", c_ubyte),    #神兵类型
                  ("WeaponLV", c_ushort),    #神兵等级
                  ("WeaponExp", 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.WeaponType = 0
        self.WeaponLV = 0
        self.WeaponExp = 0
        return
    def GetLength(self):
        return sizeof(tagMCGodWeaponLVInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 1D 神兵等级信息 //tagMCGodWeaponLVList:
                                WeaponType:%d,
                                WeaponLV:%d,
                                WeaponExp:%d
                                '''\
                                %(
                                self.WeaponType,
                                self.WeaponLV,
                                self.WeaponExp
                                )
        return DumpString
class  tagMCGodWeaponLVList(Structure):
    Head = tagHead()
    WeaponNum = 0    #(BYTE WeaponNum)//神器个数
    WeaponInfoList = list()    #(vector<tagMCGodWeaponLVInfo> WeaponInfoList)// 副本数据列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x1D
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.WeaponNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.WeaponNum):
            temWeaponInfoList = tagMCGodWeaponLVInfo()
            _pos = temWeaponInfoList.ReadData(_lpData, _pos)
            self.WeaponInfoList.append(temWeaponInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x1D
        self.WeaponNum = 0
        self.WeaponInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.WeaponNum):
            length += self.WeaponInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.WeaponNum)
        for i in range(self.WeaponNum):
            data = CommFunc.WriteString(data, self.WeaponInfoList[i].GetLength(), self.WeaponInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                WeaponNum:%d,
                                WeaponInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.WeaponNum,
                                "..."
                                )
        return DumpString
m_NAtagMCGodWeaponLVList=tagMCGodWeaponLVList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGodWeaponLVList.Head.Cmd,m_NAtagMCGodWeaponLVList.Head.SubCmd))] = m_NAtagMCGodWeaponLVList
#------------------------------------------------------
# A3 37 投资理财信息 #tagMCGoldInvestInfo
class  tagMCInvestReward(Structure):
@@ -7539,58 +7427,6 @@
m_NAtagMCNPCIDCollectionCntInfo=tagMCNPCIDCollectionCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCIDCollectionCntInfo.Head.Cmd,m_NAtagMCNPCIDCollectionCntInfo.Head.SubCmd))] = m_NAtagMCNPCIDCollectionCntInfo
#------------------------------------------------------
# A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
class  tagMCPackDownloadRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Record", c_ubyte),    #0-未领取 1-已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x19
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x19
        self.Record = 0
        return
    def GetLength(self):
        return sizeof(tagMCPackDownloadRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 19 分包下载奖励记录 //tagMCPackDownloadRecord:
                                Cmd:%s,
                                SubCmd:%s,
                                Record:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Record
                                )
        return DumpString
m_NAtagMCPackDownloadRecord=tagMCPackDownloadRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPackDownloadRecord.Cmd,m_NAtagMCPackDownloadRecord.SubCmd))] = m_NAtagMCPackDownloadRecord
#------------------------------------------------------
@@ -10631,208 +10467,6 @@
#------------------------------------------------------
# A4 06 家族仓库物品信息 #tagGCFamilyStoreItemInfo
class  tagGCFamilyStoreItem(Structure):
    Index = 0    #(BYTE Index)// 仓库格子索引,从0开始代表第一格
    ItemID = 0    #(DWORD ItemID)// 物品ID
    ItemDataLen = 0    #(WORD ItemDataLen)
    ItemData = ""    #(String ItemData)//size = ItemDataLen
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.Index,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataLen)
        return _pos
    def Clear(self):
        self.Index = 0
        self.ItemID = 0
        self.ItemDataLen = 0
        self.ItemData = ""
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 4
        length += 2
        length += len(self.ItemData)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.Index)
        data = CommFunc.WriteDWORD(data, self.ItemID)
        data = CommFunc.WriteWORD(data, self.ItemDataLen)
        data = CommFunc.WriteString(data, self.ItemDataLen, self.ItemData)
        return data
    def OutputString(self):
        DumpString = '''
                                Index:%d,
                                ItemID:%d,
                                ItemDataLen:%d,
                                ItemData:%s
                                '''\
                                %(
                                self.Index,
                                self.ItemID,
                                self.ItemDataLen,
                                self.ItemData
                                )
        return DumpString
class  tagGCFamilyStoreItemInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//数量
    StoreItemList = list()    #(vector<tagGCFamilyStoreItem> StoreItemList)//size = Count
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        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.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temStoreItemList = tagGCFamilyStoreItem()
            _pos = temStoreItemList.ReadData(_lpData, _pos)
            self.StoreItemList.append(temStoreItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x06
        self.Count = 0
        self.StoreItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.StoreItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.StoreItemList[i].GetLength(), self.StoreItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                StoreItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyStoreItemInfo=tagGCFamilyStoreItemInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyStoreItemInfo.Head.Cmd,m_NAtagGCFamilyStoreItemInfo.Head.SubCmd))] = m_NAtagGCFamilyStoreItemInfo
#------------------------------------------------------
# A4 07 家族仓库物品清除 #tagGCFamilyStoreItemClear
class  tagGCFamilyStoreItemClear(Structure):
    Head = tagHead()
    ClearType = 0    #(BYTE ClearType)//0-指定格子清除; 1-所有物品清除
    IndexCount = 0    #(BYTE IndexCount)
    IndexList = list()    #(vector<BYTE> IndexList)//清除的格子索引, 仅指定格子清除时有效,从0开始代表第一格
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ClearType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.IndexCount):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.IndexList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x07
        self.ClearType = 0
        self.IndexCount = 0
        self.IndexList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 1 * self.IndexCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ClearType)
        data = CommFunc.WriteBYTE(data, self.IndexCount)
        for i in range(self.IndexCount):
            data = CommFunc.WriteBYTE(data, self.IndexList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ClearType:%d,
                                IndexCount:%d,
                                IndexList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ClearType,
                                self.IndexCount,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyStoreItemClear=tagGCFamilyStoreItemClear()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyStoreItemClear.Head.Cmd,m_NAtagGCFamilyStoreItemClear.Head.SubCmd))] = m_NAtagGCFamilyStoreItemClear
#------------------------------------------------------
# A4 09 家族守卫人皇信息通知 #tagGCFamilySWRHInfo
class  tagGCFamilySWRHInfo(Structure):
@@ -12798,125 +12432,6 @@
m_NAtagMCFamilyZhenbaogeInfo=tagMCFamilyZhenbaogeInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyZhenbaogeInfo.Cmd,m_NAtagMCFamilyZhenbaogeInfo.SubCmd))] = m_NAtagMCFamilyZhenbaogeInfo
#------------------------------------------------------
# A5 09 仙盟阵法信息 #tagMCFamilyZhenfaInfo
class  tagMCFamilyZhenfa(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ZhenfaType", c_ubyte),    # 阵法类型
                  ("ZhenfaLV", c_ushort),    # 阵法等级
                  ("ZhenfaExp", 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.ZhenfaType = 0
        self.ZhenfaLV = 0
        self.ZhenfaExp = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyZhenfa)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 09 仙盟阵法信息 //tagMCFamilyZhenfaInfo:
                                ZhenfaType:%d,
                                ZhenfaLV:%d,
                                ZhenfaExp:%d
                                '''\
                                %(
                                self.ZhenfaType,
                                self.ZhenfaLV,
                                self.ZhenfaExp
                                )
        return DumpString
class  tagMCFamilyZhenfaInfo(Structure):
    Head = tagHead()
    PlayerID = 0    #(DWORD PlayerID)// 当前培养阵法的玩家ID,如果有做自动捐献,需等收到的玩家ID为自己的时候才发送下一个捐献包
    Count = 0    #(BYTE Count)
    ZhenfaInfoList = list()    #(vector<tagMCFamilyZhenfa> ZhenfaInfoList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x09
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temZhenfaInfoList = tagMCFamilyZhenfa()
            _pos = temZhenfaInfoList.ReadData(_lpData, _pos)
            self.ZhenfaInfoList.append(temZhenfaInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x09
        self.PlayerID = 0
        self.Count = 0
        self.ZhenfaInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        for i in range(self.Count):
            length += self.ZhenfaInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.ZhenfaInfoList[i].GetLength(), self.ZhenfaInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                PlayerID:%d,
                                Count:%d,
                                ZhenfaInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.PlayerID,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCFamilyZhenfaInfo=tagMCFamilyZhenfaInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyZhenfaInfo.Head.Cmd,m_NAtagMCFamilyZhenfaInfo.Head.SubCmd))] = m_NAtagMCFamilyZhenfaInfo
#------------------------------------------------------
@@ -17771,80 +17286,6 @@
m_NAtagGCNotifyEquipDetailInfo=tagGCNotifyEquipDetailInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNotifyEquipDetailInfo.Head.Cmd,m_NAtagGCNotifyEquipDetailInfo.Head.SubCmd))] = m_NAtagGCNotifyEquipDetailInfo
#------------------------------------------------------
#A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount
class  tagGCOpenServerCampaignAwardCount(Structure):
    Head = tagHead()
    CampaignType = 0    #(BYTE CampaignType)//奖励类型
    AwardTypeCount = 0    #(BYTE AwardTypeCount)//奖品种类数量
    GotCountList = list()    #(vector<DWORD> GotCountList)//奖品已领取数量列表,根据种类索引依次
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.CampaignType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AwardTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardTypeCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.GotCountList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x03
        self.CampaignType = 0
        self.AwardTypeCount = 0
        self.GotCountList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 4 * self.AwardTypeCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.CampaignType)
        data = CommFunc.WriteBYTE(data, self.AwardTypeCount)
        for i in range(self.AwardTypeCount):
            data = CommFunc.WriteDWORD(data, self.GotCountList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                CampaignType:%d,
                                AwardTypeCount:%d,
                                GotCountList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.CampaignType,
                                self.AwardTypeCount,
                                "..."
                                )
        return DumpString
m_NAtagGCOpenServerCampaignAwardCount=tagGCOpenServerCampaignAwardCount()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCOpenServerCampaignAwardCount.Head.Cmd,m_NAtagGCOpenServerCampaignAwardCount.Head.SubCmd))] = m_NAtagGCOpenServerCampaignAwardCount
#------------------------------------------------------
@@ -31685,126 +31126,6 @@
m_NAtagMCBossRebornInfo=tagMCBossRebornInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornInfo.Head.Cmd,m_NAtagMCBossRebornInfo.Head.SubCmd))] = m_NAtagMCBossRebornInfo
#------------------------------------------------------
# AB 17 开服活动奖励状态 #tagMCOpenServerCampaignAwardList
class  tagMCOpenServerCampaignAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("CampaignType", c_ubyte),    #奖励类型
                  ("BillAwardRecord", c_ubyte),    #排行奖励是否已领取
                  ("TagAwardRecord", c_int),    #目标奖励索引位领取记录:0-未领;1-已领
                  ("RecordData", c_int),    #活动时的记录值,求余亿部分,为了统一逻辑,其他非战力榜的也使用此规则
                  ("RecordDataEx", c_int),    #活动时的记录值,整除亿部分,1代表1亿
                  ]
    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.CampaignType = 0
        self.BillAwardRecord = 0
        self.TagAwardRecord = 0
        self.RecordData = 0
        self.RecordDataEx = 0
        return
    def GetLength(self):
        return sizeof(tagMCOpenServerCampaignAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 17 开服活动奖励状态 //tagMCOpenServerCampaignAwardList:
                                CampaignType:%d,
                                BillAwardRecord:%d,
                                TagAwardRecord:%d,
                                RecordData:%d,
                                RecordDataEx:%d
                                '''\
                                %(
                                self.CampaignType,
                                self.BillAwardRecord,
                                self.TagAwardRecord,
                                self.RecordData,
                                self.RecordDataEx
                                )
        return DumpString
class  tagMCOpenServerCampaignAwardList(Structure):
    Head = tagHead()
    OSCAwardCnt = 0    #(BYTE OSCAwardCnt)//奖励类型数
    OSCAwardList = list()    #(vector<tagMCOpenServerCampaignAward> OSCAwardList)// 奖励状态列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x17
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.OSCAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.OSCAwardCnt):
            temOSCAwardList = tagMCOpenServerCampaignAward()
            _pos = temOSCAwardList.ReadData(_lpData, _pos)
            self.OSCAwardList.append(temOSCAwardList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x17
        self.OSCAwardCnt = 0
        self.OSCAwardList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.OSCAwardCnt):
            length += self.OSCAwardList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.OSCAwardCnt)
        for i in range(self.OSCAwardCnt):
            data = CommFunc.WriteString(data, self.OSCAwardList[i].GetLength(), self.OSCAwardList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                OSCAwardCnt:%d,
                                OSCAwardList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.OSCAwardCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCOpenServerCampaignAwardList=tagMCOpenServerCampaignAwardList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOpenServerCampaignAwardList.Head.Cmd,m_NAtagMCOpenServerCampaignAwardList.Head.SubCmd))] = m_NAtagMCOpenServerCampaignAwardList
#------------------------------------------------------