ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -15427,6 +15427,87 @@
#------------------------------------------------------
# A3 C4 装备神装拆解结果 #tagMCEquipDecomposeRet
class  tagMCEquipDecomposeRet(Structure):
    Head = tagHead()
    DecomposeEquipIDCount = 0    #(BYTE DecomposeEquipIDCount)// 已分解的装备个数
    DecomposeEquipIDList = list()    #(vector<DWORD> DecomposeEquipIDList)// 已分解的神装装备ID列表
    GetItemLen = 0    #(WORD GetItemLen)
    GetItemData = ""    #(String GetItemData)//  获得物品信息 [[itemID,itemCount,isBind], [或itemID,itemCount,isBind,isAppoint], {或物品信息字典}, ...]
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xC4
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.DecomposeEquipIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.DecomposeEquipIDCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.DecomposeEquipIDList.append(value)
        self.GetItemLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.GetItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.GetItemLen)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xC4
        self.DecomposeEquipIDCount = 0
        self.DecomposeEquipIDList = list()
        self.GetItemLen = 0
        self.GetItemData = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4 * self.DecomposeEquipIDCount
        length += 2
        length += len(self.GetItemData)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.DecomposeEquipIDCount)
        for i in range(self.DecomposeEquipIDCount):
            data = CommFunc.WriteDWORD(data, self.DecomposeEquipIDList[i])
        data = CommFunc.WriteWORD(data, self.GetItemLen)
        data = CommFunc.WriteString(data, self.GetItemLen, self.GetItemData)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                DecomposeEquipIDCount:%d,
                                DecomposeEquipIDList:%s,
                                GetItemLen:%d,
                                GetItemData:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.DecomposeEquipIDCount,
                                "...",
                                self.GetItemLen,
                                self.GetItemData
                                )
        return DumpString
m_NAtagMCEquipDecomposeRet=tagMCEquipDecomposeRet()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipDecomposeRet.Head.Cmd,m_NAtagMCEquipDecomposeRet.Head.SubCmd))] = m_NAtagMCEquipDecomposeRet
#------------------------------------------------------
# A3 B1 装备部位星数信息 #tagMCEquipPartStarInfo
class  tagMCEquipPartStar(Structure):
@@ -20023,60 +20104,98 @@
#A3 01 坐骑培养信息 #tagTrainHorseData
class  tagTrainHorseData(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("LV", c_ubyte),    #等阶
                  ("EatItemCount", c_int),    #当前阶已吃丹个数
                  ("SkinPlusState", c_int),    #幻化激活状态,按位存储是否激活,幻化编号ID对应位
                  ]
    Head = tagHead()
    LV = 0    #(BYTE LV)//等阶
    EatItemCount = 0    #(DWORD EatItemCount)//当前阶已吃丹个数
    SkinPlusState = 0    #(DWORD SkinPlusState)//幻化激活状态,按位存储是否激活,幻化编号ID对应位
    TrainTypes = 0    #(BYTE TrainTypes)//培养类型数
    TrainLVList = list()    #(vector<DWORD> TrainLVList)//培养等阶列表,索引为培养类型减1
    TrainItemCountList = list()    #(vector<DWORD> TrainItemCountList)//培养当前阶已吃培养丹个数列表,索引为培养类型减1
    data = None
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x01
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, stringData, _pos=0, _len=0):
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.EatItemCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.SkinPlusState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TrainTypes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainLVList.append(value)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainItemCountList.append(value)
        return _pos
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x01
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x01
        self.LV = 0
        self.EatItemCount = 0
        self.SkinPlusState = 0
        self.TrainTypes = 0
        self.TrainLVList = list()
        self.TrainItemCountList = list()
        return
    def GetLength(self):
        return sizeof(tagTrainHorseData)
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4
        length += 4
        length += 1
        length += 4 * self.TrainTypes
        length += 4 * self.TrainTypes
        return length
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.LV)
        data = CommFunc.WriteDWORD(data, self.EatItemCount)
        data = CommFunc.WriteDWORD(data, self.SkinPlusState)
        data = CommFunc.WriteBYTE(data, self.TrainTypes)
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainLVList[i])
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainItemCountList[i])
        return data
    def OutputString(self):
        DumpString = '''//A3 01 坐骑培养信息 //tagTrainHorseData:
                                Cmd:%s,
                                SubCmd:%s,
        DumpString = '''
                                Head:%s,
                                LV:%d,
                                EatItemCount:%d,
                                SkinPlusState:%d
                                SkinPlusState:%d,
                                TrainTypes:%d,
                                TrainLVList:%s,
                                TrainItemCountList:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Head.OutputString(),
                                self.LV,
                                self.EatItemCount,
                                self.SkinPlusState
                                self.SkinPlusState,
                                self.TrainTypes,
                                "...",
                                "..."
                                )
        return DumpString
