From 3f862208516829ee806168cbb633bc9221f0cf6a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 11 十月 2025 20:30:10 +0800
Subject: [PATCH] 271 【内政】古宝系统-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 1129 ++++++++--------------------------------------------------
1 files changed, 168 insertions(+), 961 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index a4ce5cd..a17f6a5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -4395,71 +4395,70 @@
#------------------------------------------------------
-#A3 0D 玩家签到信息记录 # tagMCDaySignInfo
+#A3 0D 玩家签到信息记录 # tagSCDaySignInfo
-class tagMCDaySignInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("DaySignCount", c_ubyte), #已经签到天数
- ("ReplenishSignCount", c_ubyte), # 可以补签天数
- ("IsSign", c_ubyte), #当天是否已经签到,发送0和1
- ("IsFrist", c_ubyte), #是否是第一个月
- ("TotalSignCount", c_ushort), #累计总签到天数
- ]
+class tagSCDaySignInfo(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ SignStateList = list() #(vector<BYTE> SignStateList)//每日签到状态记录列表 [第1天状态, ...] 状态:0-不可签到;1-已签到;2-可补签;3-已领取
+ data = None
def __init__(self):
self.Clear()
- self.Cmd = 0xA3
- self.SubCmd = 0x0D
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x0D
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.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.SignStateList.append(value)
+ return _pos
def Clear(self):
- self.Cmd = 0xA3
- self.SubCmd = 0x0D
- self.DaySignCount = 0
- self.ReplenishSignCount = 0
- self.IsSign = 0
- self.IsFrist = 0
- self.TotalSignCount = 0
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x0D
+ self.Count = 0
+ self.SignStateList = list()
return
def GetLength(self):
- return sizeof(tagMCDaySignInfo)
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 1 * self.Count
+
+ 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.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteBYTE(data, self.SignStateList[i])
+ return data
def OutputString(self):
- DumpString = '''//A3 0D 玩家签到信息记录 // tagMCDaySignInfo:
- Cmd:%s,
- SubCmd:%s,
- DaySignCount:%d,
- ReplenishSignCount:%d,
- IsSign:%d,
- IsFrist:%d,
- TotalSignCount:%d
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ SignStateList:%s
'''\
%(
- self.Cmd,
- self.SubCmd,
- self.DaySignCount,
- self.ReplenishSignCount,
- self.IsSign,
- self.IsFrist,
- self.TotalSignCount
+ self.Head.OutputString(),
+ self.Count,
+ "..."
)
return DumpString
-m_NAtagMCDaySignInfo=tagMCDaySignInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDaySignInfo.Cmd,m_NAtagMCDaySignInfo.SubCmd))] = m_NAtagMCDaySignInfo
+m_NAtagSCDaySignInfo=tagSCDaySignInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDaySignInfo.Head.Cmd,m_NAtagSCDaySignInfo.Head.SubCmd))] = m_NAtagSCDaySignInfo
#------------------------------------------------------
@@ -5088,121 +5087,6 @@
m_NAtagMCEquipPartXLAttrInfo=tagMCEquipPartXLAttrInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartXLAttrInfo.Head.Cmd,m_NAtagMCEquipPartXLAttrInfo.Head.SubCmd))] = m_NAtagMCEquipPartXLAttrInfo
-
-
-#------------------------------------------------------
-# A3 16 仙盟活跃信息通知 #tagMCFamilyActivityInfo
-
-class tagMCFamilyActionCnt(Structure):
- _pack_ = 1
- _fields_ = [
- ("ActionID", c_ubyte), # ID
- ("FinishCnt", c_ushort), # 已完成次数
- ]
-
- def __init__(self):
- self.Clear()
- 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.ActionID = 0
- self.FinishCnt = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFamilyActionCnt)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 16 仙盟活跃信息通知 //tagMCFamilyActivityInfo:
- ActionID:%d,
- FinishCnt:%d
- '''\
- %(
- self.ActionID,
- self.FinishCnt
- )
- return DumpString
-
-
-class tagMCFamilyActivityInfo(Structure):
- Head = tagHead()
- AwardRecord = 0 #(DWORD AwardRecord)// 领奖情况记录
- Count = 0 #(BYTE Count)// 个数
- InfoList = list() #(vector<tagMCFamilyActionCnt> InfoList)// 活动信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x16
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temInfoList = tagMCFamilyActionCnt()
- _pos = temInfoList.ReadData(_lpData, _pos)
- self.InfoList.append(temInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x16
- self.AwardRecord = 0
- self.Count = 0
- self.InfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- for i in range(self.Count):
- length += self.InfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.AwardRecord)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- AwardRecord:%d,
- Count:%d,
- InfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.AwardRecord,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFamilyActivityInfo=tagMCFamilyActivityInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityInfo.Head.Cmd,m_NAtagMCFamilyActivityInfo.Head.SubCmd))] = m_NAtagMCFamilyActivityInfo
#------------------------------------------------------
@@ -6132,6 +6016,7 @@
("GubaoID", c_ushort),
("GubaoStar", c_ubyte),
("GubaoLV", c_ubyte),
+ ("EffLayer", c_ubyte), # 该特殊效果累加层值
]
def __init__(self):
@@ -6147,6 +6032,7 @@
self.GubaoID = 0
self.GubaoStar = 0
self.GubaoLV = 0
+ self.EffLayer = 0
return
def GetLength(self):
@@ -6159,19 +6045,21 @@
DumpString = '''// A3 C7 古宝信息 //tagMCGubaoInfo:
GubaoID:%d,
GubaoStar:%d,
- GubaoLV:%d
+ GubaoLV:%d,
+ EffLayer:%d
'''\
%(
self.GubaoID,
self.GubaoStar,
- self.GubaoLV
+ self.GubaoLV,
+ self.EffLayer
)
return DumpString
class tagMCGubaoInfo(Structure):
Head = tagHead()
- Count = 0 #(BYTE Count)
+ Count = 0 #(WORD Count)
GubaoInfoList = list() #(vector<tagMCGubao> GubaoInfoList)
data = None
@@ -6184,7 +6072,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
for i in range(self.Count):
temGubaoInfoList = tagMCGubao()
_pos = temGubaoInfoList.ReadData(_lpData, _pos)
@@ -6203,7 +6091,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
- length += 1
+ length += 2
for i in range(self.Count):
length += self.GubaoInfoList[i].GetLength()
@@ -6212,7 +6100,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.Count)
+ data = CommFunc.WriteWORD(data, self.Count)
for i in range(self.Count):
data = CommFunc.WriteString(data, self.GubaoInfoList[i].GetLength(), self.GubaoInfoList[i].GetBuffer())
return data
@@ -6233,226 +6121,6 @@
m_NAtagMCGubaoInfo=tagMCGubaoInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGubaoInfo.Head.Cmd,m_NAtagMCGubaoInfo.Head.SubCmd))] = m_NAtagMCGubaoInfo
-
-
-#------------------------------------------------------
-# A3 CA 古宝物品特殊效果信息 #tagMCGubaoItemEffInfo
-
-class tagMCGubaoItemEff(Structure):
- _pack_ = 1
- _fields_ = [
- ("GubaoID", c_ushort),
- ("EffType", c_ubyte), # 不同古宝ID允许拥有相同效果类型,进度值每个古宝ID单独统计
- ("EffValue", c_int), # 该效果目前累加值
- ]
-
- def __init__(self):
- self.Clear()
- 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.GubaoID = 0
- self.EffType = 0
- self.EffValue = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCGubaoItemEff)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 CA 古宝物品特殊效果信息 //tagMCGubaoItemEffInfo:
- GubaoID:%d,
- EffType:%d,
- EffValue:%d
- '''\
- %(
- self.GubaoID,
- self.EffType,
- self.EffValue
- )
- return DumpString
-
-
-class tagMCGubaoItemEffInfo(Structure):
- Head = tagHead()
- Count = 0 #(WORD Count)
- ItemEffInfoList = list() #(vector<tagMCGubaoItemEff> ItemEffInfoList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0xCA
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.Count):
- temItemEffInfoList = tagMCGubaoItemEff()
- _pos = temItemEffInfoList.ReadData(_lpData, _pos)
- self.ItemEffInfoList.append(temItemEffInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0xCA
- self.Count = 0
- self.ItemEffInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 2
- for i in range(self.Count):
- length += self.ItemEffInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteWORD(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.ItemEffInfoList[i].GetLength(), self.ItemEffInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- ItemEffInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCGubaoItemEffInfo=tagMCGubaoItemEffInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGubaoItemEffInfo.Head.Cmd,m_NAtagMCGubaoItemEffInfo.Head.SubCmd))] = m_NAtagMCGubaoItemEffInfo
-
-
-#------------------------------------------------------
-# A3 CB 古宝碎片信息 #tagMCGubaoPieceInfo
-
-class tagMCGubaoPiece(Structure):
- _pack_ = 1
- _fields_ = [
- ("GubaoID", c_ushort),
- ("PieceCount", c_int), # 当前碎片个数
- ]
-
- def __init__(self):
- self.Clear()
- 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.GubaoID = 0
- self.PieceCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCGubaoPiece)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 CB 古宝碎片信息 //tagMCGubaoPieceInfo:
- GubaoID:%d,
- PieceCount:%d
- '''\
- %(
- self.GubaoID,
- self.PieceCount
- )
- return DumpString
-
-
-class tagMCGubaoPieceInfo(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)
- PieceInfoList = list() #(vector<tagMCGubaoPiece> PieceInfoList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0xCB
- 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):
- temPieceInfoList = tagMCGubaoPiece()
- _pos = temPieceInfoList.ReadData(_lpData, _pos)
- self.PieceInfoList.append(temPieceInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0xCB
- self.Count = 0
- self.PieceInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.PieceInfoList[i].GetLength()
-
- 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.WriteString(data, self.PieceInfoList[i].GetLength(), self.PieceInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- PieceInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCGubaoPieceInfo=tagMCGubaoPieceInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGubaoPieceInfo.Head.Cmd,m_NAtagMCGubaoPieceInfo.Head.SubCmd))] = m_NAtagMCGubaoPieceInfo
#------------------------------------------------------
@@ -8114,80 +7782,6 @@
#------------------------------------------------------
-#A3 08 在线奖励信息 #tagMCOnlinePrize
-
-class tagMCOnlinePrize(Structure):
- Head = tagHead()
- OnlineTime = 0 #(DWORD OnlineTime)//在线时间毫秒
- Len = 0 #(BYTE Len)
- PrizeInfo = list() #(vector<DWORD> PrizeInfo)//领奖记录
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x08
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Len):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.PrizeInfo.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x08
- self.OnlineTime = 0
- self.Len = 0
- self.PrizeInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += 4 * self.Len
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.OnlineTime)
- data = CommFunc.WriteBYTE(data, self.Len)
- for i in range(self.Len):
- data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- OnlineTime:%d,
- Len:%d,
- PrizeInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.OnlineTime,
- self.Len,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCOnlinePrize=tagMCOnlinePrize()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrize.Head.Cmd,m_NAtagMCOnlinePrize.Head.SubCmd))] = m_NAtagMCOnlinePrize
-
-
-#------------------------------------------------------
# A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
class tagMCPackDownloadRecord(Structure):
@@ -8293,145 +7887,6 @@
m_NAtagMCPlayerLVAwardGetRecord=tagMCPlayerLVAwardGetRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerLVAwardGetRecord.Cmd,m_NAtagMCPlayerLVAwardGetRecord.SubCmd))] = m_NAtagMCPlayerLVAwardGetRecord
-
-
-#------------------------------------------------------
-#A3 03 玩家在线奖励信息(暂停使用) #tagMCPlayerOnlinePrizeInfo
-
-class tagMCOnlinePrizeItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("PrizeItem", c_int),
- ("ItemCount", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA3
- 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 = 0xA3
- self.SubCmd = 0x03
- self.PrizeItem = 0
- self.ItemCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCOnlinePrizeItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A3 03 玩家在线奖励信息(暂停使用) //tagMCPlayerOnlinePrizeInfo:
- Cmd:%s,
- SubCmd:%s,
- PrizeItem:%d,
- ItemCount:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.PrizeItem,
- self.ItemCount
- )
- return DumpString
-
-
-class tagMCPlayerOnlinePrizeInfo(Structure):
- Head = tagHead()
- RemaindTime = 0 #(DWORD RemaindTime)//产生奖励剩余时间
- HasPrize = 0 #(BYTE HasPrize)//是否可以领取
- PrizeType = 0 #(BYTE PrizeType)//在线奖励类型
- PrizeCnt = 0 #(BYTE PrizeCnt)//在线奖励类型
- PrizeInfo = list() #(vector<tagMCOnlinePrizeItem> PrizeInfo)//在线奖励类型
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x03
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.RemaindTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.HasPrize,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PrizeType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.PrizeCnt):
- temPrizeInfo = tagMCOnlinePrizeItem()
- _pos = temPrizeInfo.ReadData(_lpData, _pos)
- self.PrizeInfo.append(temPrizeInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x03
- self.RemaindTime = 0
- self.HasPrize = 0
- self.PrizeType = 0
- self.PrizeCnt = 0
- self.PrizeInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += 1
- length += 1
- for i in range(self.PrizeCnt):
- length += self.PrizeInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.RemaindTime)
- data = CommFunc.WriteBYTE(data, self.HasPrize)
- data = CommFunc.WriteBYTE(data, self.PrizeType)
- data = CommFunc.WriteBYTE(data, self.PrizeCnt)
- for i in range(self.PrizeCnt):
- data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- RemaindTime:%d,
- HasPrize:%d,
- PrizeType:%d,
- PrizeCnt:%d,
- PrizeInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.RemaindTime,
- self.HasPrize,
- self.PrizeType,
- self.PrizeCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCPlayerOnlinePrizeInfo=tagMCPlayerOnlinePrizeInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerOnlinePrizeInfo.Head.Cmd,m_NAtagMCPlayerOnlinePrizeInfo.Head.SubCmd))] = m_NAtagMCPlayerOnlinePrizeInfo
#------------------------------------------------------
@@ -13120,6 +12575,73 @@
#------------------------------------------------------
+# A5 02 捐献次数信息 #tagSCDonateCntInfo
+
+class tagSCDonateCntInfo(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ DonateCntList = list() #(vector<BYTE> DonateCntList)// 今日已捐献次数列表 [捐献类型1次数, ...]
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x02
+ 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.DonateCntList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x02
+ self.Count = 0
+ self.DonateCntList = 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.DonateCntList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ DonateCntList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCDonateCntInfo=tagSCDonateCntInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDonateCntInfo.Head.Cmd,m_NAtagSCDonateCntInfo.Head.SubCmd))] = m_NAtagSCDonateCntInfo
+
+
+#------------------------------------------------------
# A5 13 家族行为信息 #tagMCFamilyActionInfo
class tagMCFamilyAction(Structure):
@@ -13308,181 +12830,6 @@
m_NAtagMCFamilyActionInfo=tagMCFamilyActionInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActionInfo.Head.Cmd,m_NAtagMCFamilyActionInfo.Head.SubCmd))] = m_NAtagMCFamilyActionInfo
-
-
-#------------------------------------------------------
-# A5 02 家族活跃令兑换结果 #tagMCFamilyActivityExchangeResult
-
-class tagMCFamilyActivityExchangeResult(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("Point", c_int), # 活跃令
- ]
-
- 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.Point = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFamilyActivityExchangeResult)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A5 02 家族活跃令兑换结果 //tagMCFamilyActivityExchangeResult:
- Cmd:%s,
- SubCmd:%s,
- Point:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.Point
- )
- return DumpString
-
-
-m_NAtagMCFamilyActivityExchangeResult=tagMCFamilyActivityExchangeResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityExchangeResult.Cmd,m_NAtagMCFamilyActivityExchangeResult.SubCmd))] = m_NAtagMCFamilyActivityExchangeResult
-
-
-#------------------------------------------------------
-# A5 08 家族事务信息 #tagMCFamilyAffairInfo
-
-class tagMCFamilyAffair(Structure):
- _pack_ = 1
- _fields_ = [
- ("AffairID", c_ushort), # 事务ID
- ("Star", c_ubyte), # 星级
- ("State", c_ubyte), # 状态:0-无;1-进行中;2-已完成
- ("RemainDuration", c_ushort), # 剩余时长,秒,有剩余时间代表进行中
- ]
-
- def __init__(self):
- self.Clear()
- 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.AffairID = 0
- self.Star = 0
- self.State = 0
- self.RemainDuration = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFamilyAffair)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A5 08 家族事务信息 //tagMCFamilyAffairInfo:
- AffairID:%d,
- Star:%d,
- State:%d,
- RemainDuration:%d
- '''\
- %(
- self.AffairID,
- self.Star,
- self.State,
- self.RemainDuration
- )
- return DumpString
-
-
-class tagMCFamilyAffairInfo(Structure):
- Head = tagHead()
- RefreshFreeCount = 0 #(BYTE RefreshFreeCount)// 今日已免费刷新次数
- Count = 0 #(BYTE Count)
- AffairInfoList = list() #(vector<tagMCFamilyAffair> AffairInfoList)// 事务列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x08
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.RefreshFreeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temAffairInfoList = tagMCFamilyAffair()
- _pos = temAffairInfoList.ReadData(_lpData, _pos)
- self.AffairInfoList.append(temAffairInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x08
- self.RefreshFreeCount = 0
- self.Count = 0
- self.AffairInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- for i in range(self.Count):
- length += self.AffairInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.RefreshFreeCount)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.AffairInfoList[i].GetLength(), self.AffairInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- RefreshFreeCount:%d,
- Count:%d,
- AffairInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.RefreshFreeCount,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFamilyAffairInfo=tagMCFamilyAffairInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyAffairInfo.Head.Cmd,m_NAtagMCFamilyAffairInfo.Head.SubCmd))] = m_NAtagMCFamilyAffairInfo
#------------------------------------------------------
@@ -14035,6 +13382,7 @@
JoinLVMin = 0 #(WORD JoinLVMin)//限制最低可加入的玩家等级
ServerID = 0 #(DWORD ServerID)//区服ID
EmblemID = 0 #(DWORD EmblemID)//徽章ID
+ EmblemWord = "" #(char EmblemWord[3])//徽章文字
FightPower = 0 #(DWORD FightPower)//总战力,求余亿部分
FightPowerEx = 0 #(DWORD FightPowerEx)//总战力,整除亿部分
MemberCount = 0 #(BYTE MemberCount)//成员人数
@@ -14057,6 +13405,7 @@
self.JoinLVMin,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.EmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -14074,6 +13423,7 @@
self.JoinLVMin = 0
self.ServerID = 0
self.EmblemID = 0
+ self.EmblemWord = ""
self.FightPower = 0
self.FightPowerEx = 0
self.MemberCount = 0
@@ -14092,6 +13442,7 @@
length += 2
length += 4
length += 4
+ length += 3
length += 4
length += 4
length += 1
@@ -14111,6 +13462,7 @@
data = CommFunc.WriteWORD(data, self.JoinLVMin)
data = CommFunc.WriteDWORD(data, self.ServerID)
data = CommFunc.WriteDWORD(data, self.EmblemID)
+ data = CommFunc.WriteString(data, 3, self.EmblemWord)
data = CommFunc.WriteDWORD(data, self.FightPower)
data = CommFunc.WriteDWORD(data, self.FightPowerEx)
data = CommFunc.WriteBYTE(data, self.MemberCount)
@@ -14129,6 +13481,7 @@
JoinLVMin:%d,
ServerID:%d,
EmblemID:%d,
+ EmblemWord:%s,
FightPower:%d,
FightPowerEx:%d,
MemberCount:%d
@@ -14145,6 +13498,7 @@
self.JoinLVMin,
self.ServerID,
self.EmblemID,
+ self.EmblemWord,
self.FightPower,
self.FightPowerEx,
self.MemberCount
@@ -14496,114 +13850,6 @@
#------------------------------------------------------
-# A5 04 玩家战盟科技等级 #tagMCPlayerTechInfo
-
-class tagMCPlayerTech(Structure):
- _pack_ = 1
- _fields_ = [
- ("TechID", c_ushort), # 科技ID
- ("TechLV", c_ushort), # 特技等级
- ]
-
- def __init__(self):
- self.Clear()
- 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.TechID = 0
- self.TechLV = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCPlayerTech)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A5 04 玩家战盟科技等级 //tagMCPlayerTechInfo:
- TechID:%d,
- TechLV:%d
- '''\
- %(
- self.TechID,
- self.TechLV
- )
- return DumpString
-
-
-class tagMCPlayerTechInfo(Structure):
- Head = tagHead()
- TechCnt = 0 #(BYTE TechCnt)// 科技个数
- TechInfoList = list() #(vector<tagMCPlayerTech> TechInfoList)// 科技信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x04
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.TechCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.TechCnt):
- temTechInfoList = tagMCPlayerTech()
- _pos = temTechInfoList.ReadData(_lpData, _pos)
- self.TechInfoList.append(temTechInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA5
- self.Head.SubCmd = 0x04
- self.TechCnt = 0
- self.TechInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.TechCnt):
- length += self.TechInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.TechCnt)
- for i in range(self.TechCnt):
- data = CommFunc.WriteString(data, self.TechInfoList[i].GetLength(), self.TechInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- TechCnt:%d,
- TechInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.TechCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCPlayerTechInfo=tagMCPlayerTechInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerTechInfo.Head.Cmd,m_NAtagMCPlayerTechInfo.Head.SubCmd))] = m_NAtagMCPlayerTechInfo
-
-
-#------------------------------------------------------
# A5 20 玩家家族信息 #tagMCRoleFamilyInfo
class tagMCRoleFamilyMember(Structure):
@@ -14621,7 +13867,9 @@
FightPowerEx = 0 #(DWORD FightPowerEx)//战力,整除亿部分
ServerID = 0 #(DWORD ServerID)//所属区服ID
ContribTotal = 0 #(DWORD ContribTotal)//总贡献度
- ContribWeek = 0 #(DWORD ContribWeek)//周贡献度
+ ContribDay = 0 #(DWORD ContribDay)//日贡献度
+ DonateCntTotal = 0 #(DWORD DonateCntTotal)//总捐献次数
+ DonateCntDay = 0 #(BYTE DonateCntDay)//日捐献次数
OffTime = 0 #(DWORD OffTime)// 0-在线; >0-/离线时间戳
data = None
@@ -14645,7 +13893,9 @@
self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.ContribTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ContribWeek,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ContribDay,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.DonateCntTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.DonateCntDay,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.OffTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
@@ -14664,7 +13914,9 @@
self.FightPowerEx = 0
self.ServerID = 0
self.ContribTotal = 0
- self.ContribWeek = 0
+ self.ContribDay = 0
+ self.DonateCntTotal = 0
+ self.DonateCntDay = 0
self.OffTime = 0
return
@@ -14686,6 +13938,8 @@
length += 4
length += 4
length += 4
+ length += 1
+ length += 4
return length
@@ -14705,7 +13959,9 @@
data = CommFunc.WriteDWORD(data, self.FightPowerEx)
data = CommFunc.WriteDWORD(data, self.ServerID)
data = CommFunc.WriteDWORD(data, self.ContribTotal)
- data = CommFunc.WriteDWORD(data, self.ContribWeek)
+ data = CommFunc.WriteDWORD(data, self.ContribDay)
+ data = CommFunc.WriteDWORD(data, self.DonateCntTotal)
+ data = CommFunc.WriteBYTE(data, self.DonateCntDay)
data = CommFunc.WriteDWORD(data, self.OffTime)
return data
@@ -14725,7 +13981,9 @@
FightPowerEx:%d,
ServerID:%d,
ContribTotal:%d,
- ContribWeek:%d,
+ ContribDay:%d,
+ DonateCntTotal:%d,
+ DonateCntDay:%d,
OffTime:%d
'''\
%(
@@ -14743,7 +14001,9 @@
self.FightPowerEx,
self.ServerID,
self.ContribTotal,
- self.ContribWeek,
+ self.ContribDay,
+ self.DonateCntTotal,
+ self.DonateCntDay,
self.OffTime
)
return DumpString
@@ -14759,6 +14019,7 @@
JoinLVMin = 0 #(WORD JoinLVMin)//限制最低可加入的玩家等级
ServerID = 0 #(DWORD ServerID)//区服ID,创建时以族长的区服ID赋值
EmblemID = 0 #(DWORD EmblemID)//徽章ID
+ EmblemWord = "" #(char EmblemWord[3])//徽章文字
FightPower = 0 #(DWORD FightPower)//总战力,求余亿部分
FightPowerEx = 0 #(DWORD FightPowerEx)//总战力,整除亿部分
BroadcastLen = 0 #(WORD BroadcastLen)//公告
@@ -14785,6 +14046,7 @@
self.JoinLVMin,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.EmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.BroadcastLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -14810,6 +14072,7 @@
self.JoinLVMin = 0
self.ServerID = 0
self.EmblemID = 0
+ self.EmblemWord = ""
self.FightPower = 0
self.FightPowerEx = 0
self.BroadcastLen = 0
@@ -14830,6 +14093,7 @@
length += 2
length += 4
length += 4
+ length += 3
length += 4
length += 4
length += 2
@@ -14852,6 +14116,7 @@
data = CommFunc.WriteWORD(data, self.JoinLVMin)
data = CommFunc.WriteDWORD(data, self.ServerID)
data = CommFunc.WriteDWORD(data, self.EmblemID)
+ data = CommFunc.WriteString(data, 3, self.EmblemWord)
data = CommFunc.WriteDWORD(data, self.FightPower)
data = CommFunc.WriteDWORD(data, self.FightPowerEx)
data = CommFunc.WriteWORD(data, self.BroadcastLen)
@@ -14873,6 +14138,7 @@
JoinLVMin:%d,
ServerID:%d,
EmblemID:%d,
+ EmblemWord:%s,
FightPower:%d,
FightPowerEx:%d,
BroadcastLen:%d,
@@ -14891,6 +14157,7 @@
self.JoinLVMin,
self.ServerID,
self.EmblemID,
+ self.EmblemWord,
self.FightPower,
self.FightPowerEx,
self.BroadcastLen,
@@ -16851,6 +16118,7 @@
FamilyID = 0 #(DWORD FamilyID)
FamilyName = "" #(char FamilyName[33])
FamilyEmblemID = 0 #(DWORD FamilyEmblemID)//仙盟徽章ID
+ FamilyEmblemWord = "" #(char FamilyEmblemWord[3])//徽章文字
PlusDataSize = 0 #(DWORD PlusDataSize)
PlusData = "" #(String PlusData)//扩展记录
data = None
@@ -16879,6 +16147,7 @@
self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33)
self.FamilyEmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.FamilyEmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
return _pos
@@ -16903,6 +16172,7 @@
self.FamilyID = 0
self.FamilyName = ""
self.FamilyEmblemID = 0
+ self.FamilyEmblemWord = ""
self.PlusDataSize = 0
self.PlusData = ""
return
@@ -16925,6 +16195,7 @@
length += 4
length += 33
length += 4
+ length += 3
length += 4
length += len(self.PlusData)
@@ -16948,6 +16219,7 @@
data = CommFunc.WriteDWORD(data, self.FamilyID)
data = CommFunc.WriteString(data, 33, self.FamilyName)
data = CommFunc.WriteDWORD(data, self.FamilyEmblemID)
+ data = CommFunc.WriteString(data, 3, self.FamilyEmblemWord)
data = CommFunc.WriteDWORD(data, self.PlusDataSize)
data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
return data
@@ -16970,6 +16242,7 @@
FamilyID:%d,
FamilyName:%s,
FamilyEmblemID:%d,
+ FamilyEmblemWord:%s,
PlusDataSize:%d,
PlusData:%s
'''\
@@ -16990,6 +16263,7 @@
self.FamilyID,
self.FamilyName,
self.FamilyEmblemID,
+ self.FamilyEmblemWord,
self.PlusDataSize,
self.PlusData
)
@@ -37384,80 +36658,6 @@
#------------------------------------------------------
-# B1 13 在线奖励信息新 #tagMCOnlinePrizeNew
-
-class tagMCOnlinePrizeNew(Structure):
- Head = tagHead()
- OnlineTime = 0 #(DWORD OnlineTime)//在线时间毫秒
- Len = 0 #(BYTE Len)
- PrizeInfo = list() #(vector<DWORD> PrizeInfo)//领奖记录
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xB1
- self.Head.SubCmd = 0x13
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Len):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.PrizeInfo.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xB1
- self.Head.SubCmd = 0x13
- self.OnlineTime = 0
- self.Len = 0
- self.PrizeInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += 4 * self.Len
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.OnlineTime)
- data = CommFunc.WriteBYTE(data, self.Len)
- for i in range(self.Len):
- data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- OnlineTime:%d,
- Len:%d,
- PrizeInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.OnlineTime,
- self.Len,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCOnlinePrizeNew=tagMCOnlinePrizeNew()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrizeNew.Head.Cmd,m_NAtagMCOnlinePrizeNew.Head.SubCmd))] = m_NAtagMCOnlinePrizeNew
-
-
-#------------------------------------------------------
# B1 03 通知玩家死亡时间 #tagMCPlayerDeadTime
class tagMCPlayerDeadTime(Structure):
@@ -43430,10 +42630,11 @@
Head = tagHead()
ObjID = 0 #(DWORD ObjID)
PMType = 0 #(BYTE PMType)// 物法类型 0或1-物理;2-法术
- BattleType = 0 #(BYTE BattleType)// 战斗类型 0-常规;1-连击;2-反击;3-追击
+ BattleType = 0 #(BYTE BattleType)// 战斗类型 0-常规;1-连击;2-反击;3-追击;4-子技能;5-被动触发的
CurHP = 0 #(DWORD CurHP)// 释放技能后剩余血量,吸血、反弹可能引起变化,求余亿部分
CurHPEx = 0 #(DWORD CurHPEx)// 释放技能后剩余血量,吸血、反弹可能引起变化,整除亿部分
SkillID = 0 #(DWORD SkillID)
+ RelatedSkillID = 0 #(DWORD RelatedSkillID)// 关联的技能ID,一般是主技能ID或由于某个技能释放引起的
HurtCount = 0 #(BYTE HurtCount)//伤害数目
HurtList = list() #(vector<tagSCUseSkillHurt> HurtList)//size = HurtCount
data = None
@@ -43453,6 +42654,7 @@
self.CurHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.CurHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.SkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.RelatedSkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.HurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.HurtCount):
temHurtList = tagSCUseSkillHurt()
@@ -43471,6 +42673,7 @@
self.CurHP = 0
self.CurHPEx = 0
self.SkillID = 0
+ self.RelatedSkillID = 0
self.HurtCount = 0
self.HurtList = list()
return
@@ -43481,6 +42684,7 @@
length += 4
length += 1
length += 1
+ length += 4
length += 4
length += 4
length += 4
@@ -43499,6 +42703,7 @@
data = CommFunc.WriteDWORD(data, self.CurHP)
data = CommFunc.WriteDWORD(data, self.CurHPEx)
data = CommFunc.WriteDWORD(data, self.SkillID)
+ data = CommFunc.WriteDWORD(data, self.RelatedSkillID)
data = CommFunc.WriteBYTE(data, self.HurtCount)
for i in range(self.HurtCount):
data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer())
@@ -43513,6 +42718,7 @@
CurHP:%d,
CurHPEx:%d,
SkillID:%d,
+ RelatedSkillID:%d,
HurtCount:%d,
HurtList:%s
'''\
@@ -43524,6 +42730,7 @@
self.CurHP,
self.CurHPEx,
self.SkillID,
+ self.RelatedSkillID,
self.HurtCount,
"..."
)
--
Gitblit v1.8.0