| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 01 新增协助 #tagGCAssistInfoList
|
| | |
|
| | | class tagGCAssistInfo(Structure):
|
| | | AssistGUID = "" #(char AssistGUID[40])//协助GUID
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)//等级
|
| | | RealmLV = 0 #(BYTE RealmLV)//境界
|
| | | MapID = 0 #(DWORD MapID)
|
| | | LineID = 0 #(DWORD LineID)
|
| | | NPCID = 0 #(DWORD NPCID)
|
| | | ExDataLen = 0 #(WORD ExDataLen)
|
| | | ExData = "" #(String ExData)//其他自定义数据
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.AssistGUID = ""
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.MapID = 0
|
| | | self.LineID = 0
|
| | | self.NPCID = 0
|
| | | self.ExDataLen = 0
|
| | | self.ExData = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 33
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += len(self.ExData)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, 40, self.AssistGUID)
|
| | | data = CommFunc.WriteString(data, 33, self.PlayerName)
|
| | | data = CommFunc.WriteBYTE(data, self.Job)
|
| | | data = CommFunc.WriteWORD(data, self.LV)
|
| | | data = CommFunc.WriteBYTE(data, self.RealmLV)
|
| | | data = CommFunc.WriteDWORD(data, self.MapID)
|
| | | data = CommFunc.WriteDWORD(data, self.LineID)
|
| | | data = CommFunc.WriteDWORD(data, self.NPCID)
|
| | | data = CommFunc.WriteWORD(data, self.ExDataLen)
|
| | | data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | AssistGUID:%s,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | LV:%d,
|
| | | RealmLV:%d,
|
| | | MapID:%d,
|
| | | LineID:%d,
|
| | | NPCID:%d,
|
| | | ExDataLen:%d,
|
| | | ExData:%s
|
| | | '''\
|
| | | %(
|
| | | self.AssistGUID,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.LV,
|
| | | self.RealmLV,
|
| | | self.MapID,
|
| | | self.LineID,
|
| | | self.NPCID,
|
| | | self.ExDataLen,
|
| | | self.ExData
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCAssistInfoList(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)
|
| | | AssistInfoList = list() #(vector<tagGCAssistInfo> AssistInfoList)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x01
|
| | | 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):
|
| | | temAssistInfoList = tagGCAssistInfo()
|
| | | _pos = temAssistInfoList.ReadData(_lpData, _pos)
|
| | | self.AssistInfoList.append(temAssistInfoList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x01
|
| | | self.Count = 0
|
| | | self.AssistInfoList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.AssistInfoList[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.AssistInfoList[i].GetLength(), self.AssistInfoList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | Count:%d,
|
| | | AssistInfoList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCAssistInfoList=tagGCAssistInfoList()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistInfoList.Head.Cmd,m_NAtagGCAssistInfoList.Head.SubCmd))] = m_NAtagGCAssistInfoList
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 03 正在进行中的协助 #tagGCAssistingInfo
|
| | |
|
| | | class tagGCAssistingInfo(Structure):
|
| | | Head = tagHead()
|
| | | AssistGUID = "" #(char AssistGUID[40])//协助GUID
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x03
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x03
|
| | | self.AssistGUID = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 40
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 40, self.AssistGUID)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | AssistGUID:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.AssistGUID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCAssistingInfo=tagGCAssistingInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistingInfo.Head.Cmd,m_NAtagGCAssistingInfo.Head.SubCmd))] = m_NAtagGCAssistingInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 06 可接收协助感谢礼物个数 #tagGCCanGetAssistThanksGiftCount
|
| | |
|
| | | class tagGCCanGetAssistThanksGiftCount(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("CanGetCount", c_ubyte), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB0
|
| | | self.SubCmd = 0x06
|
| | | 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 = 0xB0
|
| | | self.SubCmd = 0x06
|
| | | self.CanGetCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagGCCanGetAssistThanksGiftCount)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B0 06 可接收协助感谢礼物个数 //tagGCCanGetAssistThanksGiftCount:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | CanGetCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.CanGetCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCCanGetAssistThanksGiftCount=tagGCCanGetAssistThanksGiftCount()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCanGetAssistThanksGiftCount.Cmd,m_NAtagGCCanGetAssistThanksGiftCount.SubCmd))] = m_NAtagGCCanGetAssistThanksGiftCount
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 02 删除协助 #tagGCClearAssist
|
| | |
|
| | | class tagGCClearAssist(Structure):
|
| | | Head = tagHead()
|
| | | AssistGUID = "" #(char AssistGUID[40])//协助GUID
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x02
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x02
|
| | | self.AssistGUID = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 40
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 40, self.AssistGUID)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | AssistGUID:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.AssistGUID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCClearAssist=tagGCClearAssist()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAssist.Head.Cmd,m_NAtagGCClearAssist.Head.SubCmd))] = m_NAtagGCClearAssist
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #B0 26 家族悬赏任务完成情况 #tagFamilyArrestOverStateInfo
|
| | |
|
| | | class tagFamilyArrestOverState(Structure):
|
| | |
| | |
|
| | | m_NAtagFamilyArrestOverStateInfo=tagFamilyArrestOverStateInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyArrestOverStateInfo.Head.Cmd,m_NAtagFamilyArrestOverStateInfo.Head.SubCmd))] = m_NAtagFamilyArrestOverStateInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 05 接收协助感谢礼物预览 #tagGCGetAssistThanksGiftPreview
|
| | |
|
| | | class tagGCGetAssistThanksGiftPreview(Structure):
|
| | | Head = tagHead()
|
| | | GiftGUID = "" #(char GiftGUID[40])//礼盒GUID
|
| | | ItemID = 0 #(DWORD ItemID)//礼盒ID
|
| | | PlayerID = 0 #(DWORD PlayerID)//发起玩家ID
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)
|
| | | RealmLV = 0 #(BYTE RealmLV)//境界
|
| | | MapID = 0 #(DWORD MapID)
|
| | | LineID = 0 #(DWORD LineID)
|
| | | NPCID = 0 #(DWORD NPCID)
|
| | | ExDataLen = 0 #(WORD ExDataLen)
|
| | | ExData = "" #(String ExData)//其他自定义数据
|
| | | TimeStr = "" #(char TimeStr[19])//协助时间yyyy-MM-dd hh:mm:ss
|
| | | ExtraAward = 0 #(BYTE ExtraAward)//是否有额外奖励
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x05
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.GiftGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
|
| | | self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,19)
|
| | | self.ExtraAward,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x05
|
| | | self.GiftGUID = ""
|
| | | self.ItemID = 0
|
| | | self.PlayerID = 0
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.MapID = 0
|
| | | self.LineID = 0
|
| | | self.NPCID = 0
|
| | | self.ExDataLen = 0
|
| | | self.ExData = ""
|
| | | self.TimeStr = ""
|
| | | self.ExtraAward = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 40
|
| | | length += 4
|
| | | length += 4
|
| | | length += 33
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += len(self.ExData)
|
| | | length += 19
|
| | | length += 1
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 40, self.GiftGUID)
|
| | | data = CommFunc.WriteDWORD(data, self.ItemID)
|
| | | data = CommFunc.WriteDWORD(data, self.PlayerID)
|
| | | data = CommFunc.WriteString(data, 33, self.PlayerName)
|
| | | data = CommFunc.WriteBYTE(data, self.Job)
|
| | | data = CommFunc.WriteWORD(data, self.LV)
|
| | | data = CommFunc.WriteBYTE(data, self.RealmLV)
|
| | | data = CommFunc.WriteDWORD(data, self.MapID)
|
| | | data = CommFunc.WriteDWORD(data, self.LineID)
|
| | | data = CommFunc.WriteDWORD(data, self.NPCID)
|
| | | data = CommFunc.WriteWORD(data, self.ExDataLen)
|
| | | data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
|
| | | data = CommFunc.WriteString(data, 19, self.TimeStr)
|
| | | data = CommFunc.WriteBYTE(data, self.ExtraAward)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | GiftGUID:%s,
|
| | | ItemID:%d,
|
| | | PlayerID:%d,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | LV:%d,
|
| | | RealmLV:%d,
|
| | | MapID:%d,
|
| | | LineID:%d,
|
| | | NPCID:%d,
|
| | | ExDataLen:%d,
|
| | | ExData:%s,
|
| | | TimeStr:%s,
|
| | | ExtraAward:%d
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.GiftGUID,
|
| | | self.ItemID,
|
| | | self.PlayerID,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.LV,
|
| | | self.RealmLV,
|
| | | self.MapID,
|
| | | self.LineID,
|
| | | self.NPCID,
|
| | | self.ExDataLen,
|
| | | self.ExData,
|
| | | self.TimeStr,
|
| | | self.ExtraAward
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCGetAssistThanksGiftPreview=tagGCGetAssistThanksGiftPreview()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGetAssistThanksGiftPreview.Head.Cmd,m_NAtagGCGetAssistThanksGiftPreview.Head.SubCmd))] = m_NAtagGCGetAssistThanksGiftPreview
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 04 使用协助感谢礼盒预览 #tagGCUseAssistThanksGiftPreview
|
| | |
|
| | | class tagGCAssistPlayerInfo(Structure):
|
| | | PlayerID = 0 #(DWORD PlayerID)
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)
|
| | | RealmLV = 0 #(BYTE RealmLV)//境界
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.PlayerID = 0
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 33
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.PlayerID)
|
| | | data = CommFunc.WriteString(data, 33, self.PlayerName)
|
| | | data = CommFunc.WriteBYTE(data, self.Job)
|
| | | data = CommFunc.WriteWORD(data, self.LV)
|
| | | data = CommFunc.WriteBYTE(data, self.RealmLV)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | PlayerID:%d,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | LV:%d,
|
| | | RealmLV:%d
|
| | | '''\
|
| | | %(
|
| | | self.PlayerID,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.LV,
|
| | | self.RealmLV
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCUseAssistThanksGiftPreview(Structure):
|
| | | Head = tagHead()
|
| | | GiftGUID = "" #(char GiftGUID[40])//礼盒GUID
|
| | | ItemID = 0 #(DWORD ItemID)//礼盒ID
|
| | | MapID = 0 #(DWORD MapID)
|
| | | LineID = 0 #(DWORD LineID)
|
| | | NPCID = 0 #(DWORD NPCID)
|
| | | ExDataLen = 0 #(WORD ExDataLen)
|
| | | ExData = "" #(String ExData)//其他自定义数据
|
| | | AssistPlayerCount = 0 #(BYTE AssistPlayerCount)
|
| | | AssistPlayerList = list() #(vector<tagGCAssistPlayerInfo> AssistPlayerList)//协助玩家列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x04
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.GiftGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
|
| | | self.AssistPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AssistPlayerCount):
|
| | | temAssistPlayerList = tagGCAssistPlayerInfo()
|
| | | _pos = temAssistPlayerList.ReadData(_lpData, _pos)
|
| | | self.AssistPlayerList.append(temAssistPlayerList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x04
|
| | | self.GiftGUID = ""
|
| | | self.ItemID = 0
|
| | | self.MapID = 0
|
| | | self.LineID = 0
|
| | | self.NPCID = 0
|
| | | self.ExDataLen = 0
|
| | | self.ExData = ""
|
| | | self.AssistPlayerCount = 0
|
| | | self.AssistPlayerList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 40
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += len(self.ExData)
|
| | | length += 1
|
| | | for i in range(self.AssistPlayerCount):
|
| | | length += self.AssistPlayerList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 40, self.GiftGUID)
|
| | | data = CommFunc.WriteDWORD(data, self.ItemID)
|
| | | data = CommFunc.WriteDWORD(data, self.MapID)
|
| | | data = CommFunc.WriteDWORD(data, self.LineID)
|
| | | data = CommFunc.WriteDWORD(data, self.NPCID)
|
| | | data = CommFunc.WriteWORD(data, self.ExDataLen)
|
| | | data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
|
| | | data = CommFunc.WriteBYTE(data, self.AssistPlayerCount)
|
| | | for i in range(self.AssistPlayerCount):
|
| | | data = CommFunc.WriteString(data, self.AssistPlayerList[i].GetLength(), self.AssistPlayerList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | GiftGUID:%s,
|
| | | ItemID:%d,
|
| | | MapID:%d,
|
| | | LineID:%d,
|
| | | NPCID:%d,
|
| | | ExDataLen:%d,
|
| | | ExData:%s,
|
| | | AssistPlayerCount:%d,
|
| | | AssistPlayerList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.GiftGUID,
|
| | | self.ItemID,
|
| | | self.MapID,
|
| | | self.LineID,
|
| | | self.NPCID,
|
| | | self.ExDataLen,
|
| | | self.ExData,
|
| | | self.AssistPlayerCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCUseAssistThanksGiftPreview=tagGCUseAssistThanksGiftPreview()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCUseAssistThanksGiftPreview.Head.Cmd,m_NAtagGCUseAssistThanksGiftPreview.Head.SubCmd))] = m_NAtagGCUseAssistThanksGiftPreview
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B4 15 Boss伤血排行榜信息 #tagMCBossHurtValueRankInfo
|
| | |
|
| | | class tagMCBossHurtValueAssist(Structure):
|
| | | PlayerID = 0 #(DWORD PlayerID)// 助战玩家ID
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | HurtValue = 0 #(DWORD HurtValue)//不超过亿部分
|
| | | HurtValueEx = 0 #(DWORD HurtValueEx)//支持超过20亿
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.HurtValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.HurtValueEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.PlayerID = 0
|
| | | self.PlayerName = ""
|
| | | self.HurtValue = 0
|
| | | self.HurtValueEx = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 33
|
| | | length += 4
|
| | | length += 4
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.PlayerID)
|
| | | data = CommFunc.WriteString(data, 33, self.PlayerName)
|
| | | data = CommFunc.WriteDWORD(data, self.HurtValue)
|
| | | data = CommFunc.WriteDWORD(data, self.HurtValueEx)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | PlayerID:%d,
|
| | | PlayerName:%s,
|
| | | HurtValue:%d,
|
| | | HurtValueEx:%d
|
| | | '''\
|
| | | %(
|
| | | self.PlayerID,
|
| | | self.PlayerName,
|
| | | self.HurtValue,
|
| | | self.HurtValueEx
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCBossHurtValue(Structure):
|
| | | HurtType = 0 #(BYTE HurtType)// 伤血类型 1-玩家,2-队伍
|
| | | HurtID = 0 #(DWORD HurtID)//玩家时为玩家ID,队伍时为队伍ID
|
| | | HurtName = "" #(char HurtName[33])// 名称
|
| | | HurtValue = 0 #(DWORD HurtValue)//不超过亿部分
|
| | | HurtValueEx = 0 #(DWORD HurtValueEx)//支持超过20亿
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.HurtType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.HurtID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.HurtName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.HurtValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.HurtValueEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.HurtType = 0
|
| | | self.HurtID = 0
|
| | | self.HurtName = ""
|
| | | self.HurtValue = 0
|
| | | self.HurtValueEx = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 4
|
| | | length += 33
|
| | | length += 4
|
| | | length += 4
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.HurtType)
|
| | | data = CommFunc.WriteDWORD(data, self.HurtID)
|
| | | data = CommFunc.WriteString(data, 33, self.HurtName)
|
| | | data = CommFunc.WriteDWORD(data, self.HurtValue)
|
| | | data = CommFunc.WriteDWORD(data, self.HurtValueEx)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | HurtType:%d,
|
| | | HurtID:%d,
|
| | | HurtName:%s,
|
| | | HurtValue:%d,
|
| | | HurtValueEx:%d
|
| | | '''\
|
| | | %(
|
| | | self.HurtType,
|
| | | self.HurtID,
|
| | | self.HurtName,
|
| | | self.HurtValue,
|
| | | self.HurtValueEx
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCBossHurtValueRankInfo(Structure):
|
| | | Head = tagHead()
|
| | | ObjID = 0 #(DWORD ObjID)//NPC实例ID
|
| | | HurtCount = 0 #(BYTE HurtCount)//伤血数目
|
| | | HurtValueList = list() #(vector<tagMCBossHurtValue> HurtValueList)
|
| | | AssistHurtCount = 0 #(BYTE AssistHurtCount)//助战伤血数目
|
| | | AssistHurtValueList = list() #(vector<tagMCBossHurtValueAssist> AssistHurtValueList)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB4
|
| | | self.Head.SubCmd = 0x15
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.HurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.HurtCount):
|
| | | temHurtValueList = tagMCBossHurtValue()
|
| | | _pos = temHurtValueList.ReadData(_lpData, _pos)
|
| | | self.HurtValueList.append(temHurtValueList)
|
| | | self.AssistHurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AssistHurtCount):
|
| | | temAssistHurtValueList = tagMCBossHurtValueAssist()
|
| | | _pos = temAssistHurtValueList.ReadData(_lpData, _pos)
|
| | | self.AssistHurtValueList.append(temAssistHurtValueList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB4
|
| | | self.Head.SubCmd = 0x15
|
| | | self.ObjID = 0
|
| | | self.HurtCount = 0
|
| | | self.HurtValueList = list()
|
| | | self.AssistHurtCount = 0
|
| | | self.AssistHurtValueList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.HurtCount):
|
| | | length += self.HurtValueList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.AssistHurtCount):
|
| | | length += self.AssistHurtValueList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.ObjID)
|
| | | data = CommFunc.WriteBYTE(data, self.HurtCount)
|
| | | for i in range(self.HurtCount):
|
| | | data = CommFunc.WriteString(data, self.HurtValueList[i].GetLength(), self.HurtValueList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.AssistHurtCount)
|
| | | for i in range(self.AssistHurtCount):
|
| | | data = CommFunc.WriteString(data, self.AssistHurtValueList[i].GetLength(), self.AssistHurtValueList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ObjID:%d,
|
| | | HurtCount:%d,
|
| | | HurtValueList:%s,
|
| | | AssistHurtCount:%d,
|
| | | AssistHurtValueList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ObjID,
|
| | | self.HurtCount,
|
| | | "...",
|
| | | self.AssistHurtCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCBossHurtValueRankInfo=tagMCBossHurtValueRankInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossHurtValueRankInfo.Head.Cmd,m_NAtagMCBossHurtValueRankInfo.Head.SubCmd))] = m_NAtagMCBossHurtValueRankInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B4 12 删除恶意攻击玩家 #tagMCDelMaliciousAtkPlayer
|
| | |
|
| | | class tagMCDelMaliciousAtkPlayer(Structure):
|