From 6c76bfd0f116288640f9b98efa8ffaa7df5214d8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 十二月 2025 09:34:51 +0800
Subject: [PATCH] 16 卡牌服务端(真实玩家起始ID3000000起,公会ID1000000起,与外网同步;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py |  770 ++++++++++++++++++++++++----------------------------------
 1 files changed, 322 insertions(+), 448 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index c67123e..df6e0dc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -8961,62 +8961,6 @@
 
 
 #------------------------------------------------------
-# A9 01 获取Boss首杀奖励 #tagCGGetBossFirstKillAward
-
-class  tagCGGetBossFirstKillAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("NPCID", c_int),    
-                  ("AwardType", c_ubyte),    # 0-首杀红包奖励;1-个人首杀奖励
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA9
-        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 = 0xA9
-        self.SubCmd = 0x01
-        self.NPCID = 0
-        self.AwardType = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCGGetBossFirstKillAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A9 01 获取Boss首杀奖励 //tagCGGetBossFirstKillAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                NPCID:%d,
-                                AwardType:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.NPCID,
-                                self.AwardType
-                                )
-        return DumpString
-
-
-m_NAtagCGGetBossFirstKillAward=tagCGGetBossFirstKillAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetBossFirstKillAward.Cmd,m_NAtagCGGetBossFirstKillAward.SubCmd))] = m_NAtagCGGetBossFirstKillAward
-
-
-#------------------------------------------------------
 # A9 07 点赞仙宫 #tagCGLikeXiangong
 
 class  tagCGLikeXiangong(Structure):
@@ -10601,115 +10545,6 @@
 
 
 #------------------------------------------------------
-# B0 13 取消协助Boss #tagCGCancelAssistBoss
-
-class  tagCGCancelAssistBoss(Structure):
-    Head = tagHead()
-    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x13
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        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 = 0x13
-        self.AssistGUID = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 40
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteString(data, 40, self.AssistGUID)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                AssistGUID:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.AssistGUID
-                                )
-        return DumpString
-
-
-m_NAtagCGCancelAssistBoss=tagCGCancelAssistBoss()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCancelAssistBoss.Head.Cmd,m_NAtagCGCancelAssistBoss.Head.SubCmd))] = m_NAtagCGCancelAssistBoss
-
-
-#------------------------------------------------------
-# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift
-
-class  tagCGGetAssistThanksGift(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("IsPreview", c_ubyte),    #是否预览,非预览即确认领取,无额外奖励确认时也需要回复领取包代表已读
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x15
-        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 = 0xB0
-        self.SubCmd = 0x15
-        self.IsPreview = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCGGetAssistThanksGift)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                IsPreview:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.IsPreview
-                                )
-        return DumpString
-
-
-m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift
-
-
-#------------------------------------------------------
 # B0 39 自动淘金免费使用 #tagCSGoldRushAutoFreeUse
 
 class  tagCSGoldRushAutoFreeUse(Structure):
@@ -10930,19 +10765,21 @@
 
 
 #------------------------------------------------------
-#B0 26 请求家族悬赏奖励领取情况 #tagQueryFamilyArrestAwardReceiveState
+# B0 40 游历点击 #tagCSTravelClick
 
-class  tagQueryFamilyArrestAwardReceiveState(Structure):
+class  tagCSTravelClick(Structure):
     _pack_ = 1
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
+                  ("Row", c_ubyte),    #行,从1开始
+                  ("Col", c_ubyte),    #列,从1开始
                   ]
 
     def __init__(self):
         self.Clear()
         self.Cmd = 0xB0
-        self.SubCmd = 0x26
+        self.SubCmd = 0x40
         return
 
     def ReadData(self, stringData, _pos=0, _len=0):
@@ -10952,17 +10789,71 @@
 
     def Clear(self):
         self.Cmd = 0xB0
-        self.SubCmd = 0x26
+        self.SubCmd = 0x40
+        self.Row = 0
+        self.Col = 0
         return
 
     def GetLength(self):
