From 7fc3d3d85a5ae32e7ffa00fb1f0893e50f39922e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 20 八月 2018 16:40:04 +0800
Subject: [PATCH] Add: 1886 【后端】神兽功能及神兽装备相关;2615 【后端】神兽——强化功能;

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py |  418 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 330 insertions(+), 88 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index efe69f1..a49e731 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -4129,84 +4129,6 @@
 
 
 #------------------------------------------------------
-# AC 07 BOSS复活活动信息 #tagGCBossRebornInfo
-
-class  tagGCBossRebornInfo(Structure):
-    Head = tagHead()
-    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
-    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
-    WorldLV = 0    #(WORD WorldLV)// 世界等级
-    LimitLV = 0    #(WORD LimitLV)// 限制等级
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAC
-        self.Head.SubCmd = 0x07
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
-        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
-        self.WorldLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAC
-        self.Head.SubCmd = 0x07
-        self.StartDate = ""
-        self.EndtDate = ""
-        self.WorldLV = 0
-        self.LimitLV = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 10
-        length += 10
-        length += 2
-        length += 2
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteString(data, 10, self.StartDate)
-        data = CommFunc.WriteString(data, 10, self.EndtDate)
-        data = CommFunc.WriteWORD(data, self.WorldLV)
-        data = CommFunc.WriteWORD(data, self.LimitLV)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                StartDate:%s,
-                                EndtDate:%s,
-                                WorldLV:%d,
-                                LimitLV:%d
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.StartDate,
-                                self.EndtDate,
-                                self.WorldLV,
-                                self.LimitLV
-                                )
-        return DumpString
-
-
-m_NAtagGCBossRebornInfo=tagGCBossRebornInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBossRebornInfo.Head.Cmd,m_NAtagGCBossRebornInfo.Head.SubCmd))] = m_NAtagGCBossRebornInfo
-
-
-#------------------------------------------------------
 # AC 08 boss复活点数通知 #tagGCBossRebornPoint
 
 class  tagGCBossRebornPoint(Structure):
@@ -4215,6 +4137,7 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("Point", c_int),    # 复活点数
+                  ("TotalPoint", c_int),    # 复活总点数
                   ]
 
     def __init__(self):
@@ -4232,6 +4155,7 @@
         self.Cmd = 0xAC
         self.SubCmd = 0x08
         self.Point = 0
+        self.TotalPoint = 0
         return
 
     def GetLength(self):
@@ -4244,12 +4168,14 @@
         DumpString = '''// AC 08 boss复活点数通知 //tagGCBossRebornPoint:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                Point:%d
+                                Point:%d,
+                                TotalPoint:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.Point
+                                self.Point,
+                                self.TotalPoint
                                 )
         return DumpString
 
@@ -10736,6 +10662,114 @@
 
 
 #------------------------------------------------------
+# A3 C1 神兽助战状态刷新 #tagMCDogzHelpbattleState
+
+class  tagMCDogzHelpbattleState(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("DogzID", c_ubyte),    # 神兽ID
+                  ("BatteState", c_ubyte),    #是否已助战, 0否1是
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA3
+        self.SubCmd = 0xC1
+        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 = 0xA3
+        self.SubCmd = 0xC1
+        self.DogzID = 0
+        self.BatteState = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCDogzHelpbattleState)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 C1 神兽助战状态刷新 //tagMCDogzHelpbattleState:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                DogzID:%d,
+                                BatteState:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.DogzID,
+                                self.BatteState
+                                )
+        return DumpString
+
+
+m_NAtagMCDogzHelpbattleState=tagMCDogzHelpbattleState()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDogzHelpbattleState.Cmd,m_NAtagMCDogzHelpbattleState.SubCmd))] = m_NAtagMCDogzHelpbattleState
+
+
+#------------------------------------------------------
+# A3 C0 神兽信息 #tagMCDogzInfo
+
+class  tagMCDogzInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("BuyHelpbattleCount", c_ubyte),    #额外购买的助战数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA3
+        self.SubCmd = 0xC0
+        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 = 0xA3
+        self.SubCmd = 0xC0
+        self.BuyHelpbattleCount = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCDogzInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 C0 神兽信息 //tagMCDogzInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                BuyHelpbattleCount:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.BuyHelpbattleCount
+                                )
+        return DumpString
+
+
+m_NAtagMCDogzInfo=tagMCDogzInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDogzInfo.Cmd,m_NAtagMCDogzInfo.SubCmd))] = m_NAtagMCDogzInfo
+
+
+#------------------------------------------------------
 # A3 1C 通知装备分解信息 #tagMCEquipDecomposeInfo
 
 class  tagMCEquipDecomposeInfo(Structure):
@@ -12703,6 +12737,7 @@
     _pack_ = 1
     _fields_ = [
                   ("PriID", c_int),    # 特权ID
+                  ("State", c_ubyte),    #激活状态
                   ("CurValue", c_int),    #当前总进度
                   ("GotValue", c_int),    #已领取进度
                   ("ItemAwardState", c_ubyte),    #物品奖励是否已领取
@@ -12719,6 +12754,7 @@
 
     def Clear(self):
         self.PriID = 0
+        self.State = 0
         self.CurValue = 0
         self.GotValue = 0
         self.ItemAwardState = 0
@@ -12733,12 +12769,14 @@
     def OutputString(self):
         DumpString = '''// A3 53 法宝特权数据 //tagMCMWPrivilegeDataInfo:
                                 PriID:%d,
