From e6d0ada5c3569a7f60d83a9798de5d630dfe302b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 20 二月 2019 16:36:42 +0800 Subject: [PATCH] 6250 【后端】【2.0】拍卖行开发单(查询封包修改) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 101 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 75 insertions(+), 26 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index 8021f8b..0728bf6 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py @@ -2430,52 +2430,101 @@ # B5 10 拍卖行查询拍卖中的物品 #tagCGQueryAuctionItem class tagCGQueryAuctionItem(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("QueryType", c_ushort), #查询的分类标识 - ("QueryCount", c_ubyte), #指定返回个数,0为全部 - ("IsFamily", c_ubyte), #是否查询仙盟拍品 - ] + Head = tagHead() + Job = 0 #(BYTE Job)//过滤职业,0为不限制 + ItemType = 0 #(BYTE ItemType)//过滤类型,0为不限制 + ClassLV = 0 #(BYTE ClassLV)//过滤阶数,0为不限制 + SpecItemIDCount = 0 #(BYTE SpecItemIDCount)//指定物品ID个数 + SpecItemIDList = list() #(vector<DWORD> SpecItemIDList)//指定物品ID + FromNum = 0 #(WORD FromNum)//查询起始数 (从1开始) + QueryCount = 0 #(BYTE QueryCount)//查询个数,0为全部 + IsFamily = 0 #(BYTE IsFamily)//是否查询仙盟拍品 + data = None def __init__(self): self.Clear() - self.Cmd = 0xB5 - self.SubCmd = 0x10 + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x10 return - def ReadData(self, stringData, _pos=0, _len=0): + def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() - memmove(addressof(self), stringData[_pos:], self.GetLength()) - return _pos + self.GetLength() + _pos = self.Head.ReadData(_lpData, _pos) + self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ItemType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ClassLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.SpecItemIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.SpecItemIDCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.SpecItemIDList.append(value) + self.FromNum,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.QueryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.IsFamily,_pos = CommFunc.ReadBYTE(_lpData, _pos) + return _pos def Clear(self): - self.Cmd = 0xB5 - self.SubCmd = 0x10 - self.QueryType = 0 + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x10 + self.Job = 0 + self.ItemType = 0 + self.ClassLV = 0 + self.SpecItemIDCount = 0 + self.SpecItemIDList = list() + self.FromNum = 0 self.QueryCount = 0 self.IsFamily = 0 return def GetLength(self): - return sizeof(tagCGQueryAuctionItem) + length = 0 + length += self.Head.GetLength() + length += 1 + length += 1 + length += 1 + length += 1 + length += 4 * self.SpecItemIDCount + length += 2 + length += 1 + length += 1 + + return length def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.Job) + data = CommFunc.WriteBYTE(data, self.ItemType) + data = CommFunc.WriteBYTE(data, self.ClassLV) + 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.WriteBYTE(data, self.QueryCount) + data = CommFunc.WriteBYTE(data, self.IsFamily) + return data def OutputString(self): - DumpString = '''// B5 10 拍卖行查询拍卖中的物品 //tagCGQueryAuctionItem: - Cmd:%s, - SubCmd:%s, - QueryType:%d, + DumpString = ''' + Head:%s, + Job:%d, + ItemType:%d, + ClassLV:%d, + SpecItemIDCount:%d, + SpecItemIDList:%s, + FromNum:%d, QueryCount:%d, IsFamily:%d '''\ %( - self.Cmd, - self.SubCmd, - self.QueryType, + self.Head.OutputString(), + self.Job, + self.ItemType, + self.ClassLV, + self.SpecItemIDCount, + "...", + self.FromNum, self.QueryCount, self.IsFamily ) @@ -2483,7 +2532,7 @@ m_NAtagCGQueryAuctionItem=tagCGQueryAuctionItem() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAuctionItem.Cmd,m_NAtagCGQueryAuctionItem.SubCmd))] = m_NAtagCGQueryAuctionItem +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAuctionItem.Head.Cmd,m_NAtagCGQueryAuctionItem.Head.SubCmd))] = m_NAtagCGQueryAuctionItem #------------------------------------------------------ -- Gitblit v1.8.0