From 3eee55d3e918bf2386fc59836dd2c89e21e6c1c3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 11 二月 2020 15:56:59 +0800
Subject: [PATCH] 8374 【后端】【主干】通知客户端攻击封包增加专精技能
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 1812 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 1,487 insertions(+), 325 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 1d77aca..cae53eb 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -1248,6 +1248,62 @@
#------------------------------------------------------
+# A9 01 获取Boss首杀奖励 #tagCGGetBossFirstKillAward
+
+class tagCGGetBossFirstKillAward(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("NPCID", c_int),
+ ("AwardType", c_ubyte), # 0-首杀红包奖励;1-个人首杀奖励
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA9
+ self.SubCmd = 0x01
+ 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 = 0xA9
+ self.SubCmd = 0x01
+ self.NPCID = 0
+ self.AwardType = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGGetBossFirstKillAward)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A9 01 获取Boss首杀奖励 //tagCGGetBossFirstKillAward:
+ Cmd:%s,
+ SubCmd:%s,
+ NPCID:%d,
+ AwardType:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.NPCID,
+ self.AwardType
+ )
+ return DumpString
+
+
+m_NAtagCGGetBossFirstKillAward=tagCGGetBossFirstKillAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetBossFirstKillAward.Cmd,m_NAtagCGGetBossFirstKillAward.SubCmd))] = m_NAtagCGGetBossFirstKillAward
+
+
+#------------------------------------------------------
# A9 04 查询boss信息 #tagCGQueryBossInfo
class tagCGQueryBossInfo(Structure):
@@ -1360,6 +1416,63 @@
m_NAtagCGQueryCompensation=tagCGQueryCompensation()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryCompensation.Cmd,m_NAtagCGQueryCompensation.SubCmd))] = m_NAtagCGQueryCompensation
+
+
+#------------------------------------------------------
+# A9 05 查询广播装备详细信息 #tagCGQueryNotifyEquipDetailInfo
+
+class tagCGQueryNotifyEquipDetailInfo(Structure):
+ Head = tagHead()
+ ItemGUID = "" #(char ItemGUID[40])
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA9
+ self.Head.SubCmd = 0x05
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA9
+ self.Head.SubCmd = 0x05
+ self.ItemGUID = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 40
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ItemGUID:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.ItemGUID
+ )
+ return DumpString
+
+
+m_NAtagCGQueryNotifyEquipDetailInfo=tagCGQueryNotifyEquipDetailInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryNotifyEquipDetailInfo.Head.Cmd,m_NAtagCGQueryNotifyEquipDetailInfo.Head.SubCmd))] = m_NAtagCGQueryNotifyEquipDetailInfo
#------------------------------------------------------
@@ -1847,6 +1960,115 @@
#------------------------------------------------------
+# B0 13 取消协助Boss #tagCGCancelAssistBoss
+
+class tagCGCancelAssistBoss(Structure):
+ Head = tagHead()
+ AssistGUID = "" #(char AssistGUID[40])//协助GUID
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB0
+ self.Head.SubCmd = 0x13
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB0
+ self.Head.SubCmd = 0x13
+ self.AssistGUID = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 40
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 40, self.AssistGUID)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ AssistGUID:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.AssistGUID
+ )
+ return DumpString
+
+
+m_NAtagCGCancelAssistBoss=tagCGCancelAssistBoss()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCancelAssistBoss.Head.Cmd,m_NAtagCGCancelAssistBoss.Head.SubCmd))] = m_NAtagCGCancelAssistBoss
+
+
+#------------------------------------------------------
+# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift
+
+class tagCGGetAssistThanksGift(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("IsPreview", c_ubyte), #是否预览,非预览即确认领取,无额外奖励确认时也需要回复领取包代表已读
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB0
+ self.SubCmd = 0x15
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB0
+ self.SubCmd = 0x15
+ self.IsPreview = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGGetAssistThanksGift)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift:
+ Cmd:%s,
+ SubCmd:%s,
+ IsPreview:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.IsPreview
+ )
+ return DumpString
+
+
+m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift
+
+
+#------------------------------------------------------
#B0 25 请求家族悬赏任务完成情况 #tagQueryFamilyArrestOverState
class tagQueryFamilyArrestOverState(Structure):
@@ -1892,6 +2114,119 @@
m_NAtagQueryFamilyArrestOverState=tagQueryFamilyArrestOverState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestOverState.Cmd,m_NAtagQueryFamilyArrestOverState.SubCmd))] = m_NAtagQueryFamilyArrestOverState
+
+
+#------------------------------------------------------
+# B0 12 开始协助Boss #tagCGStartAssistBoss
+
+class tagCGStartAssistBoss(Structure):
+ Head = tagHead()
+ AssistGUID = "" #(char AssistGUID[40])//协助GUID
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB0
+ self.Head.SubCmd = 0x12
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB0
+ self.Head.SubCmd = 0x12
+ self.AssistGUID = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 40
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 40, self.AssistGUID)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ AssistGUID:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.AssistGUID
+ )
+ return DumpString
+
+
+m_NAtagCGStartAssistBoss=tagCGStartAssistBoss()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGStartAssistBoss.Head.Cmd,m_NAtagCGStartAssistBoss.Head.SubCmd))] = m_NAtagCGStartAssistBoss
+
+
+#------------------------------------------------------
+# B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift
+
+class tagCGUseAssistThanksGift(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ItemID", c_int),
+ ("IsPreview", c_ubyte), #是否预览,非预览即确认使用
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB0
+ 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 = 0xB0
+ self.SubCmd = 0x14
+ self.ItemID = 0
+ self.IsPreview = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCGUseAssistThanksGift)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B0 14 使用协助感谢礼盒 //tagCGUseAssistThanksGift:
+ Cmd:%s,
+ SubCmd:%s,
+ ItemID:%d,
+ IsPreview:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ItemID,
+ self.IsPreview
+ )
+ return DumpString
+
+
+m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift
#------------------------------------------------------
@@ -3396,6 +3731,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int), # 跨服玩家ID
+ ("EquipClassLV", c_ubyte), #大于0为查看指定境界阶装备信息, 0为查看默认信息
]
def __init__(self):
@@ -3413,6 +3749,7 @@
self.Cmd = 0xC0
self.SubCmd = 0x02
self.PlayerID = 0
+ self.EquipClassLV = 0
return
def GetLength(self):
@@ -3425,12 +3762,14 @@
DumpString = '''// C0 02 查看跨服玩家信息 //tagCGViewCrossPlayerInfo:
Cmd:%s,
SubCmd:%s,
- PlayerID:%d
+ PlayerID:%d,
+ EquipClassLV:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.PlayerID
+ self.PlayerID,
+ self.EquipClassLV
)
return DumpString
@@ -5598,6 +5937,58 @@
#------------------------------------------------------
+# A2 07 接受任务 #tagCMTakeTask
+
+class tagCMTakeTask(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("TaskID", c_int),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA2
+ self.SubCmd = 0x07
+ 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 = 0xA2
+ self.SubCmd = 0x07
+ self.TaskID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMTakeTask)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A2 07 接受任务 //tagCMTakeTask:
+ Cmd:%s,
+ SubCmd:%s,
+ TaskID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.TaskID
+ )
+ return DumpString
+
+
+m_NAtagCMTakeTask=tagCMTakeTask()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTakeTask.Cmd,m_NAtagCMTakeTask.SubCmd))] = m_NAtagCMTakeTask
+
+
+#------------------------------------------------------
#A2 12 查看玩家详细信息#tagCMViewPlayerInfo
class tagCMViewPlayerInfo(Structure):
@@ -5606,6 +5997,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
+ ("EquipClassLV", c_ubyte), #大于0为查看指定境界阶装备信息, 0为查看默认信息
]
def __init__(self):
@@ -5623,6 +6015,7 @@
self.Cmd = 0xA2
self.SubCmd = 0x12
self.PlayerID = 0
+ self.EquipClassLV = 0
return
def GetLength(self):
@@ -5635,12 +6028,14 @@
DumpString = '''//A2 12 查看玩家详细信息//tagCMViewPlayerInfo:
Cmd:%s,
SubCmd:%s,
- PlayerID:%d
+ PlayerID:%d,
+ EquipClassLV:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.PlayerID
+ self.PlayerID,
+ self.EquipClassLV
)
return DumpString
@@ -6146,6 +6541,104 @@
#------------------------------------------------------
+# A3 30 装备神装进阶 #tagCMEquipEvolve
+
+class tagCMEquipEvolve(Structure):
+ Head = tagHead()
+ EquipIndex = 0 #(BYTE EquipIndex)// 要进阶的装备在装备背包中索引
+ NeedEquipIDIndex = 0 #(BYTE NeedEquipIDIndex)// 所需固定装备B在背包中索引
+ NeedItemIDIndexCnt = 0 #(BYTE NeedItemIDIndexCnt)// 附加材料在背包中索引个数
+ NeedItemIDIndex = list() #(vector<BYTE> NeedItemIDIndex)// 附加材料在背包的索引列表
+ NeedSuitIndexCnt = 0 #(BYTE NeedSuitIndexCnt)// 所需套装材料在背包中索引个数
+ NeedSuitIndex = list() #(vector<BYTE> NeedSuitIndex)// 所需套装材料在背包的索引列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x30
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.NeedEquipIDIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.NeedItemIDIndexCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.NeedItemIDIndexCnt):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.NeedItemIDIndex.append(value)
+ self.NeedSuitIndexCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.NeedSuitIndexCnt):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.NeedSuitIndex.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x30
+ self.EquipIndex = 0
+ self.NeedEquipIDIndex = 0
+ self.NeedItemIDIndexCnt = 0
+ self.NeedItemIDIndex = list()
+ self.NeedSuitIndexCnt = 0
+ self.NeedSuitIndex = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 1
+ length += 1
+ length += 1 * self.NeedItemIDIndexCnt
+ length += 1
+ length += 1 * self.NeedSuitIndexCnt
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.EquipIndex)
+ data = CommFunc.WriteBYTE(data, self.NeedEquipIDIndex)
+ data = CommFunc.WriteBYTE(data, self.NeedItemIDIndexCnt)
+ for i in range(self.NeedItemIDIndexCnt):
+ data = CommFunc.WriteBYTE(data, self.NeedItemIDIndex[i])
+ data = CommFunc.WriteBYTE(data, self.NeedSuitIndexCnt)
+ for i in range(self.NeedSuitIndexCnt):
+ data = CommFunc.WriteBYTE(data, self.NeedSuitIndex[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ EquipIndex:%d,
+ NeedEquipIDIndex:%d,
+ NeedItemIDIndexCnt:%d,
+ NeedItemIDIndex:%s,
+ NeedSuitIndexCnt:%d,
+ NeedSuitIndex:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.EquipIndex,
+ self.NeedEquipIDIndex,
+ self.NeedItemIDIndexCnt,
+ "...",
+ self.NeedSuitIndexCnt,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagCMEquipEvolve=tagCMEquipEvolve()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipEvolve.Head.Cmd,m_NAtagCMEquipEvolve.Head.SubCmd))] = m_NAtagCMEquipEvolve
+
+
+#------------------------------------------------------
#A3 01 装备强化 #tagEquipPlus
class tagEquipPlus(Structure):
@@ -6534,62 +7027,6 @@
#------------------------------------------------------
-# A3 30 装备诛仙装备 #tagCMEquipZhuXianItem
-
-class tagCMEquipZhuXianItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("EquipIndex", c_ubyte), #装备在诛仙装备背包中的索引
- ("ItemIndex", c_ubyte), #装备在诛仙物品背包中的索引
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA3
- self.SubCmd = 0x30
- 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 = 0x30
- self.EquipIndex = 0
- self.ItemIndex = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMEquipZhuXianItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 30 装备诛仙装备 //tagCMEquipZhuXianItem:
- Cmd:%s,
- SubCmd:%s,
- EquipIndex:%d,
- ItemIndex:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.EquipIndex,
- self.ItemIndex
- )
- return DumpString
-
-
-m_NAtagCMEquipZhuXianItem=tagCMEquipZhuXianItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipZhuXianItem.Cmd,m_NAtagCMEquipZhuXianItem.SubCmd))] = m_NAtagCMEquipZhuXianItem
-
-
-#------------------------------------------------------
# A3 12 守护拾取物品 #tagCMGuardPickupItem
class tagCMGuardPickupItem(Structure):
@@ -6762,6 +7199,58 @@
m_NAtagCMItemTimeout=tagCMItemTimeout()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMItemTimeout.Cmd,m_NAtagCMItemTimeout.SubCmd))] = m_NAtagCMItemTimeout
+
+
+#------------------------------------------------------
+# A3 18 灵器突破 #tagCMLingQiEquipBreak
+
+class tagCMLingQiEquipBreak(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ItemID", c_int), #突破的物品ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA3
+ self.SubCmd = 0x18
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xA3
+ self.SubCmd = 0x18
+ self.ItemID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMLingQiEquipBreak)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A3 18 灵器突破 //tagCMLingQiEquipBreak:
+ Cmd:%s,
+ SubCmd:%s,
+ ItemID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ItemID
+ )
+ return DumpString
+
+
+m_NAtagCMLingQiEquipBreak=tagCMLingQiEquipBreak()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLingQiEquipBreak.Cmd,m_NAtagCMLingQiEquipBreak.SubCmd))] = m_NAtagCMLingQiEquipBreak
#------------------------------------------------------
@@ -7230,58 +7719,6 @@
#------------------------------------------------------
-# A3 31 卸下诛仙装备 #tagCMUnEquipZhuXianItem
-
-class tagCMUnEquipZhuXianItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("EquipIndex", c_ubyte), #装备在诛仙装备背包中的索引
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA3
- self.SubCmd = 0x31
- 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 = 0x31
- self.EquipIndex = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMUnEquipZhuXianItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 31 卸下诛仙装备 //tagCMUnEquipZhuXianItem:
- Cmd:%s,
- SubCmd:%s,
- EquipIndex:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.EquipIndex
- )
- return DumpString
-
-
-m_NAtagCMUnEquipZhuXianItem=tagCMUnEquipZhuXianItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnEquipZhuXianItem.Cmd,m_NAtagCMUnEquipZhuXianItem.SubCmd))] = m_NAtagCMUnEquipZhuXianItem
-
-
-#------------------------------------------------------
# A3 2B 一键使用属性果实 #tagCMUseAllAttrFruit
class tagCMUseAllAttrFruit(Structure):
@@ -7461,90 +7898,6 @@
#------------------------------------------------------
-# A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose
-
-class tagCMZhuXianEquipDecompose(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)//材料所在背包索引的数量
- IndexList = list() #(vector<WORD> IndexList)//材料所在背包索引列表
- ItemIDList = list() #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表
- IsAuto = 0 #(BYTE IsAuto)//是否自动分解
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x32
- 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.ReadWORD(_lpData,_pos)
- self.IndexList.append(value)
- for i in range(self.Count):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.ItemIDList.append(value)
- self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x32
- self.Count = 0
- self.IndexList = list()
- self.ItemIDList = list()
- self.IsAuto = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 2 * self.Count
- length += 4 * self.Count
- length += 1
-
- 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.WriteWORD(data, self.IndexList[i])
- for i in range(self.Count):
- data = CommFunc.WriteDWORD(data, self.ItemIDList[i])
- data = CommFunc.WriteBYTE(data, self.IsAuto)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- IndexList:%s,
- ItemIDList:%s,
- IsAuto:%d
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "...",
- "...",
- self.IsAuto
- )
- return DumpString
-
-
-m_NAtagCMZhuXianEquipDecompose=tagCMZhuXianEquipDecompose()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMZhuXianEquipDecompose.Head.Cmd,m_NAtagCMZhuXianEquipDecompose.Head.SubCmd))] = m_NAtagCMZhuXianEquipDecompose
-
-
-#------------------------------------------------------
# A5 30 购买魔魂铜钱经验什么的 #tagCMBuySomething
class tagCMBuySomething(Structure):
@@ -7604,7 +7957,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("HorseID", c_int), #坐骑ID
+ ("HorseID", c_int), #坐骑幻化ID
]
def __init__(self):
@@ -7646,6 +7999,62 @@
m_NAtagPlayerActivateHorse=tagPlayerActivateHorse()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerActivateHorse.Cmd,m_NAtagPlayerActivateHorse.SubCmd))] = m_NAtagPlayerActivateHorse
+
+
+#------------------------------------------------------
+# A5 C7 激活大师强化等级 #tagCMActivateMasterPlusLV
+
+class tagCMActivateMasterPlusLV(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ClassLV", c_ubyte), # 所属装备阶
+ ("MasterPlusLV", c_ushort), # 大师强化等级
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0xC7
+ 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 = 0xC7
+ self.ClassLV = 0
+ self.MasterPlusLV = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMActivateMasterPlusLV)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 C7 激活大师强化等级 //tagCMActivateMasterPlusLV:
+ Cmd:%s,
+ SubCmd:%s,
+ ClassLV:%d,
+ MasterPlusLV:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ClassLV,
+ self.MasterPlusLV
+ )
+ return DumpString
+
+
+m_NAtagCMActivateMasterPlusLV=tagCMActivateMasterPlusLV()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivateMasterPlusLV.Cmd,m_NAtagCMActivateMasterPlusLV.SubCmd))] = m_NAtagCMActivateMasterPlusLV
#------------------------------------------------------
@@ -9211,6 +9620,7 @@
CostEquipCnt = 0 #(BYTE CostEquipCnt)// 装备个数
CostEquipIndex = list() #(vector<WORD> CostEquipIndex)// 装备索引
CostEquipID = list() #(vector<DWORD> CostEquipID)// 装备物品ID
+ AutoBuy = 0 #(BYTE AutoBuy)// 自动购买 0-不自动购买,1-自动购买并升星,2-自动购买预览(未满概率时预览消耗时使用)
data = None
def __init__(self):
@@ -9230,6 +9640,7 @@
for i in range(self.CostEquipCnt):
value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
self.CostEquipID.append(value)
+ self.AutoBuy,_pos = CommFunc.ReadBYTE(_lpData, _pos)
return _pos
def Clear(self):
@@ -9241,6 +9652,7 @@
self.CostEquipCnt = 0
self.CostEquipIndex = list()
self.CostEquipID = list()
+ self.AutoBuy = 0
return
def GetLength(self):
@@ -9250,6 +9662,7 @@
length += 1
length += 2 * self.CostEquipCnt
length += 4 * self.CostEquipCnt
+ length += 1
return length
@@ -9262,6 +9675,7 @@
data = CommFunc.WriteWORD(data, self.CostEquipIndex[i])
for i in range(self.CostEquipCnt):
data = CommFunc.WriteDWORD(data, self.CostEquipID[i])
+ data = CommFunc.WriteBYTE(data, self.AutoBuy)
return data
def OutputString(self):
@@ -9270,20 +9684,86 @@
EquipPackIndex:%d,
CostEquipCnt:%d,
CostEquipIndex:%s,
- CostEquipID:%s
+ CostEquipID:%s,
+ AutoBuy:%d
'''\
%(
self.Head.OutputString(),
self.EquipPackIndex,
self.CostEquipCnt,
"...",
- "..."
+ "...",
+ self.AutoBuy
)
return DumpString
m_NAtagCMEquipPartStarUp=tagCMEquipPartStarUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartStarUp.Head.Cmd,m_NAtagCMEquipPartStarUp.Head.SubCmd))] = m_NAtagCMEquipPartStarUp
+
+
+#------------------------------------------------------
+# A5 C6 装备部位星级套装激活 #tagCMEquipPartSuiteActivate
+
+class tagCMEquipPartSuiteActivate(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ClassLV", c_ubyte), # 所属装备阶
+ ("SuiteID", c_ushort), # 套装ID
+ ("SuiteCount", c_ubyte), # 件数
+ ("Star", c_ubyte), # 星数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0xC6
+ 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 = 0xC6
+ self.ClassLV = 0
+ self.SuiteID = 0
+ self.SuiteCount = 0
+ self.Star = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMEquipPartSuiteActivate)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 C6 装备部位星级套装激活 //tagCMEquipPartSuiteActivate:
+ Cmd:%s,
+ SubCmd:%s,
+ ClassLV:%d,
+ SuiteID:%d,
+ SuiteCount:%d,
+ Star:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ClassLV,
+ self.SuiteID,
+ self.SuiteCount,
+ self.Star
+ )
+ return DumpString
+
+
+m_NAtagCMEquipPartSuiteActivate=tagCMEquipPartSuiteActivate()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartSuiteActivate.Cmd,m_NAtagCMEquipPartSuiteActivate.SubCmd))] = m_NAtagCMEquipPartSuiteActivate
#------------------------------------------------------
@@ -9889,6 +10369,126 @@
#------------------------------------------------------
+# A5 29 骑宠觉醒 #tagCMHorsePetAwake
+
+class tagCMHorsePetAwake(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Type", c_ushort), # 1-坐骑 2-灵宠
+ ("ID", c_int), # 对应坐骑表灵宠表ID
+ ("EatItemID", c_int), # 吞噬的物品ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x29
+ 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 = 0x29
+ self.Type = 0
+ self.ID = 0
+ self.EatItemID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMHorsePetAwake)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 29 骑宠觉醒 //tagCMHorsePetAwake:
+ Cmd:%s,
+ SubCmd:%s,
+ Type:%d,
+ ID:%d,
+ EatItemID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Type,
+ self.ID,
+ self.EatItemID
+ )
+ return DumpString
+
+
+m_NAtagCMHorsePetAwake=tagCMHorsePetAwake()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorsePetAwake.Cmd,m_NAtagCMHorsePetAwake.SubCmd))] = m_NAtagCMHorsePetAwake
+
+
+#------------------------------------------------------
+# A5 30 骑宠外观选择 #tagCMHorsePetSkinSelect
+
+class tagCMHorsePetSkinSelect(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Type", c_ushort), # 1-坐骑 2-灵宠
+ ("ID", c_int), # 对应坐骑表灵宠表ID
+ ("SkinIndex", c_ubyte), # 外观索引
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x30
+ 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 = 0x30
+ self.Type = 0
+ self.ID = 0
+ self.SkinIndex = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMHorsePetSkinSelect)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 30 骑宠外观选择 //tagCMHorsePetSkinSelect:
+ Cmd:%s,
+ SubCmd:%s,
+ Type:%d,
+ ID:%d,
+ SkinIndex:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Type,
+ self.ID,
+ self.SkinIndex
+ )
+ return DumpString
+
+
+m_NAtagCMHorsePetSkinSelect=tagCMHorsePetSkinSelect()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorsePetSkinSelect.Cmd,m_NAtagCMHorsePetSkinSelect.SubCmd))] = m_NAtagCMHorsePetSkinSelect
+
+
+#------------------------------------------------------
# A5 27 坐骑提升 #tagCMHorseUp
class tagCMHorseUp(Structure):
@@ -9896,7 +10496,6 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("HorseID", c_int), #坐骑ID
("UseItemCnt", c_ubyte), #消耗材料个数
("IsAutoBuy", c_ubyte), #是否自动购买
]
@@ -9915,7 +10514,6 @@
def Clear(self):
self.Cmd = 0xA5
self.SubCmd = 0x27
- self.HorseID = 0
self.UseItemCnt = 0
self.IsAutoBuy = 0
return
@@ -9930,14 +10528,12 @@
DumpString = '''// A5 27 坐骑提升 //tagCMHorseUp:
Cmd:%s,
SubCmd:%s,
- HorseID:%d,
UseItemCnt:%d,
IsAutoBuy:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.HorseID,
self.UseItemCnt,
self.IsAutoBuy
)
@@ -10108,7 +10704,8 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("Index", c_int), #选择索引
+ ("ChooseType", c_ubyte), # 1-按等阶,2-按幻化
+ ("LVID", c_ubyte), # 阶等级或幻化ID
]
def __init__(self):
@@ -10125,7 +10722,8 @@
def Clear(self):
self.Cmd = 0xA5
self.SubCmd = 0x02
- self.Index = 0
+ self.ChooseType = 0
+ self.LVID = 0
return
def GetLength(self):
@@ -10138,12 +10736,14 @@
DumpString = '''//A5 02 坐骑选择 //tagPlayerChooseHorse:
Cmd:%s,
SubCmd:%s,
- Index:%d
+ ChooseType:%d,
+ LVID:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.Index
+ self.ChooseType,
+ self.LVID
)
return DumpString
@@ -10239,6 +10839,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("AlchemyID", c_int), # 丹药ID
+ ("AlchemyTimes", c_ushort), # 丹药次数
("DoType", c_ubyte), # 0-学习 1-开始炼丹 2-停止炼丹 3-开炉取丹
]
@@ -10257,6 +10858,7 @@
self.Cmd = 0xA5
self.SubCmd = 0x76
self.AlchemyID = 0
+ self.AlchemyTimes = 0
self.DoType = 0
return
@@ -10271,12 +10873,14 @@
Cmd:%s,
SubCmd:%s,
AlchemyID:%d,
+ AlchemyTimes:%d,
DoType:%d
'''\
%(
self.Cmd,
self.SubCmd,
self.AlchemyID,
+ self.AlchemyTimes,
self.DoType
)
return DumpString
@@ -11000,6 +11604,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("SkillTypeID", c_int), # 专精技能ID
+ ("DoType", c_ubyte), # 0-激活 1-使用
]
def __init__(self):
@@ -11017,6 +11622,7 @@
self.Cmd = 0xA5
self.SubCmd = 0x16
self.SkillTypeID = 0
+ self.DoType = 0
return
def GetLength(self):
@@ -11029,12 +11635,14 @@
DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement:
Cmd:%s,
SubCmd:%s,
- SkillTypeID:%d
+ SkillTypeID:%d,
+ DoType:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.SkillTypeID
+ self.SkillTypeID,
+ self.DoType
)
return DumpString
@@ -11584,6 +12192,83 @@
m_NAtagCMRenameFamily=tagCMRenameFamily()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRenameFamily.Head.Cmd,m_NAtagCMRenameFamily.Head.SubCmd))] = m_NAtagCMRenameFamily
+
+
+#------------------------------------------------------
+# A6 06 家族兑换活跃令 #tagCMFamilyActivityExchange
+
+class tagCMFamilyActivityExchange(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)//材料所在背包索引的数量
+ IndexList = list() #(vector<WORD> IndexList)//材料所在背包索引列表
+ ItemIDList = list() #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA6
+ self.Head.SubCmd = 0x06
+ 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.ReadWORD(_lpData,_pos)
+ self.IndexList.append(value)
+ for i in range(self.Count):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.ItemIDList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA6
+ self.Head.SubCmd = 0x06
+ self.Count = 0
+ self.IndexList = list()
+ self.ItemIDList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 2 * self.Count
+ length += 4 * 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.WriteWORD(data, self.IndexList[i])
+ for i in range(self.Count):
+ data = CommFunc.WriteDWORD(data, self.ItemIDList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ IndexList:%s,
+ ItemIDList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "...",
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagCMFamilyActivityExchange=tagCMFamilyActivityExchange()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyActivityExchange.Head.Cmd,m_NAtagCMFamilyActivityExchange.Head.SubCmd))] = m_NAtagCMFamilyActivityExchange
#------------------------------------------------------
@@ -13373,6 +14058,154 @@
#------------------------------------------------------
+# B0 29 活跃放置明细查询 #tagCMActivityPlaceQuery
+
+class tagCMActivityPlaceQuery(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB0
+ self.SubCmd = 0x29
+ 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 = 0xB0
+ self.SubCmd = 0x29
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMActivityPlaceQuery)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B0 29 活跃放置明细查询 //tagCMActivityPlaceQuery:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCMActivityPlaceQuery=tagCMActivityPlaceQuery()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuery.Cmd,m_NAtagCMActivityPlaceQuery.SubCmd))] = m_NAtagCMActivityPlaceQuery
+
+
+#------------------------------------------------------
+# B0 28 活跃放置快速完成 #tagCMActivityPlaceQuickFinish
+
+class tagCMActivityPlaceQuickFinish(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("FinishCount", c_ubyte), #完成次数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB0
+ self.SubCmd = 0x28
+ 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 = 0xB0
+ self.SubCmd = 0x28
+ self.FinishCount = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMActivityPlaceQuickFinish)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B0 28 活跃放置快速完成 //tagCMActivityPlaceQuickFinish:
+ Cmd:%s,
+ SubCmd:%s,
+ FinishCount:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.FinishCount
+ )
+ return DumpString
+
+
+m_NAtagCMActivityPlaceQuickFinish=tagCMActivityPlaceQuickFinish()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuickFinish.Cmd,m_NAtagCMActivityPlaceQuickFinish.SubCmd))] = m_NAtagCMActivityPlaceQuickFinish
+
+
+#------------------------------------------------------
+# B0 27 活跃放置启动 #tagCMActivityPlaceStart
+
+class tagCMActivityPlaceStart(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB0
+ self.SubCmd = 0x27
+ 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 = 0xB0
+ self.SubCmd = 0x27
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMActivityPlaceStart)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B0 27 活跃放置启动 //tagCMActivityPlaceStart:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCMActivityPlaceStart=tagCMActivityPlaceStart()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceStart.Cmd,m_NAtagCMActivityPlaceStart.SubCmd))] = m_NAtagCMActivityPlaceStart
+
+
+#------------------------------------------------------
# B0 50 钓鱼收杆 #tagCMDoFish
class tagCMDoFish(Structure):
@@ -13526,6 +14359,118 @@
m_NAtagReceiveFamilyArrestAward=tagReceiveFamilyArrestAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagReceiveFamilyArrestAward.Cmd,m_NAtagReceiveFamilyArrestAward.SubCmd))] = m_NAtagReceiveFamilyArrestAward
+
+
+#------------------------------------------------------
+# B0 10 请求协助Boss #tagCMRequestAssistBoss
+
+class tagCMRequestAssistBoss(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ObjID", c_int),
+ ("NPCID", c_int),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB0
+ self.SubCmd = 0x10
+ 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 = 0xB0
+ self.SubCmd = 0x10
+ self.ObjID = 0
+ self.NPCID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMRequestAssistBoss)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss:
+ Cmd:%s,
+ SubCmd:%s,
+ ObjID:%d,
+ NPCID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ObjID,
+ self.NPCID
+ )
+ return DumpString
+
+
+m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss
+
+
+#------------------------------------------------------
+# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB
+
+class tagCMRequestAssistTeamFB(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MapID", c_ushort),
+ ("LineID", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB0
+ self.SubCmd = 0x11
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB0
+ self.SubCmd = 0x11
+ self.MapID = 0
+ self.LineID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMRequestAssistTeamFB)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB:
+ Cmd:%s,
+ SubCmd:%s,
+ MapID:%d,
+ LineID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MapID,
+ self.LineID
+ )
+ return DumpString
+
+
+m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB
#------------------------------------------------------
@@ -13769,62 +14714,6 @@
#------------------------------------------------------
-# B1 09 结算自定义副本奖励 #tagCMGiveCustomFBPrize
-
-class tagCMGiveCustomFBPrize(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("MapID", c_int),
- ("FuncLineID", c_ushort),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xB1
- self.SubCmd = 0x09
- 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 = 0xB1
- self.SubCmd = 0x09
- self.MapID = 0
- self.FuncLineID = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMGiveCustomFBPrize)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// B1 09 结算自定义副本奖励 //tagCMGiveCustomFBPrize:
- Cmd:%s,
- SubCmd:%s,
- MapID:%d,
- FuncLineID:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.MapID,
- self.FuncLineID
- )
- return DumpString
-
-
-m_NAtagCMGiveCustomFBPrize=tagCMGiveCustomFBPrize()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGiveCustomFBPrize.Cmd,m_NAtagCMGiveCustomFBPrize.SubCmd))] = m_NAtagCMGiveCustomFBPrize
-
-
-#------------------------------------------------------
# B1 06 助战召唤 #tagCMHelpBattleCall
class tagCMHelpBattleCall(Structure):
@@ -14041,62 +14930,6 @@
#------------------------------------------------------
-# B1 08 刷新自定义副本奖励 #tagCMRefreshCustomFBPrize
-
-class tagCMRefreshCustomFBPrize(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("MapID", c_int),
- ("FuncLineID", c_ushort),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xB1
- self.SubCmd = 0x08
- 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 = 0xB1
- self.SubCmd = 0x08
- self.MapID = 0
- self.FuncLineID = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMRefreshCustomFBPrize)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// B1 08 刷新自定义副本奖励 //tagCMRefreshCustomFBPrize:
- Cmd:%s,
- SubCmd:%s,
- MapID:%d,
- FuncLineID:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.MapID,
- self.FuncLineID
- )
- return DumpString
-
-
-m_NAtagCMRefreshCustomFBPrize=tagCMRefreshCustomFBPrize()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshCustomFBPrize.Cmd,m_NAtagCMRefreshCustomFBPrize.SubCmd))] = m_NAtagCMRefreshCustomFBPrize
-
-
-#------------------------------------------------------
# B1 03 设置封魔坛多倍击杀 #tagCMSetFMTDouble
class tagCMSetFMTDouble(Structure):
@@ -14155,7 +14988,7 @@
Head = tagHead()
PointAttrIDCount = 0 #(BYTE PointAttrIDCount)// 加点属性ID个数
PointAttrIDList = list() #(vector<BYTE> PointAttrIDList)// 加点属性ID列表
- PointValueList = list() #(vector<WORD> PointValueList)// 加点属性ID对应的点数列表
+ PointValueList = list() #(vector<DWORD> PointValueList)// 加点属性ID对应的点数列表
data = None
def __init__(self):
@@ -14172,7 +15005,7 @@
value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
self.PointAttrIDList.append(value)
for i in range(self.PointAttrIDCount):
- value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
self.PointValueList.append(value)
return _pos
@@ -14191,7 +15024,7 @@
length += self.Head.GetLength()
length += 1
length += 1 * self.PointAttrIDCount
- length += 2 * self.PointAttrIDCount
+ length += 4 * self.PointAttrIDCount
return length
@@ -14202,7 +15035,7 @@
for i in range(self.PointAttrIDCount):
data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i])
for i in range(self.PointAttrIDCount):
- data = CommFunc.WriteWORD(data, self.PointValueList[i])
+ data = CommFunc.WriteDWORD(data, self.PointValueList[i])
return data
def OutputString(self):
@@ -14223,6 +15056,54 @@
m_NAtagCMAddPoint=tagCMAddPoint()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddPoint.Head.Cmd,m_NAtagCMAddPoint.Head.SubCmd))] = m_NAtagCMAddPoint
+
+
+#------------------------------------------------------
+# B2 07 重置加点 #tagCMResetAttrPoint
+
+class tagCMResetAttrPoint(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x07
+ 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 = 0xB2
+ self.SubCmd = 0x07
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMResetAttrPoint)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 07 重置加点 //tagCMResetAttrPoint:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCMResetAttrPoint=tagCMResetAttrPoint()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMResetAttrPoint.Cmd,m_NAtagCMResetAttrPoint.SubCmd))] = m_NAtagCMResetAttrPoint
#------------------------------------------------------
@@ -14506,6 +15387,174 @@
m_NAtagCMTJGnpc=tagCMTJGnpc()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTJGnpc.Cmd,m_NAtagCMTJGnpc.SubCmd))] = m_NAtagCMTJGnpc
+
+
+#------------------------------------------------------
+# B4 0F 回收私有专属木桩怪 #tagCMRecyclePriWoodPile
+
+class tagCMRecyclePriWoodPile(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ObjID", c_int),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB4
+ self.SubCmd = 0x0F
+ 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 = 0x0F
+ self.ObjID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMRecyclePriWoodPile)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B4 0F 回收私有专属木桩怪 //tagCMRecyclePriWoodPile:
+ Cmd:%s,
+ SubCmd:%s,
+ ObjID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ObjID
+ )
+ return DumpString
+
+
+m_NAtagCMRecyclePriWoodPile=tagCMRecyclePriWoodPile()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRecyclePriWoodPile.Cmd,m_NAtagCMRecyclePriWoodPile.SubCmd))] = m_NAtagCMRecyclePriWoodPile
+
+
+#------------------------------------------------------
+# B4 0E 玩家掉血 #tagCMRoleLostHP
+
+class tagCMRoleLostHP(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("LostHP", c_int),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB4
+ self.SubCmd = 0x0E
+ 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 = 0x0E
+ self.LostHP = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMRoleLostHP)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B4 0E 玩家掉血 //tagCMRoleLostHP:
+ Cmd:%s,
+ SubCmd:%s,
+ LostHP:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.LostHP
+ )
+ return DumpString
+
+
+m_NAtagCMRoleLostHP=tagCMRoleLostHP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRoleLostHP.Cmd,m_NAtagCMRoleLostHP.SubCmd))] = m_NAtagCMRoleLostHP
+
+
+#------------------------------------------------------
+# B4 0C 召唤私有专属木桩怪 #tagCMSummonPriWoodPile
+
+class tagCMSummonPriWoodPile(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("NPCID", c_int),
+ ("Count", c_ubyte), #默认1个,最多5个
+ ("HP", c_int), #默认0取最大值,其中一个血量数值大于0则用指定血量
+ ("HPEx", c_int), #默认0取最大值,其中一个血量数值大于0则用指定血量
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB4
+ 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 = 0xB4
+ self.SubCmd = 0x0C
+ self.NPCID = 0
+ self.Count = 0
+ self.HP = 0
+ self.HPEx = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMSummonPriWoodPile)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B4 0C 召唤私有专属木桩怪 //tagCMSummonPriWoodPile:
+ Cmd:%s,
+ SubCmd:%s,
+ NPCID:%d,
+ Count:%d,
+ HP:%d,
+ HPEx:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.NPCID,
+ self.Count,
+ self.HP,
+ self.HPEx
+ )
+ return DumpString
+
+
+m_NAtagCMSummonPriWoodPile=tagCMSummonPriWoodPile()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSummonPriWoodPile.Cmd,m_NAtagCMSummonPriWoodPile.SubCmd))] = m_NAtagCMSummonPriWoodPile
#------------------------------------------------------
@@ -15286,6 +16335,62 @@
#------------------------------------------------------
+# B4 0D 战斗印记 #tagCMYinji
+
+class tagCMYinji(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Count", c_ubyte),
+ ("Type", c_ubyte), # 0 加,1减
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB4
+ self.SubCmd = 0x0D
+ 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 = 0x0D
+ self.Count = 0
+ self.Type = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMYinji)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B4 0D 战斗印记 //tagCMYinji:
+ Cmd:%s,
+ SubCmd:%s,
+ Count:%d,
+ Type:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Count,
+ self.Type
+ )
+ return DumpString
+
+
+m_NAtagCMYinji=tagCMYinji()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMYinji.Cmd,m_NAtagCMYinji.SubCmd))] = m_NAtagCMYinji
+
+
+#------------------------------------------------------
#B4 03 吸引NPC仇恨 #tagNPCAttention
class tagNPCAttention(Structure):
@@ -15618,6 +16723,63 @@
#------------------------------------------------------
+# B5 15 拍卖行下架拍品 #tagCMUnsellAuctionItem
+
+class tagCMUnsellAuctionItem(Structure):
+ Head = tagHead()
+ ItemGUID = "" #(char ItemGUID[40])
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x15
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB5
+ self.Head.SubCmd = 0x15
+ self.ItemGUID = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 40
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteString(data, 40, self.ItemGUID)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ItemGUID:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.ItemGUID
+ )
+ return DumpString
+
+
+m_NAtagCMUnsellAuctionItem=tagCMUnsellAuctionItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnsellAuctionItem.Head.Cmd,m_NAtagCMUnsellAuctionItem.Head.SubCmd))] = m_NAtagCMUnsellAuctionItem
+
+
+#------------------------------------------------------
# B9 04 修改队伍相关审核状态 #tagCMChangeTeamCheckState
class tagCMChangeTeamCheckState(Structure):
--
Gitblit v1.8.0