+                                State:%d,
                                 CurValue:%d,
                                 GotValue:%d,
                                 ItemAwardState:%d
                                 '''\
                                 %(
                                 self.PriID,
+                                self.State,
                                 self.CurValue,
                                 self.GotValue,
                                 self.ItemAwardState
@@ -18814,6 +18852,7 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("FirstGoldRewardState", c_ubyte),    #首充奖励是否已领奖
+                  ("FirstGoldTry", c_ubyte),    #首充试用状态0-不可试用 1-可试用 2-已试用
                   ]
 
     def __init__(self):
@@ -18831,6 +18870,7 @@
         self.Cmd = 0xAA
         self.SubCmd = 0x02
         self.FirstGoldRewardState = 0
+        self.FirstGoldTry = 0
         return
 
     def GetLength(self):
@@ -18843,12 +18883,14 @@
         DumpString = '''// AA 02 首充信息 //tagMCFirstGoldInfo:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                FirstGoldRewardState:%d
+                                FirstGoldRewardState:%d,
+                                FirstGoldTry:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.FirstGoldRewardState
+                                self.FirstGoldRewardState,
+                                self.FirstGoldTry
                                 )
         return DumpString
 
@@ -18866,7 +18908,6 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("FirstGoldRemainTime", c_int),    #首充提示剩余时间
-                  ("FirstGoldTry", c_ubyte),    #首充试用状态0-不可试用 1-可试用 2-已试用
                   ]
 
     def __init__(self):
@@ -18884,7 +18925,6 @@
         self.Cmd = 0xAA
         self.SubCmd = 0x08
         self.FirstGoldRemainTime = 0
-        self.FirstGoldTry = 0
         return
 
     def GetLength(self):
