| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A9 05 通知广播装备详细信息 #tagGCNotifyEquipDetailInfo
|
| | |
|
| | | class tagGCNotifyEquipClassEquip(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("ItemID", c_int), |
| | | ("Star", 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.Star = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagGCNotifyEquipClassEquip)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A9 05 通知广播装备详细信息 //tagGCNotifyEquipDetailInfo:
|
| | | ItemID:%d,
|
| | | Star:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.Star
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCNotifyEquipDetailInfo(Structure):
|
| | | Head = tagHead()
|
| | | ItemGUID = "" #(char ItemGUID[40])
|
| | | ItemID = 0 #(DWORD ItemID)
|
| | | Star = 0 #(BYTE Star)//星级
|
| | | PlusLV = 0 #(WORD PlusLV)//强化等级
|
| | | EvolveLV = 0 #(BYTE EvolveLV)//进化等级
|
| | | WashLV = 0 #(BYTE WashLV)//洗练等级
|
| | | WashValueCount = 0 #(BYTE WashValueCount)
|
| | | WashValueList = list() #(vector<WORD> WashValueList)//洗练值
|
| | | StoneIDCount = 0 #(BYTE StoneIDCount)
|
| | | StoneIDList = list() #(vector<DWORD> StoneIDList)//宝石
|
| | | ClassEquipCount = 0 #(BYTE ClassEquipCount)
|
| | | ClassEquipList = list() #(vector<tagGCNotifyEquipClassEquip> ClassEquipList)//本境界穿戴的装备
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA9
|
| | | self.Head.SubCmd = 0x05
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Star,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.PlusLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.EvolveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.WashLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.WashValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.WashValueCount):
|
| | | value,_pos=CommFunc.ReadWORD(_lpData,_pos)
|
| | | self.WashValueList.append(value)
|
| | | self.StoneIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.StoneIDCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.StoneIDList.append(value)
|
| | | self.ClassEquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.ClassEquipCount):
|
| | | temClassEquipList = tagGCNotifyEquipClassEquip()
|
| | | _pos = temClassEquipList.ReadData(_lpData, _pos)
|
| | | self.ClassEquipList.append(temClassEquipList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA9
|
| | | self.Head.SubCmd = 0x05
|
| | | self.ItemGUID = ""
|
| | | self.ItemID = 0
|
| | | self.Star = 0
|
| | | self.PlusLV = 0
|
| | | self.EvolveLV = 0
|
| | | self.WashLV = 0
|
| | | self.WashValueCount = 0
|
| | | self.WashValueList = list()
|
| | | self.StoneIDCount = 0
|
| | | self.StoneIDList = list()
|
| | | self.ClassEquipCount = 0
|
| | | self.ClassEquipList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 40
|
| | | length += 4
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2 * self.WashValueCount
|
| | | length += 1
|
| | | length += 4 * self.StoneIDCount
|
| | | length += 1
|
| | | for i in range(self.ClassEquipCount):
|
| | | length += self.ClassEquipList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 40, self.ItemGUID)
|
| | | data = CommFunc.WriteDWORD(data, self.ItemID)
|
| | | data = CommFunc.WriteBYTE(data, self.Star)
|
| | | data = CommFunc.WriteWORD(data, self.PlusLV)
|
| | | data = CommFunc.WriteBYTE(data, self.EvolveLV)
|
| | | data = CommFunc.WriteBYTE(data, self.WashLV)
|
| | | data = CommFunc.WriteBYTE(data, self.WashValueCount)
|
| | | for i in range(self.WashValueCount):
|
| | | data = CommFunc.WriteWORD(data, self.WashValueList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.StoneIDCount)
|
| | | for i in range(self.StoneIDCount):
|
| | | data = CommFunc.WriteDWORD(data, self.StoneIDList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.ClassEquipCount)
|
| | | for i in range(self.ClassEquipCount):
|
| | | data = CommFunc.WriteString(data, self.ClassEquipList[i].GetLength(), self.ClassEquipList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ItemGUID:%s,
|
| | | ItemID:%d,
|
| | | Star:%d,
|
| | | PlusLV:%d,
|
| | | EvolveLV:%d,
|
| | | WashLV:%d,
|
| | | WashValueCount:%d,
|
| | | WashValueList:%s,
|
| | | StoneIDCount:%d,
|
| | | StoneIDList:%s,
|
| | | ClassEquipCount:%d,
|
| | | ClassEquipList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ItemGUID,
|
| | | self.ItemID,
|
| | | self.Star,
|
| | | self.PlusLV,
|
| | | self.EvolveLV,
|
| | | self.WashLV,
|
| | | self.WashValueCount,
|
| | | "...",
|
| | | self.StoneIDCount,
|
| | | "...",
|
| | | self.ClassEquipCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCNotifyEquipDetailInfo=tagGCNotifyEquipDetailInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNotifyEquipDetailInfo.Head.Cmd,m_NAtagGCNotifyEquipDetailInfo.Head.SubCmd))] = m_NAtagGCNotifyEquipDetailInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount
|
| | |
|
| | | class tagGCOpenServerCampaignAwardCount(Structure):
|