From 60d302989a793943bd21a9aed87a5e3f49ab64bb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 11 一月 2025 17:32:05 +0800
Subject: [PATCH] 10263 【越南】【英文】后端支持NPC仿真实玩家战斗和快速战斗(护盾变更通知周围玩家)
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 192 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 186 insertions(+), 6 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 4351f9c..323ab1f 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -7601,7 +7601,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("RealmDifficulty", c_ubyte), #境界难度 = 100 + 所选境界等级,如境界13,则发113
+ ("RealmDifficulty", c_ushort), #境界难度 = 1000 + 所选境界等级,如境界13,则发1013
]
def __init__(self):
@@ -7890,6 +7890,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("CountID", c_int), # 计数ID,客户端与策划约定,可以是NPCID或其他
+ ("Type", c_ubyte), # 1-杀怪
]
def __init__(self):
@@ -7907,6 +7908,7 @@
self.Cmd = 0xA2
self.SubCmd = 0x25
self.CountID = 0
+ self.Type = 0
return
def GetLength(self):
@@ -7919,12 +7921,14 @@
DumpString = '''//A2 25 客户端任务计数 // tagCMClientTaskCount:
Cmd:%s,
SubCmd:%s,
- CountID:%d
+ CountID:%d,
+ Type:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.CountID
+ self.CountID,
+ self.Type
)
return DumpString
@@ -15639,6 +15643,58 @@
#------------------------------------------------------
+# A6 16 珍宝阁操作 #tagCMZhenbaogeOP
+
+class tagCMZhenbaogeOP(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("OpType", c_ubyte), # 操作:0-砍价;1-购买
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA6
+ 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 = 0xA6
+ self.SubCmd = 0x16
+ self.OpType = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMZhenbaogeOP)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A6 16 珍宝阁操作 //tagCMZhenbaogeOP:
+ Cmd:%s,
+ SubCmd:%s,
+ OpType:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.OpType
+ )
+ return DumpString
+
+
+m_NAtagCMZhenbaogeOP=tagCMZhenbaogeOP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMZhenbaogeOP.Cmd,m_NAtagCMZhenbaogeOP.SubCmd))] = m_NAtagCMZhenbaogeOP
+
+
+#------------------------------------------------------
# A7 02 宠物激活 #tagCMActivatePet
class tagCMActivatePet(Structure):
@@ -16652,6 +16708,70 @@
m_NAtagCMActGodGiftReset=tagCMActGodGiftReset()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftReset.Cmd,m_NAtagCMActGodGiftReset.SubCmd))] = m_NAtagCMActGodGiftReset
+
+
+#------------------------------------------------------
+# AA 25 炼器操作 #tagCMActLianqiOP
+
+class tagCMActLianqiOP(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("OPType", c_ubyte), # 1-移动;2-使用道具;3-重新开始;4-领取等级奖励
+ ("OPValue", c_int), # 移动时-发1上2下3左4右;使用道具时-发使用个数*10+道具ID所在配置索引;等级奖励时-发领取的奖励等级
+ ("OPValue2", c_int), # 使用道具时-发选中格子A的行列值 行*10+列
+ ("OPValue3", c_int), # 使用道具时-发选中格子B的行列值 行*10+列
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x25
+ 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 = 0xAA
+ self.SubCmd = 0x25
+ self.OPType = 0
+ self.OPValue = 0
+ self.OPValue2 = 0
+ self.OPValue3 = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMActLianqiOP)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 25 炼器操作 //tagCMActLianqiOP:
+ Cmd:%s,
+ SubCmd:%s,
+ OPType:%d,
+ OPValue:%d,
+ OPValue2:%d,
+ OPValue3:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.OPType,
+ self.OPValue,
+ self.OPValue2,
+ self.OPValue3
+ )
+ return DumpString
+
+
+m_NAtagCMActLianqiOP=tagCMActLianqiOP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActLianqiOP.Cmd,m_NAtagCMActLianqiOP.SubCmd))] = m_NAtagCMActLianqiOP
#------------------------------------------------------
@@ -18929,6 +19049,62 @@
m_NAtagCMFBBuyBuff=tagCMFBBuyBuff()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFBBuyBuff.Cmd,m_NAtagCMFBBuyBuff.SubCmd))] = m_NAtagCMFBBuyBuff
+
+
+#------------------------------------------------------
+# B1 08 快速一键过关副本 #tagCMFBQuickPass
+
+class tagCMFBQuickPass(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MapID", c_int),
+ ("LineID", 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.LineID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMFBQuickPass)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B1 08 快速一键过关副本 //tagCMFBQuickPass:
+ Cmd:%s,
+ SubCmd:%s,
+ MapID:%d,
+ LineID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MapID,
+ self.LineID
+ )
+ return DumpString
+
+
+m_NAtagCMFBQuickPass=tagCMFBQuickPass()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFBQuickPass.Cmd,m_NAtagCMFBQuickPass.SubCmd))] = m_NAtagCMFBQuickPass
#------------------------------------------------------
@@ -22933,7 +23109,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("Type", c_ubyte), # 0-取消匹配; 1-进行匹配
+ ("Type", c_ubyte), # 0-查询匹配;1-刷新匹配
]
def __init__(self):
@@ -22986,6 +23162,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("IsWin", c_ubyte), #是否获胜
+ ("TagPlayerID", c_int), #目标玩家ID
]
def __init__(self):
@@ -23003,6 +23180,7 @@
self.Cmd = 0xC1
self.SubCmd = 0x08
self.IsWin = 0
+ self.TagPlayerID = 0
return
def GetLength(self):
@@ -23015,12 +23193,14 @@
DumpString = '''// C1 08 跨服PK挑战机器人结算 //tagCMCrossRealmPKRobotOver:
Cmd:%s,
SubCmd:%s,
- IsWin:%d
+ IsWin:%d,
+ TagPlayerID:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.IsWin
+ self.IsWin,
+ self.TagPlayerID
)
return DumpString
--
Gitblit v1.8.0