m_NAtagTrainHorseData=tagTrainHorseData()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTrainHorseData.Cmd,m_NAtagTrainHorseData.SubCmd))] = m_NAtagTrainHorseData
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTrainHorseData.Head.Cmd,m_NAtagTrainHorseData.Head.SubCmd))] = m_NAtagTrainHorseData
#------------------------------------------------------
@@ -23667,6 +23786,90 @@
#------------------------------------------------------
# A8 18 灵器培养信息 #tagMCLingQiTrainInfo
class  tagMCLingQiTrainInfo(Structure):
    Head = tagHead()
    EquipPlace = 0    #(BYTE EquipPlace)//灵器装备位
    TrainTypes = 0    #(BYTE TrainTypes)//培养类型数
    TrainLVList = list()    #(vector<DWORD> TrainLVList)//培养等阶列表,索引为培养类型减1
    TrainItemCountList = list()    #(vector<DWORD> TrainItemCountList)//培养当前阶已吃培养丹个数列表,索引为培养类型减1
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x18
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.EquipPlace,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.TrainTypes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainLVList.append(value)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainItemCountList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x18
        self.EquipPlace = 0
        self.TrainTypes = 0
        self.TrainLVList = list()
        self.TrainItemCountList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 4 * self.TrainTypes
        length += 4 * self.TrainTypes
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.EquipPlace)
        data = CommFunc.WriteBYTE(data, self.TrainTypes)
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainLVList[i])
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainItemCountList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                EquipPlace:%d,
                                TrainTypes:%d,
                                TrainLVList:%s,
                                TrainItemCountList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.EquipPlace,
                                self.TrainTypes,
                                "...",
                                "..."
                                )
        return DumpString
m_NAtagMCLingQiTrainInfo=tagMCLingQiTrainInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLingQiTrainInfo.Head.Cmd,m_NAtagMCLingQiTrainInfo.Head.SubCmd))] = m_NAtagMCLingQiTrainInfo
#------------------------------------------------------
# A8 14 合成结果通知 #tagMCMakeItemAnswer
class  tagMCMakeItemAnswer(Structure):
@@ -24091,6 +24294,83 @@
m_NAtagMCNotifyUseItemGetItem=tagMCNotifyUseItemGetItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyUseItemGetItem.Head.Cmd,m_NAtagMCNotifyUseItemGetItem.Head.SubCmd))] = m_NAtagMCNotifyUseItemGetItem
#------------------------------------------------------
# A8 17 宠物培养信息 #tagMCPetTrainInfo
class  tagMCPetTrainInfo(Structure):
    Head = tagHead()
    TrainTypes = 0    #(BYTE TrainTypes)//培养类型数
    TrainLVList = list()    #(vector<DWORD> TrainLVList)//培养等阶列表,索引为培养类型减1
    TrainItemCountList = list()    #(vector<DWORD> TrainItemCountList)//培养当前阶已吃培养丹个数列表,索引为培养类型减1
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x17
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.TrainTypes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainLVList.append(value)
        for i in range(self.TrainTypes):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.TrainItemCountList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x17
        self.TrainTypes = 0
        self.TrainLVList = list()
        self.TrainItemCountList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4 * self.TrainTypes
        length += 4 * self.TrainTypes
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.TrainTypes)
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainLVList[i])
        for i in range(self.TrainTypes):
            data = CommFunc.WriteDWORD(data, self.TrainItemCountList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                TrainTypes:%d,
                                TrainLVList:%s,
                                TrainItemCountList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.TrainTypes,
                                "...",
                                "..."
                                )
        return DumpString
