From 6551123a8a4a9c55380ebf4dff41c9d3bdbb2c47 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 15 四月 2019 17:10:07 +0800
Subject: [PATCH] 6459 【后端】【2.0】缥缈仙域开发单(分流地图配置)

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py |  807 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 442 insertions(+), 365 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index c85740d..cbc1371 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -4974,174 +4974,6 @@
 
 
 #------------------------------------------------------
-# AC 01 通知领地争夺占领情况 #tagGCManorWarInfo
-
-class  tagGCManorInfo(Structure):
-    Head = tagHead()
-    MapID = 0    #(DWORD MapID)// 领地地图id
-    FamilyID = 0    #(DWORD FamilyID)// 占领战盟id
-    FNameLen = 0    #(BYTE FNameLen)// 战盟名字长度
-    FamilyName = ""    #(String FamilyName)// 战盟名 size = FNameLen
-    LNameLen = 0    #(BYTE LNameLen)// 盟主名字长度
-    LeaderName = ""    #(String LeaderName)// 盟主名 size = LNameLen
-    OccupyDays = 0    #(WORD OccupyDays)// 连续占领天数
-    LastFamilyID = 0    #(DWORD LastFamilyID)// 上次占领的战盟id
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAC
-        self.Head.SubCmd = 0x01
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.FNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FNameLen)
-        self.LNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LNameLen)
-        self.OccupyDays,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.LastFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAC
-        self.Head.SubCmd = 0x01
-        self.MapID = 0
-        self.FamilyID = 0
-        self.FNameLen = 0
-        self.FamilyName = ""
-        self.LNameLen = 0
-        self.LeaderName = ""
-        self.OccupyDays = 0
-        self.LastFamilyID = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 4
-        length += 1
-        length += len(self.FamilyName)
-        length += 1
-        length += len(self.LeaderName)
-        length += 2
-        length += 4
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.MapID)
-        data = CommFunc.WriteDWORD(data, self.FamilyID)
-        data = CommFunc.WriteBYTE(data, self.FNameLen)
-        data = CommFunc.WriteString(data, self.FNameLen, self.FamilyName)
-        data = CommFunc.WriteBYTE(data, self.LNameLen)
-        data = CommFunc.WriteString(data, self.LNameLen, self.LeaderName)
-        data = CommFunc.WriteWORD(data, self.OccupyDays)
-        data = CommFunc.WriteDWORD(data, self.LastFamilyID)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                MapID:%d,
-                                FamilyID:%d,
-                                FNameLen:%d,
-                                FamilyName:%s,
-                                LNameLen:%d,
-                                LeaderName:%s,
-                                OccupyDays:%d,
-                                LastFamilyID:%d
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.MapID,
-                                self.FamilyID,
-                                self.FNameLen,
-                                self.FamilyName,
-                                self.LNameLen,
-                                self.LeaderName,
-                                self.OccupyDays,
-                                self.LastFamilyID
-                                )
-        return DumpString
-
-
-class  tagGCManorWarInfo(Structure):
-    Head = tagHead()
-    ManorCnt = 0    #(BYTE ManorCnt)//领地个数
-    ManorInfoList = list()    #(vector<tagGCManorInfo> ManorInfoList)//领地信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAC
-        self.Head.SubCmd = 0x01
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.ManorCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.ManorCnt):
-            temManorInfoList = tagGCManorInfo()
-            _pos = temManorInfoList.ReadData(_lpData, _pos)
-            self.ManorInfoList.append(temManorInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAC
-        self.Head.SubCmd = 0x01
-        self.ManorCnt = 0
-        self.ManorInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.ManorCnt):
-            length += self.ManorInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.ManorCnt)
-        for i in range(self.ManorCnt):
-            data = CommFunc.WriteString(data, self.ManorInfoList[i].GetLength(), self.ManorInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                ManorCnt:%d,
-                                ManorInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.ManorCnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagGCManorWarInfo=tagGCManorWarInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCManorWarInfo.Head.Cmd,m_NAtagGCManorWarInfo.Head.SubCmd))] = m_NAtagGCManorWarInfo
-
-
-#------------------------------------------------------
 # AC 06 多倍经验活动信息 #tagGCMultiExpRateInfo
 
 class  tagGCMultiExpRateTime(Structure):
