From 43e5e84170e91ca2bc4c26d289a8bc5a891d06d0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 10 十二月 2019 18:00:54 +0800
Subject: [PATCH] 8346 【恺英】【后端】协助系统(修改感谢礼盒相关封包)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py |  111 ++++++++++++++++++++++++-------------------------------
 1 files changed, 49 insertions(+), 62 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 1b33412..08ec62a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -2020,57 +2020,52 @@
 # B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift
 
 class  tagCGGetAssistThanksGift(Structure):
-    Head = tagHead()
-    GiftGUID = ""    #(char GiftGUID[40])//预览时GUID不发,确认领取时需发送预览返回的GUID,无额外奖励不需要再次发送
-    data = None
+    _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.GiftGUID,_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.GiftGUID = ""
+        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.GiftGUID)
-        return data
+        return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                GiftGUID:%s
+        DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                IsPreview:%d
                                 '''\
                                 %(
-                                self.Head.OutputString(),
-                                self.GiftGUID
+                                self.Cmd,
+                                self.SubCmd,
+                                self.IsPreview
                                 )
         return DumpString
 
 
 m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Head.Cmd,m_NAtagCGGetAssistThanksGift.Head.SubCmd))] = m_NAtagCGGetAssistThanksGift
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift
 
 
 #------------------------------------------------------
@@ -2182,64 +2177,56 @@
 # B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift
 
 class  tagCGUseAssistThanksGift(Structure):
-    Head = tagHead()
-    ItemID = 0    #(DWORD ItemID)
-    GiftGUID = ""    #(char GiftGUID[40])//预览时GUID不发,确认使用时需发送预览返回的GUID
-    data = None
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ItemID", c_int),    
+                  ("IsPreview", c_ubyte),    #是否预览,非预览即确认使用
+                  ]
 
     def __init__(self):
         self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x14
+        self.Cmd = 0xB0
+        self.SubCmd = 0x14
         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.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.GiftGUID,_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 = 0x14
+        self.Cmd = 0xB0
+        self.SubCmd = 0x14
         self.ItemID = 0
-        self.GiftGUID = ""
+        self.IsPreview = 0
         return
 
     def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 40
-
-        return length
+        return sizeof(tagCGUseAssistThanksGift)
 
     def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.ItemID)
-        data = CommFunc.WriteString(data, 40, self.GiftGUID)
-        return data
+        return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''
-                                Head:%s,
+        DumpString = '''// B0 14 使用协助感谢礼盒 //tagCGUseAssistThanksGift:
+                                Cmd:%s,
+                                SubCmd:%s,
                                 ItemID:%d,
-                                GiftGUID:%s
+                                IsPreview:%d
                                 '''\
                                 %(
-                                self.Head.OutputString(),
+                                self.Cmd,
+                                self.SubCmd,
                                 self.ItemID,
-                                self.GiftGUID
+                                self.IsPreview
                                 )
         return DumpString
 
 
 m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Head.Cmd,m_NAtagCGUseAssistThanksGift.Head.SubCmd))] = m_NAtagCGUseAssistThanksGift
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift
 
 
 #------------------------------------------------------

--
Gitblit v1.8.0