From 26958aff1b844a743a805b4f9075bee800b72a46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 14:35:37 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py |  903 +++++++++++++-------------------------------------------
 1 files changed, 208 insertions(+), 695 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 8e2d395..a543af3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -3961,73 +3961,6 @@
 
 
 #------------------------------------------------------
-#A3 2E 羽翼精炼 #tagCMWingUp
-
-class  tagCMWingUp(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)//索引个数
-    WingIndexList = list()    #(vector<BYTE> WingIndexList)//材料翅膀在背包中的索引列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x2E
-        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):
-            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
-            self.WingIndexList.append(value)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x2E
-        self.Count = 0
-        self.WingIndexList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        length += 1 * self.Count
-
-        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.WriteBYTE(data, self.WingIndexList[i])
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                WingIndexList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagCMWingUp=tagCMWingUp()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWingUp.Head.Cmd,m_NAtagCMWingUp.Head.SubCmd))] = m_NAtagCMWingUp
-
-
-#------------------------------------------------------
 #A4 06 变更家族成员加入审核方式#tagCGChangeFamilyAcceptJoinType
 
 class  tagCGChangeFamilyAcceptJoinType(Structure):
@@ -4657,58 +4590,6 @@
 
 m_NAtagCGViewTagFamily=tagCGViewTagFamily()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGViewTagFamily.Cmd,m_NAtagCGViewTagFamily.SubCmd))] = m_NAtagCGViewTagFamily
-
-
-#------------------------------------------------------
-#A5 01 坐骑激活 #tagPlayerActivateHorse
-
-class  tagPlayerActivateHorse(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑幻化ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        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 = 0xA5
-        self.SubCmd = 0x01
-        self.HorseID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagPlayerActivateHorse)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A5 01 坐骑激活 //tagPlayerActivateHorse:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                HorseID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.HorseID
-                                )
-        return DumpString
-
-
-m_NAtagPlayerActivateHorse=tagPlayerActivateHorse()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerActivateHorse.Cmd,m_NAtagPlayerActivateHorse.SubCmd))] = m_NAtagPlayerActivateHorse
 
 
 #------------------------------------------------------
@@ -6567,122 +6448,6 @@
 
 
 #------------------------------------------------------
-# A5 56 神兵激活 #tagCMGodWeaponActivate
-
-class  tagCMGodWeaponActivate(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("WeaponType", c_int),    # 神兵类型
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x56
-        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 = 0xA5
-        self.SubCmd = 0x56
-        self.WeaponType = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMGodWeaponActivate)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 56 神兵激活 //tagCMGodWeaponActivate:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                WeaponType:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.WeaponType
-                                )
-        return DumpString
-
-
-m_NAtagCMGodWeaponActivate=tagCMGodWeaponActivate()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGodWeaponActivate.Cmd,m_NAtagCMGodWeaponActivate.SubCmd))] = m_NAtagCMGodWeaponActivate
-
-
-#------------------------------------------------------
-# A5 55 神兵升级 #tagCMGodWeaponPlus
-
-class  tagCMGodWeaponPlus(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("WeaponType", c_int),    # 神兵类型
-                  ("ItemID", c_int),    #消耗的物品ID
-                  ("ItemCount", c_ubyte),    #消耗个数,默认1
-                  ("IsAutoBuy", c_ubyte),    #是否自动购买,默认0
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x55
-        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 = 0xA5
-        self.SubCmd = 0x55
-        self.WeaponType = 0
-        self.ItemID = 0
-        self.ItemCount = 0
-        self.IsAutoBuy = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMGodWeaponPlus)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 55 神兵升级 //tagCMGodWeaponPlus:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                WeaponType:%d,
-                                ItemID:%d,
-                                ItemCount:%d,
-                                IsAutoBuy:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.WeaponType,
-                                self.ItemID,
-                                self.ItemCount,
-                                self.IsAutoBuy
-                                )
-        return DumpString
-
-
-m_NAtagCMGodWeaponPlus=tagCMGodWeaponPlus()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGodWeaponPlus.Cmd,m_NAtagCMGodWeaponPlus.SubCmd))] = m_NAtagCMGodWeaponPlus
-
-
-#------------------------------------------------------
 # A5 40 投资理财 #tagCMGoldInvest
 
 class  tagCMGoldInvest(Structure):