m_NAtagMCPetTrainInfo=tagMCPetTrainInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPetTrainInfo.Head.Cmd,m_NAtagMCPetTrainInfo.Head.SubCmd))] = m_NAtagMCPetTrainInfo
#------------------------------------------------------
@@ -24723,17 +25003,24 @@
#------------------------------------------------------
# AA 56 垃圾收集活动任务进度信息 #tagMCActGarbageTaskInfo
# AA 57 垃圾收集活动分类结果 #tagMCActGarbageSortingResult
class  tagMCActGarbageTaskItem(Structure):
class  tagMCActGarbageSortingResult(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("ItemCount", c_ushort),
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    #活动编号
                  ("GarbageSortingType", c_ubyte),    #垃圾分类类型
                  ("IsRight", c_ubyte),    #是否正确
                  ("AddEnvValue", c_int),    #增加环保值
                  ("HisEnvValueTotal", c_int),    # 当前活动累计获得环保值
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x57
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -24742,34 +25029,56 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.ItemID = 0
        self.ItemCount = 0
        self.Cmd = 0xAA
        self.SubCmd = 0x57
        self.ActNum = 0
        self.GarbageSortingType = 0
        self.IsRight = 0
        self.AddEnvValue = 0
        self.HisEnvValueTotal = 0
        return
    def GetLength(self):
        return sizeof(tagMCActGarbageTaskItem)
        return sizeof(tagMCActGarbageSortingResult)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 56 垃圾收集活动任务进度信息 //tagMCActGarbageTaskInfo:
                                ItemID:%d,
                                ItemCount:%d
        DumpString = '''// AA 57 垃圾收集活动分类结果 //tagMCActGarbageSortingResult:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d,
                                GarbageSortingType:%d,
                                IsRight:%d,
                                AddEnvValue:%d,
                                HisEnvValueTotal:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum,
                                self.GarbageSortingType,
                                self.IsRight,
                                self.AddEnvValue,
                                self.HisEnvValueTotal
                                )
        return DumpString
m_NAtagMCActGarbageSortingResult=tagMCActGarbageSortingResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGarbageSortingResult.Cmd,m_NAtagMCActGarbageSortingResult.SubCmd))] = m_NAtagMCActGarbageSortingResult
#------------------------------------------------------
# AA 56 垃圾收集活动任务进度信息 #tagMCActGarbageTaskInfo
class  tagMCActGarbageTask(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GarbageTaskID", c_ubyte),    #垃圾任务ID
                  ("GarbageTaskValue", c_int),    #当前进度值,一直累加
                  ("GarbageTaskFinishCount", c_ubyte),    #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
                  ("GarbageTaskFinishCount", c_int),    #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
                  ]
    def __init__(self):
@@ -24810,10 +25119,9 @@
class  tagMCActGarbageTaskInfo(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)// 活动编号
    HisEnvValueTotal = 0    #(DWORD HisEnvValueTotal)// 当前活动累计获得环保值
    GarbageTaskCount = 0    #(BYTE GarbageTaskCount)//任务数
    GarbageTaskList = list()    #(vector<tagMCActGarbageTask> GarbageTaskList)//任务信息列表
    TaskItemCount = 0    #(BYTE TaskItemCount)//本次获得的垃圾收集任务奖励物品个数,可能为0
    GarbageTaskItemList = list()    #(vector<tagMCActGarbageTaskItem> GarbageTaskItemList)
    data = None
    def __init__(self):
@@ -24826,16 +25134,12 @@
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.HisEnvValueTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GarbageTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.GarbageTaskCount):
            temGarbageTaskList = tagMCActGarbageTask()
            _pos = temGarbageTaskList.ReadData(_lpData, _pos)
            self.GarbageTaskList.append(temGarbageTaskList)
        self.TaskItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TaskItemCount):
            temGarbageTaskItemList = tagMCActGarbageTaskItem()
            _pos = temGarbageTaskItemList.ReadData(_lpData, _pos)
            self.GarbageTaskItemList.append(temGarbageTaskItemList)
        return _pos
    def Clear(self):
@@ -24844,22 +25148,19 @@
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x56
        self.ActNum = 0
        self.HisEnvValueTotal = 0
        self.GarbageTaskCount = 0
        self.GarbageTaskList = list()
        self.TaskItemCount = 0
        self.GarbageTaskItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4
        length += 1
        for i in range(self.GarbageTaskCount):
            length += self.GarbageTaskList[i].GetLength()
        length += 1
        for i in range(self.TaskItemCount):
            length += self.GarbageTaskItemList[i].GetLength()
        return length
@@ -24867,29 +25168,25 @@
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNum)
        data = CommFunc.WriteDWORD(data, self.HisEnvValueTotal)
        data = CommFunc.WriteBYTE(data, self.GarbageTaskCount)
        for i in range(self.GarbageTaskCount):
            data = CommFunc.WriteString(data, self.GarbageTaskList[i].GetLength(), self.GarbageTaskList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.TaskItemCount)
        for i in range(self.TaskItemCount):
            data = CommFunc.WriteString(data, self.GarbageTaskItemList[i].GetLength(), self.GarbageTaskItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                HisEnvValueTotal:%d,
                                GarbageTaskCount:%d,
                                GarbageTaskList:%s,
                                TaskItemCount:%d,
                                GarbageTaskItemList:%s
                                GarbageTaskList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.HisEnvValueTotal,
                                self.GarbageTaskCount,
                                "...",
                                self.TaskItemCount,
                                "..."
                                )
        return DumpString