From 353abbde135d54f74b70d66d4a04679313f85f34 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 10 一月 2020 15:15:37 +0800 Subject: [PATCH] 8346 【恺英】【后端】协助系统(副本boss协助完成增加发送退出副本倒计时) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 331 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 259 insertions(+), 72 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index 3205f14..4ffc655 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py @@ -2017,60 +2017,55 @@ #------------------------------------------------------ -# B0 15 领取协助感谢礼物 #tagCGGetAssistThanksGift +# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift class tagCGGetAssistThanksGift(Structure): - Head = tagHead() - GiftGUID = "" #(char GiftGUID[40])//礼盒GUID - data = None + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("IsPreview", c_ubyte), #是否预览,非预览即确认领取,无额外奖励确认时也需要回复领取包代表已读 + ] def __init__(self): self.Clear() - self.Head.Cmd = 0xB0 - self.Head.SubCmd = 0x15 + self.Cmd = 0xB0 + self.SubCmd = 0x15 return - def ReadData(self, _lpData, _pos=0, _Len=0): + def ReadData(self, stringData, _pos=0, _len=0): self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.GiftGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) - return _pos + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xB0 - self.Head.SubCmd = 0x15 - self.GiftGUID = "" + self.Cmd = 0xB0 + self.SubCmd = 0x15 + self.IsPreview = 0 return def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 40 - - return length + return sizeof(tagCGGetAssistThanksGift) def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteString(data, 40, self.GiftGUID) - return data + return string_at(addressof(self), self.GetLength()) def OutputString(self): - DumpString = ''' - Head:%s, - GiftGUID:%s + DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift: + Cmd:%s, + SubCmd:%s, + IsPreview:%d '''\ %( - self.Head.OutputString(), - self.GiftGUID + self.Cmd, + self.SubCmd, + self.IsPreview ) return DumpString m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Head.Cmd,m_NAtagCGGetAssistThanksGift.Head.SubCmd))] = m_NAtagCGGetAssistThanksGift +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift #------------------------------------------------------ @@ -2182,64 +2177,56 @@ # B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift class tagCGUseAssistThanksGift(Structure): - Head = tagHead() - ItemID = 0 #(DWORD ItemID) - GiftGUID = "" #(char GiftGUID[40])//预览时GUID不发,确认使用时需发送预览返回的GUID - data = None + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ItemID", c_int), + ("IsPreview", c_ubyte), #是否预览,非预览即确认使用 + ] def __init__(self): self.Clear() - self.Head.Cmd = 0xB0 - self.Head.SubCmd = 0x14 + self.Cmd = 0xB0 + self.SubCmd = 0x14 return - def ReadData(self, _lpData, _pos=0, _Len=0): + def ReadData(self, stringData, _pos=0, _len=0): self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) - self.GiftGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) - return _pos + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xB0 - self.Head.SubCmd = 0x14 + self.Cmd = 0xB0 + self.SubCmd = 0x14 self.ItemID = 0 - self.GiftGUID = "" + self.IsPreview = 0 return def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 4 - length += 40 - - return length + return sizeof(tagCGUseAssistThanksGift) def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteDWORD(data, self.ItemID) - data = CommFunc.WriteString(data, 40, self.GiftGUID) - return data + return string_at(addressof(self), self.GetLength()) def OutputString(self): - DumpString = ''' - Head:%s, + DumpString = '''// B0 14 使用协助感谢礼盒 //tagCGUseAssistThanksGift: + Cmd:%s, + SubCmd:%s, ItemID:%d, - GiftGUID:%s + IsPreview:%d '''\ %( - self.Head.OutputString(), + self.Cmd, + self.SubCmd, self.ItemID, - self.GiftGUID + self.IsPreview ) return DumpString m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Head.Cmd,m_NAtagCGUseAssistThanksGift.Head.SubCmd))] = m_NAtagCGUseAssistThanksGift +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift #------------------------------------------------------ @@ -5507,6 +5494,54 @@ #------------------------------------------------------ +# A2 08 刷新缥缈任务 #tagCMRefreshPiaomiaoTask + +class tagCMRefreshPiaomiaoTask(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA2 + self.SubCmd = 0x08 + 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 = 0x08 + return + + def GetLength(self): + return sizeof(tagCMRefreshPiaomiaoTask) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A2 08 刷新缥缈任务 //tagCMRefreshPiaomiaoTask: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMRefreshPiaomiaoTask=tagCMRefreshPiaomiaoTask() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshPiaomiaoTask.Cmd,m_NAtagCMRefreshPiaomiaoTask.SubCmd))] = m_NAtagCMRefreshPiaomiaoTask + + +#------------------------------------------------------ #A2 02通知选中对象 # tagCMSelectObj class tagCMSelectObj(Structure): @@ -5947,6 +5982,58 @@ m_NAtagCMVoiceChat=tagCMVoiceChat() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMVoiceChat.Head.Cmd,m_NAtagCMVoiceChat.Head.SubCmd))] = m_NAtagCMVoiceChat + + +#------------------------------------------------------ +# 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 #------------------------------------------------------ @@ -7918,7 +8005,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("HorseID", c_int), #坐骑ID + ("HorseID", c_int), #坐骑幻化ID ] def __init__(self): @@ -10457,7 +10544,6 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("HorseID", c_int), #坐骑ID ("UseItemCnt", c_ubyte), #消耗材料个数 ("IsAutoBuy", c_ubyte), #是否自动购买 ] @@ -10476,7 +10562,6 @@ def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x27 - self.HorseID = 0 self.UseItemCnt = 0 self.IsAutoBuy = 0 return @@ -10491,14 +10576,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 ) @@ -10669,7 +10752,8 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("Index", c_int), #选择索引 + ("ChooseType", c_ubyte), # 1-按等阶,2-按幻化 + ("LVID", c_ubyte), # 阶等级或幻化ID ] def __init__(self): @@ -10686,7 +10770,8 @@ def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x02 - self.Index = 0 + self.ChooseType = 0 + self.LVID = 0 return def GetLength(self): @@ -10699,12 +10784,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 @@ -14019,6 +14106,106 @@ #------------------------------------------------------ +# 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): -- Gitblit v1.8.0