From c19b101bb654a1d14bab75b3152de681ab190f4a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 04 三月 2019 17:21:46 +0800
Subject: [PATCH] 6320 【后端】【1.6】合服补偿升级丹修改

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py |  317 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 214 insertions(+), 103 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 593887a..8696fe3 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -2356,6 +2356,62 @@
 
 
 #------------------------------------------------------
+# B5 18 拍卖行修改关注物品 #tagCGAttentionAuctionItemChange
+
+class  tagCGAttentionAuctionItemChange(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ItemID", c_int),    
+                  ("IsAttention", c_ubyte),    #是否关注,取消关注发0
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB5
+        self.SubCmd = 0x18
+        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 = 0xB5
+        self.SubCmd = 0x18
+        self.ItemID = 0
+        self.IsAttention = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGAttentionAuctionItemChange)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B5 18 拍卖行修改关注物品 //tagCGAttentionAuctionItemChange:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ItemID:%d,
+                                IsAttention:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ItemID,
+                                self.IsAttention
+                                )
+        return DumpString
+
+
+m_NAtagCGAttentionAuctionItemChange=tagCGAttentionAuctionItemChange()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGAttentionAuctionItemChange.Cmd,m_NAtagCGAttentionAuctionItemChange.SubCmd))] = m_NAtagCGAttentionAuctionItemChange
+
+
+#------------------------------------------------------
 # B5 03 交易所查询上架物品#tagCGPYQueryBourseItemOnSale
 
 class  tagCGPYQueryBourseItemOnSale(Structure):
@@ -2485,7 +2541,8 @@
     ClassLV = 0    #(BYTE ClassLV)//过滤阶数,0为不限制
     SpecItemIDCount = 0    #(BYTE SpecItemIDCount)//指定物品ID个数
     SpecItemIDList = list()    #(vector<DWORD> SpecItemIDList)//指定物品ID
-    FromNum = 0    #(WORD FromNum)//查询起始数 (从1开始)
+    FromItemGUID = ""    #(char FromItemGUID[40])//从哪个物品开始查询
+    QueryDir = 0    #(BYTE QueryDir)//查询方向,1-往后查,2-往前查
     QueryCount = 0    #(BYTE QueryCount)//查询个数,0为全部
     data = None
 
@@ -2508,7 +2565,8 @@
         for i in range(self.SpecItemIDCount):
             value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
             self.SpecItemIDList.append(value)
-        self.FromNum,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.FromItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        self.QueryDir,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.QueryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         return _pos
 
@@ -2523,7 +2581,8 @@
         self.ClassLV = 0
         self.SpecItemIDCount = 0
         self.SpecItemIDList = list()
-        self.FromNum = 0
+        self.FromItemGUID = ""
+        self.QueryDir = 0
         self.QueryCount = 0
         return
 
@@ -2536,7 +2595,8 @@
         length += 1
         length += 1
         length += 4 * self.SpecItemIDCount
-        length += 2
+        length += 40
+        length += 1
         length += 1
 
         return length
@@ -2552,7 +2612,8 @@
         data = CommFunc.WriteBYTE(data, self.SpecItemIDCount)
         for i in range(self.SpecItemIDCount):
             data = CommFunc.WriteDWORD(data, self.SpecItemIDList[i])
-        data = CommFunc.WriteWORD(data, self.FromNum)
+        data = CommFunc.WriteString(data, 40, self.FromItemGUID)
+        data = CommFunc.WriteBYTE(data, self.QueryDir)
         data = CommFunc.WriteBYTE(data, self.QueryCount)
         return data
 
@@ -2565,7 +2626,8 @@
                                 ClassLV:%d,
                                 SpecItemIDCount:%d,
                                 SpecItemIDList:%s,