@@ -6736,290 +6501,6 @@
 
 m_NAtagCMGoldInvest=tagCMGoldInvest()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGoldInvest.Cmd,m_NAtagCMGoldInvest.SubCmd))] = m_NAtagCMGoldInvest
-
-
-#------------------------------------------------------
-# A5 29 骑宠觉醒 #tagCMHorsePetAwake
-
-class  tagCMHorsePetAwake(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("Type", c_ushort),    # 1-坐骑 2-灵宠
-                  ("ID", c_int),    # 对应坐骑表灵宠表ID
-                  ("EatItemID", c_int),    # 吞噬的物品ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x29
-        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 = 0xA5
-        self.SubCmd = 0x29
-        self.Type = 0
-        self.ID = 0
-        self.EatItemID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMHorsePetAwake)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 29 骑宠觉醒 //tagCMHorsePetAwake:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                Type:%d,
-                                ID:%d,
-                                EatItemID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.Type,
-                                self.ID,
-                                self.EatItemID
-                                )
-        return DumpString
-
-
-m_NAtagCMHorsePetAwake=tagCMHorsePetAwake()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorsePetAwake.Cmd,m_NAtagCMHorsePetAwake.SubCmd))] = m_NAtagCMHorsePetAwake
-
-
-#------------------------------------------------------
-# A5 30 骑宠外观选择 #tagCMHorsePetSkinSelect
-
-class  tagCMHorsePetSkinSelect(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("Type", c_ushort),    # 1-坐骑 2-灵宠
-                  ("ID", c_int),    # 对应坐骑表灵宠表ID
-                  ("SkinIndex", c_ubyte),    # 外观索引
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x30
-        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 = 0xA5
-        self.SubCmd = 0x30
-        self.Type = 0
-        self.ID = 0
-        self.SkinIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMHorsePetSkinSelect)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 30 骑宠外观选择 //tagCMHorsePetSkinSelect:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                Type:%d,
-                                ID:%d,
-                                SkinIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.Type,
-                                self.ID,
-                                self.SkinIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMHorsePetSkinSelect=tagCMHorsePetSkinSelect()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorsePetSkinSelect.Cmd,m_NAtagCMHorsePetSkinSelect.SubCmd))] = m_NAtagCMHorsePetSkinSelect
-
-
-#------------------------------------------------------
-# A5 35 坐骑升星 #tagCMHorseStarUp
-
-class  tagCMHorseStarUp(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑ID,对应坐骑表ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x35
-        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 = 0xA5
-        self.SubCmd = 0x35
-        self.HorseID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMHorseStarUp)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 35 坐骑升星 //tagCMHorseStarUp:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                HorseID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.HorseID
-                                )
-        return DumpString
-
-
-m_NAtagCMHorseStarUp=tagCMHorseStarUp()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseStarUp.Cmd,m_NAtagCMHorseStarUp.SubCmd))] = m_NAtagCMHorseStarUp
-
-
-#------------------------------------------------------
-# A5 31 坐骑培养 #tagCMHorseTrain
-
-class  tagCMHorseTrain(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("TrainType", c_ubyte),    #培养类型: 1-基础培养,2-特殊培养,3-百分比培养
-                  ("UseItemCnt", c_ushort),    #消耗材料个数
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x31
-        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 = 0xA5
-        self.SubCmd = 0x31
-        self.TrainType = 0
-        self.UseItemCnt = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMHorseTrain)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 31 坐骑培养 //tagCMHorseTrain:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                TrainType:%d,
-                                UseItemCnt:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.TrainType,
-                                self.UseItemCnt
-                                )
-        return DumpString
-
-
-m_NAtagCMHorseTrain=tagCMHorseTrain()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseTrain.Cmd,m_NAtagCMHorseTrain.SubCmd))] = m_NAtagCMHorseTrain
-
-
-#------------------------------------------------------
-# A5 27 坐骑提升 #tagCMHorseUp
-
-class  tagCMHorseUp(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("UseItemCnt", c_ushort),    #消耗材料个数
-                  ("IsAutoBuy", c_ubyte),    #是否自动购买
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x27
-        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 = 0xA5
-        self.SubCmd = 0x27
-        self.UseItemCnt = 0
-        self.IsAutoBuy = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMHorseUp)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 27 坐骑提升 //tagCMHorseUp:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                UseItemCnt:%d,
-                                IsAutoBuy:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.UseItemCnt,
-                                self.IsAutoBuy
-                                )
-        return DumpString
-
-
-m_NAtagCMHorseUp=tagCMHorseUp()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseUp.Cmd,m_NAtagCMHorseUp.SubCmd))] = m_NAtagCMHorseUp
 
 
 #------------------------------------------------------
