From 9631243d61ac32d2e4f89e321f30241cfd040689 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 16 三月 2019 17:42:50 +0800
Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(使用拍品数据同步优化)
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 827 ++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 624 insertions(+), 203 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 70a35be..2ca66e3 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -899,6 +899,58 @@
#------------------------------------------------------
+# A4 0C 多仙盟boss活动信息 #tagGCAllFamilyBossInfo
+
+class tagGCAllFamilyBossInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("IsEnd", c_ubyte), # 是否已结束
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA4
+ self.SubCmd = 0x0C
+ 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 = 0xA4
+ self.SubCmd = 0x0C
+ self.IsEnd = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagGCAllFamilyBossInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A4 0C 多仙盟boss活动信息 //tagGCAllFamilyBossInfo:
+ Cmd:%s,
+ SubCmd:%s,
+ IsEnd:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.IsEnd
+ )
+ return DumpString
+
+
+m_NAtagGCAllFamilyBossInfo=tagGCAllFamilyBossInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAllFamilyBossInfo.Cmd,m_NAtagGCAllFamilyBossInfo.SubCmd))] = m_NAtagGCAllFamilyBossInfo
+
+
+#------------------------------------------------------
# A4 0A 假仙盟信息 #tagGCFakeFamilyInfo
class tagGCFakeFamilyInfo(Structure):
@@ -6849,12 +6901,57 @@
#------------------------------------------------------
-# B5 04 拍卖行新上架拍品 #tagGCAddAuctionItem
+# B5 04 拍卖行新上架拍品 #tagGCAddAuctionItemInfo
class tagGCAddAuctionItem(Structure):
- Head = tagHead()
ItemGUID = "" #(char ItemGUID[40])
ItemID = 0 #(DWORD ItemID)
+ 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.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ return _pos
+
+ def Clear(self):
+ self.ItemGUID = ""
+ self.ItemID = 0
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 40
+ length += 4
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
+ data = CommFunc.WriteDWORD(data, self.ItemID)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ ItemGUID:%s,
+ ItemID:%d
+ '''\
+ %(
+ self.ItemGUID,
+ self.ItemID
+ )
+ return DumpString
+
+
+class tagGCAddAuctionItemInfo(Structure):
+ Head = tagHead()
+ AddCount = 0 #(BYTE AddCount)
+ AddAuctionItemList = list() #(vector<tagGCAddAuctionItem> AddAuctionItemList)
data = None
def __init__(self):
@@ -6866,8 +6963,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.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.AddCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.AddCount):
+ temAddAuctionItemList = tagGCAddAuctionItem()
+ _pos = temAddAuctionItemList.ReadData(_lpData, _pos)
+ self.AddAuctionItemList.append(temAddAuctionItemList)
return _pos
def Clear(self):
@@ -6875,41 +6975,43 @@
self.Head.Clear()
self.Head.Cmd = 0xB5
self.Head.SubCmd = 0x04
- self.ItemGUID = ""
- self.ItemID = 0
+ self.AddCount = 0
+ self.AddAuctionItemList = list()
return
def GetLength(self):
length = 0
length += self.Head.GetLength()
- length += 40
- length += 4
+ length += 1
+ for i in range(self.AddCount):
+ length += self.AddAuctionItemList[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.WriteDWORD(data, self.ItemID)
+ data = CommFunc.WriteBYTE(data, self.AddCount)
+ for i in range(self.AddCount):
+ data = CommFunc.WriteString(data, self.AddAuctionItemList[i].GetLength(), self.AddAuctionItemList[i].GetBuffer())
return data
def OutputString(self):
DumpString = '''
Head:%s,
- ItemGUID:%s,
- ItemID:%d
+ AddCount:%d,
+ AddAuctionItemList:%s
'''\
%(
self.Head.OutputString(),
- self.ItemGUID,
- self.ItemID
+ self.AddCount,
+ "..."
)
return DumpString
-m_NAtagGCAddAuctionItem=tagGCAddAuctionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItem.Head.Cmd,m_NAtagGCAddAuctionItem.Head.SubCmd))] = m_NAtagGCAddAuctionItem
+m_NAtagGCAddAuctionItemInfo=tagGCAddAuctionItemInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItemInfo.Head.Cmd,m_NAtagGCAddAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAddAuctionItemInfo
#------------------------------------------------------
@@ -6991,7 +7093,6 @@
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
- CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益
data = None
def __init__(self):
@@ -7008,7 +7109,6 @@
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos)
return _pos
def Clear(self):
@@ -7020,7 +7120,6 @@
self.BidderPrice = 0
self.UserDataLen = 0
self.UserData = ""
- self.CanGetMoney = 0
return
def GetLength(self):
@@ -7033,7 +7132,6 @@
length += 2
length += 2
length += len(self.UserData)
- length += 1
return length
@@ -7047,7 +7145,6 @@
data = CommFunc.WriteWORD(data, self.BidderPrice)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- data = CommFunc.WriteBYTE(data, self.CanGetMoney)
return data
def OutputString(self):
@@ -7059,8 +7156,7 @@
AddTime:%s,
BidderPrice:%d,
UserDataLen:%d,
- UserData:%s,
- CanGetMoney:%d
+ UserData:%s
'''\
%(
self.ItemGUID,
@@ -7070,8 +7166,7 @@
self.AddTime,
self.BidderPrice,
self.UserDataLen,
- self.UserData,
- self.CanGetMoney
+ self.UserData
)
return DumpString
@@ -7154,7 +7249,6 @@
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
- CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益
data = None
def __init__(self):
@@ -7171,7 +7265,6 @@
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos)
return _pos
def Clear(self):
@@ -7183,7 +7276,6 @@
self.BidderPrice = 0
self.UserDataLen = 0
self.UserData = ""
- self.CanGetMoney = 0
return
def GetLength(self):
@@ -7196,7 +7288,6 @@
length += 2
length += 2
length += len(self.UserData)
- length += 1
return length
@@ -7210,7 +7301,6 @@
data = CommFunc.WriteWORD(data, self.BidderPrice)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- data = CommFunc.WriteBYTE(data, self.CanGetMoney)
return data
def OutputString(self):
@@ -7222,8 +7312,7 @@
AddTime:%s,
BidderPrice:%d,
UserDataLen:%d,
- UserData:%s,
- CanGetMoney:%d
+ UserData:%s
'''\
%(
self.ItemGUID,
@@ -7233,8 +7322,7 @@
self.AddTime,
self.BidderPrice,
self.UserDataLen,
- self.UserData,
- self.CanGetMoney
+ self.UserData
)
return DumpString
@@ -7247,9 +7335,10 @@
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-往前查,3-定位查询
QueryCount = 0 #(BYTE QueryCount)//查询个数,0为全部
- QueryTotalCount = 0 #(WORD QueryTotalCount)//查询条件实际总个数
+ QueryRemainlCount = 0 #(WORD QueryRemainlCount)//查询条件对应查询方向剩余个数
AuctionItemCount = 0 #(BYTE AuctionItemCount)//返回拍品数量
AuctionItemList = list() #(vector<tagGCAuctionItem> AuctionItemList)//返回拍品列表
data = None
@@ -7273,9 +7362,10 @@
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)
- self.QueryTotalCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.QueryRemainlCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.AuctionItemCount):
temAuctionItemList = tagGCAuctionItem()
@@ -7294,9 +7384,10 @@
self.ClassLV = 0
self.SpecItemIDCount = 0
self.SpecItemIDList = list()
- self.FromNum = 0
+ self.FromItemGUID = ""
+ self.QueryDir = 0
self.QueryCount = 0
- self.QueryTotalCount = 0
+ self.QueryRemainlCount = 0
self.AuctionItemCount = 0
self.AuctionItemList = list()
return
@@ -7310,7 +7401,8 @@
length += 1
length += 1
length += 4 * self.SpecItemIDCount
- length += 2
+ length += 40
+ length += 1
length += 1
length += 2
length += 1
@@ -7330,9 +7422,10 @@
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)
- data = CommFunc.WriteWORD(data, self.QueryTotalCount)
+ data = CommFunc.WriteWORD(data, self.QueryRemainlCount)
data = CommFunc.WriteBYTE(data, self.AuctionItemCount)
for i in range(self.AuctionItemCount):
data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer())
@@ -7347,9 +7440,10 @@
ClassLV:%d,
SpecItemIDCount:%d,
SpecItemIDList:%s,
- FromNum:%d,
+ FromItemGUID:%s,
+ QueryDir:%d,
QueryCount:%d,
- QueryTotalCount:%d,
+ QueryRemainlCount:%d,
AuctionItemCount:%d,
AuctionItemList:%s
'''\
@@ -7361,9 +7455,10 @@
self.ClassLV,
self.SpecItemIDCount,
"...",
- self.FromNum,
+ self.FromItemGUID,
+ self.QueryDir,
self.QueryCount,
- self.QueryTotalCount,
+ self.QueryRemainlCount,
self.AuctionItemCount,
"..."
)
@@ -7375,7 +7470,170 @@
#------------------------------------------------------
-# B5 09 拍卖行清除拍品 #tagGCClearAuctionItem
+# B5 10 拍卖行玩家竞价中的物品信息 #tagGCBiddingItemInfo
+
+class tagGCBiddingItem(Structure):
+ ItemGUID = "" #(char ItemGUID[40])
+ FamilyID = 0 #(DWORD FamilyID)//有值时为仙盟拍品
+ ItemID = 0 #(DWORD ItemID)
+ ItemCount = 0 #(WORD ItemCount)
+ AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
+ BidderID = 0 #(DWORD BidderID)//竞拍玩家ID,也就是当前最高竞价玩家ID
+ BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
+ UserDataLen = 0 #(WORD UserDataLen)
+ UserData = "" #(String UserData)//自定义数据
+ 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.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
+ self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
+ return _pos
+
+ def Clear(self):
+ self.ItemGUID = ""
+ self.FamilyID = 0
+ self.ItemID = 0
+ self.ItemCount = 0
+ self.AddTime = ""
+ self.BidderID = 0
+ self.BidderPrice = 0
+ self.UserDataLen = 0
+ self.UserData = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 40
+ length += 4
+ length += 4
+ length += 2
+ length += 19
+ length += 4
+ length += 2
+ length += 2
+ length += len(self.UserData)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
+ data = CommFunc.WriteDWORD(data, self.FamilyID)
+ data = CommFunc.WriteDWORD(data, self.ItemID)
+ data = CommFunc.WriteWORD(data, self.ItemCount)
+ data = CommFunc.WriteString(data, 19, self.AddTime)
+ data = CommFunc.WriteDWORD(data, self.BidderID)
+ data = CommFunc.WriteWORD(data, self.BidderPrice)
+ data = CommFunc.WriteWORD(data, self.UserDataLen)
+ data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ ItemGUID:%s,
+ FamilyID:%d,
+ ItemID:%d,
+ ItemCount:%d,
+ AddTime:%s,
+ BidderID:%d,
+ BidderPrice:%d,
+ UserDataLen:%d,
+ UserData:%s
+ '''\
+ %(
+ self.ItemGUID,
+ self.FamilyID,
+ self.ItemID,
+ self.ItemCount,
+ self.AddTime,
+ self.BidderID,
+ self.BidderPrice,
+ self.UserDataLen,
+ self.UserData
+ )
+ return DumpString
+
+
+class tagGCBiddingItemInfo(Structure):
+ Head = tagHead()
+ AuctionItemCount = 0 #(BYTE AuctionItemCount)//拍品数量
+ AuctionItemList = list() #(vector<tagGCBiddingItem> AuctionItemList)//拍品列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x10
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.AuctionItemCount):
+ temAuctionItemList = tagGCBiddingItem()
+ _pos = temAuctionItemList.ReadData(_lpData, _pos)
+ self.AuctionItemList.append(temAuctionItemList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x10
+ self.AuctionItemCount = 0
+ self.AuctionItemList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.AuctionItemCount):
+ length += self.AuctionItemList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.AuctionItemCount)
+ for i in range(self.AuctionItemCount):
+ data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ AuctionItemCount:%d,
+ AuctionItemList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.AuctionItemCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagGCBiddingItemInfo=tagGCBiddingItemInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBiddingItemInfo.Head.Cmd,m_NAtagGCBiddingItemInfo.Head.SubCmd))] = m_NAtagGCBiddingItemInfo
+
+
+#------------------------------------------------------
+# B5 09 拍卖行清除拍品 #tagGCClearAuctionItemInfo
class tagGCClearAuctionItem(Structure):
ItemGUID = "" #(char ItemGUID[40])
@@ -7415,8 +7673,70 @@
return DumpString
-m_NAtagGCClearAuctionItem=tagGCClearAuctionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAuctionItem.Head.Cmd,m_NAtagGCClearAuctionItem.Head.SubCmd))] = m_NAtagGCClearAuctionItem
+class tagGCClearAuctionItemInfo(Structure):
+ Head = tagHead()
+ ClearCount = 0 #(BYTE ClearCount)
+ ClearAuctionItemList = list() #(vector<tagGCClearAuctionItem> ClearAuctionItemList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x09
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ClearCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ClearCount):
+ temClearAuctionItemList = tagGCClearAuctionItem()
+ _pos = temClearAuctionItemList.ReadData(_lpData, _pos)
+ self.ClearAuctionItemList.append(temClearAuctionItemList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x09
+ self.ClearCount = 0
+ self.ClearAuctionItemList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.ClearCount):
+ length += self.ClearAuctionItemList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ClearCount)
+ for i in range(self.ClearCount):
+ data = CommFunc.WriteString(data, self.ClearAuctionItemList[i].GetLength(), self.ClearAuctionItemList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ClearCount:%d,
+ ClearAuctionItemList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.ClearCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagGCClearAuctionItemInfo=tagGCClearAuctionItemInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAuctionItemInfo.Head.Cmd,m_NAtagGCClearAuctionItemInfo.Head.SubCmd))] = m_NAtagGCClearAuctionItemInfo
#------------------------------------------------------
@@ -7431,7 +7751,9 @@
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
- CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益
+ FamilyPlayerIDLen = 0 #(WORD FamilyPlayerIDLen)
+ FamilyPlayerIDInfo = "" #(String FamilyPlayerIDInfo)//可获得收益的仙盟玩家ID信息
+ AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
data = None
def __init__(self):
@@ -7448,7 +7770,9 @@
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.FamilyPlayerIDLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.FamilyPlayerIDInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyPlayerIDLen)
+ self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
return _pos
def Clear(self):
@@ -7460,7 +7784,9 @@
self.BidderPrice = 0
self.UserDataLen = 0
self.UserData = ""
- self.CanGetMoney = 0
+ self.FamilyPlayerIDLen = 0
+ self.FamilyPlayerIDInfo = ""
+ self.AuctionType = 0
return
def GetLength(self):
@@ -7473,6 +7799,8 @@
length += 2
length += 2
length += len(self.UserData)
+ length += 2
+ length += len(self.FamilyPlayerIDInfo)
length += 1
return length
@@ -7487,7 +7815,9 @@
data = CommFunc.WriteWORD(data, self.BidderPrice)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- data = CommFunc.WriteBYTE(data, self.CanGetMoney)
+ data = CommFunc.WriteWORD(data, self.FamilyPlayerIDLen)
+ data = CommFunc.WriteString(data, self.FamilyPlayerIDLen, self.FamilyPlayerIDInfo)
+ data = CommFunc.WriteBYTE(data, self.AuctionType)
return data
def OutputString(self):
@@ -7500,7 +7830,9 @@
BidderPrice:%d,
UserDataLen:%d,
UserData:%s,
- CanGetMoney:%d
+ FamilyPlayerIDLen:%d,
+ FamilyPlayerIDInfo:%s,
+ AuctionType:%d
'''\
%(
self.ItemGUID,
@@ -7511,7 +7843,9 @@
self.BidderPrice,
self.UserDataLen,
self.UserData,
- self.CanGetMoney
+ self.FamilyPlayerIDLen,
+ self.FamilyPlayerIDInfo,
+ self.AuctionType
)
return DumpString
@@ -7594,7 +7928,6 @@
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
- CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益
data = None
def __init__(self):
@@ -7611,7 +7944,6 @@
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos)
return _pos
def Clear(self):
@@ -7623,7 +7955,6 @@
self.BidderPrice = 0
self.UserDataLen = 0
self.UserData = ""
- self.CanGetMoney = 0
return
def GetLength(self):
@@ -7636,7 +7967,6 @@
length += 2
length += 2
length += len(self.UserData)
- length += 1
return length
@@ -7650,7 +7980,6 @@
data = CommFunc.WriteWORD(data, self.BidderPrice)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- data = CommFunc.WriteBYTE(data, self.CanGetMoney)
return data
def OutputString(self):
@@ -7662,8 +7991,7 @@
AddTime:%s,
BidderPrice:%d,
UserDataLen:%d,
- UserData:%s,
- CanGetMoney:%d
+ UserData:%s
'''\
%(
self.ItemGUID,
@@ -7673,8 +8001,7 @@
self.AddTime,
self.BidderPrice,
self.UserDataLen,
- self.UserData,
- self.CanGetMoney
+ self.UserData
)
return DumpString
@@ -7749,10 +8076,13 @@
# B5 03 拍卖行玩家拍卖记录 #tagGCPlayerAuctionRecordInfo
class tagGCPlayerAuctionRecord(Structure):
+ ItemGUID = "" #(char ItemGUID[40])
FamilyID = 0 #(DWORD FamilyID)//有值时为仙盟拍品
- RecordType = 0 #(BYTE RecordType)//记录类型 0-流拍 1-拍卖成交 2-回收 3-竞价成功 4-竞价失败
+ RecordType = 0 #(BYTE RecordType)//记录类型 0-我的拍品记录 1-仙盟拍品记录 2-我的竞拍记录
+ RecordResult = 0 #(BYTE RecordResult)//记录结果 0-流拍 1-拍卖成交 2-回收 3-竞价成功 4-竞价失败
RecordTime = "" #(char RecordTime[19])//记录时间 yyyy-MM-dd hh:mm:ss
- RecordPrice = 0 #(WORD RecordPrice)//记录价格
+ BidderPrice = 0 #(DWORD BidderPrice)//成交价格
+ BidderName = "" #(char BidderName[33])//成交玩家名
ItemID = 0 #(DWORD ItemID)
ItemCount = 0 #(WORD ItemCount)
UserDataLen = 0 #(WORD UserDataLen)
@@ -7765,10 +8095,13 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
+ self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.RecordType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.RecordResult,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.RecordTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
- self.RecordPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BidderName,_pos = CommFunc.ReadString(_lpData, _pos,33)
self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -7776,10 +8109,13 @@
return _pos
def Clear(self):
+ self.ItemGUID = ""
self.FamilyID = 0
self.RecordType = 0
+ self.RecordResult = 0
self.RecordTime = ""
- self.RecordPrice = 0
+ self.BidderPrice = 0
+ self.BidderName = ""
self.ItemID = 0
self.ItemCount = 0
self.UserDataLen = 0
@@ -7788,10 +8124,13 @@
def GetLength(self):
length = 0
+ length += 40
length += 4
length += 1
+ length += 1
length += 19
- length += 2
+ length += 4
+ length += 33
length += 4
length += 2
length += 2
@@ -7801,10 +8140,13 @@
def GetBuffer(self):
data = ''
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
data = CommFunc.WriteDWORD(data, self.FamilyID)
data = CommFunc.WriteBYTE(data, self.RecordType)
+ data = CommFunc.WriteBYTE(data, self.RecordResult)
data = CommFunc.WriteString(data, 19, self.RecordTime)
- data = CommFunc.WriteWORD(data, self.RecordPrice)
+ data = CommFunc.WriteDWORD(data, self.BidderPrice)
+ data = CommFunc.WriteString(data, 33, self.BidderName)
data = CommFunc.WriteDWORD(data, self.ItemID)
data = CommFunc.WriteWORD(data, self.ItemCount)
data = CommFunc.WriteWORD(data, self.UserDataLen)
@@ -7813,20 +8155,26 @@
def OutputString(self):
DumpString = '''
+ ItemGUID:%s,
FamilyID:%d,
RecordType:%d,
+ RecordResult:%d,
RecordTime:%s,
- RecordPrice:%d,
+ BidderPrice:%d,
+ BidderName:%s,
ItemID:%d,
ItemCount:%d,
UserDataLen:%d,
UserData:%s
'''\
%(
+ self.ItemGUID,
self.FamilyID,
self.RecordType,
+ self.RecordResult,
self.RecordTime,
- self.RecordPrice,
+ self.BidderPrice,
+ self.BidderName,
self.ItemID,
self.ItemCount,
self.UserDataLen,
@@ -7838,7 +8186,7 @@
class tagGCPlayerAuctionRecordInfo(Structure):
Head = tagHead()
Count = 0 #(BYTE Count)
- AuctionRecordList = list() #(vector<tagGCPlayerAuctionRecordInfo> AuctionRecordList)
+ AuctionRecordList = list() #(vector<tagGCPlayerAuctionRecord> AuctionRecordList)
data = None
def __init__(self):
@@ -7852,7 +8200,7 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
- temAuctionRecordList = tagGCPlayerAuctionRecordInfo()
+ temAuctionRecordList = tagGCPlayerAuctionRecord()
_pos = temAuctionRecordList.ReadData(_lpData, _pos)
self.AuctionRecordList.append(temAuctionRecordList)
return _pos
@@ -7902,18 +8250,14 @@
#------------------------------------------------------
-# B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItem
+# B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItemInfo
class tagGCRefreshAuctionItem(Structure):
ItemGUID = "" #(char ItemGUID[40])
- FamilyID = 0 #(DWORD FamilyID)//有值时为仙盟拍品
- ItemID = 0 #(DWORD ItemID)
- ItemCount = 0 #(WORD ItemCount)
- AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
- BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
- UserDataLen = 0 #(WORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
- CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益
+ 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):
@@ -7923,83 +8267,121 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
- self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
- self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
self.ItemGUID = ""
- self.FamilyID = 0
- self.ItemID = 0
- self.ItemCount = 0
+ self.AuctionType = 0
self.AddTime = ""
+ self.BidderID = 0
self.BidderPrice = 0
- self.UserDataLen = 0
- self.UserData = ""
- self.CanGetMoney = 0
return
def GetLength(self):
length = 0
length += 40
- length += 4
- length += 4
- length += 2
- length += 19
- length += 2
- length += 2
- length += len(self.UserData)
length += 1
+ length += 19
+ length += 4
+ length += 4
return length
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, 40, self.ItemGUID)
- data = CommFunc.WriteDWORD(data, self.FamilyID)
- data = CommFunc.WriteDWORD(data, self.ItemID)
- data = CommFunc.WriteWORD(data, self.ItemCount)
+ data = CommFunc.WriteBYTE(data, self.AuctionType)
data = CommFunc.WriteString(data, 19, self.AddTime)
- data = CommFunc.WriteWORD(data, self.BidderPrice)
- data = CommFunc.WriteWORD(data, self.UserDataLen)
- data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- data = CommFunc.WriteBYTE(data, self.CanGetMoney)
+ data = CommFunc.WriteDWORD(data, self.BidderID)
+ data = CommFunc.WriteDWORD(data, self.BidderPrice)
return data
def OutputString(self):
DumpString = '''
ItemGUID:%s,
- FamilyID:%d,
- ItemID:%d,
- ItemCount:%d,
+ AuctionType:%d,
AddTime:%s,
- BidderPrice:%d,
- UserDataLen:%d,
- UserData:%s,
- CanGetMoney:%d
+ BidderID:%d,
+ BidderPrice:%d
'''\
%(
self.ItemGUID,
- self.FamilyID,
- self.ItemID,
- self.ItemCount,
+ self.AuctionType,
self.AddTime,
- self.BidderPrice,
- self.UserDataLen,
- self.UserData,
- self.CanGetMoney
+ self.BidderID,
+ self.BidderPrice
)
return DumpString
-m_NAtagGCRefreshAuctionItem=tagGCRefreshAuctionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItem.Head.Cmd,m_NAtagGCRefreshAuctionItem.Head.SubCmd))] = m_NAtagGCRefreshAuctionItem
+class tagGCRefreshAuctionItemInfo(Structure):
+ Head = tagHead()
+ RefreshCount = 0 #(BYTE RefreshCount)
+ RefreshAuctionItemList = list() #(vector<tagGCRefreshAuctionItem> RefreshAuctionItemList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x08
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_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):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x08
+ self.RefreshCount = 0
+ self.RefreshAuctionItemList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ 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.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,
+ RefreshCount:%d,
+ RefreshAuctionItemList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.RefreshCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagGCRefreshAuctionItemInfo=tagGCRefreshAuctionItemInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItemInfo.Head.Cmd,m_NAtagGCRefreshAuctionItemInfo.Head.SubCmd))] = m_NAtagGCRefreshAuctionItemInfo
#------------------------------------------------------
@@ -13452,70 +13834,57 @@
#------------------------------------------------------
-# A3 09 通知玩家部位套装等级 #tagMCEquipPartSuiteLVInfo
+# A3 B1 装备部位星数信息 #tagMCEquipPartStarInfo
-class tagMCEquipPartSuiteLV(Structure):
- EquipIndex = 0 #(BYTE EquipIndex)
- Len = 0 #(WORD Len)//长度
- SuiteLVInfo = "" #(String SuiteLVInfo)//{套装类型:等级}
- data = None
+class tagMCEquipPartStar(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("EquipPackIndex", c_ushort),
+ ("Star", c_ubyte),
+ ]
def __init__(self):
self.Clear()
return
- def ReadData(self, _lpData, _pos=0, _Len=0):
+ def ReadData(self, stringData, _pos=0, _len=0):
self.Clear()
- self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.SuiteLVInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
- return _pos
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
def Clear(self):
- self.EquipIndex = 0
- self.Len = 0
- self.SuiteLVInfo = ""
+ self.EquipPackIndex = 0
+ self.Star = 0
return
def GetLength(self):
- length = 0
- length += 1
- length += 2
- length += len(self.SuiteLVInfo)
-
- return length
+ return sizeof(tagMCEquipPartStar)
def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.EquipIndex)
- data = CommFunc.WriteWORD(data, self.Len)
- data = CommFunc.WriteString(data, self.Len, self.SuiteLVInfo)
- return data
+ return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''
- EquipIndex:%d,
- Len:%d,
- SuiteLVInfo:%s
+ DumpString = '''// A3 B1 装备部位星数信息 //tagMCEquipPartStarInfo:
+ EquipPackIndex:%d,
+ Star:%d
'''\
%(
- self.EquipIndex,
- self.Len,
- self.SuiteLVInfo
+ self.EquipPackIndex,
+ self.Star
)
return DumpString
-class tagMCEquipPartSuiteLVInfo(Structure):
+class tagMCEquipPartStarInfo(Structure):
Head = tagHead()
Count = 0 #(BYTE Count)// 信息个数
- InfoList = list() #(vector<tagMCEquipPartSuiteLV> InfoList)// 信息列表
+ InfoList = list() #(vector<tagMCEquipPartStar> InfoList)// 信息列表
data = None
def __init__(self):
self.Clear()
self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x09
+ self.Head.SubCmd = 0xB1
return
def ReadData(self, _lpData, _pos=0, _Len=0):
@@ -13523,7 +13892,7 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
- temInfoList = tagMCEquipPartSuiteLV()
+ temInfoList = tagMCEquipPartStar()
_pos = temInfoList.ReadData(_lpData, _pos)
self.InfoList.append(temInfoList)
return _pos
@@ -13532,7 +13901,7 @@
self.Head = tagHead()
self.Head.Clear()
self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x09
+ self.Head.SubCmd = 0xB1
self.Count = 0
self.InfoList = list()
return
@@ -13568,8 +13937,8 @@
return DumpString
-m_NAtagMCEquipPartSuiteLVInfo=tagMCEquipPartSuiteLVInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartSuiteLVInfo.Head.Cmd,m_NAtagMCEquipPartSuiteLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartSuiteLVInfo
+m_NAtagMCEquipPartStarInfo=tagMCEquipPartStarInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartStarInfo.Head.Cmd,m_NAtagMCEquipPartStarInfo.Head.SubCmd))] = m_NAtagMCEquipPartStarInfo
#------------------------------------------------------
@@ -15049,15 +15418,16 @@
#------------------------------------------------------
-# A3 B3 装备部位星级信息 #tagMCEquipPartStarLVInfo
+# A3 B3 装备部位强化信息 #tagMCEquipPartPlusInfo
-class tagMCEquipPartStarLV(Structure):
+class tagMCEquipPartPlusLV(Structure):
_pack_ = 1
_fields_ = [
("PackType", c_ubyte),
("EquipIndex", c_ubyte),
("EquipPartStarLV", c_ushort),
("Proficiency", c_int),
+ ("EvolveLV", c_ubyte),
]
def __init__(self):
@@ -15074,34 +15444,37 @@
self.EquipIndex = 0
self.EquipPartStarLV = 0
self.Proficiency = 0
+ self.EvolveLV = 0
return
def GetLength(self):
- return sizeof(tagMCEquipPartStarLV)
+ return sizeof(tagMCEquipPartPlusLV)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// A3 B3 装备部位星级信息 //tagMCEquipPartStarLVInfo:
+ DumpString = '''// A3 B3 装备部位强化信息 //tagMCEquipPartPlusInfo:
PackType:%d,
EquipIndex:%d,
EquipPartStarLV:%d,
- Proficiency:%d
+ Proficiency:%d,
+ EvolveLV:%d
'''\
%(
self.PackType,
self.EquipIndex,
self.EquipPartStarLV,
- self.Proficiency
+ self.Proficiency,
+ self.EvolveLV
)
return DumpString
-class tagMCEquipPartStarLVInfo(Structure):
+class tagMCEquipPartPlusInfo(Structure):
Head = tagHead()
Count = 0 #(BYTE Count)// 信息个数
- InfoList = list() #(vector<tagMCEquipPartStarLV> InfoList)// 信息列表
+ InfoList = list() #(vector<tagMCEquipPartPlusLV> InfoList)// 信息列表
data = None
def __init__(self):
@@ -15115,7 +15488,7 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
- temInfoList = tagMCEquipPartStarLV()
+ temInfoList = tagMCEquipPartPlusLV()
_pos = temInfoList.ReadData(_lpData, _pos)
self.InfoList.append(temInfoList)
return _pos
@@ -15160,8 +15533,8 @@
return DumpString
-m_NAtagMCEquipPartStarLVInfo=tagMCEquipPartStarLVInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartStarLVInfo.Head.Cmd,m_NAtagMCEquipPartStarLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartStarLVInfo
+m_NAtagMCEquipPartPlusInfo=tagMCEquipPartPlusInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartPlusInfo.Head.Cmd,m_NAtagMCEquipPartPlusInfo.Head.SubCmd))] = m_NAtagMCEquipPartPlusInfo
#------------------------------------------------------
@@ -17064,18 +17437,14 @@
#------------------------------------------------------
-# A3 11 通知玩家境界渡劫是否开启 #tagMCSyncRealmFBIsOpen
+# A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
-class tagMCSyncRealmFBIsOpen(Structure):
+class tagMCSyncRealmInfo(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("IsOpen", c_ubyte), #是否开启
- ("SitAllTime", c_ushort), #打坐总时间秒
- ("SitRemainTime", c_int), #开始打坐前剩余时间秒
- ("SitStartTime", c_int), #开始打坐时间
- ("LastEnterTime", c_int), #上次进入渡劫副本时间
+ ("IsPass", c_ubyte), #是否通关副本
]
def __init__(self):
@@ -17092,43 +17461,31 @@
def Clear(self):
self.Cmd = 0xA3
self.SubCmd = 0x11
- self.IsOpen = 0
- self.SitAllTime = 0
- self.SitRemainTime = 0
- self.SitStartTime = 0
- self.LastEnterTime = 0
+ self.IsPass = 0
return
def GetLength(self):
- return sizeof(tagMCSyncRealmFBIsOpen)
+ return sizeof(tagMCSyncRealmInfo)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// A3 11 通知玩家境界渡劫是否开启 //tagMCSyncRealmFBIsOpen:
+ DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
Cmd:%s,
SubCmd:%s,
- IsOpen:%d,
- SitAllTime:%d,
- SitRemainTime:%d,
- SitStartTime:%d,
- LastEnterTime:%d
+ IsPass:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.IsOpen,
- self.SitAllTime,
- self.SitRemainTime,
- self.SitStartTime,
- self.LastEnterTime
+ self.IsPass
)
return DumpString
-m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen
+m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
#------------------------------------------------------
@@ -30275,6 +30632,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