| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 16 装备强化进化 #tagCMEquipPlusEvolve
|
| | |
|
| | | class tagCMEquipPlusEvolve(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ItemIndex", c_ushort), #装备在背包中索引
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x16
|
| | | 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 = 0x16
|
| | | self.ItemIndex = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMEquipPlusEvolve)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 16 装备强化进化 //tagCMEquipPlusEvolve:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ItemIndex:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ItemIndex
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMEquipPlusEvolve=tagCMEquipPlusEvolve()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPlusEvolve.Cmd,m_NAtagCMEquipPlusEvolve.SubCmd))] = m_NAtagCMEquipPlusEvolve
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 05 宝石摘取 #tagCMEquipStonePick
|
| | |
|
| | | class tagCMEquipStonePick(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 08 物品过期 #tagCMItemTimeout
|
| | |
|
| | | class tagCMItemTimeout(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("PackType", c_ubyte), #背包类型
|
| | | ("ItemIndex", c_ubyte), #物品在背包中索引
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x08
|
| | | 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 = 0x08
|
| | | self.PackType = 0
|
| | | self.ItemIndex = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMItemTimeout)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 08 物品过期 //tagCMItemTimeout:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | PackType:%d,
|
| | | ItemIndex:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.PackType,
|
| | | self.ItemIndex
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMItemTimeout=tagCMItemTimeout()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMItemTimeout.Cmd,m_NAtagCMItemTimeout.SubCmd))] = m_NAtagCMItemTimeout
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 02 丢弃背包物品 #tagPlayerDropItem
|
| | |
|
| | | class tagPlayerDropItem(Structure):
|
| | |
| | |
|
| | | m_NAtagCMItemCompound=tagCMItemCompound()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMItemCompound.Head.Cmd,m_NAtagCMItemCompound.Head.SubCmd))] = m_NAtagCMItemCompound
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 17 套装合成#tagCMSuitCompose
|
| | |
|
| | | class tagCMSuitCompose(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("SuiteType", c_ubyte), # 套装类型 1普通 2强化
|
| | | ("EquipPlace", c_ubyte), # 装备位置
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x17
|
| | | 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 = 0x17
|
| | | self.SuiteType = 0
|
| | | self.EquipPlace = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMSuitCompose)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//A3 17 套装合成//tagCMSuitCompose:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | SuiteType:%d,
|
| | | EquipPlace:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.SuiteType,
|
| | | self.EquipPlace
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMSuitCompose=tagCMSuitCompose()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSuitCompose.Cmd,m_NAtagCMSuitCompose.SubCmd))] = m_NAtagCMSuitCompose
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 08 套装拆解 #tagCMSuiteDecompose
|
| | |
|
| | | class tagCMSuiteDecompose(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("EquipPlace", c_ubyte), #部位索引
|
| | | ("SuiteType", c_ubyte), #套装类型 0代表全部类型
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x08
|
| | | 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 = 0x08
|
| | | self.EquipPlace = 0
|
| | | self.SuiteType = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMSuiteDecompose)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 08 套装拆解 //tagCMSuiteDecompose:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | EquipPlace:%d,
|
| | | SuiteType:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.EquipPlace,
|
| | | self.SuiteType
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMSuiteDecompose=tagCMSuiteDecompose()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSuiteDecompose.Cmd,m_NAtagCMSuiteDecompose.SubCmd))] = m_NAtagCMSuiteDecompose
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | | m_NAtagCMActiveAllEquipAttr=tagCMActiveAllEquipAttr()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActiveAllEquipAttr.Cmd,m_NAtagCMActiveAllEquipAttr.SubCmd))] = m_NAtagCMActiveAllEquipAttr
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 12 激活法宝之魂 #tagCMActiveMWSoul
|
| | |
|
| | | class tagCMActiveMWSoul(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ID", c_ubyte), #编号
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x12
|
| | | 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 = 0xA5
|
| | | self.SubCmd = 0x12
|
| | | self.ID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMActiveMWSoul)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 12 激活法宝之魂 //tagCMActiveMWSoul:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMActiveMWSoul=tagCMActiveMWSoul()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActiveMWSoul.Cmd,m_NAtagCMActiveMWSoul.SubCmd))] = m_NAtagCMActiveMWSoul
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 C5 装备部位升星 #tagCMEquipPartStarUp
|
| | |
|
| | | class tagCMEquipPartStarUp(Structure):
|
| | | Head = tagHead()
|
| | | EquipPackIndex = 0 #(WORD EquipPackIndex)// 部位格子索引
|
| | | CostEquipCnt = 0 #(BYTE CostEquipCnt)// 装备个数
|
| | | CostEquipIndex = list() #(vector<WORD> CostEquipIndex)// 装备索引
|
| | | CostEquipID = list() #(vector<DWORD> CostEquipID)// 装备物品ID
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA5
|
| | | self.Head.SubCmd = 0xC5
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.EquipPackIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.CostEquipCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.CostEquipCnt):
|
| | | value,_pos=CommFunc.ReadWORD(_lpData,_pos)
|
| | | self.CostEquipIndex.append(value)
|
| | | for i in range(self.CostEquipCnt):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.CostEquipID.append(value)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA5
|
| | | self.Head.SubCmd = 0xC5
|
| | | self.EquipPackIndex = 0
|
| | | self.CostEquipCnt = 0
|
| | | self.CostEquipIndex = list()
|
| | | self.CostEquipID = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 2
|
| | | length += 1
|
| | | length += 2 * self.CostEquipCnt
|
| | | length += 4 * self.CostEquipCnt
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteWORD(data, self.EquipPackIndex)
|
| | | data = CommFunc.WriteBYTE(data, self.CostEquipCnt)
|
| | | for i in range(self.CostEquipCnt):
|
| | | data = CommFunc.WriteWORD(data, self.CostEquipIndex[i])
|
| | | for i in range(self.CostEquipCnt):
|
| | | data = CommFunc.WriteDWORD(data, self.CostEquipID[i])
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | EquipPackIndex:%d,
|
| | | CostEquipCnt:%d,
|
| | | CostEquipIndex:%s,
|
| | | CostEquipID:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.EquipPackIndex,
|
| | | self.CostEquipCnt,
|
| | | "...",
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMEquipPartStarUp=tagCMEquipPartStarUp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartStarUp.Head.Cmd,m_NAtagCMEquipPartStarUp.Head.SubCmd))] = m_NAtagCMEquipPartStarUp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 48 兑换大师等级经验 #tagCMExchangeMasterEXP
|
| | |
|
| | | class tagCMExchangeMasterEXP(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 0C 使用道具减少渡劫打坐时间 #tagCMReduceSitTime
|
| | |
|
| | | class tagCMReduceSitTime(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ItemCnt", c_ushort), # 道具数量
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x0C
|
| | | 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 = 0xA5
|
| | | self.SubCmd = 0x0C
|
| | | self.ItemCnt = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMReduceSitTime)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 0C 使用道具减少渡劫打坐时间 //tagCMReduceSitTime:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ItemCnt:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ItemCnt
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMReduceSitTime=tagCMReduceSitTime()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMReduceSitTime.Cmd,m_NAtagCMReduceSitTime.SubCmd))] = m_NAtagCMReduceSitTime
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 74 刷新悬赏任务 #tagCMRefreshArrestTask
|
| | |
|
| | | class tagCMRefreshArrestTask(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 21 境界修为池提取 #tagCMTakeOutRealmExp
|
| | |
|
| | | class tagCMTakeOutRealmExp(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x21
|
| | | 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 = 0xA5
|
| | | self.SubCmd = 0x21
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMTakeOutRealmExp)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 21 境界修为池提取 //tagCMTakeOutRealmExp:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMTakeOutRealmExp=tagCMTakeOutRealmExp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTakeOutRealmExp.Cmd,m_NAtagCMTakeOutRealmExp.SubCmd))] = m_NAtagCMTakeOutRealmExp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 11 试用首充武器 #tagCMTryFirstGoldItem
|
| | |
|
| | | class tagCMTryFirstGoldItem(Structure):
|