-        return sizeof(tagQueryFamilyArrestAwardReceiveState)
+        return sizeof(tagCSTravelClick)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''//B0 26 请求家族悬赏奖励领取情况 //tagQueryFamilyArrestAwardReceiveState:
+        DumpString = '''// B0 40 游历点击 //tagCSTravelClick:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                Row:%d,
+                                Col:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.Row,
+                                self.Col
+                                )
+        return DumpString
+
+
+m_NAtagCSTravelClick=tagCSTravelClick()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSTravelClick.Cmd,m_NAtagCSTravelClick.SubCmd))] = m_NAtagCSTravelClick
+
+
+#------------------------------------------------------
+# B0 41 游历景观升级 #tagCSTravelSceneryUP
+
+class  tagCSTravelSceneryUP(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        self.SubCmd = 0x41
+        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 = 0xB0
+        self.SubCmd = 0x41
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSTravelSceneryUP)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 41 游历景观升级 //tagCSTravelSceneryUP:
                                 Cmd:%s,
                                 SubCmd:%s
                                 '''\
@@ -10973,221 +10864,8 @@
         return DumpString
 
 
-m_NAtagQueryFamilyArrestAwardReceiveState=tagQueryFamilyArrestAwardReceiveState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestAwardReceiveState.Cmd,m_NAtagQueryFamilyArrestAwardReceiveState.SubCmd))] = m_NAtagQueryFamilyArrestAwardReceiveState
-
-
-#------------------------------------------------------
-#B0 25 请求家族悬赏任务完成情况 #tagQueryFamilyArrestOverState
-
-class  tagQueryFamilyArrestOverState(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x25
-        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 = 0xB0
-        self.SubCmd = 0x25
-        return
-
-    def GetLength(self):
-        return sizeof(tagQueryFamilyArrestOverState)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//B0 25 请求家族悬赏任务完成情况 //tagQueryFamilyArrestOverState:
-                                Cmd:%s,
-                                SubCmd:%s
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd
-                                )
-        return DumpString
-
-
-m_NAtagQueryFamilyArrestOverState=tagQueryFamilyArrestOverState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestOverState.Cmd,m_NAtagQueryFamilyArrestOverState.SubCmd))] = m_NAtagQueryFamilyArrestOverState
-
-
-#------------------------------------------------------
-#B0 24 领取家族悬赏奖励 #tagReceiveFamilyArrestAward
-
-class  tagReceiveFamilyArrestAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ArrestID", c_int),    #悬赏任务ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x24
-        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 = 0xB0
-        self.SubCmd = 0x24
-        self.ArrestID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagReceiveFamilyArrestAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//B0 24 领取家族悬赏奖励 //tagReceiveFamilyArrestAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ArrestID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ArrestID
-                                )
-        return DumpString
-
-
-m_NAtagReceiveFamilyArrestAward=tagReceiveFamilyArrestAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagReceiveFamilyArrestAward.Cmd,m_NAtagReceiveFamilyArrestAward.SubCmd))] = m_NAtagReceiveFamilyArrestAward
-
-
-#------------------------------------------------------
-# B0 12 开始协助Boss #tagCGStartAssistBoss
-
-class  tagCGStartAssistBoss(Structure):
-    Head = tagHead()
-    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x12
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        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 = 0x12
-        self.AssistGUID = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 40
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteString(data, 40, self.AssistGUID)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                AssistGUID:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.AssistGUID
-                                )
-        return DumpString
-
-
-m_NAtagCGStartAssistBoss=tagCGStartAssistBoss()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGStartAssistBoss.Head.Cmd,m_NAtagCGStartAssistBoss.Head.SubCmd))] = m_NAtagCGStartAssistBoss
-
-
-#------------------------------------------------------
-# B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift
-
-class  tagCGUseAssistThanksGift(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ItemID", c_int),    
-                  ("IsPreview", c_ubyte),    #是否预览,非预览即确认使用
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x14
-        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 = 0xB0
-        self.SubCmd = 0x14
-        self.ItemID = 0
-        self.IsPreview = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCGUseAssistThanksGift)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// B0 14 使用协助感谢礼盒 //tagCGUseAssistThanksGift:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ItemID:%d,
-                                IsPreview:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ItemID,
-                                self.IsPreview
-                                )
-        return DumpString
-
-
-m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift
+m_NAtagCSTravelSceneryUP=tagCSTravelSceneryUP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSTravelSceneryUP.Cmd,m_NAtagCSTravelSceneryUP.SubCmd))] = m_NAtagCSTravelSceneryUP
 
 
 #------------------------------------------------------
