8346 【恺英】【后端】协助系统(修改为正在进行中的协助信息, 增加boss伤血榜单通知)
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 03 协助中的目标玩家信息 #tagGCAssistTagPlayerInfo
|
| | | # B0 03 正在进行中的协助 #tagGCAssistingInfo
|
| | |
|
| | | class tagGCAssistTagPlayerInfo(Structure):
|
| | | class tagGCAssistingInfo(Structure):
|
| | | Head = tagHead()
|
| | | PlayerID = 0 #(DWORD PlayerID)
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)
|
| | | RealmLV = 0 #(BYTE RealmLV)
|
| | | AssistGUID = "" #(char AssistGUID[40])//协助GUID
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_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.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | |
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x03
|
| | | self.PlayerID = 0
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.AssistGUID = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 33
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 40
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | 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.WriteString(data, 40, self.AssistGUID)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | PlayerID:%d,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | LV:%d,
|
| | | RealmLV:%d
|
| | | AssistGUID:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.PlayerID,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.LV,
|
| | | self.RealmLV
|
| | | self.AssistGUID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCAssistTagPlayerInfo=tagGCAssistTagPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistTagPlayerInfo.Head.Cmd,m_NAtagGCAssistTagPlayerInfo.Head.SubCmd))] = m_NAtagGCAssistTagPlayerInfo
|
| | | m_NAtagGCAssistingInfo=tagGCAssistingInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistingInfo.Head.Cmd,m_NAtagGCAssistingInfo.Head.SubCmd))] = m_NAtagGCAssistingInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B0 03 协助中的目标玩家信息 #tagGCAssistTagPlayerInfo
|
| | | # B0 03 正在进行中的协助 #tagGCAssistingInfo
|
| | |
|
| | | class tagGCAssistTagPlayerInfo(Structure):
|
| | | class tagGCAssistingInfo(Structure):
|
| | | Head = tagHead()
|
| | | PlayerID = 0 #(DWORD PlayerID)
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)
|
| | | RealmLV = 0 #(BYTE RealmLV)
|
| | | AssistGUID = "" #(char AssistGUID[40])//协助GUID
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_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.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | |
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB0
|
| | | self.Head.SubCmd = 0x03
|
| | | self.PlayerID = 0
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.AssistGUID = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 33
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 40
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | 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.WriteString(data, 40, self.AssistGUID)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | PlayerID:%d,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | LV:%d,
|
| | | RealmLV:%d
|
| | | AssistGUID:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.PlayerID,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.LV,
|
| | | self.RealmLV
|
| | | self.AssistGUID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCAssistTagPlayerInfo=tagGCAssistTagPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistTagPlayerInfo.Head.Cmd,m_NAtagGCAssistTagPlayerInfo.Head.SubCmd))] = m_NAtagGCAssistTagPlayerInfo
|
| | | m_NAtagGCAssistingInfo=tagGCAssistingInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistingInfo.Head.Cmd,m_NAtagGCAssistingInfo.Head.SubCmd))] = m_NAtagGCAssistingInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|