From 29ca3ca05dd2bf963dd9028b6360e08da5c206cd Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 04 六月 2019 19:17:19 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 461 ++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 343 insertions(+), 118 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 7acab5f..4a9855a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -1363,6 +1363,63 @@
#------------------------------------------------------
+# 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
+
+
+#------------------------------------------------------
# A9 A3 查看推荐好友 #tagCGQueryRecommendFriends
class tagCGQueryRecommendFriends(Structure):
@@ -2171,7 +2228,7 @@
class tagCGVoiceChat(Structure):
Head = tagHead()
- ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 -------查看封包tagCMVoiceChat 5 区域
+ ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 -------查看封包tagCMVoiceChat 5 区域
TargetNameLen = 0 #(BYTE TargetNameLen)
TargetName = "" #(String TargetName)//size = TargetNameLen
TargetID = 0 #(DWORD TargetID)// 默认发玩家ID,没有ID才发名称
@@ -3339,8 +3396,8 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("ZoneID", c_ubyte), # 赛区ID
- ("SeasonID", c_ubyte), # 赛季ID
+ ("ZoneID", c_ubyte), # 赛区ID
+ ("SeasonID", c_ubyte), # 赛季ID
]
def __init__(self):
@@ -5896,7 +5953,7 @@
("SrcBackpack", c_ubyte), #源背包类型
("DesBackPack", c_ubyte), #目标背包类型
("SrcIndex", c_ushort), #转移物品索引位置;当全部转移时此值无效
- ("IsAll", c_ubyte), #是否全部转移
+ ("IsAll", c_ubyte), #是否全部转移
]
def __init__(self):
@@ -10247,6 +10304,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("AlchemyID", c_int), # 丹药ID
+ ("AlchemyTimes", c_ushort), # 丹药次数
("DoType", c_ubyte), # 0-学习 1-开始炼丹 2-停止炼丹 3-开炉取丹
]
@@ -10265,6 +10323,7 @@
self.Cmd = 0xA5
self.SubCmd = 0x76
self.AlchemyID = 0
+ self.AlchemyTimes = 0
self.DoType = 0
return
@@ -10279,12 +10338,14 @@
Cmd:%s,
SubCmd:%s,
AlchemyID:%d,
+ AlchemyTimes:%d,
DoType:%d
'''\
%(
self.Cmd,
self.SubCmd,
self.AlchemyID,
+ self.AlchemyTimes,
self.DoType
)
return DumpString
@@ -11008,6 +11069,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("SkillTypeID", c_int), # 专精技能ID
+ ("DoType", c_ubyte), # 0-激活 1-使用
]
def __init__(self):
@@ -11025,6 +11087,7 @@
self.Cmd = 0xA5
self.SubCmd = 0x16
self.SkillTypeID = 0
+ self.DoType = 0
return
def GetLength(self):
@@ -11037,12 +11100,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
@@ -13777,62 +13842,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):
@@ -14049,62 +14058,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):
@@ -14231,6 +14184,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
#------------------------------------------------------
@@ -14514,6 +14515,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
#------------------------------------------------------
@@ -15294,6 +15463,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):
--
Gitblit v1.8.0