From 898494b9c3f767f7da9d02d91db3898bdf9aeffd Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 04 十二月 2019 16:21:27 +0800 Subject: [PATCH] 8346 【恺英】【后端】协助系统(修改为正在进行中的协助信息, 增加boss伤血榜单通知) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 270 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 231 insertions(+), 39 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py index e82c9e8..58a9645 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py @@ -5948,15 +5948,11 @@ #------------------------------------------------------ -# 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): @@ -5968,11 +5964,7 @@ 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): @@ -5980,56 +5972,36 @@ 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 #------------------------------------------------------ @@ -31563,6 +31535,226 @@ #------------------------------------------------------ +# 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): -- Gitblit v1.8.0