@@ -12557,6 +12389,7 @@
     _fields_ = [
                   ("ItemID", c_int),    #果实物品ID
                   ("EatCnt", c_ushort),    #已使用个数
+                  ("AddItemCnt", c_int),    #增幅丹使用个数
                   ]
 
     def __init__(self):
@@ -12571,6 +12404,7 @@
     def Clear(self):
         self.ItemID = 0
         self.EatCnt = 0
+        self.AddItemCnt = 0
         return
 
     def GetLength(self):
@@ -12582,11 +12416,13 @@
     def OutputString(self):
         DumpString = '''// A3 39 玩家属性果实已使用个数信息//tagMCAttrFruitEatCntList:
                                 ItemID:%d,
-                                EatCnt:%d
+                                EatCnt:%d,
+                                AddItemCnt:%d
                                 '''\
                                 %(
                                 self.ItemID,
-                                self.EatCnt
+                                self.EatCnt,
+                                self.AddItemCnt
                                 )
         return DumpString
 
@@ -13187,6 +13023,8 @@
     _fields_ = [
                   ("ActionID", c_int),    # ID
                   ("DayFinishCnt", c_ushort),    # 今日已完成次数
+                  ("DayBuyTimes", c_ubyte),    # 今日购买次数
+                  ("DayItemTimes", c_ubyte),    # 今日物品增加次数
                   ("WeekFinishCnt", c_int),    # 本周已完成次数
                   ]
 
@@ -13202,6 +13040,8 @@
     def Clear(self):
         self.ActionID = 0
         self.DayFinishCnt = 0
+        self.DayBuyTimes = 0
+        self.DayItemTimes = 0
         self.WeekFinishCnt = 0
         return
 
@@ -13215,11 +13055,15 @@
         DumpString = '''// A3 15 日常活动次数通知 //tagMCDailyActionCnt:
                                 ActionID:%d,
                                 DayFinishCnt:%d,
+                                DayBuyTimes:%d,
+                                DayItemTimes:%d,
                                 WeekFinishCnt:%d
                                 '''\
                                 %(
                                 self.ActionID,
                                 self.DayFinishCnt,
+                                self.DayBuyTimes,
+                                self.DayItemTimes,
                                 self.WeekFinishCnt
                                 )
         return DumpString
@@ -13905,6 +13749,254 @@
 
 m_NAtagMCEquipPartXLAttrInfo=tagMCEquipPartXLAttrInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartXLAttrInfo.Head.Cmd,m_NAtagMCEquipPartXLAttrInfo.Head.SubCmd))] = m_NAtagMCEquipPartXLAttrInfo