@@ -11260,66 +10938,6 @@
 
 m_NAtagCMWorldTransfer=tagCMWorldTransfer()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWorldTransfer.Cmd,m_NAtagCMWorldTransfer.SubCmd))] = m_NAtagCMWorldTransfer
-
-
-#------------------------------------------------------
-# B0 20 请求膜拜玩家 #tagCGWorship
-
-class  tagCGWorship(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("PlayerID", c_int),    # 目标玩家ID
-                  ("WorshipType", c_ubyte),    # 膜拜类型
-                  ("WorshipValue", c_int),    # 膜拜类型对应的功能值,如名次或其他,由具体膜拜类型定义对应值含义
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x20
-        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 = 0xB0
-        self.SubCmd = 0x20
-        self.PlayerID = 0
-        self.WorshipType = 0
-        self.WorshipValue = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCGWorship)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// B0 20 请求膜拜玩家 //tagCGWorship:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                PlayerID:%d,
-                                WorshipType:%d,
-                                WorshipValue:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.PlayerID,
-                                self.WorshipType,
-                                self.WorshipValue
-                                )
-        return DumpString
-
-
-m_NAtagCGWorship=tagCGWorship()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGWorship.Cmd,m_NAtagCGWorship.SubCmd))] = m_NAtagCGWorship
 
 
 #------------------------------------------------------
@@ -11572,6 +11190,178 @@
 
 m_NAtagCSArenaMatch=tagCSArenaMatch()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSArenaMatch.Cmd,m_NAtagCSArenaMatch.SubCmd))] = m_NAtagCSArenaMatch
+
+
+#------------------------------------------------------
+# B2 19 红颜激活 #tagCSBeautyActivate
+
+class  tagCSBeautyActivate(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("BeautyID", c_ushort),    #红颜ID
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB2
+        self.SubCmd = 0x19
+        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 = 0xB2
+        self.SubCmd = 0x19
+        self.BeautyID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSBeautyActivate)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B2 19 红颜激活 //tagCSBeautyActivate:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                BeautyID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.BeautyID
+                                )
+        return DumpString
+
+
+m_NAtagCSBeautyActivate=tagCSBeautyActivate()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSBeautyActivate.Cmd,m_NAtagCSBeautyActivate.SubCmd))] = m_NAtagCSBeautyActivate
+
+
+#------------------------------------------------------
+# B2 20 红颜好感度升级 #tagCSBeautyLVUP
+
+class  tagCSBeautyLVUP(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("BeautyID", c_ushort),    #红颜ID
+                  ("ItemID", c_int),    #使用物品ID
+                  ("IsQuick", c_ubyte),    # 是否快速升级,0-只消耗1个道具;1-消耗升1级的道具
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB2
+        self.SubCmd = 0x20
+        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 = 0xB2
+        self.SubCmd = 0x20
+        self.BeautyID = 0
+        self.ItemID = 0
+        self.IsQuick = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSBeautyLVUP)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B2 20 红颜好感度升级 //tagCSBeautyLVUP:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                BeautyID:%d,
+                                ItemID:%d,
+                                IsQuick:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.BeautyID,
+                                self.ItemID,
+                                self.IsQuick
+                                )
+        return DumpString
+
+
+m_NAtagCSBeautyLVUP=tagCSBeautyLVUP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSBeautyLVUP.Cmd,m_NAtagCSBeautyLVUP.SubCmd))] = m_NAtagCSBeautyLVUP
+
+
+#------------------------------------------------------
+# B2 21 红颜时装操作 #tagCSBeautySkinOP
+
+class  tagCSBeautySkinOP(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("BeautyID", c_ushort),    #红颜ID
+                  ("SkinID", c_ushort),    #时装ID
+                  ("OPType", c_ubyte),    #操作 1-激活;2-佩戴;3-升星
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB2
+        self.SubCmd = 0x21
+        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 = 0xB2
+        self.SubCmd = 0x21
+        self.BeautyID = 0
+        self.SkinID = 0
+        self.OPType = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSBeautySkinOP)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B2 21 红颜时装操作 //tagCSBeautySkinOP:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                BeautyID:%d,
+                                SkinID:%d,
+                                OPType:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.BeautyID,
+                                self.SkinID,
+                                self.OPType
+                                )
+        return DumpString
+
+
+m_NAtagCSBeautySkinOP=tagCSBeautySkinOP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSBeautySkinOP.Cmd,m_NAtagCSBeautySkinOP.SubCmd))] = m_NAtagCSBeautySkinOP
 
 
 #------------------------------------------------------
