From eda67261f401cc667834c73bdffec1e11319f47a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 11 三月 2020 23:42:30 +0800
Subject: [PATCH] 8399 每日灵石礼包修改(封包AA25 AA26)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py |  437 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 431 insertions(+), 6 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index b7f0604..8701dc6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5782,6 +5782,7 @@
 
 class  tagGCAssistInfo(Structure):
     AssistGUID = ""    #(char AssistGUID[40])//协助GUID
+    PlayerID = 0    #(DWORD PlayerID)
     PlayerName = ""    #(char PlayerName[33])
     Job = 0    #(BYTE Job)
     LV = 0    #(WORD LV)//等级
@@ -5800,6 +5801,7 @@
     def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
         self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
         self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -5813,6 +5815,7 @@
 
     def Clear(self):
         self.AssistGUID = ""
+        self.PlayerID = 0
         self.PlayerName = ""
         self.Job = 0
         self.LV = 0
@@ -5827,6 +5830,7 @@
     def GetLength(self):
         length = 0
         length += 40
+        length += 4
         length += 33
         length += 1
         length += 2
@@ -5842,6 +5846,7 @@
     def GetBuffer(self):
         data = ''
         data = CommFunc.WriteString(data, 40, self.AssistGUID)
+        data = CommFunc.WriteDWORD(data, self.PlayerID)
         data = CommFunc.WriteString(data, 33, self.PlayerName)
         data = CommFunc.WriteBYTE(data, self.Job)
         data = CommFunc.WriteWORD(data, self.LV)
@@ -5856,6 +5861,7 @@
     def OutputString(self):
         DumpString = '''
                                 AssistGUID:%s,
+                                PlayerID:%d,
                                 PlayerName:%s,
                                 Job:%d,
                                 LV:%d,
@@ -5868,6 +5874,7 @@
                                 '''\
                                 %(
                                 self.AssistGUID,
+                                self.PlayerID,
                                 self.PlayerName,
                                 self.Job,
                                 self.LV,
@@ -6002,6 +6009,84 @@
 
 m_NAtagGCAssistingInfo=tagGCAssistingInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistingInfo.Head.Cmd,m_NAtagGCAssistingInfo.Head.SubCmd))] = m_NAtagGCAssistingInfo
+
+
+#------------------------------------------------------
+# B0 08 协助结束 #tagGCAssistOver
+
+class  tagGCAssistOver(Structure):
+    Head = tagHead()
+    IsTagPlayerReason = 0    #(BYTE IsTagPlayerReason)//是否发布方原因
+    ReasonLen = 0    #(BYTE ReasonLen)
+    Reason = ""    #(String Reason)//原因
+    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB0
+        self.Head.SubCmd = 0x08
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.IsTagPlayerReason,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.ReasonLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.Reason,_pos = CommFunc.ReadString(_lpData, _pos,self.ReasonLen)
+        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB0
+        self.Head.SubCmd = 0x08
+        self.IsTagPlayerReason = 0
+        self.ReasonLen = 0
+        self.Reason = ""
+        self.AssistGUID = ""
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1
+        length += len(self.Reason)
+        length += 40
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.IsTagPlayerReason)
+        data = CommFunc.WriteBYTE(data, self.ReasonLen)
+        data = CommFunc.WriteString(data, self.ReasonLen, self.Reason)
+        data = CommFunc.WriteString(data, 40, self.AssistGUID)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                IsTagPlayerReason:%d,
+                                ReasonLen:%d,
+                                Reason:%s,
+                                AssistGUID:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.IsTagPlayerReason,
+                                self.ReasonLen,
+                                self.Reason,
+                                self.AssistGUID
+                                )
+        return DumpString
+
+
+m_NAtagGCAssistOver=tagGCAssistOver()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistOver.Head.Cmd,m_NAtagGCAssistOver.Head.SubCmd))] = m_NAtagGCAssistOver
 
 
 #------------------------------------------------------
@@ -24912,6 +24997,307 @@
 
 
 #------------------------------------------------------