+
+
+#------------------------------------------------------
+# A3 07 缥缈奇遇信息 #tagMCFairyAdventuresInfo
+
+class  tagMCFairyAdventuresData(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("EventID", c_ubyte),    
+                  ("Gear", c_ubyte),    #第几档
+                  ("Condition", c_int),    #条件
+                  ]
+
+    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.EventID = 0
+        self.Gear = 0
+        self.Condition = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCFairyAdventuresData)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 07 缥缈奇遇信息 //tagMCFairyAdventuresInfo:
+                                EventID:%d,
+                                Gear:%d,
+                                Condition:%d
+                                '''\
+                                %(
+                                self.EventID,
+                                self.Gear,
+                                self.Condition
+                                )
+        return DumpString
+
+
+class  tagMCFairyAdventuresInfo(Structure):
+    Head = tagHead()
+    Cnt = 0    #(BYTE Cnt)
+    InfoList = list()    #(vector<tagMCFairyAdventuresData> InfoList)// 信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x07
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Cnt):
+            temInfoList = tagMCFairyAdventuresData()
+            _pos = temInfoList.ReadData(_lpData, _pos)
+            self.InfoList.append(temInfoList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x07
+        self.Cnt = 0
+        self.InfoList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        for i in range(self.Cnt):
+            length += self.InfoList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.Cnt)
+        for i in range(self.Cnt):
+            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Cnt:%d,
+                                InfoList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Cnt,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCFairyAdventuresInfo=tagMCFairyAdventuresInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFairyAdventuresInfo.Head.Cmd,m_NAtagMCFairyAdventuresInfo.Head.SubCmd))] = m_NAtagMCFairyAdventuresInfo
+
+
+#------------------------------------------------------
+# A3 06 缥缈仙域信息 #tagMCFairyDomainInfo
+
+class  tagMCFairyDomainEvent(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("EventID", c_ushort),    #事件ID
+                  ("EventState", c_ubyte),    #事件状态 1-可拜访 2-拜访中 3-已拜访
+                  ]
+
+    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.EventID = 0
+        self.EventState = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCFairyDomainEvent)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 06 缥缈仙域信息 //tagMCFairyDomainInfo:
+                                EventID:%d,
+                                EventState:%d
+                                '''\
+                                %(
+                                self.EventID,
+                                self.EventState
+                                )
+        return DumpString
+
+
+class  tagMCFairyDomainInfo(Structure):
+    Head = tagHead()
+    IsAll = 0    #(BYTE IsAll)//是否全部
+    State = 0    #(BYTE State)//0-未寻访 1-寻访中 2-任务标记可寻访
+    VisitCnt = 0    #(DWORD VisitCnt)//寻访次数
+    Energy = 0    #(WORD Energy)//体力
+    Count = 0    #(BYTE Count)// 信息个数
+    InfoList = list()    #(vector<tagMCFairyDomainEvent> InfoList)// 信息列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x06
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.VisitCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Energy,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Count):
+            temInfoList = tagMCFairyDomainEvent()
+            _pos = temInfoList.ReadData(_lpData, _pos)
+            self.InfoList.append(temInfoList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x06
+        self.IsAll = 0
+        self.State = 0
+        self.VisitCnt = 0
+        self.Energy = 0
+        self.Count = 0
+        self.InfoList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1
+        length += 4
+        length += 2
+        length += 1
+        for i in range(self.Count):
+            length += self.InfoList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.IsAll)
+        data = CommFunc.WriteBYTE(data, self.State)
+        data = CommFunc.WriteDWORD(data, self.VisitCnt)
+        data = CommFunc.WriteWORD(data, self.Energy)
+        data = CommFunc.WriteBYTE(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                IsAll:%d,
+                                State:%d,
+                                VisitCnt:%d,
+                                Energy:%d,
+                                Count:%d,
+                                InfoList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.IsAll,
+                                self.State,
+                                self.VisitCnt,
+                                self.Energy,
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCFairyDomainInfo=tagMCFairyDomainInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFairyDomainInfo.Head.Cmd,m_NAtagMCFairyDomainInfo.Head.SubCmd))] = m_NAtagMCFairyDomainInfo
 
 
 #------------------------------------------------------
@@ -16072,20 +16164,15 @@
 #------------------------------------------------------
 # A3 BF 通知客户端炼丹炉信息 #tagMCPlayerStoveMsg
 
-class  tagMCPlayerStoveMsg(Structure):
+class  tagMCPlayerStoveInfo(Structure):
     _pack_ = 1
     _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("StoveLV", c_ubyte),    # 炼丹炉等级
-                  ("StoveExp", c_int),    # 炼丹炉经验 
-                  ("ItemID", c_int),    # 合成物品id
+                  ("AlchemyID", c_int),    # 丹 ID
+                  ("StartTime", c_int),    # 开始炼的时间 
                   ]
 
     def __init__(self):
         self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0xBF
         return
 
     def ReadData(self, stringData, _pos=0, _len=0):
@@ -16094,39 +16181,120 @@
         return _pos + self.GetLength()
 
     def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0xBF
-        self.StoveLV = 0
-        self.StoveExp = 0
-        self.ItemID = 0
+        self.AlchemyID = 0
+        self.StartTime = 0
         return
 
     def GetLength(self):
