From 6833a77624193ed96e6c845c26cde086721aba22 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 05 三月 2025 15:22:12 +0800 Subject: [PATCH] 10413 【英文】【BT】【砍树】活动开服天新方案(支持以格式:K+开服天的配置方案,如K15代表开服第15天) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 196 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 186 insertions(+), 10 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index a9a1ff5..ec0e7d4 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 @@ -8186,6 +8190,62 @@ m_NAtagCMAddFruitUseLimit=tagCMAddFruitUseLimit() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddFruitUseLimit.Cmd,m_NAtagCMAddFruitUseLimit.SubCmd))] = m_NAtagCMAddFruitUseLimit + + +#------------------------------------------------------ +# A3 10 购买商城物品 #tagCMBuyItem + +class tagCMBuyItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("BuyItemIndex", c_ushort), #购买的物品索引 + ("BuyCount", c_int), #购买数量 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA3 + 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 = 0xA3 + self.SubCmd = 0x10 + self.BuyItemIndex = 0 + self.BuyCount = 0 + return + + def GetLength(self): + return sizeof(tagCMBuyItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 10 购买商城物品 //tagCMBuyItem: + Cmd:%s, + SubCmd:%s, + BuyItemIndex:%d, + BuyCount:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.BuyItemIndex, + self.BuyCount + ) + return DumpString + + +m_NAtagCMBuyItem=tagCMBuyItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyItem.Cmd,m_NAtagCMBuyItem.SubCmd))] = m_NAtagCMBuyItem #------------------------------------------------------ @@ -16707,6 +16767,70 @@ #------------------------------------------------------ +# 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 + + +#------------------------------------------------------ # AA 12 选择转盘活动物品 #tagCMActTurntableChooseItem class tagCMActTurntableChooseItem(Structure): @@ -18428,6 +18552,54 @@ #------------------------------------------------------ +# B0 35 福地管家免费试用 #tagCMMineHouseKeeperFreeUse + +class tagCMMineHouseKeeperFreeUse(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x35 + 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 = 0x35 + return + + def GetLength(self): + return sizeof(tagCMMineHouseKeeperFreeUse) + + 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): @@ -18499,7 +18671,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("IsSuper", c_ubyte), # 是否超级刷新 + ("RefreshType", c_ubyte), # 刷新类型:0-自己物品普通刷新;1-自己物品超级刷新;2-周围福地玩家列表刷新 ] def __init__(self): @@ -18516,7 +18688,7 @@ def Clear(self): self.Cmd = 0xB0 self.SubCmd = 0x31 - self.IsSuper = 0 + self.RefreshType = 0 return def GetLength(self): @@ -18529,12 +18701,12 @@ DumpString = '''// B0 31 福地物品刷新 //tagCMMineItemRefresh: Cmd:%s, SubCmd:%s, - IsSuper:%d + RefreshType:%d '''\ %( self.Cmd, self.SubCmd, - self.IsSuper + self.RefreshType ) return DumpString @@ -23101,7 +23273,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("Type", c_ubyte), # 0-取消匹配; 1-进行匹配 + ("Type", c_ubyte), # 0-查询匹配;1-刷新匹配 ] def __init__(self): @@ -23154,6 +23326,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsWin", c_ubyte), #是否获胜 + ("TagPlayerID", c_int), #目标玩家ID ] def __init__(self): @@ -23171,6 +23344,7 @@ self.Cmd = 0xC1 self.SubCmd = 0x08 self.IsWin = 0 + self.TagPlayerID = 0 return def GetLength(self): @@ -23183,12 +23357,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