+# AA 25 每日礼包活动信息 #tagMCDailyGiftbagInfo
+
+class  tagMCDailyGiftbagItem(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("ItemID", c_int),    
+                  ("ItemCount", c_ushort),    
+                  ]
+
+    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
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCDailyGiftbagItem)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 25 每日礼包活动信息 //tagMCDailyGiftbagInfo:
+                                ItemID:%d,
+                                ItemCount:%d
+                                '''\
+                                %(
+                                self.ItemID,
+                                self.ItemCount
+                                )
+        return DumpString
+
+
+class  tagMCDailyGiftbag(Structure):
+    GiftID = 0    #(DWORD GiftID)//礼包ID,0为免费
+    OrderInfoLen = 0    #(BYTE OrderInfoLen)
+    OrderInfo = ""    #(String OrderInfo)//商品编号
+    BuyCountLimit = 0    #(BYTE BuyCountLimit)//限购数
+    RMB = 0    #(DWORD RMB)//所需RMB,元
+    GiftItemCount = 0    #(BYTE GiftItemCount)// 礼包物品数
+    ItemInfo = list()    #(vector<tagMCDailyGiftbagItem> ItemInfo)// 物品信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.GiftID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.OrderInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.OrderInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.OrderInfoLen)
+        self.BuyCountLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.RMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.GiftItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.GiftItemCount):
+            temItemInfo = tagMCDailyGiftbagItem()
+            _pos = temItemInfo.ReadData(_lpData, _pos)
+            self.ItemInfo.append(temItemInfo)
+        return _pos
+
+    def Clear(self):
+        self.GiftID = 0
+        self.OrderInfoLen = 0
+        self.OrderInfo = ""
+        self.BuyCountLimit = 0
+        self.RMB = 0
+        self.GiftItemCount = 0
+        self.ItemInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 4
+        length += 1
+        length += len(self.OrderInfo)
+        length += 1
+        length += 4
+        length += 1
+        for i in range(self.GiftItemCount):
+            length += self.ItemInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteDWORD(data, self.GiftID)
+        data = CommFunc.WriteBYTE(data, self.OrderInfoLen)
+        data = CommFunc.WriteString(data, self.OrderInfoLen, self.OrderInfo)
+        data = CommFunc.WriteBYTE(data, self.BuyCountLimit)
+        data = CommFunc.WriteDWORD(data, self.RMB)
+        data = CommFunc.WriteBYTE(data, self.GiftItemCount)
+        for i in range(self.GiftItemCount):
+            data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                GiftID:%d,
+                                OrderInfoLen:%d,
+                                OrderInfo:%s,
+                                BuyCountLimit:%d,
+                                RMB:%d,
+                                GiftItemCount:%d,
+                                ItemInfo:%s
+                                '''\
+                                %(
+                                self.GiftID,
+                                self.OrderInfoLen,
+                                self.OrderInfo,
+                                self.BuyCountLimit,
+                                self.RMB,
+                                self.GiftItemCount,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCDailyGiftbagInfo(Structure):
+    Head = tagHead()
+    GiftbagCount = 0    #(BYTE GiftbagCount)// 礼包数
+    GiftbagInfo = list()    #(vector<tagMCDailyGiftbag> GiftbagInfo)// 礼包信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x25
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.GiftbagCount):
+            temGiftbagInfo = tagMCDailyGiftbag()
+            _pos = temGiftbagInfo.ReadData(_lpData, _pos)
+            self.GiftbagInfo.append(temGiftbagInfo)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x25
+        self.GiftbagCount = 0
+        self.GiftbagInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        for i in range(self.GiftbagCount):
+            length += self.GiftbagInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.GiftbagCount)
+        for i in range(self.GiftbagCount):
+            data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                GiftbagCount:%d,
+                                GiftbagInfo:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.GiftbagCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCDailyGiftbagInfo=tagMCDailyGiftbagInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyGiftbagInfo.Head.Cmd,m_NAtagMCDailyGiftbagInfo.Head.SubCmd))] = m_NAtagMCDailyGiftbagInfo
+
+
+#------------------------------------------------------
+# AA 26 每日礼包玩家活动信息 #tagMCDailyGiftbagPlayerInfo
+
+class  tagMCDailyGiftbagBuyCount(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("GiftbagID", c_int),    #礼包ID
+                  ("BuyCount", c_ushort),    #本次活动已购买次数
+                  ]
+
+    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.GiftbagID = 0
+        self.BuyCount = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCDailyGiftbagBuyCount)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 26 每日礼包玩家活动信息 //tagMCDailyGiftbagPlayerInfo:
+                                GiftbagID:%d,
+                                BuyCount:%d
+                                '''\
+                                %(
+                                self.GiftbagID,
+                                self.BuyCount
+                                )
+        return DumpString
+
+
+class  tagMCDailyGiftbagPlayerInfo(Structure):
+    Head = tagHead()
+    Count = 0    #(BYTE Count)
+    BuyCountList = list()    #(vector<tagMCDailyGiftbagBuyCount> BuyCountList)//礼包购买次数信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x26
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Count):
+            temBuyCountList = tagMCDailyGiftbagBuyCount()
+            _pos = temBuyCountList.ReadData(_lpData, _pos)
+            self.BuyCountList.append(temBuyCountList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x26
+        self.Count = 0
+        self.BuyCountList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        for i in range(self.Count):
+            length += self.BuyCountList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Count:%d,
+                                BuyCountList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCDailyGiftbagPlayerInfo=tagMCDailyGiftbagPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyGiftbagPlayerInfo.Head.Cmd,m_NAtagMCDailyGiftbagPlayerInfo.Head.SubCmd))] = m_NAtagMCDailyGiftbagPlayerInfo
+
+
+#------------------------------------------------------
 # AA 24 每日免费直购礼包信息 #tagMCDayFreeGoldGiftState
 
 class  tagMCDayFreeGoldGiftState(Structure):
@@ -29210,6 +29596,10 @@
     RewardCount = 0    #(BYTE RewardCount)// 累计未领取探索奖励次数
     RewardLen = 0    #(BYTE RewardLen)
     RewardInfo = ""    #(String RewardInfo)//累计未领取探索奖励 [[itemID, count], ...]
+    TodayExp = 0    #(DWORD TodayExp)
+    TodayExpPoint = 0    #(DWORD TodayExpPoint)
+    YestordayExp = 0    #(DWORD YestordayExp)
+    YestordayExpPoint = 0    #(DWORD YestordayExpPoint)
     data = None
 
     def __init__(self):
@@ -29226,6 +29616,10 @@
         self.RewardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RewardLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.RewardInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.RewardLen)
+        self.TodayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TodayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.YestordayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.YestordayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -29238,6 +29632,10 @@
         self.RewardCount = 0
         self.RewardLen = 0
         self.RewardInfo = ""
+        self.TodayExp = 0
+        self.TodayExpPoint = 0
+        self.YestordayExp = 0
+        self.YestordayExpPoint = 0
         return
 
     def GetLength(self):
@@ -29248,6 +29646,10 @@
         length += 1
         length += 1
         length += len(self.RewardInfo)
+        length += 4
+        length += 4
+        length += 4
+        length += 4
 
         return length
 
@@ -29259,6 +29661,10 @@
         data = CommFunc.WriteBYTE(data, self.RewardCount)
         data = CommFunc.WriteBYTE(data, self.RewardLen)
         data = CommFunc.WriteString(data, self.RewardLen, self.RewardInfo)
+        data = CommFunc.WriteDWORD(data, self.TodayExp)
+        data = CommFunc.WriteDWORD(data, self.TodayExpPoint)
+        data = CommFunc.WriteDWORD(data, self.YestordayExp)
+        data = CommFunc.WriteDWORD(data, self.YestordayExpPoint)
         return data
 
     def OutputString(self):
@@ -29268,7 +29674,11 @@
                                 PlaceCount:%d,
                                 RewardCount:%d,
                                 RewardLen:%d,
-                                RewardInfo:%s
+                                RewardInfo:%s,
+                                TodayExp:%d,
+                                TodayExpPoint:%d,
+                                YestordayExp:%d,
+                                YestordayExpPoint:%d
                                 '''\
                                 %(
                                 self.Head.OutputString(),
@@ -29276,7 +29686,11 @@
                                 self.PlaceCount,
                                 self.RewardCount,
                                 self.RewardLen,
-                                self.RewardInfo
+                                self.RewardInfo,
+                                self.TodayExp,
+                                self.TodayExpPoint,
+                                self.YestordayExp,
+                                self.YestordayExpPoint
                                 )
         return DumpString
 