@@ -18897,14 +18937,12 @@
         DumpString = '''// AA 08 首充提示剩余时间 //tagMCFirstGoldTime:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                FirstGoldRemainTime:%d,
-                                FirstGoldTry:%d
+                                FirstGoldRemainTime:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.FirstGoldRemainTime,
-                                self.FirstGoldTry
+                                self.FirstGoldRemainTime
                                 )
         return DumpString
 
@@ -20431,6 +20469,210 @@
 
 
 #------------------------------------------------------
+# AB 04 Boss复活活动信息 #tagMCBossRebornInfo
+
+class  tagMCBossRebornAwardItem(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("ItemID", c_int),    
+                  ("ItemCount", c_ushort),    
+                  ("IsBind", c_ubyte),    
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        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.ItemID = 0
+        self.ItemCount = 0
+        self.IsBind = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCBossRebornAwardItem)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AB 04 Boss复活活动信息 //tagMCBossRebornInfo:
+                                ItemID:%d,
+                                ItemCount:%d,
+                                IsBind:%d
+                                '''\
+                                %(
+                                self.ItemID,
+                                self.ItemCount,
+                                self.IsBind
+                                )
+        return DumpString
+
+
+class  tagMCBossRebornTaskInfo(Structure):
+    TaskID = 0    #(BYTE TaskID)// id
+    TotalTimes = 0    #(BYTE TotalTimes)// 可完成总次数,0表示不限次数
+    SingleTimes = 0    #(BYTE SingleTimes)// 单次领奖需要次数
+    AwardItemCount = 0    #(BYTE AwardItemCount)// 奖励物品数
+    AwardItem = list()    #(vector<tagMCBossRebornAwardItem> AwardItem)// 奖励物品信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.TaskID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.TotalTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.SingleTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.AwardItemCount):
+            temAwardItem = tagMCBossRebornAwardItem()
+            _pos = temAwardItem.ReadData(_lpData, _pos)
+            self.AwardItem.append(temAwardItem)
+        return _pos
+
+    def Clear(self):
+        self.TaskID = 0
+        self.TotalTimes = 0
+        self.SingleTimes = 0
+        self.AwardItemCount = 0
+        self.AwardItem = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 1
+        length += 1
+        length += 1
+        length += 1
+        for i in range(self.AwardItemCount):
+            length += self.AwardItem[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteBYTE(data, self.TaskID)
+        data = CommFunc.WriteBYTE(data, self.TotalTimes)
+        data = CommFunc.WriteBYTE(data, self.SingleTimes)
+        data = CommFunc.WriteBYTE(data, self.AwardItemCount)
+        for i in range(self.AwardItemCount):
+            data = CommFunc.WriteString(data, self.AwardItem[i].GetLength(), self.AwardItem[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                TaskID:%d,
+                                TotalTimes:%d,
+                                SingleTimes:%d,
+                                AwardItemCount:%d,
+                                AwardItem:%s
+                                '''\
+                                %(
+                                self.TaskID,
+                                self.TotalTimes,
+                                self.SingleTimes,
+                                self.AwardItemCount,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCBossRebornInfo(Structure):
+    Head = tagHead()
+    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
+    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
+    TaskCnt = 0    #(BYTE TaskCnt)
+    TaskInfo = list()    #(vector<tagMCBossRebornTaskInfo> TaskInfo)
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAB
+        self.Head.SubCmd = 0x04
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.TaskCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.TaskCnt):
+            temTaskInfo = tagMCBossRebornTaskInfo()
+            _pos = temTaskInfo.ReadData(_lpData, _pos)
+            self.TaskInfo.append(temTaskInfo)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAB
+        self.Head.SubCmd = 0x04
+        self.StartDate = ""
+        self.EndtDate = ""
+        self.LimitLV = 0
+        self.TaskCnt = 0
+        self.TaskInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 10
+        length += 10
+        length += 2
+        length += 1
+        for i in range(self.TaskCnt):
+            length += self.TaskInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 10, self.StartDate)
+        data = CommFunc.WriteString(data, 10, self.EndtDate)
+        data = CommFunc.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteBYTE(data, self.TaskCnt)
+        for i in range(self.TaskCnt):
+            data = CommFunc.WriteString(data, self.TaskInfo[i].GetLength(), self.TaskInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                StartDate:%s,
+                                EndtDate:%s,
+                                LimitLV:%d,
+                                TaskCnt:%d,
+                                TaskInfo:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.StartDate,
+                                self.EndtDate,
+                                self.LimitLV,
+                                self.TaskCnt,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCBossRebornInfo=tagMCBossRebornInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornInfo.Head.Cmd,m_NAtagMCBossRebornInfo.Head.SubCmd))] = m_NAtagMCBossRebornInfo
+
+
+#------------------------------------------------------
 # AB 23 摇骰子奖励回包 #tagMCDiceAward
 
 class  tagMCDiceAward(Structure):

--
Gitblit v1.8.0