-        return sizeof(tagMCPlayerStoveMsg)
+        return sizeof(tagMCPlayerStoveInfo)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
         DumpString = '''// A3 BF 通知客户端炼丹炉信息 //tagMCPlayerStoveMsg:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                StoveLV:%d,
-                                StoveExp:%d,
-                                ItemID:%d
+                                AlchemyID:%d,
+                                StartTime:%d
                                 '''\
                                 %(
-                                self.Cmd,
-                                self.SubCmd,
+                                self.AlchemyID,
+                                self.StartTime
+                                )
+        return DumpString
+
+
+class  tagMCPlayerStoveMsg(Structure):
+    Head = tagHead()
+    StoveLV = 0    #(BYTE StoveLV)// 炼丹炉等级
+    StoveExp = 0    #(DWORD StoveExp)// 炼丹炉经验
+    ItemID = 0    #(DWORD ItemID)// 合成物品id
+    ItemCnt = 0    #(BYTE ItemCnt)// 丹药数量
+    StoveCnt = 0    #(WORD StoveCnt)// 丹药数量
+    InfoList = list()    #(vector<tagMCPlayerStoveInfo> InfoList)
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0xBF
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.StoveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.StoveExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.StoveCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        for i in range(self.StoveCnt):
+            temInfoList = tagMCPlayerStoveInfo()
+            _pos = temInfoList.ReadData(_lpData, _pos)
+            self.InfoList.append(temInfoList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0xBF
+        self.StoveLV = 0
+        self.StoveExp = 0
+        self.ItemID = 0
+        self.ItemCnt = 0
+        self.StoveCnt = 0
+        self.InfoList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 4
+        length += 4
+        length += 1
+        length += 2
+        for i in range(self.StoveCnt):
+            length += self.InfoList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.StoveLV)
+        data = CommFunc.WriteDWORD(data, self.StoveExp)
+        data = CommFunc.WriteDWORD(data, self.ItemID)
+        data = CommFunc.WriteBYTE(data, self.ItemCnt)
+        data = CommFunc.WriteWORD(data, self.StoveCnt)
+        for i in range(self.StoveCnt):
+            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                StoveLV:%d,
+                                StoveExp:%d,
+                                ItemID:%d,
+                                ItemCnt:%d,
+                                StoveCnt:%d,
+                                InfoList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
                                 self.StoveLV,
                                 self.StoveExp,
-                                self.ItemID
+                                self.ItemID,
+                                self.ItemCnt,
+                                self.StoveCnt,
+                                "..."
                                 )
         return DumpString
 
 
 m_NAtagMCPlayerStoveMsg=tagMCPlayerStoveMsg()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Cmd,m_NAtagMCPlayerStoveMsg.SubCmd))] = m_NAtagMCPlayerStoveMsg
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Head.Cmd,m_NAtagMCPlayerStoveMsg.Head.SubCmd))] = m_NAtagMCPlayerStoveMsg
 
 
 #------------------------------------------------------
@@ -25871,178 +26039,6 @@
 
 
 #------------------------------------------------------