@@ -7172,62 +6653,6 @@
 
 m_NAtagCMOpenRealmFB=tagCMOpenRealmFB()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMOpenRealmFB.Cmd,m_NAtagCMOpenRealmFB.SubCmd))] = m_NAtagCMOpenRealmFB
-
-
-#------------------------------------------------------
-#A5 02 坐骑选择 #tagPlayerChooseHorse
-
-class  tagPlayerChooseHorse(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ChooseType", c_ubyte),    # 1-按等阶,2-按幻化
-                  ("LVID", c_ubyte),    # 阶等级或幻化ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        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 = 0xA5
-        self.SubCmd = 0x02
-        self.ChooseType = 0
-        self.LVID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagPlayerChooseHorse)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A5 02 坐骑选择 //tagPlayerChooseHorse:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ChooseType:%d,
-                                LVID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ChooseType,
-                                self.LVID
-                                )
-        return DumpString
-
-
-m_NAtagPlayerChooseHorse=tagPlayerChooseHorse()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerChooseHorse.Cmd,m_NAtagPlayerChooseHorse.SubCmd))] = m_NAtagPlayerChooseHorse
 
 
 #------------------------------------------------------
@@ -8243,66 +7668,6 @@
 
 
 #------------------------------------------------------
-# A6 15 传功操作 #tagCMChuangongOP
-
-class  tagCMChuangongOP(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("OPType", c_ubyte),    # 操作类型:1-邀请;2-回应;3-领奖;
-                  ("PlayerID", c_int),    # 目标玩家ID;回应时为邀请方玩家ID
-                  ("OPData", c_ubyte),    # 操作数据,可选:回应时为是否同意
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA6
-        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 = 0xA6
-        self.SubCmd = 0x15
-        self.OPType = 0
-        self.PlayerID = 0
-        self.OPData = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMChuangongOP)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A6 15 传功操作 //tagCMChuangongOP:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                OPType:%d,
-                                PlayerID:%d,
-                                OPData:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.OPType,
-                                self.PlayerID,
-                                self.OPData
-                                )
-        return DumpString
-
-
-m_NAtagCMChuangongOP=tagCMChuangongOP()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChuangongOP.Cmd,m_NAtagCMChuangongOP.SubCmd))] = m_NAtagCMChuangongOP
-
-
-#------------------------------------------------------
 # A6 11 家族改名 #tagCMRenameFamily
 
 class  tagCMRenameFamily(Structure):
@@ -8546,6 +7911,58 @@
 
 m_NAtagCMFamilyMoneyDonate=tagCMFamilyMoneyDonate()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyMoneyDonate.Cmd,m_NAtagCMFamilyMoneyDonate.SubCmd))] = m_NAtagCMFamilyMoneyDonate
+
+
+#------------------------------------------------------
+# A6 13 公会讨伐 #tagCSFamilyTaofaOP
+
+class  tagCSFamilyTaofaOP(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("OpType", c_ubyte),    # 操作:0-斩杀攻击;1-布阵
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA6
+        self.SubCmd = 0x13
+        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 = 0xA6
+        self.SubCmd = 0x13
+        self.OpType = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSFamilyTaofaOP)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A6 13 公会讨伐 //tagCSFamilyTaofaOP:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                OpType:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.OpType
+                                )
+        return DumpString
+
+
+m_NAtagCSFamilyTaofaOP=tagCSFamilyTaofaOP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSFamilyTaofaOP.Cmd,m_NAtagCSFamilyTaofaOP.SubCmd))] = m_NAtagCSFamilyTaofaOP
 
 
 #------------------------------------------------------
