From cc207773cbedb51c20300a87c62529ace416b086 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 19 九月 2025 19:23:35 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(无敌支持,免疫伤害、dot、控制;小怪技能;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 533 ++--------------------------------------------------------
1 files changed, 23 insertions(+), 510 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 75cb095..9a3f902 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -275,20 +275,21 @@
#------------------------------------------------------
-#A0 01 查看玩家信息通用记录 #tagViewUniversalGameRec
+# A0 08 查看通用记录 #tagCSViewGameRec
-class tagViewUniversalGameRec(Structure):
+class tagCSViewGameRec(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("ViewType", c_ubyte), #查看记录的类型
+ ("RecType", c_ushort), #记录类型
+ ("RecID", c_int), #自定义记录ID
]
def __init__(self):
self.Clear()
self.Cmd = 0xA0
- self.SubCmd = 0x01
+ self.SubCmd = 0x08
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -298,32 +299,35 @@
def Clear(self):
self.Cmd = 0xA0
- self.SubCmd = 0x01
- self.ViewType = 0
+ self.SubCmd = 0x08
+ self.RecType = 0
+ self.RecID = 0
return
def GetLength(self):
- return sizeof(tagViewUniversalGameRec)
+ return sizeof(tagCSViewGameRec)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''//A0 01 查看玩家信息通用记录 //tagViewUniversalGameRec:
+ DumpString = '''// A0 08 查看通用记录 //tagCSViewGameRec:
Cmd:%s,
SubCmd:%s,
- ViewType:%d
+ RecType:%d,
+ RecID:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.ViewType
+ self.RecType,
+ self.RecID
)
return DumpString
-m_NAtagViewUniversalGameRec=tagViewUniversalGameRec()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagViewUniversalGameRec.Cmd,m_NAtagViewUniversalGameRec.SubCmd))] = m_NAtagViewUniversalGameRec
+m_NAtagCSViewGameRec=tagCSViewGameRec()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSViewGameRec.Cmd,m_NAtagCSViewGameRec.SubCmd))] = m_NAtagCSViewGameRec
#------------------------------------------------------
@@ -11555,118 +11559,6 @@
#------------------------------------------------------
-# AA 24 Boss历练领奖 #tagCMActBossTrialGetAward
-
-class tagCMActBossTrialGetAward(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ("SubmitCount", c_ushort), #领取凭证个数对应奖励
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x24
- 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 = 0x24
- self.ActNum = 0
- self.SubmitCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActBossTrialGetAward)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 24 Boss历练领奖 //tagCMActBossTrialGetAward:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d,
- SubmitCount:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum,
- self.SubmitCount
- )
- return DumpString
-
-
-m_NAtagCMActBossTrialGetAward=tagCMActBossTrialGetAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActBossTrialGetAward.Cmd,m_NAtagCMActBossTrialGetAward.SubCmd))] = m_NAtagCMActBossTrialGetAward
-
-
-#------------------------------------------------------
-# AA 23 Boss历练提交凭证 #tagCMActBossTrialSubmit
-
-class tagCMActBossTrialSubmit(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ("SubmitCount", c_ushort), #提交凭证个数
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x23
- 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 = 0x23
- self.ActNum = 0
- self.SubmitCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActBossTrialSubmit)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 23 Boss历练提交凭证 //tagCMActBossTrialSubmit:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d,
- SubmitCount:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum,
- self.SubmitCount
- )
- return DumpString
-
-
-m_NAtagCMActBossTrialSubmit=tagCMActBossTrialSubmit()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActBossTrialSubmit.Cmd,m_NAtagCMActBossTrialSubmit.SubCmd))] = m_NAtagCMActBossTrialSubmit
-
-
-#------------------------------------------------------
# AA 09 集字活动兑换 #tagCMActCollectWordsExchange
class tagCMActCollectWordsExchange(Structure):
@@ -11720,143 +11612,6 @@
m_NAtagCMActCollectWordsExchange=tagCMActCollectWordsExchange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActCollectWordsExchange.Cmd,m_NAtagCMActCollectWordsExchange.SubCmd))] = m_NAtagCMActCollectWordsExchange
-
-
-#------------------------------------------------------
-# AA 15 垃圾分类活动收集已完成的任务垃圾 #tagCMActGarbageGetTaskAward
-
-class tagCMActGarbageGetTaskAward(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ("GarbageTaskID", c_ubyte), #垃圾任务ID
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- 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 = 0xAA
- self.SubCmd = 0x15
- self.ActNum = 0
- self.GarbageTaskID = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActGarbageGetTaskAward)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 15 垃圾分类活动收集已完成的任务垃圾 //tagCMActGarbageGetTaskAward:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d,
- GarbageTaskID:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum,
- self.GarbageTaskID
- )
- return DumpString
-
-
-m_NAtagCMActGarbageGetTaskAward=tagCMActGarbageGetTaskAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGarbageGetTaskAward.Cmd,m_NAtagCMActGarbageGetTaskAward.SubCmd))] = m_NAtagCMActGarbageGetTaskAward
-
-
-#------------------------------------------------------
-# AA 14 垃圾分类活动分类垃圾 #tagCMActGarbageSorting
-
-class tagCMActGarbageSorting(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- GarbageSortingType = 0 #(BYTE GarbageSortingType)//垃圾分类类型,即属于哪种垃圾
- ItemIndexCount = 0 #(BYTE ItemIndexCount)//垃圾背包中的物品索引数
- ItemIndexList = list() #(vector<BYTE> ItemIndexList)//垃圾背包中的物品索引列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x14
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.GarbageSortingType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemIndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ItemIndexCount):
- value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
- self.ItemIndexList.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x14
- self.ActNum = 0
- self.GarbageSortingType = 0
- self.ItemIndexCount = 0
- self.ItemIndexList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 1
- length += 1 * self.ItemIndexCount
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteBYTE(data, self.GarbageSortingType)
- data = CommFunc.WriteBYTE(data, self.ItemIndexCount)
- for i in range(self.ItemIndexCount):
- data = CommFunc.WriteBYTE(data, self.ItemIndexList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- GarbageSortingType:%d,
- ItemIndexCount:%d,
- ItemIndexList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.GarbageSortingType,
- self.ItemIndexCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagCMActGarbageSorting=tagCMActGarbageSorting()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGarbageSorting.Head.Cmd,m_NAtagCMActGarbageSorting.Head.SubCmd))] = m_NAtagCMActGarbageSorting
#------------------------------------------------------
@@ -12351,188 +12106,6 @@
m_NAtagCMActWishingRefresh=tagCMActWishingRefresh()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActWishingRefresh.Cmd,m_NAtagCMActWishingRefresh.SubCmd))] = m_NAtagCMActWishingRefresh
-
-
-#------------------------------------------------------
-# AA 18 仙匣秘境活动奖池刷新 #tagCMActXianXiaMJAwardPoolRefresh
-
-class tagCMActXianXiaMJAwardPoolRefresh(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- 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 = 0xAA
- self.SubCmd = 0x18
- self.ActNum = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActXianXiaMJAwardPoolRefresh)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 18 仙匣秘境活动奖池刷新 //tagCMActXianXiaMJAwardPoolRefresh:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum
- )
- return DumpString
-
-
-m_NAtagCMActXianXiaMJAwardPoolRefresh=tagCMActXianXiaMJAwardPoolRefresh()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActXianXiaMJAwardPoolRefresh.Cmd,m_NAtagCMActXianXiaMJAwardPoolRefresh.SubCmd))] = m_NAtagCMActXianXiaMJAwardPoolRefresh
-
-
-#------------------------------------------------------
-# AA 17 仙匣秘境活动抽奖 #tagCMActXianXiaMJLottery
-
-class tagCMActXianXiaMJLottery(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ("PosNum", c_ubyte), #玩家点击的奖励位置编号,从1开始
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- 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 = 0xAA
- self.SubCmd = 0x17
- self.ActNum = 0
- self.PosNum = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMActXianXiaMJLottery)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 17 仙匣秘境活动抽奖 //tagCMActXianXiaMJLottery:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d,
- PosNum:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum,
- self.PosNum
- )
- return DumpString
-
-
-m_NAtagCMActXianXiaMJLottery=tagCMActXianXiaMJLottery()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActXianXiaMJLottery.Cmd,m_NAtagCMActXianXiaMJLottery.SubCmd))] = m_NAtagCMActXianXiaMJLottery
-
-
-#------------------------------------------------------
-# AA 16 仙匣秘境活动选择大奖 #tagCMActXianXiaMJSuperItem
-
-class tagCMActXianXiaMJSuperItem(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- SuperItemCount = 0 #(BYTE SuperItemCount)//选择物品数量
- SuperItemIDList = list() #(vector<DWORD> SuperItemIDList)//选择的大奖库物品ID列表,每次重新选择需要发送全部已选择的大奖物品ID,不能只发单个物品ID;
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x16
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.SuperItemCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.SuperItemIDList.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x16
- self.ActNum = 0
- self.SuperItemCount = 0
- self.SuperItemIDList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 4 * self.SuperItemCount
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteBYTE(data, self.SuperItemCount)
- for i in range(self.SuperItemCount):
- data = CommFunc.WriteDWORD(data, self.SuperItemIDList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- SuperItemCount:%d,
- SuperItemIDList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.SuperItemCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagCMActXianXiaMJSuperItem=tagCMActXianXiaMJSuperItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActXianXiaMJSuperItem.Head.Cmd,m_NAtagCMActXianXiaMJSuperItem.Head.SubCmd))] = m_NAtagCMActXianXiaMJSuperItem
#------------------------------------------------------
@@ -14446,70 +14019,14 @@
#------------------------------------------------------
-# B2 10 竞技场挑战玩家 #tagCMArenaBattle
+# B2 09 演武场匹配玩家 #tagCSArenaMatch
-class tagCMArenaBattle(Structure):
+class tagCSArenaMatch(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("TagPlayerID", c_int), # 目标玩家ID或机器人ID
- ("Result", c_ubyte), # 0-进入自定义场景发送通知后端;1-胜利(后端处理,暂时不需要发送此状态);2-失败(前端被对手击杀需要发送此状态)
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xB2
- 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 = 0xB2
- self.SubCmd = 0x10
- self.TagPlayerID = 0
- self.Result = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMArenaBattle)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// B2 10 竞技场挑战玩家 //tagCMArenaBattle:
- Cmd:%s,
- SubCmd:%s,
- TagPlayerID:%d,
- Result:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.TagPlayerID,
- self.Result
- )
- return DumpString
-
-
-m_NAtagCMArenaBattle=tagCMArenaBattle()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaBattle.Cmd,m_NAtagCMArenaBattle.SubCmd))] = m_NAtagCMArenaBattle
-
-
-#------------------------------------------------------
-# B2 09 竞技场匹配玩家 #tagCMArenaMatch
-
-class tagCMArenaMatch(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("IsRefresh", c_ubyte), # 0-打开界面无匹配数据时时查询,1-强制刷新匹配列表
+ ("IsRefresh", c_ubyte), # 0-打开界面无匹配数据时查询,1-强制刷新匹配列表
]
def __init__(self):
@@ -14530,13 +14047,13 @@
return
def GetLength(self):
- return sizeof(tagCMArenaMatch)
+ return sizeof(tagCSArenaMatch)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// B2 09 竞技场匹配玩家 //tagCMArenaMatch:
+ DumpString = '''// B2 09 演武场匹配玩家 //tagCSArenaMatch:
Cmd:%s,
SubCmd:%s,
IsRefresh:%d
@@ -14549,8 +14066,8 @@
return DumpString
-m_NAtagCMArenaMatch=tagCMArenaMatch()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaMatch.Cmd,m_NAtagCMArenaMatch.SubCmd))] = m_NAtagCMArenaMatch
+m_NAtagCSArenaMatch=tagCSArenaMatch()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSArenaMatch.Cmd,m_NAtagCSArenaMatch.SubCmd))] = m_NAtagCSArenaMatch
#------------------------------------------------------
@@ -15153,7 +14670,6 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("HeroID", c_int), #武将ID
- ("ItemIndex", c_ushort), #关联武将物品所在武将背包索引,激活时可不用发
("BookType", c_ubyte), #图鉴激活类型: 0-初始激活;1-星级升级;2-突破等级升级
]
@@ -15172,7 +14688,6 @@
self.Cmd = 0xB2
self.SubCmd = 0x37
self.HeroID = 0
- self.ItemIndex = 0
self.BookType = 0
return
@@ -15187,14 +14702,12 @@
Cmd:%s,
SubCmd:%s,
HeroID:%d,
- ItemIndex:%d,
BookType:%d
'''\
%(
self.Cmd,
self.SubCmd,
self.HeroID,
- self.ItemIndex,
self.BookType
)
return DumpString
--
Gitblit v1.8.0