@@ -12067,6 +11857,87 @@
 
 m_NAtagCSHeroDismiss=tagCSHeroDismiss()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroDismiss.Head.Cmd,m_NAtagCSHeroDismiss.Head.SubCmd))] = m_NAtagCSHeroDismiss
+
+
+#------------------------------------------------------
+# B2 41 武将宿缘 #tagCSHeroFates
+
+class  tagCSHeroFates(Structure):
+    Head = tagHead()
+    FatesID = 0    #(BYTE FatesID)// 宿缘ID
+    OPType = 0    #(BYTE OPType)// 0-激活领奖;1-升级
+    IndexCnt = 0    #(BYTE IndexCnt)
+    ItemIndexList = list()    #(vector<WORD> ItemIndexList)// 升级时消耗的材料卡在武将背包索引列表,升级时才发
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x41
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.FatesID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.OPType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.IndexCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.IndexCnt):
+            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+            self.ItemIndexList.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x41
+        self.FatesID = 0
+        self.OPType = 0
+        self.IndexCnt = 0
+        self.ItemIndexList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1
+        length += 1
+        length += 2 * self.IndexCnt
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.FatesID)
+        data = CommFunc.WriteBYTE(data, self.OPType)
+        data = CommFunc.WriteBYTE(data, self.IndexCnt)
+        for i in range(self.IndexCnt):
+            data = CommFunc.WriteWORD(data, self.ItemIndexList[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                FatesID:%d,
+                                OPType:%d,
+                                IndexCnt:%d,
+                                ItemIndexList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.FatesID,
+                                self.OPType,
+                                self.IndexCnt,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagCSHeroFates=tagCSHeroFates()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroFates.Head.Cmd,m_NAtagCSHeroFates.Head.SubCmd))] = m_NAtagCSHeroFates
 
 
 #------------------------------------------------------
@@ -13723,9 +13594,9 @@
 
 
 #------------------------------------------------------
-# B3 20 聊天 #tagCMTalk
+# B3 20 聊天 #tagCSTalk
 
-class  tagCMPyTalk(Structure):
+class  tagCSTalk(Structure):
     Head = tagHead()
     ChannelType = 0    #(BYTE ChannelType)// 频道
     Len = 0    #(WORD Len)
@@ -13789,6 +13660,9 @@
         return DumpString
 
 
+m_NAtagCSTalk=tagCSTalk()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSTalk.Head.Cmd,m_NAtagCSTalk.Head.SubCmd))] = m_NAtagCSTalk
+
 
 #------------------------------------------------------
 # B4 12 战斗阵容保存 #tagCSHeroLineupSave

--
Gitblit v1.8.0