From f15a181fbf2b61631b51e5e3a431c7cff6b15029 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 17 九月 2020 11:27:48 +0800 Subject: [PATCH] 8483 【后端】【主干】【changwei】【bt】协助方和被协助方任何模式不会互相造成伤害 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 680 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 669 insertions(+), 11 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index 4049f76..7b71519 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py @@ -1960,6 +1960,115 @@ #------------------------------------------------------ +# B0 13 取消协助Boss #tagCGCancelAssistBoss + +class tagCGCancelAssistBoss(Structure): + Head = tagHead() + AssistGUID = "" #(char AssistGUID[40])//协助GUID + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x13 + 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 = 0x13 + 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_NAtagCGCancelAssistBoss=tagCGCancelAssistBoss() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCancelAssistBoss.Head.Cmd,m_NAtagCGCancelAssistBoss.Head.SubCmd))] = m_NAtagCGCancelAssistBoss + + +#------------------------------------------------------ +# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift + +class tagCGGetAssistThanksGift(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("IsPreview", c_ubyte), #是否预览,非预览即确认领取,无额外奖励确认时也需要回复领取包代表已读 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x15 + 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 = 0x15 + self.IsPreview = 0 + return + + def GetLength(self): + return sizeof(tagCGGetAssistThanksGift) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift: + Cmd:%s, + SubCmd:%s, + IsPreview:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.IsPreview + ) + return DumpString + + +m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift + + +#------------------------------------------------------ #B0 25 请求家族悬赏任务完成情况 #tagQueryFamilyArrestOverState class tagQueryFamilyArrestOverState(Structure): @@ -2005,6 +2114,119 @@ m_NAtagQueryFamilyArrestOverState=tagQueryFamilyArrestOverState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestOverState.Cmd,m_NAtagQueryFamilyArrestOverState.SubCmd))] = m_NAtagQueryFamilyArrestOverState + + +#------------------------------------------------------ +# B0 12 开始协助Boss #tagCGStartAssistBoss + +class tagCGStartAssistBoss(Structure): + Head = tagHead() + AssistGUID = "" #(char AssistGUID[40])//协助GUID + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x12 + 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 = 0x12 + 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_NAtagCGStartAssistBoss=tagCGStartAssistBoss() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGStartAssistBoss.Head.Cmd,m_NAtagCGStartAssistBoss.Head.SubCmd))] = m_NAtagCGStartAssistBoss + + +#------------------------------------------------------ +# B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift + +class tagCGUseAssistThanksGift(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ItemID", c_int), + ("IsPreview", c_ubyte), #是否预览,非预览即确认使用 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x14 + 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 = 0x14 + self.ItemID = 0 + self.IsPreview = 0 + return + + def GetLength(self): + return sizeof(tagCGUseAssistThanksGift) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 14 使用协助感谢礼盒 //tagCGUseAssistThanksGift: + Cmd:%s, + SubCmd:%s, + ItemID:%d, + IsPreview:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ItemID, + self.IsPreview + ) + return DumpString + + +m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift #------------------------------------------------------ @@ -5715,6 +5937,58 @@ #------------------------------------------------------ +# A2 07 接受任务 #tagCMTakeTask + +class tagCMTakeTask(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TaskID", c_int), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA2 + self.SubCmd = 0x07 + 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 = 0xA2 + self.SubCmd = 0x07 + self.TaskID = 0 + return + + def GetLength(self): + return sizeof(tagCMTakeTask) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A2 07 接受任务 //tagCMTakeTask: + Cmd:%s, + SubCmd:%s, + TaskID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TaskID + ) + return DumpString + + +m_NAtagCMTakeTask=tagCMTakeTask() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTakeTask.Cmd,m_NAtagCMTakeTask.SubCmd))] = m_NAtagCMTakeTask + + +#------------------------------------------------------ #A2 12 查看玩家详细信息#tagCMViewPlayerInfo class tagCMViewPlayerInfo(Structure): @@ -7683,7 +7957,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("HorseID", c_int), #坐骑ID + ("HorseID", c_int), #坐骑幻化ID ] def __init__(self): @@ -7725,6 +7999,62 @@ m_NAtagPlayerActivateHorse=tagPlayerActivateHorse() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerActivateHorse.Cmd,m_NAtagPlayerActivateHorse.SubCmd))] = m_NAtagPlayerActivateHorse + + +#------------------------------------------------------ +# A5 C7 激活大师强化等级 #tagCMActivateMasterPlusLV + +class tagCMActivateMasterPlusLV(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ClassLV", c_ubyte), # 所属装备阶 + ("MasterPlusLV", c_ushort), # 大师强化等级 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0xC7 + 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 = 0xA5 + self.SubCmd = 0xC7 + self.ClassLV = 0 + self.MasterPlusLV = 0 + return + + def GetLength(self): + return sizeof(tagCMActivateMasterPlusLV) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 C7 激活大师强化等级 //tagCMActivateMasterPlusLV: + Cmd:%s, + SubCmd:%s, + ClassLV:%d, + MasterPlusLV:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ClassLV, + self.MasterPlusLV + ) + return DumpString + + +m_NAtagCMActivateMasterPlusLV=tagCMActivateMasterPlusLV() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivateMasterPlusLV.Cmd,m_NAtagCMActivateMasterPlusLV.SubCmd))] = m_NAtagCMActivateMasterPlusLV #------------------------------------------------------ @@ -9373,6 +9703,70 @@ #------------------------------------------------------ +# A5 C6 装备部位星级套装激活 #tagCMEquipPartSuiteActivate + +class tagCMEquipPartSuiteActivate(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ClassLV", c_ubyte), # 所属装备阶 + ("SuiteID", c_ushort), # 套装ID + ("SuiteCount", c_ubyte), # 件数 + ("Star", c_ubyte), # 星数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0xC6 + 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 = 0xA5 + self.SubCmd = 0xC6 + self.ClassLV = 0 + self.SuiteID = 0 + self.SuiteCount = 0 + self.Star = 0 + return + + def GetLength(self): + return sizeof(tagCMEquipPartSuiteActivate) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 C6 装备部位星级套装激活 //tagCMEquipPartSuiteActivate: + Cmd:%s, + SubCmd:%s, + ClassLV:%d, + SuiteID:%d, + SuiteCount:%d, + Star:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ClassLV, + self.SuiteID, + self.SuiteCount, + self.Star + ) + return DumpString + + +m_NAtagCMEquipPartSuiteActivate=tagCMEquipPartSuiteActivate() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartSuiteActivate.Cmd,m_NAtagCMEquipPartSuiteActivate.SubCmd))] = m_NAtagCMEquipPartSuiteActivate + + +#------------------------------------------------------ # A5 48 兑换大师等级经验 #tagCMExchangeMasterEXP class tagCMExchangeMasterEXP(Structure): @@ -9759,6 +10153,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SuccID", c_int), #成就ID + ("IsPassport", c_ubyte), #是否通行证奖励 ] def __init__(self): @@ -9776,6 +10171,7 @@ self.Cmd = 0xA5 self.SubCmd = 0x42 self.SuccID = 0 + self.IsPassport = 0 return def GetLength(self): @@ -9788,12 +10184,14 @@ DumpString = '''// A5 42 领取成就奖励 //tagMCGetSuccessAward: Cmd:%s, SubCmd:%s, - SuccID:%d + SuccID:%d, + IsPassport:%d '''\ %( self.Cmd, self.SubCmd, - self.SuccID + self.SuccID, + self.IsPassport ) return DumpString @@ -10102,7 +10500,6 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("HorseID", c_int), #坐骑ID ("UseItemCnt", c_ubyte), #消耗材料个数 ("IsAutoBuy", c_ubyte), #是否自动购买 ] @@ -10121,7 +10518,6 @@ def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x27 - self.HorseID = 0 self.UseItemCnt = 0 self.IsAutoBuy = 0 return @@ -10136,14 +10532,12 @@ DumpString = '''// A5 27 坐骑提升 //tagCMHorseUp: Cmd:%s, SubCmd:%s, - HorseID:%d, UseItemCnt:%d, IsAutoBuy:%d '''\ %( self.Cmd, self.SubCmd, - self.HorseID, self.UseItemCnt, self.IsAutoBuy ) @@ -10314,7 +10708,8 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("Index", c_int), #选择索引 + ("ChooseType", c_ubyte), # 1-按等阶,2-按幻化 + ("LVID", c_ubyte), # 阶等级或幻化ID ] def __init__(self): @@ -10331,7 +10726,8 @@ def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x02 - self.Index = 0 + self.ChooseType = 0 + self.LVID = 0 return def GetLength(self): @@ -10344,12 +10740,14 @@ DumpString = '''//A5 02 坐骑选择 //tagPlayerChooseHorse: Cmd:%s, SubCmd:%s, - Index:%d + ChooseType:%d, + LVID:%d '''\ %( self.Cmd, self.SubCmd, - self.Index + self.ChooseType, + self.LVID ) return DumpString @@ -13664,6 +14062,154 @@ #------------------------------------------------------ +# B0 29 活跃放置明细查询 #tagCMActivityPlaceQuery + +class tagCMActivityPlaceQuery(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x29 + 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 = 0x29 + return + + def GetLength(self): + return sizeof(tagCMActivityPlaceQuery) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 29 活跃放置明细查询 //tagCMActivityPlaceQuery: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMActivityPlaceQuery=tagCMActivityPlaceQuery() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuery.Cmd,m_NAtagCMActivityPlaceQuery.SubCmd))] = m_NAtagCMActivityPlaceQuery + + +#------------------------------------------------------ +# B0 28 活跃放置快速完成 #tagCMActivityPlaceQuickFinish + +class tagCMActivityPlaceQuickFinish(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("FinishCount", c_ubyte), #完成次数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x28 + 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 = 0x28 + self.FinishCount = 0 + return + + def GetLength(self): + return sizeof(tagCMActivityPlaceQuickFinish) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 28 活跃放置快速完成 //tagCMActivityPlaceQuickFinish: + Cmd:%s, + SubCmd:%s, + FinishCount:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.FinishCount + ) + return DumpString + + +m_NAtagCMActivityPlaceQuickFinish=tagCMActivityPlaceQuickFinish() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuickFinish.Cmd,m_NAtagCMActivityPlaceQuickFinish.SubCmd))] = m_NAtagCMActivityPlaceQuickFinish + + +#------------------------------------------------------ +# B0 27 活跃放置启动 #tagCMActivityPlaceStart + +class tagCMActivityPlaceStart(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x27 + 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 = 0x27 + return + + def GetLength(self): + return sizeof(tagCMActivityPlaceStart) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 27 活跃放置启动 //tagCMActivityPlaceStart: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMActivityPlaceStart=tagCMActivityPlaceStart() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceStart.Cmd,m_NAtagCMActivityPlaceStart.SubCmd))] = m_NAtagCMActivityPlaceStart + + +#------------------------------------------------------ # B0 50 钓鱼收杆 #tagCMDoFish class tagCMDoFish(Structure): @@ -13820,6 +14366,118 @@ #------------------------------------------------------ +# B0 10 请求协助Boss #tagCMRequestAssistBoss + +class tagCMRequestAssistBoss(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ObjID", c_int), + ("NPCID", c_int), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x10 + 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 = 0x10 + self.ObjID = 0 + self.NPCID = 0 + return + + def GetLength(self): + return sizeof(tagCMRequestAssistBoss) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss: + Cmd:%s, + SubCmd:%s, + ObjID:%d, + NPCID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ObjID, + self.NPCID + ) + return DumpString + + +m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss + + +#------------------------------------------------------ +# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB + +class tagCMRequestAssistTeamFB(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MapID", c_ushort), + ("LineID", c_ushort), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x11 + 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 = 0x11 + self.MapID = 0 + self.LineID = 0 + return + + def GetLength(self): + return sizeof(tagCMRequestAssistTeamFB) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB: + Cmd:%s, + SubCmd:%s, + MapID:%d, + LineID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MapID, + self.LineID + ) + return DumpString + + +m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB + + +#------------------------------------------------------ # B0 05 开始世界传送 #tagCMWorldTransfer class tagCMWorldTransfer(Structure): -- Gitblit v1.8.0