-# AB 07 节日活动奖励状态 #tagMCFestivalLoginAwardState
-
-class  tagMCFestivalLoginAwardState(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("FestivalType", c_ubyte),    # 节日类型
-                  ("State", c_int),    # 领取状态 <按位取值,0-未领取 1-可领取 2-已领取>
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAB
-        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 = 0xAB
-        self.SubCmd = 0x07
-        self.FestivalType = 0
-        self.State = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCFestivalLoginAwardState)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AB 07 节日活动奖励状态 //tagMCFestivalLoginAwardState:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                FestivalType:%d,
-                                State:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.FestivalType,
-                                self.State
-                                )
-        return DumpString
-
-
-m_NAtagMCFestivalLoginAwardState=tagMCFestivalLoginAwardState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFestivalLoginAwardState.Cmd,m_NAtagMCFestivalLoginAwardState.SubCmd))] = m_NAtagMCFestivalLoginAwardState
-
-
-#------------------------------------------------------
-# AB 02  领地占领每日奖励领奖情况 #tagMCManorDailyAward
-
-class  tagMCManorDailyAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("AwardRecord", c_int),    # 按位表示每个领地领取情况;0-未领,1-已领
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAB
-        self.SubCmd = 0x02
-        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 = 0xAB
-        self.SubCmd = 0x02
-        self.AwardRecord = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCManorDailyAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AB 02  领地占领每日奖励领奖情况 //tagMCManorDailyAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                AwardRecord:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.AwardRecord
-                                )
-        return DumpString
-
-
-m_NAtagMCManorDailyAward=tagMCManorDailyAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorDailyAward.Cmd,m_NAtagMCManorDailyAward.SubCmd))] = m_NAtagMCManorDailyAward
-
-
-#------------------------------------------------------
-# AB 01  通知领地战结果 #tagMCManorWarResult
-
-class  tagMCManorWarResult(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("Type", c_ubyte),    # 0-普通信息;1-活动结果总结
-                  ("Result", c_ubyte),    # 战盟胜负情况;0-未知,1-胜利,2-失败
-                  ("JoinTime", c_int),    # 活动时总参与时间,毫秒
-                  ("JoinAward", c_ubyte),    # 参与奖状态;0-不可领,1-可领,2-已领
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAB
-        self.SubCmd = 0x01
-        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 = 0xAB
-        self.SubCmd = 0x01
-        self.Type = 0
-        self.Result = 0
-        self.JoinTime = 0
-        self.JoinAward = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCManorWarResult)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AB 01  通知领地战结果 //tagMCManorWarResult:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                Type:%d,
-                                Result:%d,
-                                JoinTime:%d,
-                                JoinAward:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.Type,
-                                self.Result,
-                                self.JoinTime,
-                                self.JoinAward
-                                )
-        return DumpString
-
-
-m_NAtagMCManorWarResult=tagMCManorWarResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorWarResult.Cmd,m_NAtagMCManorWarResult.SubCmd))] = m_NAtagMCManorWarResult
-
-
-#------------------------------------------------------
 # AB 04 Boss复活活动信息 #tagMCBossRebornInfo
 
 class  tagMCBossRebornAwardItem(Structure):
@@ -27829,6 +27825,87 @@
 
 
 #------------------------------------------------------
+# B2 14 自定义副本奖励信息 #tagMCCuntomFBPrizeInfo
+
+class  tagMCCuntomFBPrizeInfo(Structure):
+    Head = tagHead()
+    MapID = 0    #(DWORD MapID)
+    FuncLineID = 0    #(WORD FuncLineID)
+    PrizeItemCount = 0    #(BYTE PrizeItemCount)
+    PrizeItemIDList = list()    #(vector<DWORD> PrizeItemIDList)
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x14
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FuncLineID,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.PrizeItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.PrizeItemCount):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.PrizeItemIDList.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x14
+        self.MapID = 0
+        self.FuncLineID = 0
+        self.PrizeItemCount = 0
+        self.PrizeItemIDList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 4
+        length += 2
+        length += 1
+        length += 4 * self.PrizeItemCount
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteDWORD(data, self.MapID)
+        data = CommFunc.WriteWORD(data, self.FuncLineID)
+        data = CommFunc.WriteBYTE(data, self.PrizeItemCount)
+        for i in range(self.PrizeItemCount):
+            data = CommFunc.WriteDWORD(data, self.PrizeItemIDList[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                MapID:%d,
+                                FuncLineID:%d,
+                                PrizeItemCount:%d,
+                                PrizeItemIDList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.MapID,
+                                self.FuncLineID,
+                                self.PrizeItemCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCCuntomFBPrizeInfo=tagMCCuntomFBPrizeInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCuntomFBPrizeInfo.Head.Cmd,m_NAtagMCCuntomFBPrizeInfo.Head.SubCmd))] = m_NAtagMCCuntomFBPrizeInfo
+
+
+#------------------------------------------------------
 # B2 10 仙盟联赛玩家排名信息 #tagMCFamilyWarBillboard
 
 class  tagMCFamilyWarPlayer(Structure):

--
Gitblit v1.8.0