-                                FromNum:%d,
+                                FromItemGUID:%s,
+                                QueryDir:%d,
                                 QueryCount:%d
                                 '''\
                                 %(
@@ -2576,7 +2638,8 @@
                                 self.ClassLV,
                                 self.SpecItemIDCount,
                                 "...",
-                                self.FromNum,
+                                self.FromItemGUID,
+                                self.QueryDir,
                                 self.QueryCount
                                 )
         return DumpString
@@ -2636,102 +2699,6 @@
 
 m_NAtagCGQueryAuctionRecord=tagCGQueryAuctionRecord()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAuctionRecord.Cmd,m_NAtagCGQueryAuctionRecord.SubCmd))] = m_NAtagCGQueryAuctionRecord
-
-
-#------------------------------------------------------
-# B5 15 拍卖行查询仙盟拍卖中的拍品 #tagCGQueryFamilyAuctionItem
-
-class  tagCGQueryFamilyAuctionItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB5
-        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 = 0xB5
-        self.SubCmd = 0x15
-        return
-
-    def GetLength(self):
-        return sizeof(tagCGQueryFamilyAuctionItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// B5 15 拍卖行查询仙盟拍卖中的拍品 //tagCGQueryFamilyAuctionItem:
-                                Cmd:%s,
-                                SubCmd:%s
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd
-                                )
-        return DumpString
-
-
-m_NAtagCGQueryFamilyAuctionItem=tagCGQueryFamilyAuctionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryFamilyAuctionItem.Cmd,m_NAtagCGQueryFamilyAuctionItem.SubCmd))] = m_NAtagCGQueryFamilyAuctionItem
-
-
-#------------------------------------------------------
-# B5 11 拍卖行查询个人拍卖中的物品 #tagCGQueryPlayerAuctionItem
-
-class  tagCGQueryPlayerAuctionItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB5
-        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 = 0xB5
-        self.SubCmd = 0x11
-        return
-
-    def GetLength(self):
-        return sizeof(tagCGQueryPlayerAuctionItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// B5 11 拍卖行查询个人拍卖中的物品 //tagCGQueryPlayerAuctionItem:
-                                Cmd:%s,
-                                SubCmd:%s
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd
-                                )
-        return DumpString
-
-
-m_NAtagCGQueryPlayerAuctionItem=tagCGQueryPlayerAuctionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryPlayerAuctionItem.Cmd,m_NAtagCGQueryPlayerAuctionItem.SubCmd))] = m_NAtagCGQueryPlayerAuctionItem
 
 
 #------------------------------------------------------
@@ -9502,6 +9469,90 @@
 
 
 #------------------------------------------------------
+# A5 C5 装备部位升星 #tagCMEquipPartStarUp
+
+class  tagCMEquipPartStarUp(Structure):
+    Head = tagHead()
+    EquipPackIndex = 0    #(WORD EquipPackIndex)// 部位格子索引
+    CostEquipCnt = 0    #(BYTE CostEquipCnt)// 装备个数
+    CostEquipIndex = list()    #(vector<WORD> CostEquipIndex)// 装备索引
+    CostEquipID = list()    #(vector<DWORD> CostEquipID)// 装备物品ID
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA5
+        self.Head.SubCmd = 0xC5
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.EquipPackIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.CostEquipCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.CostEquipCnt):
+            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+            self.CostEquipIndex.append(value)
+        for i in range(self.CostEquipCnt):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.CostEquipID.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA5
+        self.Head.SubCmd = 0xC5
+        self.EquipPackIndex = 0
+        self.CostEquipCnt = 0
+        self.CostEquipIndex = list()
+        self.CostEquipID = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 2
+        length += 1
+        length += 2 * self.CostEquipCnt
+        length += 4 * self.CostEquipCnt
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteWORD(data, self.EquipPackIndex)
+        data = CommFunc.WriteBYTE(data, self.CostEquipCnt)
+        for i in range(self.CostEquipCnt):
+            data = CommFunc.WriteWORD(data, self.CostEquipIndex[i])
+        for i in range(self.CostEquipCnt):
+            data = CommFunc.WriteDWORD(data, self.CostEquipID[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                EquipPackIndex:%d,
+                                CostEquipCnt:%d,
+                                CostEquipIndex:%s,
+                                CostEquipID:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.EquipPackIndex,
+                                self.CostEquipCnt,
+                                "...",
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagCMEquipPartStarUp=tagCMEquipPartStarUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartStarUp.Head.Cmd,m_NAtagCMEquipPartStarUp.Head.SubCmd))] = m_NAtagCMEquipPartStarUp
+
+
+#------------------------------------------------------
 # A5 48 兑换大师等级经验 #tagCMExchangeMasterEXP
 
 class  tagCMExchangeMasterEXP(Structure):
@@ -15049,6 +15100,66 @@
 
 
 #------------------------------------------------------
+#B4 0B 根据类型来决定移动的方式 #tagCMMoveByType
+
+class  tagCMMoveByType(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("PosX", c_ushort),    # 目标X
+                  ("PosY", c_ushort),    # 目标Y
+                  ("MoveType", c_ubyte),    #移动方式
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB4
+        self.SubCmd = 0x0B
+        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 = 0xB4
+        self.SubCmd = 0x0B
+        self.PosX = 0
+        self.PosY = 0
+        self.MoveType = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMMoveByType)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''//B4 0B 根据类型来决定移动的方式 //tagCMMoveByType:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                PosX:%d,
+                                PosY:%d,
+                                MoveType:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.PosX,
+                                self.PosY,
+                                self.MoveType
+                                )
+        return DumpString
+
+
+m_NAtagCMMoveByType=tagCMMoveByType()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMoveByType.Cmd,m_NAtagCMMoveByType.SubCmd))] = m_NAtagCMMoveByType
+
+
+#------------------------------------------------------
 #B4 02 对象击退 #tagCMNPCBeatBack
 
 class  tagCMNPCPos(Structure):

--
Gitblit v1.8.0