From 303a03f56c01092ce7a7194e994dea2089b4728d Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 11 七月 2019 14:24:45 +0800
Subject: [PATCH] 7982 【后端】【主干】渡劫条件调整
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 1222 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 981 insertions(+), 241 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index ac28fe5..07975d4 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -104,60 +104,74 @@
# A0 04 查询副本功能线路人数 #tagCGGetFBLinePlayerCnt
class tagCGGetFBLinePlayerCnt(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("MapID", c_int),
- ("FBLineID", c_ubyte),
- ("IsAllLine", c_ubyte),
- ]
+ Head = tagHead()
+ MapID = 0 #(DWORD MapID)
+ LineCount = 0 #(BYTE LineCount)
+ LineIDList = list() #(vector<BYTE> LineIDList)//个数为0时代表查全部
+ data = None
def __init__(self):
self.Clear()
- self.Cmd = 0xA0
- self.SubCmd = 0x04
+ self.Head.Cmd = 0xA0
+ self.Head.SubCmd = 0x04
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.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.LineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.LineCount):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.LineIDList.append(value)
+ return _pos
def Clear(self):
- self.Cmd = 0xA0
- self.SubCmd = 0x04
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA0
+ self.Head.SubCmd = 0x04
self.MapID = 0
- self.FBLineID = 0
- self.IsAllLine = 0
+ self.LineCount = 0
+ self.LineIDList = list()
return
def GetLength(self):
- return sizeof(tagCGGetFBLinePlayerCnt)
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 1
+ length += 1 * self.LineCount
+
+ 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.WriteDWORD(data, self.MapID)
+ data = CommFunc.WriteBYTE(data, self.LineCount)
+ for i in range(self.LineCount):
+ data = CommFunc.WriteBYTE(data, self.LineIDList[i])
+ return data
def OutputString(self):
- DumpString = '''// A0 04 查询副本功能线路人数 //tagCGGetFBLinePlayerCnt:
- Cmd:%s,
- SubCmd:%s,
+ DumpString = '''
+ Head:%s,
MapID:%d,
- FBLineID:%d,
- IsAllLine:%d
+ LineCount:%d,
+ LineIDList:%s
'''\
%(
- self.Cmd,
- self.SubCmd,
+ self.Head.OutputString(),
self.MapID,
- self.FBLineID,
- self.IsAllLine
+ self.LineCount,
+ "..."
)
return DumpString
m_NAtagCGGetFBLinePlayerCnt=tagCGGetFBLinePlayerCnt()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetFBLinePlayerCnt.Cmd,m_NAtagCGGetFBLinePlayerCnt.SubCmd))] = m_NAtagCGGetFBLinePlayerCnt
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetFBLinePlayerCnt.Head.Cmd,m_NAtagCGGetFBLinePlayerCnt.Head.SubCmd))] = m_NAtagCGGetFBLinePlayerCnt
#------------------------------------------------------
@@ -1346,6 +1360,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
#------------------------------------------------------
@@ -3382,6 +3453,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int), # 跨服玩家ID
+ ("EquipClassLV", c_ubyte), #大于0为查看指定境界阶装备信息, 0为查看默认信息
]
def __init__(self):
@@ -3399,6 +3471,7 @@
self.Cmd = 0xC0
self.SubCmd = 0x02
self.PlayerID = 0
+ self.EquipClassLV = 0
return
def GetLength(self):
@@ -3411,12 +3484,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
@@ -3999,6 +4074,54 @@
#------------------------------------------------------
+# A2 33 前端退出自定义场景 #tagCMClientExitCustomScene
+
+class tagCMClientExitCustomScene(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA2
+ self.SubCmd = 0x33
+ 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 = 0x33
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMClientExitCustomScene)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A2 33 前端退出自定义场景 //tagCMClientExitCustomScene:
+ Cmd:%s,
+ SubCmd:%s
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd
+ )
+ return DumpString
+
+
+m_NAtagCMClientExitCustomScene=tagCMClientExitCustomScene()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMClientExitCustomScene.Cmd,m_NAtagCMClientExitCustomScene.SubCmd))] = m_NAtagCMClientExitCustomScene
+
+
+#------------------------------------------------------
# A2 31 前端开始自定义场景 #tagCMClientStartCustomScene
class tagCMClientStartCustomScene(Structure):
@@ -4006,6 +4129,8 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
+ ("MapID", c_int),
+ ("FuncLineID", c_ushort),
]
def __init__(self):
@@ -4022,6 +4147,8 @@
def Clear(self):
self.Cmd = 0xA2
self.SubCmd = 0x31
+ self.MapID = 0
+ self.FuncLineID = 0
return
def GetLength(self):
@@ -4033,11 +4160,15 @@
def OutputString(self):
DumpString = '''// A2 31 前端开始自定义场景 //tagCMClientStartCustomScene:
Cmd:%s,
- SubCmd:%s
+ SubCmd:%s,
+ MapID:%d,
+ FuncLineID:%d
'''\
%(
self.Cmd,
- self.SubCmd
+ self.SubCmd,
+ self.MapID,
+ self.FuncLineID
)
return DumpString
@@ -4096,6 +4227,58 @@
m_NAtagCMTouchNPC=tagCMTouchNPC()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTouchNPC.Cmd,m_NAtagCMTouchNPC.SubCmd))] = m_NAtagCMTouchNPC
+
+
+#------------------------------------------------------
+# A2 34 自定义场景中获取采集奖励 #tagCMGetCustomSceneCollectAward
+
+class tagCMGetCustomSceneCollectAward(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("NPCID", c_int), #采集的NPCID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA2
+ self.SubCmd = 0x34
+ 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 = 0x34
+ self.NPCID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGetCustomSceneCollectAward)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A2 34 自定义场景中获取采集奖励 //tagCMGetCustomSceneCollectAward:
+ Cmd:%s,
+ SubCmd:%s,
+ NPCID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.NPCID
+ )
+ return DumpString
+
+
+m_NAtagCMGetCustomSceneCollectAward=tagCMGetCustomSceneCollectAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetCustomSceneCollectAward.Cmd,m_NAtagCMGetCustomSceneCollectAward.SubCmd))] = m_NAtagCMGetCustomSceneCollectAward
#------------------------------------------------------
@@ -5484,6 +5667,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
+ ("EquipClassLV", c_ubyte), #大于0为查看指定境界阶装备信息, 0为查看默认信息
]
def __init__(self):
@@ -5501,6 +5685,7 @@
self.Cmd = 0xA2
self.SubCmd = 0x12
self.PlayerID = 0
+ self.EquipClassLV = 0
return
def GetLength(self):
@@ -5513,18 +5698,72 @@
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
m_NAtagCMViewPlayerInfo=tagCMViewPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMViewPlayerInfo.Cmd,m_NAtagCMViewPlayerInfo.SubCmd))] = m_NAtagCMViewPlayerInfo
+
+
+#------------------------------------------------------
+# A3 17 增加果实使用上限 #tagCMAddFruitUseLimit
+
+class tagCMAddFruitUseLimit(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ItemID", c_int), #果实物品ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA3
+ self.SubCmd = 0x17
+ 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 = 0x17
+ self.ItemID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMAddFruitUseLimit)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A3 17 增加果实使用上限 //tagCMAddFruitUseLimit:
+ Cmd:%s,
+ SubCmd:%s,
+ ItemID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ItemID
+ )
+ return DumpString
+
+
+m_NAtagCMAddFruitUseLimit=tagCMAddFruitUseLimit()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddFruitUseLimit.Cmd,m_NAtagCMAddFruitUseLimit.SubCmd))] = m_NAtagCMAddFruitUseLimit
#------------------------------------------------------
@@ -6360,62 +6599,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):
@@ -6588,6 +6771,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
#------------------------------------------------------
@@ -7056,58 +7291,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):
@@ -7284,90 +7467,6 @@
m_NAtagCMWingUp=tagCMWingUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWingUp.Head.Cmd,m_NAtagCMWingUp.Head.SubCmd))] = m_NAtagCMWingUp
-
-
-#------------------------------------------------------
-# 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
#------------------------------------------------------
@@ -9715,6 +9814,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):
@@ -10064,8 +10283,9 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("RefineNum", c_ushort), # 配方编号
- ("UseRateItem", c_int), # 附加材料ID
+ ("AlchemyID", c_int), # 丹药ID
+ ("AlchemyTimes", c_ushort), # 丹药次数
+ ("DoType", c_ubyte), # 0-学习 1-开始炼丹 2-停止炼丹 3-开炉取丹
]
def __init__(self):
@@ -10082,8 +10302,9 @@
def Clear(self):
self.Cmd = 0xA5
self.SubCmd = 0x76
- self.RefineNum = 0
- self.UseRateItem = 0
+ self.AlchemyID = 0
+ self.AlchemyTimes = 0
+ self.DoType = 0
return
def GetLength(self):
@@ -10096,14 +10317,16 @@
DumpString = '''// A5 76 玩家炼丹 //tagCMPlayerRefine:
Cmd:%s,
SubCmd:%s,
- RefineNum:%d,
- UseRateItem:%d
+ AlchemyID:%d,
+ AlchemyTimes:%d,
+ DoType:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.RefineNum,
- self.UseRateItem
+ self.AlchemyID,
+ self.AlchemyTimes,
+ self.DoType
)
return DumpString
@@ -10818,6 +11041,62 @@
#------------------------------------------------------
+# A5 16 选择技能五行专精 #tagCMSelectSkillElement
+
+class tagCMSelectSkillElement(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("SkillTypeID", c_int), # 专精技能ID
+ ("DoType", c_ubyte), # 0-激活 1-使用
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x16
+ 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 = 0x16
+ self.SkillTypeID = 0
+ self.DoType = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMSelectSkillElement)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement:
+ Cmd:%s,
+ SubCmd:%s,
+ SkillTypeID:%d,
+ DoType:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.SkillTypeID,
+ self.DoType
+ )
+ return DumpString
+
+
+m_NAtagCMSelectSkillElement=tagCMSelectSkillElement()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectSkillElement.Cmd,m_NAtagCMSelectSkillElement.SubCmd))] = m_NAtagCMSelectSkillElement
+
+
+#------------------------------------------------------
# A5 17 绑玉转盘开始 #tagCMStartBindJadeWheel
class tagCMStartBindJadeWheel(Structure):
@@ -10911,6 +11190,58 @@
m_NAtagCMTakeOutRealmExp=tagCMTakeOutRealmExp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTakeOutRealmExp.Cmd,m_NAtagCMTakeOutRealmExp.SubCmd))] = m_NAtagCMTakeOutRealmExp
+
+
+#------------------------------------------------------
+# A5 12 感应法宝 #tagCMThinkMagicWeapon
+
+class tagCMThinkMagicWeapon(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MWID", c_int),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x12
+ 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 = 0x12
+ self.MWID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMThinkMagicWeapon)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 12 感应法宝 //tagCMThinkMagicWeapon:
+ Cmd:%s,
+ SubCmd:%s,
+ MWID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MWID
+ )
+ return DumpString
+
+
+m_NAtagCMThinkMagicWeapon=tagCMThinkMagicWeapon()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMThinkMagicWeapon.Cmd,m_NAtagCMThinkMagicWeapon.SubCmd))] = m_NAtagCMThinkMagicWeapon
#------------------------------------------------------
@@ -11306,6 +11637,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
#------------------------------------------------------
@@ -13435,6 +13843,62 @@
#------------------------------------------------------
+# B1 0A 副本购买buff #tagCMFBBuyBuff
+
+class tagCMFBBuyBuff(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MapID", c_int),
+ ("MoneyCnt", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB1
+ self.SubCmd = 0x0A
+ 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 = 0x0A
+ self.MapID = 0
+ self.MoneyCnt = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMFBBuyBuff)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B1 0A 副本购买buff //tagCMFBBuyBuff:
+ Cmd:%s,
+ SubCmd:%s,
+ MapID:%d,
+ MoneyCnt:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MapID,
+ self.MoneyCnt
+ )
+ return DumpString
+
+
+m_NAtagCMFBBuyBuff=tagCMFBBuyBuff()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFBBuyBuff.Cmd,m_NAtagCMFBBuyBuff.SubCmd))] = m_NAtagCMFBBuyBuff
+
+
+#------------------------------------------------------
# B1 06 助战召唤 #tagCMHelpBattleCall
class tagCMHelpBattleCall(Structure):
@@ -13709,7 +14173,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):
@@ -13726,7 +14190,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
@@ -13745,7 +14209,7 @@
length += self.Head.GetLength()
length += 1
length += 1 * self.PointAttrIDCount
- length += 2 * self.PointAttrIDCount
+ length += 4 * self.PointAttrIDCount
return length
@@ -13756,7 +14220,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):
@@ -13777,6 +14241,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
#------------------------------------------------------
@@ -14060,6 +14572,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
#------------------------------------------------------
@@ -14840,6 +15520,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):
@@ -15508,6 +16244,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("DataMapID", c_int),
+ ("LineID", c_ushort),
]
def __init__(self):
@@ -15525,6 +16262,7 @@
self.Cmd = 0xC1
self.SubCmd = 0x05
self.DataMapID = 0
+ self.LineID = 0
return
def GetLength(self):
@@ -15537,12 +16275,14 @@
DumpString = '''// C1 05 进入跨服地图 //tagCMEnterCrossServer:
Cmd:%s,
SubCmd:%s,
- DataMapID:%d
+ DataMapID:%d,
+ LineID:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.DataMapID
+ self.DataMapID,
+ self.LineID
)
return DumpString
--
Gitblit v1.8.0