From be35331b8931d2829f014749a827a1c37c78feff Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 29 五月 2019 17:11:18 +0800 Subject: [PATCH] 6997 【后端】【2.0】战力计算整理 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 461 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 345 insertions(+), 116 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index e8f8f90..e56f530 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): @@ -3396,6 +3453,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), # 跨服玩家ID + ("EquipClassLV", c_ubyte), #大于0为查看指定境界阶装备信息, 0为查看默认信息 ] def __init__(self): @@ -3413,6 +3471,7 @@ self.Cmd = 0xC0 self.SubCmd = 0x02 self.PlayerID = 0 + self.EquipClassLV = 0 return def GetLength(self): @@ -3425,12 +3484,14 @@ DumpString = '''// C0 02 查看跨服玩家信息 //tagCGViewCrossPlayerInfo: Cmd:%s, SubCmd:%s, - PlayerID:%d + PlayerID:%d, + EquipClassLV:%d '''\ %( self.Cmd, self.SubCmd, - self.PlayerID + self.PlayerID, + self.EquipClassLV ) return DumpString @@ -5606,6 +5667,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), + ("EquipClassLV", c_ubyte), #大于0为查看指定境界阶装备信息, 0为查看默认信息 ] def __init__(self): @@ -5623,6 +5685,7 @@ self.Cmd = 0xA2 self.SubCmd = 0x12 self.PlayerID = 0 + self.EquipClassLV = 0 return def GetLength(self): @@ -5635,12 +5698,14 @@ DumpString = '''//A2 12 查看玩家详细信息//tagCMViewPlayerInfo: Cmd:%s, SubCmd:%s, - PlayerID:%d + PlayerID:%d, + EquipClassLV:%d '''\ %( self.Cmd, self.SubCmd, - self.PlayerID + self.PlayerID, + self.EquipClassLV ) return DumpString @@ -10992,6 +11057,62 @@ #------------------------------------------------------ +# A5 16 选择技能五行专精 #tagCMSelectSkillElement + +class tagCMSelectSkillElement(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("SkillTypeID", c_int), # 专精技能ID + ("DoType", c_ubyte), # 0-激活 1-使用 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + 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 = 0xA5 + self.SubCmd = 0x16 + self.SkillTypeID = 0 + self.DoType = 0 + return + + def GetLength(self): + return sizeof(tagCMSelectSkillElement) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement: + Cmd:%s, + SubCmd:%s, + SkillTypeID:%d, + DoType:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.SkillTypeID, + self.DoType + ) + return DumpString + + +m_NAtagCMSelectSkillElement=tagCMSelectSkillElement() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectSkillElement.Cmd,m_NAtagCMSelectSkillElement.SubCmd))] = m_NAtagCMSelectSkillElement + + +#------------------------------------------------------ # A5 17 绑玉转盘开始 #tagCMStartBindJadeWheel class tagCMStartBindJadeWheel(Structure): @@ -13717,62 +13838,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): @@ -13989,62 +14054,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): @@ -14171,6 +14180,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 #------------------------------------------------------ @@ -14454,6 +14511,122 @@ m_NAtagCMTJGnpc=tagCMTJGnpc() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTJGnpc.Cmd,m_NAtagCMTJGnpc.SubCmd))] = m_NAtagCMTJGnpc + + +#------------------------------------------------------ +# B4 0E 设置玩家自身血量 #tagCMSetRoleHP + +class tagCMSetRoleHP(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("HP", 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.HP = 0 + return + + def GetLength(self): + return sizeof(tagCMSetRoleHP) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B4 0E 设置玩家自身血量 //tagCMSetRoleHP: + Cmd:%s, + SubCmd:%s, + HP:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.HP + ) + return DumpString + + +m_NAtagCMSetRoleHP=tagCMSetRoleHP() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSetRoleHP.Cmd,m_NAtagCMSetRoleHP.SubCmd))] = m_NAtagCMSetRoleHP + + +#------------------------------------------------------ +# 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 #------------------------------------------------------ @@ -15234,6 +15407,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