From 6936a457d66d24f604d352e9b83f9ada524a3293 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 09 十月 2020 19:16:41 +0800
Subject: [PATCH] 4753 【主干】【BT】【长尾】boss之家广播层数错误

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py |  474 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 362 insertions(+), 112 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index c744f36..87db781 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -1964,7 +1964,7 @@
 
 class  tagCGCancelAssistBoss(Structure):
     Head = tagHead()
-    GUID = ""    #(char GUID[40])
+    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
     data = None
 
     def __init__(self):
@@ -1976,7 +1976,7 @@
     def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
         _pos = self.Head.ReadData(_lpData, _pos)
-        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
         return _pos
 
     def Clear(self):
@@ -1984,7 +1984,7 @@
         self.Head.Clear()
         self.Head.Cmd = 0xB0
         self.Head.SubCmd = 0x13
-        self.GUID = ""
+        self.AssistGUID = ""
         return
 
     def GetLength(self):
@@ -1997,17 +1997,17 @@
     def GetBuffer(self):
         data = ''
         data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteString(data, 40, self.GUID)
+        data = CommFunc.WriteString(data, 40, self.AssistGUID)
         return data
 
     def OutputString(self):
         DumpString = '''
                                 Head:%s,
-                                GUID:%s
+                                AssistGUID:%s
                                 '''\
                                 %(
                                 self.Head.OutputString(),
-                                self.GUID
+                                self.AssistGUID
                                 )
         return DumpString
 
@@ -2017,60 +2017,55 @@
 
 
 #------------------------------------------------------
-# B0 15 领取协助感谢礼物 #tagCGGetAssistGift
+# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift
 
-class  tagCGGetAssistGift(Structure):
-    Head = tagHead()
-    GUID = ""    #(char GUID[40])
-    data = None
+class  tagCGGetAssistThanksGift(Structure):
+    _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.GUID,_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.GUID = ""
+        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.GUID)
-        return data
+        return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                GUID:%s
+        DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                IsPreview:%d
                                 '''\
                                 %(
-                                self.Head.OutputString(),
-                                self.GUID
+                                self.Cmd,
+                                self.SubCmd,
+                                self.IsPreview
                                 )
         return DumpString
 
 
-m_NAtagCGGetAssistGift=tagCGGetAssistGift()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistGift.Head.Cmd,m_NAtagCGGetAssistGift.Head.SubCmd))] = m_NAtagCGGetAssistGift
+m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift
 
 
 #------------------------------------------------------
@@ -2122,68 +2117,11 @@
 
 
 #------------------------------------------------------
-# B0 14 发送协助感谢礼物 #tagCGSendAssistGift
-
-class  tagCGSendAssistGift(Structure):
-    Head = tagHead()
-    GUID = ""    #(char GUID[40])
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x14
-        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 = 0x14
-        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_NAtagCGSendAssistGift=tagCGSendAssistGift()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGSendAssistGift.Head.Cmd,m_NAtagCGSendAssistGift.Head.SubCmd))] = m_NAtagCGSendAssistGift
-
-
-#------------------------------------------------------
 # B0 12 开始协助Boss #tagCGStartAssistBoss
 
 class  tagCGStartAssistBoss(Structure):
     Head = tagHead()
-    GUID = ""    #(char GUID[40])
+    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
     data = None
 
     def __init__(self):
@@ -2195,7 +2133,7 @@
     def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
         _pos = self.Head.ReadData(_lpData, _pos)
-        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
         return _pos
 
     def Clear(self):
@@ -2203,7 +2141,7 @@
         self.Head.Clear()
         self.Head.Cmd = 0xB0
         self.Head.SubCmd = 0x12
-        self.GUID = ""
+        self.AssistGUID = ""
         return
 
     def GetLength(self):
@@ -2216,23 +2154,79 @@
     def GetBuffer(self):
         data = ''
         data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteString(data, 40, self.GUID)
+        data = CommFunc.WriteString(data, 40, self.AssistGUID)
         return data
 
     def OutputString(self):
         DumpString = '''
                                 Head:%s,
-                                GUID:%s
+                                AssistGUID:%s
                                 '''\
                                 %(
                                 self.Head.OutputString(),
-                                self.GUID
+                                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
 
 
 #------------------------------------------------------
@@ -3570,6 +3564,58 @@
 
 m_NAtagCGQueryTeamMemFuncData=tagCGQueryTeamMemFuncData()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTeamMemFuncData.Cmd,m_NAtagCGQueryTeamMemFuncData.SubCmd))] = m_NAtagCGQueryTeamMemFuncData
+
+
+#------------------------------------------------------
+# B9 11 请求加入队伍 #tagCGRequestJoinTeam
+
+class  tagCGRequestJoinTeam(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("TeamID", c_int),    # 目标队伍ID
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB9
+        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 = 0xB9
+        self.SubCmd = 0x11
+        self.TeamID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGRequestJoinTeam)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B9 11 请求加入队伍 //tagCGRequestJoinTeam:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                TeamID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.TeamID
+                                )
+        return DumpString
+
+
+m_NAtagCGRequestJoinTeam=tagCGRequestJoinTeam()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGRequestJoinTeam.Cmd,m_NAtagCGRequestJoinTeam.SubCmd))] = m_NAtagCGRequestJoinTeam
 
 
 #------------------------------------------------------
@@ -5943,6 +5989,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):
@@ -7911,7 +8009,7 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑ID
+                  ("HorseID", c_int),    #坐骑幻化ID
                   ]
 
     def __init__(self):
@@ -10107,6 +10205,7 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("SuccID", c_int),    #成就ID
+                  ("IsPassport", c_ubyte),    #是否通行证奖励
                   ]
 
     def __init__(self):
@@ -10124,6 +10223,7 @@
         self.Cmd = 0xA5
         self.SubCmd = 0x42
         self.SuccID = 0
+        self.IsPassport = 0
         return
 
     def GetLength(self):
@@ -10136,12 +10236,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
 
@@ -10450,7 +10552,6 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑ID
                   ("UseItemCnt", c_ubyte),    #消耗材料个数
                   ("IsAutoBuy", c_ubyte),    #是否自动购买
                   ]
@@ -10469,7 +10570,6 @@
     def Clear(self):
         self.Cmd = 0xA5
         self.SubCmd = 0x27
-        self.HorseID = 0
         self.UseItemCnt = 0
         self.IsAutoBuy = 0
         return
@@ -10484,14 +10584,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
                                 )
@@ -10662,7 +10760,8 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("Index", c_int),    #选择索引
+                  ("ChooseType", c_ubyte),    # 1-按等阶,2-按幻化
+                  ("LVID", c_ubyte),    # 阶等级或幻化ID
                   ]
 
     def __init__(self):
@@ -10679,7 +10778,8 @@
     def Clear(self):
         self.Cmd = 0xA5
         self.SubCmd = 0x02
-        self.Index = 0
+        self.ChooseType = 0
+        self.LVID = 0
         return
 
     def GetLength(self):
@@ -10692,12 +10792,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
 
@@ -14012,6 +14114,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):

--
Gitblit v1.8.0