From 97fef842ed56dfd7c7dd73f9c7acf20df55b9a23 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 05 九月 2025 11:35:20 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(优化主线掉落装备:改为按Boss类型掉落,祝福树区分不同的Boss类型掉落概率;分解装备按消耗的战锤进行均分计算分解所得;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 709 +++++-----------------------------------------------------
1 files changed, 63 insertions(+), 646 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 82a2cc6..ee35ff6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -11555,118 +11555,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 +11608,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 +12102,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
#------------------------------------------------------
@@ -13353,62 +12922,6 @@
#------------------------------------------------------
-# B0 50 钓鱼收杆 #tagCMDoFish
-
-class tagCMDoFish(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("FishNum", c_ubyte), # 钓鱼编号1~N
- ("PosIndex", c_ubyte), # 停留位置1~N
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xB0
- self.SubCmd = 0x50
- 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 = 0x50
- self.FishNum = 0
- self.PosIndex = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMDoFish)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// B0 50 钓鱼收杆 //tagCMDoFish:
- Cmd:%s,
- SubCmd:%s,
- FishNum:%d,
- PosIndex:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.FishNum,
- self.PosIndex
- )
- return DumpString
-
-
-m_NAtagCMDoFish=tagCMDoFish()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMDoFish.Cmd,m_NAtagCMDoFish.SubCmd))] = m_NAtagCMDoFish
-
-
-#------------------------------------------------------
# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift
class tagCGGetAssistThanksGift(Structure):
@@ -13461,9 +12974,9 @@
#------------------------------------------------------
-# B0 34 福地请求结算奖励 #tagCGMineAreaAwardGet
+# B0 39 自动淘金免费使用 #tagCSGoldRushAutoFreeUse
-class tagCGMineAreaAwardGet(Structure):
+class tagCSGoldRushAutoFreeUse(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
@@ -13473,7 +12986,7 @@
def __init__(self):
self.Clear()
self.Cmd = 0xB0
- self.SubCmd = 0x34
+ self.SubCmd = 0x39
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -13483,17 +12996,17 @@
def Clear(self):
self.Cmd = 0xB0
- self.SubCmd = 0x34
+ self.SubCmd = 0x39
return
def GetLength(self):
- return sizeof(tagCGMineAreaAwardGet)
+ return sizeof(tagCSGoldRushAutoFreeUse)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// B0 34 福地请求结算奖励 //tagCGMineAreaAwardGet:
+ DumpString = '''// B0 39 自动淘金免费使用 //tagCSGoldRushAutoFreeUse:
Cmd:%s,
SubCmd:%s
'''\
@@ -13504,26 +13017,27 @@
return DumpString
-m_NAtagCGMineAreaAwardGet=tagCGMineAreaAwardGet()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGMineAreaAwardGet.Cmd,m_NAtagCGMineAreaAwardGet.SubCmd))] = m_NAtagCGMineAreaAwardGet
+m_NAtagCSGoldRushAutoFreeUse=tagCSGoldRushAutoFreeUse()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSGoldRushAutoFreeUse.Cmd,m_NAtagCSGoldRushAutoFreeUse.SubCmd))] = m_NAtagCSGoldRushAutoFreeUse
#------------------------------------------------------
-# B0 33 福地查看 #tagCGMineAreaView
+# B0 36 淘金操作 #tagCSGoldRushOP
-class tagCGMineAreaView(Structure):
+class tagCSGoldRushOP(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("QueryType", c_ubyte), # 查询同步类型:0-后端主动同步;1-查看指定福地;2-查看道友福地列表;3-查看周围随机福地列表;4-退出他人福地;5-查看记录
- ("QueryValue", c_int), # 查询值,类型1时-发送目标玩家ID;3时-发送是否重新随机
+ ("OPType", c_ubyte), # 0-接受淘金;1-刷新淘金;2-开始淘金或调整监工数;3-取消淘金
+ ("CampID", c_ubyte), # 营地ID
+ ("WorkerCnt", c_ubyte), # 派遣监工数,仅类型2有效
]
def __init__(self):
self.Clear()
self.Cmd = 0xB0
- self.SubCmd = 0x33
+ self.SubCmd = 0x36
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -13533,51 +13047,56 @@
def Clear(self):
self.Cmd = 0xB0
- self.SubCmd = 0x33
- self.QueryType = 0
- self.QueryValue = 0
+ self.SubCmd = 0x36
+ self.OPType = 0
+ self.CampID = 0
+ self.WorkerCnt = 0
return
def GetLength(self):
- return sizeof(tagCGMineAreaView)
+ return sizeof(tagCSGoldRushOP)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// B0 33 福地查看 //tagCGMineAreaView:
+ DumpString = '''// B0 36 淘金操作 //tagCSGoldRushOP:
Cmd:%s,
SubCmd:%s,
- QueryType:%d,
- QueryValue:%d
+ OPType:%d,
+ CampID:%d,
+ WorkerCnt:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.QueryType,
- self.QueryValue
+ self.OPType,
+ self.CampID,
+ self.WorkerCnt
)
return DumpString
-m_NAtagCGMineAreaView=tagCGMineAreaView()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGMineAreaView.Cmd,m_NAtagCGMineAreaView.SubCmd))] = m_NAtagCGMineAreaView
+m_NAtagCSGoldRushOP=tagCSGoldRushOP()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSGoldRushOP.Cmd,m_NAtagCSGoldRushOP.SubCmd))] = m_NAtagCSGoldRushOP
#------------------------------------------------------
-# B0 35 福地管家免费试用 #tagCMMineHouseKeeperFreeUse
+# B0 37 淘金解锁 #tagCSGoldRushUnlock
-class tagCMMineHouseKeeperFreeUse(Structure):
+class tagCSGoldRushUnlock(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
+ ("UnlockType", c_ubyte), # 0-营地;1-监工
+ ("UnlockID", c_ubyte), # 解锁类型对应的ID
]
def __init__(self):
self.Clear()
self.Cmd = 0xB0
- self.SubCmd = 0x35
+ self.SubCmd = 0x37
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -13587,110 +13106,53 @@
def Clear(self):
self.Cmd = 0xB0
- self.SubCmd = 0x35
+ self.SubCmd = 0x37
+ self.UnlockType = 0
+ self.UnlockID = 0
return
def GetLength(self):
- return sizeof(tagCMMineHouseKeeperFreeUse)
+ return sizeof(tagCSGoldRushUnlock)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// B0 35 福地管家免费试用 //tagCMMineHouseKeeperFreeUse:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMMineHouseKeeperFreeUse=tagCMMineHouseKeeperFreeUse()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMineHouseKeeperFreeUse.Cmd,m_NAtagCMMineHouseKeeperFreeUse.SubCmd))] = m_NAtagCMMineHouseKeeperFreeUse
-
-
-#------------------------------------------------------
-# B0 30 福地物品拉 #tagCMMineItemPull
-
-class tagCMMineItemPull(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("PlayerID", c_int), # 福地所属玩家ID,0默认自己
- ("ItemIndex", c_ubyte), # 物品所在位置索引0~n
- ("WorkerCount", c_ubyte), # 上工人人数
- ("IsPreview", c_ubyte), # 是否预览;0-直接拉,1-预览大概时间
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xB0
- 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 = 0xB0
- self.SubCmd = 0x30
- self.PlayerID = 0
- self.ItemIndex = 0
- self.WorkerCount = 0
- self.IsPreview = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMMineItemPull)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// B0 30 福地物品拉 //tagCMMineItemPull:
+ DumpString = '''// B0 37 淘金解锁 //tagCSGoldRushUnlock:
Cmd:%s,
SubCmd:%s,
- PlayerID:%d,
- ItemIndex:%d,
- WorkerCount:%d,
- IsPreview:%d
+ UnlockType:%d,
+ UnlockID:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.PlayerID,
- self.ItemIndex,
- self.WorkerCount,
- self.IsPreview
+ self.UnlockType,
+ self.UnlockID
)
return DumpString
-m_NAtagCMMineItemPull=tagCMMineItemPull()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMineItemPull.Cmd,m_NAtagCMMineItemPull.SubCmd))] = m_NAtagCMMineItemPull
+m_NAtagCSGoldRushUnlock=tagCSGoldRushUnlock()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSGoldRushUnlock.Cmd,m_NAtagCSGoldRushUnlock.SubCmd))] = m_NAtagCSGoldRushUnlock
#------------------------------------------------------
-# B0 31 福地物品刷新 #tagCMMineItemRefresh
+# B0 38 淘金仓库领奖 #tagCSGoldRushWarehouseAward
-class tagCMMineItemRefresh(Structure):
+class tagCSGoldRushWarehouseAward(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("RefreshType", c_ubyte), # 刷新类型:0-自己物品普通刷新;1-自己物品超级刷新;2-周围福地玩家列表刷新
+ ("AwardIndex", c_ubyte), # 领奖位置索引,从0开始
+ ("IsAll", c_ubyte), # 是否领取所有
]
def __init__(self):
self.Clear()
self.Cmd = 0xB0
- self.SubCmd = 0x31
+ self.SubCmd = 0x38
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -13700,80 +13162,35 @@
def Clear(self):
self.Cmd = 0xB0
- self.SubCmd = 0x31
- self.RefreshType = 0
+ self.SubCmd = 0x38
+ self.AwardIndex = 0
+ self.IsAll = 0
return
def GetLength(self):
- return sizeof(tagCMMineItemRefresh)
+ return sizeof(tagCSGoldRushWarehouseAward)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// B0 31 福地物品刷新 //tagCMMineItemRefresh:
+ DumpString = '''// B0 38 淘金仓库领奖 //tagCSGoldRushWarehouseAward:
Cmd:%s,
SubCmd:%s,
- RefreshType:%d
+ AwardIndex:%d,
+ IsAll:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.RefreshType
+ self.AwardIndex,
+ self.IsAll
)
return DumpString
-m_NAtagCMMineItemRefresh=tagCMMineItemRefresh()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMineItemRefresh.Cmd,m_NAtagCMMineItemRefresh.SubCmd))] = m_NAtagCMMineItemRefresh
-
-
-#------------------------------------------------------
-# B0 32 福地工人雇佣 #tagCMMineWorkerEmploy
-
-class tagCMMineWorkerEmploy(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xB0
- self.SubCmd = 0x32
- 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 = 0x32
- return
-
- def GetLength(self):
- return sizeof(tagCMMineWorkerEmploy)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// B0 32 福地工人雇佣 //tagCMMineWorkerEmploy:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMMineWorkerEmploy=tagCMMineWorkerEmploy()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMineWorkerEmploy.Cmd,m_NAtagCMMineWorkerEmploy.SubCmd))] = m_NAtagCMMineWorkerEmploy
+m_NAtagCSGoldRushWarehouseAward=tagCSGoldRushWarehouseAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSGoldRushWarehouseAward.Cmd,m_NAtagCSGoldRushWarehouseAward.SubCmd))] = m_NAtagCSGoldRushWarehouseAward
#------------------------------------------------------
@@ -17310,7 +16727,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("ReqType", c_ubyte), # 0-停止战斗回城;1-设置消耗倍值;2-挑战关卡小怪;3-挑战关卡boss;4-继续战斗;
+ ("ReqType", c_ubyte), # 0-停止战斗回城;1-设置消耗倍值;2-挑战关卡小怪;4-继续战斗;
("ReqValue", c_int), # 请求值,ReqType为1时发送消耗倍值
]
@@ -18391,10 +17808,10 @@
class tagCMTurnFight(Structure):
Head = tagHead()
- MapID = 0 #(DWORD MapID)// 自定义地图ID,可用于绑定战斗地图场景功能(如主线关卡、主线boss、爬塔、竞技场等)
+ MapID = 0 #(DWORD MapID)// 自定义地图ID,可用于绑定战斗地图场景功能(如主线boss、爬塔、竞技场等)
FuncLineID = 0 #(DWORD FuncLineID)// MapID对应的扩展值,如具体某个关卡等
TagType = 0 #(BYTE TagType)// 目标类型,0-NPC阵容,1-玩家
- TagID = 0 #(DWORD TagID)// 目标类型对应的ID,如阵容ID或玩家ID
+ TagID = 0 #(DWORD TagID)// 目标类型对应的ID,如玩家ID
ValueCount = 0 #(BYTE ValueCount)
ValueList = list() #(vector<DWORD> ValueList)// 附加值列表,可选,具体含义由MapID决定
data = None
--
Gitblit v1.8.0