From ac4f3139e69d4671a46a299df51159f018a5da13 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 26 十一月 2019 11:35:00 +0800 Subject: [PATCH] 8346 【恺英】【后端】协助系统(封包、表) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 248 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 248 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index b5df0a7..58315ef 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -5778,6 +5778,254 @@ #------------------------------------------------------ +# 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): -- Gitblit v1.8.0