| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 01 新增协助 #tagGCAssistInfoList
|
| | |
|
| | | class tagGCAssistInfo(Structure):
|
| | | GUID = "" #(char GUID[40])
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)//等级
|
| | | RealmLV = 0 #(BYTE RealmLV)//境界
|
| | | AssistType = 0 #(BYTE AssistType)//协助类型 1-boss, 2-副本, 3-
|
| | | AssistValue1 = 0 #(DWORD AssistValue1)//协助参数1,由协助类型决定
|
| | | AssistValue2 = 0 #(DWORD AssistValue2)//协助参数2
|
| | | AssistValue3 = 0 #(DWORD AssistValue3)//协助参数3
|
| | | AssistValue4 = 0 #(DWORD AssistValue4)//协助参数4
|
| | | AssistValue5 = 0 #(DWORD AssistValue5)//协助参数5
|
| | | AssistDataLen = 0 #(WORD AssistDataLen)
|
| | | AssistData = "" #(String AssistData)//其他自定义数据
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.GUID,_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.AssistType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AssistValue1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.AssistValue2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.AssistValue3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.AssistValue4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.AssistValue5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.AssistDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.AssistData,_pos = CommFunc.ReadString(_lpData, _pos,self.AssistDataLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.GUID = ""
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.AssistType = 0
|
| | | self.AssistValue1 = 0
|
| | | self.AssistValue2 = 0
|
| | | self.AssistValue3 = 0
|
| | | self.AssistValue4 = 0
|
| | | self.AssistValue5 = 0
|
| | | self.AssistDataLen = 0
|
| | | self.AssistData = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 33
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += len(self.AssistData)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, 40, self.GUID)
|
| | | 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.WriteBYTE(data, self.AssistType)
|
| | | data = CommFunc.WriteDWORD(data, self.AssistValue1)
|
| | | data = CommFunc.WriteDWORD(data, self.AssistValue2)
|
| | | data = CommFunc.WriteDWORD(data, self.AssistValue3)
|
| | | data = CommFunc.WriteDWORD(data, self.AssistValue4)
|
| | | data = CommFunc.WriteDWORD(data, self.AssistValue5)
|
| | | data = CommFunc.WriteWORD(data, self.AssistDataLen)
|
| | | data = CommFunc.WriteString(data, self.AssistDataLen, self.AssistData)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | GUID:%s,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | LV:%d,
|
| | | RealmLV:%d,
|
| | | AssistType:%d,
|
| | | AssistValue1:%d,
|
| | | AssistValue2:%d,
|
| | | AssistValue3:%d,
|
| | | AssistValue4:%d,
|
| | | AssistValue5:%d,
|
| | | AssistDataLen:%d,
|
| | | AssistData:%s
|
| | | '''\
|
| | | %(
|
| | | self.GUID,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.LV,
|
| | | self.RealmLV,
|
| | | self.AssistType,
|
| | | self.AssistValue1,
|
| | | self.AssistValue2,
|
| | | self.AssistValue3,
|
| | | self.AssistValue4,
|
| | | self.AssistValue5,
|
| | | self.AssistDataLen,
|
| | | self.AssistData
|
| | | )
|
| | | 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 02 删除协助 #tagGCClearAssist
|
| | |
|
| | | class tagGCClearAssist(Structure):
|
| | | Head = tagHead()
|
| | | GUID = "" #(char GUID[40])
|
| | | 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.GUID,_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.GUID = ""
|
| | | 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.GUID)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | GUID:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.GUID
|
| | | )
|
| | | 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):
|