From 00b076d0f6fec2844363efba8f75a1a675086e95 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 13 十一月 2023 13:14:42 +0800
Subject: [PATCH] 9912 [BT0.1]BOSS凭证(boss历练活动)

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py |  354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 354 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index eaf1503..71137b8 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -30633,6 +30633,360 @@
 
 
 #------------------------------------------------------
+# AA 67 Boss历练活动信息 #tagMCActBossTrialInfo
+
+class  tagMCActBossTrialItem(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(tagMCActBossTrialItem)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 67 Boss历练活动信息 //tagMCActBossTrialInfo:
+                                ItemID:%d,
+                                ItemCount:%d,
+                                IsBind:%d
+                                '''\
+                                %(
+                                self.ItemID,
+                                self.ItemCount,
+                                self.IsBind
+                                )
+        return DumpString
+
+
+class  tagMCActBossTrialBillard(Structure):
+    Rank = 0    #(DWORD Rank)// 名次,1-代表第一名;支持夸段,如1,3 代表第1名,第2~3名
+    Count = 0    #(BYTE Count)// 奖励物品数
+    AwardItemList = list()    #(vector<tagMCActBossTrialItem> AwardItemList)// 奖励物品列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.Rank,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Count):
+            temAwardItemList = tagMCActBossTrialItem()
+            _pos = temAwardItemList.ReadData(_lpData, _pos)
+            self.AwardItemList.append(temAwardItemList)
+        return _pos
+
+    def Clear(self):
+        self.Rank = 0
+        self.Count = 0
+        self.AwardItemList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 4
+        length += 1
+        for i in range(self.Count):
+            length += self.AwardItemList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteDWORD(data, self.Rank)
+        data = CommFunc.WriteBYTE(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Rank:%d,
+                                Count:%d,
+                                AwardItemList:%s
+                                '''\
+                                %(
+                                self.Rank,
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCActBossTrialSubmitInfo(Structure):
+    RecordIndex = 0    #(BYTE RecordIndex)// 记录索引
+    NeedCount = 0    #(WORD NeedCount)// 所需提交个数
+    Count = 0    #(BYTE Count)// 奖励物品数
+    AwardItemList = list()    #(vector<tagMCActBossTrialItem> AwardItemList)// 奖励物品列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.RecordIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.NeedCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Count):
+            temAwardItemList = tagMCActBossTrialItem()
+            _pos = temAwardItemList.ReadData(_lpData, _pos)
+            self.AwardItemList.append(temAwardItemList)
+        return _pos
+
+    def Clear(self):
+        self.RecordIndex = 0
+        self.NeedCount = 0
+        self.Count = 0
+        self.AwardItemList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 1
+        length += 2
+        length += 1
+        for i in range(self.Count):
+            length += self.AwardItemList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteBYTE(data, self.RecordIndex)
+        data = CommFunc.WriteWORD(data, self.NeedCount)
+        data = CommFunc.WriteBYTE(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                RecordIndex:%d,
+                                NeedCount:%d,
+                                Count:%d,
+                                AwardItemList:%s
+                                '''\
+                                %(
+                                self.RecordIndex,
+                                self.NeedCount,
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCActBossTrialInfo(Structure):
+    Head = tagHead()
+    ActNum = 0    #(BYTE ActNum)// 活动编号
+    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
+    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    IsDayReset = 0    #(BYTE IsDayReset)// 是否每天重置
+    ResetType = 0    #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
+    SubmitCount = 0    #(BYTE SubmitCount)
+    SubmitInfoList = list()    #(vector<tagMCActBossTrialSubmitInfo> SubmitInfoList)// 提交凭证信息列表
+    BillardCount = 0    #(BYTE BillardCount)
+    BillboardInfoList = list()    #(vector<tagMCActBossTrialBillard> BillboardInfoList)// 榜单信息列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x67
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.SubmitCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.SubmitCount):
+            temSubmitInfoList = tagMCActBossTrialSubmitInfo()
+            _pos = temSubmitInfoList.ReadData(_lpData, _pos)
+            self.SubmitInfoList.append(temSubmitInfoList)
+        self.BillardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.BillardCount):
+            temBillboardInfoList = tagMCActBossTrialBillard()
+            _pos = temBillboardInfoList.ReadData(_lpData, _pos)
+            self.BillboardInfoList.append(temBillboardInfoList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x67
+        self.ActNum = 0
+        self.StartDate = ""
+        self.EndtDate = ""
+        self.IsDayReset = 0
+        self.ResetType = 0
+        self.LimitLV = 0
+        self.SubmitCount = 0
+        self.SubmitInfoList = list()
+        self.BillardCount = 0
+        self.BillboardInfoList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 10
+        length += 10
+        length += 1
+        length += 1
+        length += 2
+        length += 1
+        for i in range(self.SubmitCount):
+            length += self.SubmitInfoList[i].GetLength()
+        length += 1
+        for i in range(self.BillardCount):
+            length += self.BillboardInfoList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.ActNum)
+        data = CommFunc.WriteString(data, 10, self.StartDate)
+        data = CommFunc.WriteString(data, 10, self.EndtDate)
+        data = CommFunc.WriteBYTE(data, self.IsDayReset)
+        data = CommFunc.WriteBYTE(data, self.ResetType)
+        data = CommFunc.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteBYTE(data, self.SubmitCount)
+        for i in range(self.SubmitCount):
+            data = CommFunc.WriteString(data, self.SubmitInfoList[i].GetLength(), self.SubmitInfoList[i].GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.BillardCount)
+        for i in range(self.BillardCount):
+            data = CommFunc.WriteString(data, self.BillboardInfoList[i].GetLength(), self.BillboardInfoList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                ActNum:%d,
+                                StartDate:%s,
+                                EndtDate:%s,
+                                IsDayReset:%d,
+                                ResetType:%d,
+                                LimitLV:%d,
+                                SubmitCount:%d,
+                                SubmitInfoList:%s,
+                                BillardCount:%d,
+                                BillboardInfoList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.ActNum,
+                                self.StartDate,
+                                self.EndtDate,
+                                self.IsDayReset,
+                                self.ResetType,
+                                self.LimitLV,
+                                self.SubmitCount,
+                                "...",
+                                self.BillardCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCActBossTrialInfo=tagMCActBossTrialInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActBossTrialInfo.Head.Cmd,m_NAtagMCActBossTrialInfo.Head.SubCmd))] = m_NAtagMCActBossTrialInfo
+
+
+#------------------------------------------------------
+# AA 68 Boss历练活动玩家信息 #tagMCActBossTrialPlayerInfo
+
+class  tagMCActBossTrialPlayerInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ActNum", c_ubyte),    # 活动编号
+                  ("SubmitCount", c_ushort),    # 已提交凭证个数
+                  ("SubmitCountAward", c_int),    # 提交凭证奖励领奖状态
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xAA
+        self.SubCmd = 0x68
+        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 = 0xAA
+        self.SubCmd = 0x68
+        self.ActNum = 0
+        self.SubmitCount = 0
+        self.SubmitCountAward = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCActBossTrialPlayerInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 68 Boss历练活动玩家信息 //tagMCActBossTrialPlayerInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ActNum:%d,
+                                SubmitCount:%d,
+                                SubmitCountAward:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ActNum,
+                                self.SubmitCount,
+                                self.SubmitCountAward
+                                )
+        return DumpString
+
+
+m_NAtagMCActBossTrialPlayerInfo=tagMCActBossTrialPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActBossTrialPlayerInfo.Cmd,m_NAtagMCActBossTrialPlayerInfo.SubCmd))] = m_NAtagMCActBossTrialPlayerInfo
+
+
+#------------------------------------------------------
 # AA 65 买一送多活动信息 #tagMCActBuyOneInfo
 
 class  tagMCActBuyOneInfoFreeItem(Structure):

--
Gitblit v1.8.0