@@ -31287,6 +31701,7 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("Floor", c_int),    # 已通关层
+                  ("ServerRewardRecord", c_int),    #全服挑战层领奖记录,按奖励记录二进制位存储是否已领取
                   ]
 
     def __init__(self):
@@ -31304,6 +31719,7 @@
         self.Cmd = 0xB2
         self.SubCmd = 0x13
         self.Floor = 0
+        self.ServerRewardRecord = 0
         return
 
     def GetLength(self):
@@ -31316,12 +31732,14 @@
         DumpString = '''// B2 13 天星塔通关层数 //tagMCSkyTowerInfo:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                Floor:%d
+                                Floor:%d,
+                                ServerRewardRecord:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.Floor
+                                self.Floor,
+                                self.ServerRewardRecord
                                 )
         return DumpString
 
@@ -32712,6 +33130,7 @@
     PosY = 0    #(WORD PosY)
     HurtCount = 0    #(WORD HurtCount)//伤害数目
     HurtList = list()    #(vector<tagSkillPosHurtObj> HurtList)//size = HurtCount
+    SkillElementID = 0    #(WORD SkillElementID)//专精技能ID
     data = None
 
     def __init__(self):
@@ -32733,6 +33152,7 @@
             temHurtList = tagSkillPosHurtObj()
             _pos = temHurtList.ReadData(_lpData, _pos)
             self.HurtList.append(temHurtList)
+        self.SkillElementID,_pos = CommFunc.ReadWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -32747,6 +33167,7 @@
         self.PosY = 0
         self.HurtCount = 0
         self.HurtList = list()
+        self.SkillElementID = 0
         return
 
     def GetLength(self):
@@ -32760,6 +33181,7 @@
         length += 2
         for i in range(self.HurtCount):
             length += self.HurtList[i].GetLength()
+        length += 2
 
         return length
 
@@ -32774,6 +33196,7 @@
         data = CommFunc.WriteWORD(data, self.HurtCount)
         for i in range(self.HurtCount):
             data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer())
+        data = CommFunc.WriteWORD(data, self.SkillElementID)
         return data
 
     def OutputString(self):
@@ -32785,7 +33208,8 @@
                                 PosX:%d,
                                 PosY:%d,
                                 HurtCount:%d,
-                                HurtList:%s
+                                HurtList:%s,
+                                SkillElementID:%d
                                 '''\
                                 %(
                                 self.Head.OutputString(),
@@ -32795,7 +33219,8 @@
                                 self.PosX,
                                 self.PosY,
                                 self.HurtCount,
-                                "..."
+                                "...",
+                                self.SkillElementID
                                 )
         return DumpString
 

--
Gitblit v1.8.0