@@ -11020,66 +10437,6 @@
 
 
 #------------------------------------------------------
-# AB 11 开服活动奖励 #tagCMOpenServerCampaignAward
-
-class  tagCMOpenServerCampaignAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("CampaignType", c_int),    #活动类型
-                  ("AwardType", c_ubyte),    #奖励类型,1-排行,2-目标
-                  ("AwardIndex", c_ubyte),    #目标奖励索引,领取目标奖励时用,目标条件在目标奖励列表中索引
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAB
-        self.SubCmd = 0x11
-        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 = 0x11
-        self.CampaignType = 0
-        self.AwardType = 0
-        self.AwardIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMOpenServerCampaignAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AB 11 开服活动奖励 //tagCMOpenServerCampaignAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                CampaignType:%d,
-                                AwardType:%d,
-                                AwardIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.CampaignType,
-                                self.AwardType,
-                                self.AwardIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMOpenServerCampaignAward=tagCMOpenServerCampaignAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMOpenServerCampaignAward.Cmd,m_NAtagCMOpenServerCampaignAward.SubCmd))] = m_NAtagCMOpenServerCampaignAward
-
-
-#------------------------------------------------------
 # AC 05 召集仙盟成员打boss #tagCGCallupFamilyMemberToBoss
 
 class  tagCGCallupFamilyMemberToBoss(Structure):
@@ -13126,6 +12483,162 @@
 
 
 #------------------------------------------------------
+# B2 02 坐骑进阶 #tagCSHorseClassUP
+
+class  tagCSHorseClassUP(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB2
+        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 = 0xB2
+        self.SubCmd = 0x02
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSHorseClassUP)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B2 02 坐骑进阶 //tagCSHorseClassUP:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCSHorseClassUP=tagCSHorseClassUP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHorseClassUP.Cmd,m_NAtagCSHorseClassUP.SubCmd))] = m_NAtagCSHorseClassUP
+
+
+#------------------------------------------------------
+# B2 03 坐骑外观操作 #tagCSHorseSkinOP
+
+class  tagCSHorseSkinOP(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("OPType", c_ubyte),    # 操作 1-激活;2-佩戴;3-升星
+                  ("SkinID", c_ubyte),    # 外观ID,佩戴时发0即为卸下
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB2
+        self.SubCmd = 0x03
+        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 = 0x03
+        self.OPType = 0
+        self.SkinID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSHorseSkinOP)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B2 03 坐骑外观操作 //tagCSHorseSkinOP:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                OPType:%d,
+                                SkinID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.OPType,
+                                self.SkinID
+                                )
+        return DumpString
+
+
+m_NAtagCSHorseSkinOP=tagCSHorseSkinOP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHorseSkinOP.Cmd,m_NAtagCSHorseSkinOP.SubCmd))] = m_NAtagCSHorseSkinOP
+
+
+#------------------------------------------------------
+# B2 01 坐骑升级 #tagCSHorseLVUP
+
+class  tagCSHorseLVUP(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("IsQuick", c_ubyte),    # 是否快速升级,0-只消耗1个道具;1-消耗升1级的道具
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB2
+        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 = 0xB2
+        self.SubCmd = 0x01
+        self.IsQuick = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCSHorseLVUP)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B2 01 坐骑升级 //tagCSHorseLVUP:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                IsQuick:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.IsQuick
+                                )
+        return DumpString
+
+
+m_NAtagCSHorseLVUP=tagCSHorseLVUP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHorseLVUP.Cmd,m_NAtagCSHorseLVUP.SubCmd))] = m_NAtagCSHorseLVUP
+
+
+#------------------------------------------------------
 # B2 07 重置加点 #tagCMResetAttrPoint
 
 class  tagCMResetAttrPoint(Structure):

--
Gitblit v1.8.0