From 677b4321ccf67811bc89b446b6208c00fd6658ce Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 26 二月 2019 16:19:49 +0800
Subject: [PATCH] 6250 【后端】【2.0】拍卖行开发单(封包)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 180 ++++++++++++++++++++++++-----
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 180 ++++++++++++++++++++++++-----
2 files changed, 294 insertions(+), 66 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 922c083..52173a7 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -8191,15 +8191,78 @@
#------------------------------------------------------
-# B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItem
+# B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItemInfo
class tagGCRefreshAuctionItem(Structure):
- Head = tagHead()
ItemGUID = "" #(char ItemGUID[40])
AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
AddTime = "" #(char AddTime[19])//上架时间
BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
BidderPrice = 0 #(DWORD BidderPrice)//最高竞拍价格
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+ self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
+ self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ return _pos
+
+ def Clear(self):
+ self.ItemGUID = ""
+ self.AuctionType = 0
+ self.AddTime = ""
+ self.BidderID = 0
+ self.BidderPrice = 0
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 40
+ length += 1
+ length += 19
+ length += 4
+ length += 4
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
+ data = CommFunc.WriteBYTE(data, self.AuctionType)
+ data = CommFunc.WriteString(data, 19, self.AddTime)
+ data = CommFunc.WriteDWORD(data, self.BidderID)
+ data = CommFunc.WriteDWORD(data, self.BidderPrice)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ ItemGUID:%s,
+ AuctionType:%d,
+ AddTime:%s,
+ BidderID:%d,
+ BidderPrice:%d
+ '''\
+ %(
+ self.ItemGUID,
+ self.AuctionType,
+ self.AddTime,
+ self.BidderID,
+ self.BidderPrice
+ )
+ return DumpString
+
+
+class tagGCRefreshAuctionItemInfo(Structure):
+ Head = tagHead()
+ RefreshCount = 0 #(BYTE RefreshCount)
+ RefreshAuctionItemList = list() #(vector<tagGCRefreshAuctionItem> RefreshAuctionItemList)
data = None
def __init__(self):
@@ -8211,11 +8274,11 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
- self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
- self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
- self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.RefreshCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.RefreshCount):
+ temRefreshAuctionItemList = tagGCRefreshAuctionItem()
+ _pos = temRefreshAuctionItemList.ReadData(_lpData, _pos)
+ self.RefreshAuctionItemList.append(temRefreshAuctionItemList)
return _pos
def Clear(self):
@@ -8223,56 +8286,43 @@
self.Head.Clear()
self.Head.Cmd = 0xB5
self.Head.SubCmd = 0x08
- self.ItemGUID = ""
- self.AuctionType = 0
- self.AddTime = ""
- self.BidderID = 0
- self.BidderPrice = 0
+ self.RefreshCount = 0
+ self.RefreshAuctionItemList = list()
return
def GetLength(self):
length = 0
length += self.Head.GetLength()
- length += 40
length += 1
- length += 19
- length += 4
- length += 4
+ for i in range(self.RefreshCount):
+ length += self.RefreshAuctionItemList[i].GetLength()
return length
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 40, self.ItemGUID)
- data = CommFunc.WriteBYTE(data, self.AuctionType)
- data = CommFunc.WriteString(data, 19, self.AddTime)
- data = CommFunc.WriteDWORD(data, self.BidderID)
- data = CommFunc.WriteDWORD(data, self.BidderPrice)
+ data = CommFunc.WriteBYTE(data, self.RefreshCount)
+ for i in range(self.RefreshCount):
+ data = CommFunc.WriteString(data, self.RefreshAuctionItemList[i].GetLength(), self.RefreshAuctionItemList[i].GetBuffer())
return data
def OutputString(self):
DumpString = '''
Head:%s,
- ItemGUID:%s,
- AuctionType:%d,
- AddTime:%s,
- BidderID:%d,
- BidderPrice:%d
+ RefreshCount:%d,
+ RefreshAuctionItemList:%s
'''\
%(
self.Head.OutputString(),
- self.ItemGUID,
- self.AuctionType,
- self.AddTime,
- self.BidderID,
- self.BidderPrice
+ self.RefreshCount,
+ "..."
)
return DumpString
-m_NAtagGCRefreshAuctionItem=tagGCRefreshAuctionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItem.Head.Cmd,m_NAtagGCRefreshAuctionItem.Head.SubCmd))] = m_NAtagGCRefreshAuctionItem
+m_NAtagGCRefreshAuctionItemInfo=tagGCRefreshAuctionItemInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItemInfo.Head.Cmd,m_NAtagGCRefreshAuctionItemInfo.Head.SubCmd))] = m_NAtagGCRefreshAuctionItemInfo
#------------------------------------------------------
@@ -30548,6 +30598,70 @@
#------------------------------------------------------
+#B4 14 根据类型来决定移动的方式 #tagMCMoveByType
+
+class tagMCMoveByType(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ID", c_int), #玩家ID
+ ("PosX", c_ushort), # 目标X
+ ("PosY", c_ushort), # 目标Y
+ ("MoveType", c_ubyte), #移动方式
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB4
+ 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 = 0xB4
+ self.SubCmd = 0x14
+ self.ID = 0
+ self.PosX = 0
+ self.PosY = 0
+ self.MoveType = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCMoveByType)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''//B4 14 根据类型来决定移动的方式 //tagMCMoveByType:
+ Cmd:%s,
+ SubCmd:%s,
+ ID:%d,
+ PosX:%d,
+ PosY:%d,
+ MoveType:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ID,
+ self.PosX,
+ self.PosY,
+ self.MoveType
+ )
+ return DumpString
+
+
+m_NAtagMCMoveByType=tagMCMoveByType()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMoveByType.Cmd,m_NAtagMCMoveByType.SubCmd))] = m_NAtagMCMoveByType
+
+
+#------------------------------------------------------
#B4 07 被动技能页选择(功法) # tagMCPassivePage
class tagMCPassivePage(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 922c083..52173a7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -8191,15 +8191,78 @@
#------------------------------------------------------
-# B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItem
+# B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItemInfo
class tagGCRefreshAuctionItem(Structure):
- Head = tagHead()
ItemGUID = "" #(char ItemGUID[40])
AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
AddTime = "" #(char AddTime[19])//上架时间
BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
BidderPrice = 0 #(DWORD BidderPrice)//最高竞拍价格
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+ self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
+ self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ return _pos
+
+ def Clear(self):
+ self.ItemGUID = ""
+ self.AuctionType = 0
+ self.AddTime = ""
+ self.BidderID = 0
+ self.BidderPrice = 0
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 40
+ length += 1
+ length += 19
+ length += 4
+ length += 4
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
+ data = CommFunc.WriteBYTE(data, self.AuctionType)
+ data = CommFunc.WriteString(data, 19, self.AddTime)
+ data = CommFunc.WriteDWORD(data, self.BidderID)
+ data = CommFunc.WriteDWORD(data, self.BidderPrice)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ ItemGUID:%s,
+ AuctionType:%d,
+ AddTime:%s,
+ BidderID:%d,
+ BidderPrice:%d
+ '''\
+ %(
+ self.ItemGUID,
+ self.AuctionType,
+ self.AddTime,
+ self.BidderID,
+ self.BidderPrice
+ )
+ return DumpString
+
+
+class tagGCRefreshAuctionItemInfo(Structure):
+ Head = tagHead()
+ RefreshCount = 0 #(BYTE RefreshCount)
+ RefreshAuctionItemList = list() #(vector<tagGCRefreshAuctionItem> RefreshAuctionItemList)
data = None
def __init__(self):
@@ -8211,11 +8274,11 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
- self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
- self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
- self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.RefreshCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.RefreshCount):
+ temRefreshAuctionItemList = tagGCRefreshAuctionItem()
+ _pos = temRefreshAuctionItemList.ReadData(_lpData, _pos)
+ self.RefreshAuctionItemList.append(temRefreshAuctionItemList)
return _pos
def Clear(self):
@@ -8223,56 +8286,43 @@
self.Head.Clear()
self.Head.Cmd = 0xB5
self.Head.SubCmd = 0x08
- self.ItemGUID = ""
- self.AuctionType = 0
- self.AddTime = ""
- self.BidderID = 0
- self.BidderPrice = 0
+ self.RefreshCount = 0
+ self.RefreshAuctionItemList = list()
return
def GetLength(self):
length = 0
length += self.Head.GetLength()
- length += 40
length += 1
- length += 19
- length += 4
- length += 4
+ for i in range(self.RefreshCount):
+ length += self.RefreshAuctionItemList[i].GetLength()
return length
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 40, self.ItemGUID)
- data = CommFunc.WriteBYTE(data, self.AuctionType)
- data = CommFunc.WriteString(data, 19, self.AddTime)
- data = CommFunc.WriteDWORD(data, self.BidderID)
- data = CommFunc.WriteDWORD(data, self.BidderPrice)
+ data = CommFunc.WriteBYTE(data, self.RefreshCount)
+ for i in range(self.RefreshCount):
+ data = CommFunc.WriteString(data, self.RefreshAuctionItemList[i].GetLength(), self.RefreshAuctionItemList[i].GetBuffer())
return data
def OutputString(self):
DumpString = '''
Head:%s,
- ItemGUID:%s,
- AuctionType:%d,
- AddTime:%s,
- BidderID:%d,
- BidderPrice:%d
+ RefreshCount:%d,
+ RefreshAuctionItemList:%s
'''\
%(
self.Head.OutputString(),
- self.ItemGUID,
- self.AuctionType,
- self.AddTime,
- self.BidderID,
- self.BidderPrice
+ self.RefreshCount,
+ "..."
)
return DumpString
-m_NAtagGCRefreshAuctionItem=tagGCRefreshAuctionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItem.Head.Cmd,m_NAtagGCRefreshAuctionItem.Head.SubCmd))] = m_NAtagGCRefreshAuctionItem
+m_NAtagGCRefreshAuctionItemInfo=tagGCRefreshAuctionItemInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItemInfo.Head.Cmd,m_NAtagGCRefreshAuctionItemInfo.Head.SubCmd))] = m_NAtagGCRefreshAuctionItemInfo
#------------------------------------------------------
@@ -30548,6 +30598,70 @@
#------------------------------------------------------
+#B4 14 根据类型来决定移动的方式 #tagMCMoveByType
+
+class tagMCMoveByType(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ID", c_int), #玩家ID
+ ("PosX", c_ushort), # 目标X
+ ("PosY", c_ushort), # 目标Y
+ ("MoveType", c_ubyte), #移动方式
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB4
+ 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 = 0xB4
+ self.SubCmd = 0x14
+ self.ID = 0
+ self.PosX = 0
+ self.PosY = 0
+ self.MoveType = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCMoveByType)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''//B4 14 根据类型来决定移动的方式 //tagMCMoveByType:
+ Cmd:%s,
+ SubCmd:%s,
+ ID:%d,
+ PosX:%d,
+ PosY:%d,
+ MoveType:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ID,
+ self.PosX,
+ self.PosY,
+ self.MoveType
+ )
+ return DumpString
+
+
+m_NAtagMCMoveByType=tagMCMoveByType()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMoveByType.Cmd,m_NAtagMCMoveByType.SubCmd))] = m_NAtagMCMoveByType
+
+
+#------------------------------------------------------
#B4 07 被动技能页选择(功法) # tagMCPassivePage
class tagMCPassivePage(Structure):
--
Gitblit v1.8.0