From 63f6f44ec2a38eaec9f39bbe26edb07daed49b49 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 16 九月 2025 17:36:50 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(王元姬技能,弹射待处理;支持被动变更伤害倍值;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 2735 +--------------------------------------------------------- 1 files changed, 86 insertions(+), 2,649 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py index f4abfca..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 #------------------------------------------------------ @@ -1728,66 +1732,6 @@ m_NAtagCMQueryBossHurtList=tagCMQueryBossHurtList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryBossHurtList.Cmd,m_NAtagCMQueryBossHurtList.SubCmd))] = m_NAtagCMQueryBossHurtList - - -#------------------------------------------------------ -# A2 28 查询仙盟抢Boss伤血列表 #tagCMQueryFamilyBossHurt - -class tagCMQueryFamilyBossHurt(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ObjID", c_int), - ("NPCID", c_int), - ("QueryType", c_ubyte), # 0-实时仙盟伤血,1-历史仙盟伤血,2-实时玩家伤血,3-历史玩家伤血 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA2 - self.SubCmd = 0x28 - 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 = 0xA2 - self.SubCmd = 0x28 - self.ObjID = 0 - self.NPCID = 0 - self.QueryType = 0 - return - - def GetLength(self): - return sizeof(tagCMQueryFamilyBossHurt) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A2 28 查询仙盟抢Boss伤血列表 //tagCMQueryFamilyBossHurt: - Cmd:%s, - SubCmd:%s, - ObjID:%d, - NPCID:%d, - QueryType:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.ObjID, - self.NPCID, - self.QueryType - ) - return DumpString - - -m_NAtagCMQueryFamilyBossHurt=tagCMQueryFamilyBossHurt() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryFamilyBossHurt.Cmd,m_NAtagCMQueryFamilyBossHurt.SubCmd))] = m_NAtagCMQueryFamilyBossHurt #------------------------------------------------------ @@ -4786,58 +4730,6 @@ #------------------------------------------------------ -# A4 10 仙盟联赛连胜奖励分配 #tagCGFamilyWarWinRewardAllot - -class tagCGFamilyWarWinRewardAllot(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MemPlayerID", c_int), #分配给的仙盟成员玩家ID - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA4 - 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 = 0xA4 - self.SubCmd = 0x10 - self.MemPlayerID = 0 - return - - def GetLength(self): - return sizeof(tagCGFamilyWarWinRewardAllot) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A4 10 仙盟联赛连胜奖励分配 //tagCGFamilyWarWinRewardAllot: - Cmd:%s, - SubCmd:%s, - MemPlayerID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MemPlayerID - ) - return DumpString - - -m_NAtagCGFamilyWarWinRewardAllot=tagCGFamilyWarWinRewardAllot() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGFamilyWarWinRewardAllot.Cmd,m_NAtagCGFamilyWarWinRewardAllot.SubCmd))] = m_NAtagCGFamilyWarWinRewardAllot - - -#------------------------------------------------------ #A4 03 加入家族审核情况 #tagCGJoinFamilyReply class tagCGJoinFamilyReply(Structure): @@ -7117,220 +7009,6 @@ #------------------------------------------------------ -# A5 1C 聚魂合成 #tagCMGatherSoulCompound - -class tagCMGatherSoulCompound(Structure): - Head = tagHead() - Cnt = 0 #(BYTE Cnt) - PackList = list() #(vector<BYTE> PackList)//所在位置 0-背包 1-孔 - IndexList = list() #(vector<WORD> IndexList)//物品索引 - TagItemID = 0 #(DWORD TagItemID)//合成目标物品ID - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA5 - self.Head.SubCmd = 0x1C - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) - for i in range(self.Cnt): - value,_pos=CommFunc.ReadBYTE(_lpData,_pos) - self.PackList.append(value) - for i in range(self.Cnt): - value,_pos=CommFunc.ReadWORD(_lpData,_pos) - self.IndexList.append(value) - self.TagItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA5 - self.Head.SubCmd = 0x1C - self.Cnt = 0 - self.PackList = list() - self.IndexList = list() - self.TagItemID = 0 - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += 1 * self.Cnt - length += 2 * self.Cnt - length += 4 - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.Cnt) - for i in range(self.Cnt): - data = CommFunc.WriteBYTE(data, self.PackList[i]) - for i in range(self.Cnt): - data = CommFunc.WriteWORD(data, self.IndexList[i]) - data = CommFunc.WriteDWORD(data, self.TagItemID) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - Cnt:%d, - PackList:%s, - IndexList:%s, - TagItemID:%d - '''\ - %( - self.Head.OutputString(), - self.Cnt, - "...", - "...", - self.TagItemID - ) - return DumpString - - -m_NAtagCMGatherSoulCompound=tagCMGatherSoulCompound() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherSoulCompound.Head.Cmd,m_NAtagCMGatherSoulCompound.Head.SubCmd))] = m_NAtagCMGatherSoulCompound - - -#------------------------------------------------------ -# A5 19 聚魂分解 #tagCMGatherSoulDecompose - -class tagCMGatherSoulDecompose(Structure): - Head = tagHead() - IsAuto = 0 #(BYTE IsAuto)// 是否自动分解 - Count = 0 #(BYTE Count)// 指定批量分解数,最大不超过50个 - PlaceIndexList = list() #(vector<WORD> PlaceIndexList)// 批量分解位置索引列表 - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA5 - self.Head.SubCmd = 0x19 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) - for i in range(self.Count): - value,_pos=CommFunc.ReadWORD(_lpData,_pos) - self.PlaceIndexList.append(value) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA5 - self.Head.SubCmd = 0x19 - self.IsAuto = 0 - self.Count = 0 - self.PlaceIndexList = list() - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += 1 - length += 2 * self.Count - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.IsAuto) - data = CommFunc.WriteBYTE(data, self.Count) - for i in range(self.Count): - data = CommFunc.WriteWORD(data, self.PlaceIndexList[i]) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - IsAuto:%d, - Count:%d, - PlaceIndexList:%s - '''\ - %( - self.Head.OutputString(), - self.IsAuto, - self.Count, - "..." - ) - return DumpString - - -m_NAtagCMGatherSoulDecompose=tagCMGatherSoulDecompose() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherSoulDecompose.Head.Cmd,m_NAtagCMGatherSoulDecompose.Head.SubCmd))] = m_NAtagCMGatherSoulDecompose - - -#------------------------------------------------------ -# A5 18 聚魂升级 #tagCMGatherSoulUp - -class tagCMGatherSoulUp(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("PlaceType", c_ubyte), # 位置类型;0-背包,1-孔 - ("PlaceIndex", c_ushort), # 位置索引 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - 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 = 0xA5 - self.SubCmd = 0x18 - self.PlaceType = 0 - self.PlaceIndex = 0 - return - - def GetLength(self): - return sizeof(tagCMGatherSoulUp) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 18 聚魂升级 //tagCMGatherSoulUp: - Cmd:%s, - SubCmd:%s, - PlaceType:%d, - PlaceIndex:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.PlaceType, - self.PlaceIndex - ) - return DumpString - - -m_NAtagCMGatherSoulUp=tagCMGatherSoulUp() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherSoulUp.Cmd,m_NAtagCMGatherSoulUp.SubCmd))] = m_NAtagCMGatherSoulUp - - -#------------------------------------------------------ # A5 41 领取投资理财回报 #tagCMGetInvestReward class tagCMGetInvestReward(Structure): @@ -8167,110 +7845,6 @@ #------------------------------------------------------ -# A5 15 提升法宝等级 #tagCMMagicWeaponUp - -class tagCMMagicWeaponUp(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MWID", c_int), #法宝ID - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - 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 = 0xA5 - self.SubCmd = 0x15 - self.MWID = 0 - return - - def GetLength(self): - return sizeof(tagCMMagicWeaponUp) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 15 提升法宝等级 //tagCMMagicWeaponUp: - Cmd:%s, - SubCmd:%s, - MWID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MWID - ) - return DumpString - - -m_NAtagCMMagicWeaponUp=tagCMMagicWeaponUp() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponUp.Cmd,m_NAtagCMMagicWeaponUp.SubCmd))] = m_NAtagCMMagicWeaponUp - - -#------------------------------------------------------ -# A5 0E 开启法宝 #tagCMOpenMagicWeapon - -class tagCMOpenMagicWeapon(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MWID", c_int), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - 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 = 0xA5 - self.SubCmd = 0x0E - self.MWID = 0 - return - - def GetLength(self): - return sizeof(tagCMOpenMagicWeapon) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 0E 开启法宝 //tagCMOpenMagicWeapon: - Cmd:%s, - SubCmd:%s, - MWID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MWID - ) - return DumpString - - -m_NAtagCMOpenMagicWeapon=tagCMOpenMagicWeapon() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMOpenMagicWeapon.Cmd,m_NAtagCMOpenMagicWeapon.SubCmd))] = m_NAtagCMOpenMagicWeapon - - -#------------------------------------------------------ # A5 24 开启渡劫 #tagCMOpenRealmFB class tagCMOpenRealmFB(Structure): @@ -8450,114 +8024,6 @@ m_NAtagCMPlayerGetReward=tagCMPlayerGetReward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPlayerGetReward.Head.Cmd,m_NAtagCMPlayerGetReward.Head.SubCmd))] = m_NAtagCMPlayerGetReward - - -#------------------------------------------------------ -# A5 76 玩家炼丹 #tagCMPlayerRefine - -class tagCMPlayerRefine(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("AlchemyID", c_int), # 丹药ID - ("AlchemyTimes", c_ushort), # 丹药次数 - ("DoType", c_ubyte), # 0-学习 1-开始炼丹 2-停止炼丹 3-开炉取丹 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - self.SubCmd = 0x76 - 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 = 0x76 - self.AlchemyID = 0 - self.AlchemyTimes = 0 - self.DoType = 0 - return - - def GetLength(self): - return sizeof(tagCMPlayerRefine) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 76 玩家炼丹 //tagCMPlayerRefine: - Cmd:%s, - SubCmd:%s, - AlchemyID:%d, - AlchemyTimes:%d, - DoType:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.AlchemyID, - self.AlchemyTimes, - self.DoType - ) - return DumpString - - -m_NAtagCMPlayerRefine=tagCMPlayerRefine() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPlayerRefine.Cmd,m_NAtagCMPlayerRefine.SubCmd))] = m_NAtagCMPlayerRefine - - -#------------------------------------------------------ -# A5 14 祈福丹药 #tagCMPrayElixir - -class tagCMPrayElixir(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - self.SubCmd = 0x14 - 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 = 0x14 - return - - def GetLength(self): - return sizeof(tagCMPrayElixir) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 14 祈福丹药 //tagCMPrayElixir: - Cmd:%s, - SubCmd:%s - '''\ - %( - self.Cmd, - self.SubCmd - ) - return DumpString - - -m_NAtagCMPrayElixir=tagCMPrayElixir() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPrayElixir.Cmd,m_NAtagCMPrayElixir.SubCmd))] = m_NAtagCMPrayElixir #------------------------------------------------------ @@ -9338,58 +8804,6 @@ #------------------------------------------------------ -# A5 12 感应法宝 #tagCMThinkMagicWeapon - -class tagCMThinkMagicWeapon(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MWID", c_int), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - self.SubCmd = 0x12 - 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 = 0x12 - self.MWID = 0 - return - - def GetLength(self): - return sizeof(tagCMThinkMagicWeapon) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 12 感应法宝 //tagCMThinkMagicWeapon: - Cmd:%s, - SubCmd:%s, - MWID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MWID - ) - return DumpString - - -m_NAtagCMThinkMagicWeapon=tagCMThinkMagicWeapon() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMThinkMagicWeapon.Cmd,m_NAtagCMThinkMagicWeapon.SubCmd))] = m_NAtagCMThinkMagicWeapon - - -#------------------------------------------------------ # A5 36 称号升星 #tagCMTitleStarUp class tagCMTitleStarUp(Structure): @@ -9591,178 +9005,6 @@ m_NAtagCMUnlockRuneHole=tagCMUnlockRuneHole() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnlockRuneHole.Cmd,m_NAtagCMUnlockRuneHole.SubCmd))] = m_NAtagCMUnlockRuneHole - - -#------------------------------------------------------ -#A5 10 使用新手卡 #tagUseNewGuyCard - -class tagUseNewGuyCard(Structure): - Head = tagHead() - CodeStrLen = 0 #(BYTE CodeStrLen) - CodeStr = "" #(String CodeStr)//size = CodeStrLen - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA5 - self.Head.SubCmd = 0x10 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.CodeStrLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.CodeStr,_pos = CommFunc.ReadString(_lpData, _pos,self.CodeStrLen) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA5 - self.Head.SubCmd = 0x10 - self.CodeStrLen = 0 - self.CodeStr = "" - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += len(self.CodeStr) - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.CodeStrLen) - data = CommFunc.WriteString(data, self.CodeStrLen, self.CodeStr) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - CodeStrLen:%d, - CodeStr:%s - '''\ - %( - self.Head.OutputString(), - self.CodeStrLen, - self.CodeStr - ) - return DumpString - - -m_NAtagUseNewGuyCard=tagUseNewGuyCard() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUseNewGuyCard.Head.Cmd,m_NAtagUseNewGuyCard.Head.SubCmd))] = m_NAtagUseNewGuyCard - - -#------------------------------------------------------ -# A5 26 寻访仙域 #tagCMVisitFairyDomain - -class tagCMVisitFairyDomain(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("Type", c_ubyte), #0-开始寻访 1-结束寻访 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - self.SubCmd = 0x26 - 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 = 0x26 - self.Type = 0 - return - - def GetLength(self): - return sizeof(tagCMVisitFairyDomain) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 26 寻访仙域 //tagCMVisitFairyDomain: - Cmd:%s, - SubCmd:%s, - Type:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.Type - ) - return DumpString - - -m_NAtagCMVisitFairyDomain=tagCMVisitFairyDomain() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMVisitFairyDomain.Cmd,m_NAtagCMVisitFairyDomain.SubCmd))] = m_NAtagCMVisitFairyDomain - - -#------------------------------------------------------ -# A5 1D 法宝佩戴 #tagCMWearMagicWeapon - -class tagCMWearMagicWeapon(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MWID", c_int), #法宝ID - ("State", c_ubyte), #0-卸下 1-佩戴 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - self.SubCmd = 0x1D - 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 = 0x1D - self.MWID = 0 - self.State = 0 - return - - def GetLength(self): - return sizeof(tagCMWearMagicWeapon) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 1D 法宝佩戴 //tagCMWearMagicWeapon: - Cmd:%s, - SubCmd:%s, - MWID:%d, - State:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MWID, - self.State - ) - return DumpString - - -m_NAtagCMWearMagicWeapon=tagCMWearMagicWeapon() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWearMagicWeapon.Cmd,m_NAtagCMWearMagicWeapon.SubCmd))] = m_NAtagCMWearMagicWeapon #------------------------------------------------------ @@ -11394,110 +10636,6 @@ #------------------------------------------------------ -# A8 04 购买VIP礼包 #tagCMBuyVIPItem - -class tagCMBuyVIPItem(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("VIPLV", c_ubyte), # VIP等级 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA8 - self.SubCmd = 0x04 - 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 = 0xA8 - self.SubCmd = 0x04 - self.VIPLV = 0 - return - - def GetLength(self): - return sizeof(tagCMBuyVIPItem) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A8 04 购买VIP礼包 //tagCMBuyVIPItem: - Cmd:%s, - SubCmd:%s, - VIPLV:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.VIPLV - ) - return DumpString - - -m_NAtagCMBuyVIPItem=tagCMBuyVIPItem() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyVIPItem.Cmd,m_NAtagCMBuyVIPItem.SubCmd))] = m_NAtagCMBuyVIPItem - - -#------------------------------------------------------ -#A8 01 购买VIP时间 #tagCMBuyVipLV - -class tagCMBuyVipLV(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("VipType", c_ubyte), # VIP时间类型 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA8 - self.SubCmd = 0x01 - 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 = 0xA8 - self.SubCmd = 0x01 - self.VipType = 0 - return - - def GetLength(self): - return sizeof(tagCMBuyVipLV) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''//A8 01 购买VIP时间 //tagCMBuyVipLV: - Cmd:%s, - SubCmd:%s, - VipType:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.VipType - ) - return DumpString - - -m_NAtagCMBuyVipLV=tagCMBuyVipLV() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyVipLV.Cmd,m_NAtagCMBuyVipLV.SubCmd))] = m_NAtagCMBuyVipLV - - -#------------------------------------------------------ # A8 03 开通贵族 #tagCMOpenNoble class tagCMOpenNoble(Structure): @@ -11595,58 +10733,6 @@ m_NAtagCMQueryRecharge=tagCMQueryRecharge() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryRecharge.Cmd,m_NAtagCMQueryRecharge.SubCmd))] = m_NAtagCMQueryRecharge - - -#------------------------------------------------------ -# A8 05 VIP杀怪等级信息同步开关 #tagCMVIPKillNPCLVInfoSwitch - -class tagCMVIPKillNPCLVInfoSwitch(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("IsOn", c_ubyte), # 是否开启同步 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA8 - self.SubCmd = 0x05 - 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 = 0xA8 - self.SubCmd = 0x05 - self.IsOn = 0 - return - - def GetLength(self): - return sizeof(tagCMVIPKillNPCLVInfoSwitch) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A8 05 VIP杀怪等级信息同步开关 //tagCMVIPKillNPCLVInfoSwitch: - Cmd:%s, - SubCmd:%s, - IsOn:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.IsOn - ) - return DumpString - - -m_NAtagCMVIPKillNPCLVInfoSwitch=tagCMVIPKillNPCLVInfoSwitch() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMVIPKillNPCLVInfoSwitch.Cmd,m_NAtagCMVIPKillNPCLVInfoSwitch.SubCmd))] = m_NAtagCMVIPKillNPCLVInfoSwitch #------------------------------------------------------ @@ -12473,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): @@ -12638,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 #------------------------------------------------------ @@ -13272,188 +12109,6 @@ #------------------------------------------------------ -# 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 - - -#------------------------------------------------------ # AA 06 许愿池活动许愿 #tagCMActWishing class tagCMActWishing(Structure): @@ -13842,62 +12497,6 @@ #------------------------------------------------------ -# AB 03 仙魔之争押注 #tagCMXMZZBet - -class tagCMXMZZBet(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("BetIndex", c_ubyte), # 押注索引 - ("BetResult", c_ubyte), # 结果 1-仙族赢 2-魔族赢 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAB - self.SubCmd = 0x03 - 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 = 0xAB - self.SubCmd = 0x03 - self.BetIndex = 0 - self.BetResult = 0 - return - - def GetLength(self): - return sizeof(tagCMXMZZBet) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AB 03 仙魔之争押注 //tagCMXMZZBet: - Cmd:%s, - SubCmd:%s, - BetIndex:%d, - BetResult:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.BetIndex, - self.BetResult - ) - return DumpString - - -m_NAtagCMXMZZBet=tagCMXMZZBet() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMXMZZBet.Cmd,m_NAtagCMXMZZBet.SubCmd))] = m_NAtagCMXMZZBet - - -#------------------------------------------------------ # AB 11 开服活动奖励 #tagCMOpenServerCampaignAward class tagCMOpenServerCampaignAward(Structure): @@ -14007,228 +12606,6 @@ m_NAtagCGCallupFamilyMemberToBoss=tagCGCallupFamilyMemberToBoss() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCallupFamilyMemberToBoss.Cmd,m_NAtagCGCallupFamilyMemberToBoss.SubCmd))] = m_NAtagCGCallupFamilyMemberToBoss - - -#------------------------------------------------------ -# AC 02 仙魔之争战斗结束 #tagCGXMZZOver - -class tagCGXMZZOver(Structure): - Head = tagHead() - IsWin = 0 #(BYTE IsWin)//是否胜利 - IsEnd = 0 #(BYTE IsEnd)//是否结束 - HPPer = 0 #(BYTE HPPer)//剩余血量百分比 - VSName = "" #(char VSName[33])//对手名字 - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xAC - self.Head.SubCmd = 0x02 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.IsWin,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.IsEnd,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.HPPer,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.VSName,_pos = CommFunc.ReadString(_lpData, _pos,33) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xAC - self.Head.SubCmd = 0x02 - self.IsWin = 0 - self.IsEnd = 0 - self.HPPer = 0 - self.VSName = "" - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += 1 - length += 1 - length += 33 - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.IsWin) - data = CommFunc.WriteBYTE(data, self.IsEnd) - data = CommFunc.WriteBYTE(data, self.HPPer) - data = CommFunc.WriteString(data, 33, self.VSName) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - IsWin:%d, - IsEnd:%d, - HPPer:%d, - VSName:%s - '''\ - %( - self.Head.OutputString(), - self.IsWin, - self.IsEnd, - self.HPPer, - self.VSName - ) - return DumpString - - -m_NAtagCGXMZZOver=tagCGXMZZOver() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGXMZZOver.Head.Cmd,m_NAtagCGXMZZOver.Head.SubCmd))] = m_NAtagCGXMZZOver - - -#------------------------------------------------------ -# AC 01 仙魔之争报名 #tagCGJoinXMZZ - -class tagCGJoinXMZZ(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAC - self.SubCmd = 0x01 - 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 = 0xAC - self.SubCmd = 0x01 - return - - def GetLength(self): - return sizeof(tagCGJoinXMZZ) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AC 01 仙魔之争报名 //tagCGJoinXMZZ: - Cmd:%s, - SubCmd:%s - '''\ - %( - self.Cmd, - self.SubCmd - ) - return DumpString - - -m_NAtagCGJoinXMZZ=tagCGJoinXMZZ() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGJoinXMZZ.Cmd,m_NAtagCGJoinXMZZ.SubCmd))] = m_NAtagCGJoinXMZZ - - -#------------------------------------------------------ -# AC 04 查询仙盟抢Boss所有Boss当前进度 #tagCGQueryAllFamilyBossHurt - -class tagCGQueryAllFamilyBossHurt(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAC - self.SubCmd = 0x04 - 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 = 0xAC - self.SubCmd = 0x04 - return - - def GetLength(self): - return sizeof(tagCGQueryAllFamilyBossHurt) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AC 04 查询仙盟抢Boss所有Boss当前进度 //tagCGQueryAllFamilyBossHurt: - Cmd:%s, - SubCmd:%s - '''\ - %( - self.Cmd, - self.SubCmd - ) - return DumpString - - -m_NAtagCGQueryAllFamilyBossHurt=tagCGQueryAllFamilyBossHurt() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAllFamilyBossHurt.Cmd,m_NAtagCGQueryAllFamilyBossHurt.SubCmd))] = m_NAtagCGQueryAllFamilyBossHurt - - -#------------------------------------------------------ -# AC 03 仙魔之争信息查询 #tagCGXMZZInfoQuery - -class tagCGXMZZInfoQuery(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAC - self.SubCmd = 0x03 - 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 = 0xAC - self.SubCmd = 0x03 - return - - def GetLength(self): - return sizeof(tagCGXMZZInfoQuery) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AC 03 仙魔之争信息查询 //tagCGXMZZInfoQuery: - Cmd:%s, - SubCmd:%s - '''\ - %( - self.Cmd, - self.SubCmd - ) - return DumpString - - -m_NAtagCGXMZZInfoQuery=tagCGXMZZInfoQuery() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGXMZZInfoQuery.Cmd,m_NAtagCGXMZZInfoQuery.SubCmd))] = m_NAtagCGXMZZInfoQuery #------------------------------------------------------ @@ -14549,62 +12926,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): @@ -14657,9 +12978,9 @@ #------------------------------------------------------ -# B0 34 福地请求结算奖励 #tagCGMineAreaAwardGet +# B0 39 自动淘金免费使用 #tagCSGoldRushAutoFreeUse -class tagCGMineAreaAwardGet(Structure): +class tagCSGoldRushAutoFreeUse(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), @@ -14669,7 +12990,7 @@ def __init__(self): self.Clear() self.Cmd = 0xB0 - self.SubCmd = 0x34 + self.SubCmd = 0x39 return def ReadData(self, stringData, _pos=0, _len=0): @@ -14679,17 +13000,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 '''\ @@ -14700,26 +13021,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): @@ -14729,51 +13051,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): @@ -14783,110 +13110,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): @@ -14896,80 +13166,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 #------------------------------------------------------ @@ -15118,118 +13343,6 @@ m_NAtagReceiveFamilyArrestAward=tagReceiveFamilyArrestAward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagReceiveFamilyArrestAward.Cmd,m_NAtagReceiveFamilyArrestAward.SubCmd))] = m_NAtagReceiveFamilyArrestAward - - -#------------------------------------------------------ -# B0 10 请求协助Boss #tagCMRequestAssistBoss - -class tagCMRequestAssistBoss(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ObjID", c_int), - ("NPCID", c_int), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB0 - 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 = 0xB0 - self.SubCmd = 0x10 - self.ObjID = 0 - self.NPCID = 0 - return - - def GetLength(self): - return sizeof(tagCMRequestAssistBoss) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss: - Cmd:%s, - SubCmd:%s, - ObjID:%d, - NPCID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.ObjID, - self.NPCID - ) - return DumpString - - -m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss - - -#------------------------------------------------------ -# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB - -class tagCMRequestAssistTeamFB(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MapID", c_ushort), - ("LineID", c_ushort), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB0 - self.SubCmd = 0x11 - 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 = 0x11 - self.MapID = 0 - self.LineID = 0 - return - - def GetLength(self): - return sizeof(tagCMRequestAssistTeamFB) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB: - Cmd:%s, - SubCmd:%s, - MapID:%d, - LineID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MapID, - self.LineID - ) - return DumpString - - -m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB #------------------------------------------------------ @@ -15702,162 +13815,6 @@ #------------------------------------------------------ -# B1 06 助战召唤 #tagCMHelpBattleCall - -class tagCMHelpBattleCall(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("IsOneKeyCall", c_ubyte), # 是否一键召唤 - ("PlayerID", c_int), # 召唤的玩家ID,大于1小于100代表机器人 - ("IsGoldCall", c_ubyte), # 是否仙玉召唤 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB1 - self.SubCmd = 0x06 - 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 = 0x06 - self.IsOneKeyCall = 0 - self.PlayerID = 0 - self.IsGoldCall = 0 - return - - def GetLength(self): - return sizeof(tagCMHelpBattleCall) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B1 06 助战召唤 //tagCMHelpBattleCall: - Cmd:%s, - SubCmd:%s, - IsOneKeyCall:%d, - PlayerID:%d, - IsGoldCall:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.IsOneKeyCall, - self.PlayerID, - self.IsGoldCall - ) - return DumpString - - -m_NAtagCMHelpBattleCall=tagCMHelpBattleCall() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleCall.Cmd,m_NAtagCMHelpBattleCall.SubCmd))] = m_NAtagCMHelpBattleCall - - -#------------------------------------------------------ -# B1 05 助战登记 #tagCMHelpBattleCheckIn - -class tagCMHelpBattleCheckIn(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB1 - self.SubCmd = 0x05 - 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 = 0x05 - return - - def GetLength(self): - return sizeof(tagCMHelpBattleCheckIn) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B1 05 助战登记 //tagCMHelpBattleCheckIn: - Cmd:%s, - SubCmd:%s - '''\ - %( - self.Cmd, - self.SubCmd - ) - return DumpString - - -m_NAtagCMHelpBattleCheckIn=tagCMHelpBattleCheckIn() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleCheckIn.Cmd,m_NAtagCMHelpBattleCheckIn.SubCmd))] = m_NAtagCMHelpBattleCheckIn - - -#------------------------------------------------------ -# B1 07 助战刷新 #tagCMHelpBattleRefresh - -class tagCMHelpBattleRefresh(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB1 - 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 = 0xB1 - self.SubCmd = 0x07 - return - - def GetLength(self): - return sizeof(tagCMHelpBattleRefresh) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B1 07 助战刷新 //tagCMHelpBattleRefresh: - Cmd:%s, - SubCmd:%s - '''\ - %( - self.Cmd, - self.SubCmd - ) - return DumpString - - -m_NAtagCMHelpBattleRefresh=tagCMHelpBattleRefresh() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleRefresh.Cmd,m_NAtagCMHelpBattleRefresh.SubCmd))] = m_NAtagCMHelpBattleRefresh - - -#------------------------------------------------------ # B1 02 领取多倍副本奖励 #tagCMGetMultiFBPrize class tagCMGetMultiFBPrize(Structure): @@ -15915,58 +13872,6 @@ m_NAtagCMGetMultiFBPrize=tagCMGetMultiFBPrize() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetMultiFBPrize.Cmd,m_NAtagCMGetMultiFBPrize.SubCmd))] = m_NAtagCMGetMultiFBPrize - - -#------------------------------------------------------ -# B1 03 设置封魔坛多倍击杀 #tagCMSetFMTDouble - -class tagCMSetFMTDouble(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("IsDouble", c_ubyte), #是否双倍 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB1 - self.SubCmd = 0x03 - 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 = 0x03 - self.IsDouble = 0 - return - - def GetLength(self): - return sizeof(tagCMSetFMTDouble) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B1 03 设置封魔坛多倍击杀 //tagCMSetFMTDouble: - Cmd:%s, - SubCmd:%s, - IsDouble:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.IsDouble - ) - return DumpString - - -m_NAtagCMSetFMTDouble=tagCMSetFMTDouble() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSetFMTDouble.Cmd,m_NAtagCMSetFMTDouble.SubCmd))] = m_NAtagCMSetFMTDouble #------------------------------------------------------ @@ -16114,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): @@ -16198,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 @@ -16217,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 #------------------------------------------------------ @@ -16427,62 +14276,6 @@ m_NAtagCMFaceStarUP=tagCMFaceStarUP() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFaceStarUP.Cmd,m_NAtagCMFaceStarUP.SubCmd))] = m_NAtagCMFaceStarUP - - -#------------------------------------------------------ -# B2 25 新聚魂操作 #tagCMGatherTheSoulOP - -class tagCMGatherTheSoulOP(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("OpType", c_ubyte), # 0-激活升级; 1-穿戴替换; 2-卸下 - ("SoulID", c_int), # 聚魂ID;当操作升级时,如果为0代表一键升级所有可升级的 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB2 - 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 = 0xB2 - self.SubCmd = 0x25 - self.OpType = 0 - self.SoulID = 0 - return - - def GetLength(self): - return sizeof(tagCMGatherTheSoulOP) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B2 25 新聚魂操作 //tagCMGatherTheSoulOP: - Cmd:%s, - SubCmd:%s, - OpType:%d, - SoulID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.OpType, - self.SoulID - ) - return DumpString - - -m_NAtagCMGatherTheSoulOP=tagCMGatherTheSoulOP() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherTheSoulOP.Cmd,m_NAtagCMGatherTheSoulOP.SubCmd))] = m_NAtagCMGatherTheSoulOP #------------------------------------------------------ @@ -16877,7 +14670,6 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("HeroID", c_int), #武将ID - ("ItemIndex", c_ushort), #关联武将物品所在武将背包索引,激活时可不用发 ("BookType", c_ubyte), #图鉴激活类型: 0-初始激活;1-星级升级;2-突破等级升级 ] @@ -16896,7 +14688,6 @@ self.Cmd = 0xB2 self.SubCmd = 0x37 self.HeroID = 0 - self.ItemIndex = 0 self.BookType = 0 return @@ -16911,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 @@ -18882,7 +16671,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时发送消耗倍值 ] @@ -19963,10 +17752,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 @@ -20701,62 +18490,6 @@ #------------------------------------------------------ -# B9 04 修改队伍相关审核状态 #tagCMChangeTeamCheckState - -class tagCMChangeTeamCheckState(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("JoinReqCheck", c_ubyte), #入队申请是否需要审核, 0否1是, 默认否, 即自动接受 - ("InviteCheck", c_ubyte), #组队邀请是否需要审核, 0否1是, 默认否, 即自动接受 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB9 - self.SubCmd = 0x04 - 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 = 0xB9 - self.SubCmd = 0x04 - self.JoinReqCheck = 0 - self.InviteCheck = 0 - return - - def GetLength(self): - return sizeof(tagCMChangeTeamCheckState) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B9 04 修改队伍相关审核状态 //tagCMChangeTeamCheckState: - Cmd:%s, - SubCmd:%s, - JoinReqCheck:%d, - InviteCheck:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.JoinReqCheck, - self.InviteCheck - ) - return DumpString - - -m_NAtagCMChangeTeamCheckState=tagCMChangeTeamCheckState() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeTeamCheckState.Cmd,m_NAtagCMChangeTeamCheckState.SubCmd))] = m_NAtagCMChangeTeamCheckState - - -#------------------------------------------------------ # B9 03 修改队伍信息 #tagCGChangeTeamInfo class tagCGChangeTeamInfo(Structure): @@ -21440,58 +19173,6 @@ #------------------------------------------------------ -# B9 10 查询在线队员对应功能数据 #tagCGQueryTeamMemFuncData - -class tagCGQueryTeamMemFuncData(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("TeamMemFuncType", c_ubyte), # 查询队员的功能数据类型 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB9 - 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 = 0xB9 - self.SubCmd = 0x10 - self.TeamMemFuncType = 0 - return - - def GetLength(self): - return sizeof(tagCGQueryTeamMemFuncData) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B9 10 查询在线队员对应功能数据 //tagCGQueryTeamMemFuncData: - Cmd:%s, - SubCmd:%s, - TeamMemFuncType:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.TeamMemFuncType - ) - return DumpString - - -m_NAtagCGQueryTeamMemFuncData=tagCGQueryTeamMemFuncData() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTeamMemFuncData.Cmd,m_NAtagCGQueryTeamMemFuncData.SubCmd))] = m_NAtagCGQueryTeamMemFuncData - - -#------------------------------------------------------ # B9 11 请求加入队伍 #tagCGRequestJoinTeam class tagCGRequestJoinTeam(Structure): @@ -21829,186 +19510,6 @@ m_NAtagCGChampionshipOfficialLeave=tagCGChampionshipOfficialLeave() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialLeave.Cmd,m_NAtagCGChampionshipOfficialLeave.SubCmd))] = m_NAtagCGChampionshipOfficialLeave - - -#------------------------------------------------------ -# C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange - -class tagCGCrossBattlefieldCallChange(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("Hour", c_ubyte), #战场开启时 - ("Minute", c_ubyte), #战场开启分 - ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xC0 - 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 = 0xC0 - self.SubCmd = 0x09 - self.Hour = 0 - self.Minute = 0 - self.ServerOnly = 0 - return - - def GetLength(self): - return sizeof(tagCGCrossBattlefieldCallChange) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// C0 09 跨服战场召集场次修改 //tagCGCrossBattlefieldCallChange: - Cmd:%s, - SubCmd:%s, - Hour:%d, - Minute:%d, - ServerOnly:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.Hour, - self.Minute, - self.ServerOnly - ) - return DumpString - - -m_NAtagCGCrossBattlefieldCallChange=tagCGCrossBattlefieldCallChange() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallChange.Cmd,m_NAtagCGCrossBattlefieldCallChange.SubCmd))] = m_NAtagCGCrossBattlefieldCallChange - - -#------------------------------------------------------ -# C0 08 跨服战场召集场次踢人 #tagCGCrossBattlefieldCallKick - -class tagCGCrossBattlefieldCallKick(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("Hour", c_ubyte), #战场开启时 - ("Minute", c_ubyte), #战场开启分 - ("TagPlayerID", c_int), #目标玩家ID,即要被踢出去的玩家ID - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xC0 - 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 = 0xC0 - self.SubCmd = 0x08 - self.Hour = 0 - self.Minute = 0 - self.TagPlayerID = 0 - return - - def GetLength(self): - return sizeof(tagCGCrossBattlefieldCallKick) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// C0 08 跨服战场召集场次踢人 //tagCGCrossBattlefieldCallKick: - Cmd:%s, - SubCmd:%s, - Hour:%d, - Minute:%d, - TagPlayerID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.Hour, - self.Minute, - self.TagPlayerID - ) - return DumpString - - -m_NAtagCGCrossBattlefieldCallKick=tagCGCrossBattlefieldCallKick() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallKick.Cmd,m_NAtagCGCrossBattlefieldCallKick.SubCmd))] = m_NAtagCGCrossBattlefieldCallKick - - -#------------------------------------------------------ -# C0 07 跨服战场加入召集场次 #tagCGCrossBattlefieldJoinByCall - -class tagCGCrossBattlefieldJoinByCall(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("Hour", c_ubyte), #战场开启时 - ("Minute", c_ubyte), #战场开启分 - ("BuyPlayerID", c_int), #加入目标玩家的召集队伍,即购买召集场的玩家ID - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xC0 - 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 = 0xC0 - self.SubCmd = 0x07 - self.Hour = 0 - self.Minute = 0 - self.BuyPlayerID = 0 - return - - def GetLength(self): - return sizeof(tagCGCrossBattlefieldJoinByCall) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// C0 07 跨服战场加入召集场次 //tagCGCrossBattlefieldJoinByCall: - Cmd:%s, - SubCmd:%s, - Hour:%d, - Minute:%d, - BuyPlayerID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.Hour, - self.Minute, - self.BuyPlayerID - ) - return DumpString - - -m_NAtagCGCrossBattlefieldJoinByCall=tagCGCrossBattlefieldJoinByCall() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldJoinByCall.Cmd,m_NAtagCGCrossBattlefieldJoinByCall.SubCmd))] = m_NAtagCGCrossBattlefieldJoinByCall #------------------------------------------------------ @@ -22657,70 +20158,6 @@ m_NAtagCMChampionshipWorship=tagCMChampionshipWorship() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipWorship.Cmd,m_NAtagCMChampionshipWorship.SubCmd))] = m_NAtagCMChampionshipWorship - - -#------------------------------------------------------ -# C1 09 跨服战场购买开启场次 #tagCMCrossBattlefieldBuyOpen - -class tagCMCrossBattlefieldBuyOpen(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("Hour", c_ubyte), #战场开启时 - ("Minute", c_ubyte), #战场开启分 - ("Faction", c_ubyte), #阵营 1-红;2-蓝 - ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xC1 - 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 = 0xC1 - self.SubCmd = 0x09 - self.Hour = 0 - self.Minute = 0 - self.Faction = 0 - self.ServerOnly = 0 - return - - def GetLength(self): - return sizeof(tagCMCrossBattlefieldBuyOpen) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// C1 09 跨服战场购买开启场次 //tagCMCrossBattlefieldBuyOpen: - Cmd:%s, - SubCmd:%s, - Hour:%d, - Minute:%d, - Faction:%d, - ServerOnly:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.Hour, - self.Minute, - self.Faction, - self.ServerOnly - ) - return DumpString - - -m_NAtagCMCrossBattlefieldBuyOpen=tagCMCrossBattlefieldBuyOpen() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCrossBattlefieldBuyOpen.Cmd,m_NAtagCMCrossBattlefieldBuyOpen.SubCmd))] = m_NAtagCMCrossBattlefieldBuyOpen #------------------------------------------------------ -- Gitblit v1.8.0