From d0f5f9922f17f5bff4288173f18a9ed827d95db8 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期六, 22 六月 2019 15:00:13 +0800 Subject: [PATCH] 1 装备评分增加装备掉率参数固定值 DropEquipPer --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 1419 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 1,225 insertions(+), 194 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 8b7eeae..8b60580 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -2121,6 +2121,58 @@ #------------------------------------------------------ +# A4 0D 通知建盟次数 #tagGCServerCreatFamilyTimes + +class tagGCServerCreatFamilyTimes(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("Times", c_int), #建盟次数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA4 + 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 = 0xA4 + self.SubCmd = 0x0D + self.Times = 0 + return + + def GetLength(self): + return sizeof(tagGCServerCreatFamilyTimes) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A4 0D 通知建盟次数 //tagGCServerCreatFamilyTimes: + Cmd:%s, + SubCmd:%s, + Times:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.Times + ) + return DumpString + + +m_NAtagGCServerCreatFamilyTimes=tagGCServerCreatFamilyTimes() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCServerCreatFamilyTimes.Cmd,m_NAtagGCServerCreatFamilyTimes.SubCmd))] = m_NAtagGCServerCreatFamilyTimes + + +#------------------------------------------------------ #A4 01 查看申请入会的玩家信息 #tagGCViewFamilyRequestInfo class tagtMemberInfo(Structure): @@ -3371,6 +3423,190 @@ #------------------------------------------------------ +# A9 05 通知广播装备详细信息 #tagGCNotifyEquipDetailInfo + +class tagGCNotifyEquipClassEquip(Structure): + _pack_ = 1 + _fields_ = [ + ("ItemID", c_int), + ("Star", c_ubyte), + ] + + def __init__(self): + self.Clear() + 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.ItemID = 0 + self.Star = 0 + return + + def GetLength(self): + return sizeof(tagGCNotifyEquipClassEquip) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A9 05 通知广播装备详细信息 //tagGCNotifyEquipDetailInfo: + ItemID:%d, + Star:%d + '''\ + %( + self.ItemID, + self.Star + ) + return DumpString + + +class tagGCNotifyEquipDetailInfo(Structure): + Head = tagHead() + ItemGUID = "" #(char ItemGUID[40]) + ItemID = 0 #(DWORD ItemID) + Star = 0 #(BYTE Star)//星级 + PlusLV = 0 #(WORD PlusLV)//强化等级 + EvolveLV = 0 #(BYTE EvolveLV)//进化等级 + WashLV = 0 #(BYTE WashLV)//洗练等级 + WashValueCount = 0 #(BYTE WashValueCount) + WashValueList = list() #(vector<WORD> WashValueList)//洗练值 + StoneIDCount = 0 #(BYTE StoneIDCount) + StoneIDList = list() #(vector<DWORD> StoneIDList)//宝石 + ClassEquipCount = 0 #(BYTE ClassEquipCount) + ClassEquipList = list() #(vector<tagGCNotifyEquipClassEquip> ClassEquipList)//本境界穿戴的装备 + 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) + self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Star,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.PlusLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.EvolveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.WashLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.WashValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.WashValueCount): + value,_pos=CommFunc.ReadWORD(_lpData,_pos) + self.WashValueList.append(value) + self.StoneIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.StoneIDCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.StoneIDList.append(value) + self.ClassEquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.ClassEquipCount): + temClassEquipList = tagGCNotifyEquipClassEquip() + _pos = temClassEquipList.ReadData(_lpData, _pos) + self.ClassEquipList.append(temClassEquipList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA9 + self.Head.SubCmd = 0x05 + self.ItemGUID = "" + self.ItemID = 0 + self.Star = 0 + self.PlusLV = 0 + self.EvolveLV = 0 + self.WashLV = 0 + self.WashValueCount = 0 + self.WashValueList = list() + self.StoneIDCount = 0 + self.StoneIDList = list() + self.ClassEquipCount = 0 + self.ClassEquipList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 40 + length += 4 + length += 1 + length += 2 + length += 1 + length += 1 + length += 1 + length += 2 * self.WashValueCount + length += 1 + length += 4 * self.StoneIDCount + length += 1 + for i in range(self.ClassEquipCount): + length += self.ClassEquipList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 40, self.ItemGUID) + data = CommFunc.WriteDWORD(data, self.ItemID) + data = CommFunc.WriteBYTE(data, self.Star) + data = CommFunc.WriteWORD(data, self.PlusLV) + data = CommFunc.WriteBYTE(data, self.EvolveLV) + data = CommFunc.WriteBYTE(data, self.WashLV) + data = CommFunc.WriteBYTE(data, self.WashValueCount) + for i in range(self.WashValueCount): + data = CommFunc.WriteWORD(data, self.WashValueList[i]) + data = CommFunc.WriteBYTE(data, self.StoneIDCount) + for i in range(self.StoneIDCount): + data = CommFunc.WriteDWORD(data, self.StoneIDList[i]) + data = CommFunc.WriteBYTE(data, self.ClassEquipCount) + for i in range(self.ClassEquipCount): + data = CommFunc.WriteString(data, self.ClassEquipList[i].GetLength(), self.ClassEquipList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + ItemGUID:%s, + ItemID:%d, + Star:%d, + PlusLV:%d, + EvolveLV:%d, + WashLV:%d, + WashValueCount:%d, + WashValueList:%s, + StoneIDCount:%d, + StoneIDList:%s, + ClassEquipCount:%d, + ClassEquipList:%s + '''\ + %( + self.Head.OutputString(), + self.ItemGUID, + self.ItemID, + self.Star, + self.PlusLV, + self.EvolveLV, + self.WashLV, + self.WashValueCount, + "...", + self.StoneIDCount, + "...", + self.ClassEquipCount, + "..." + ) + return DumpString + + +m_NAtagGCNotifyEquipDetailInfo=tagGCNotifyEquipDetailInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNotifyEquipDetailInfo.Head.Cmd,m_NAtagGCNotifyEquipDetailInfo.Head.SubCmd))] = m_NAtagGCNotifyEquipDetailInfo + + +#------------------------------------------------------ #A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount class tagGCOpenServerCampaignAwardCount(Structure): @@ -4590,6 +4826,58 @@ m_NAtagGCFairyCeremonyInfo=tagGCFairyCeremonyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFairyCeremonyInfo.Head.Cmd,m_NAtagGCFairyCeremonyInfo.Head.SubCmd))] = m_NAtagGCFairyCeremonyInfo + + +#------------------------------------------------------ +# AC 01 仙盟联赛信息通知 #tagGCFamilyWarInfo + +class tagGCFamilyWarInfo(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("WorldLV", c_ushort), # 当前进行中的联赛世界等级 + ] + + 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 + self.WorldLV = 0 + return + + def GetLength(self): + return sizeof(tagGCFamilyWarInfo) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AC 01 仙盟联赛信息通知 //tagGCFamilyWarInfo: + Cmd:%s, + SubCmd:%s, + WorldLV:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.WorldLV + ) + return DumpString + + +m_NAtagGCFamilyWarInfo=tagGCFamilyWarInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyWarInfo.Cmd,m_NAtagGCFamilyWarInfo.SubCmd))] = m_NAtagGCFamilyWarInfo #------------------------------------------------------ @@ -12389,6 +12677,8 @@ _fields_ = [ ("ItemID", c_int), #果实物品ID ("EatCnt", c_ushort), #已使用个数 + ("ItemAddCnt", c_int), #增幅丹增加上限 + ("ItemBreakCnt", c_int), #增幅丹突破次数 ] def __init__(self): @@ -12403,6 +12693,8 @@ def Clear(self): self.ItemID = 0 self.EatCnt = 0 + self.ItemAddCnt = 0 + self.ItemBreakCnt = 0 return def GetLength(self): @@ -12414,11 +12706,15 @@ def OutputString(self): DumpString = '''// A3 39 玩家属性果实已使用个数信息//tagMCAttrFruitEatCntList: ItemID:%d, - EatCnt:%d + EatCnt:%d, + ItemAddCnt:%d, + ItemBreakCnt:%d '''\ %( self.ItemID, - self.EatCnt + self.EatCnt, + self.ItemAddCnt, + self.ItemBreakCnt ) return DumpString @@ -13903,7 +14199,9 @@ class tagMCFairyDomainInfo(Structure): Head = tagHead() - State = 0 #(BYTE State)//是否寻访中 + IsAll = 0 #(BYTE IsAll)//是否全部 + State = 0 #(BYTE State)//0-未寻访 1-寻访中 2-任务标记可寻访 + VisitCnt = 0 #(DWORD VisitCnt)//寻访次数 Energy = 0 #(WORD Energy)//体力 Count = 0 #(BYTE Count)// 信息个数 InfoList = list() #(vector<tagMCFairyDomainEvent> InfoList)// 信息列表 @@ -13918,7 +14216,9 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) + self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.VisitCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Energy,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): @@ -13932,7 +14232,9 @@ self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x06 + self.IsAll = 0 self.State = 0 + self.VisitCnt = 0 self.Energy = 0 self.Count = 0 self.InfoList = list() @@ -13942,6 +14244,8 @@ length = 0 length += self.Head.GetLength() length += 1 + length += 1 + length += 4 length += 2 length += 1 for i in range(self.Count): @@ -13952,7 +14256,9 @@ def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.IsAll) data = CommFunc.WriteBYTE(data, self.State) + data = CommFunc.WriteDWORD(data, self.VisitCnt) data = CommFunc.WriteWORD(data, self.Energy) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): @@ -13962,14 +14268,18 @@ def OutputString(self): DumpString = ''' Head:%s, + IsAll:%d, State:%d, + VisitCnt:%d, Energy:%d, Count:%d, InfoList:%s '''\ %( self.Head.OutputString(), + self.IsAll, self.State, + self.VisitCnt, self.Energy, self.Count, "..." @@ -15514,6 +15824,114 @@ #------------------------------------------------------ +# A3 25 NPC已攻击次数信息 #tagMCNPCAttackCountInfo + +class tagMCNPCAttackCount(Structure): + _pack_ = 1 + _fields_ = [ + ("NPCID", c_int), + ("AttackCount", c_ubyte), #已攻击次数 + ] + + def __init__(self): + self.Clear() + 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.NPCID = 0 + self.AttackCount = 0 + return + + def GetLength(self): + return sizeof(tagMCNPCAttackCount) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 25 NPC已攻击次数信息 //tagMCNPCAttackCountInfo: + NPCID:%d, + AttackCount:%d + '''\ + %( + self.NPCID, + self.AttackCount + ) + return DumpString + + +class tagMCNPCAttackCountInfo(Structure): + Head = tagHead() + Count = 0 #(BYTE Count) + NPCAttackCountList = list() #(vector<tagMCNPCAttackCount> NPCAttackCountList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x25 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + temNPCAttackCountList = tagMCNPCAttackCount() + _pos = temNPCAttackCountList.ReadData(_lpData, _pos) + self.NPCAttackCountList.append(temNPCAttackCountList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x25 + self.Count = 0 + self.NPCAttackCountList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Count): + length += self.NPCAttackCountList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.NPCAttackCountList[i].GetLength(), self.NPCAttackCountList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + NPCAttackCountList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagMCNPCAttackCountInfo=tagMCNPCAttackCountInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCAttackCountInfo.Head.Cmd,m_NAtagMCNPCAttackCountInfo.Head.SubCmd))] = m_NAtagMCNPCAttackCountInfo + + +#------------------------------------------------------ # A3 26 NPCID已采集次数信息 #tagMCNPCIDCollectionCntInfo class tagMCNPCIDCollectionCnt(Structure): @@ -16146,20 +16564,16 @@ #------------------------------------------------------ # A3 BF 通知客户端炼丹炉信息 #tagMCPlayerStoveMsg -class tagMCPlayerStoveMsg(Structure): +class tagMCPlayerStoveInfo(Structure): _pack_ = 1 _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("StoveLV", c_ubyte), # 炼丹炉等级 - ("StoveExp", c_int), # 炼丹炉经验 - ("ItemID", c_int), # 合成物品id + ("AlchemyID", c_int), # 丹 ID + ("StartTime", c_int), # 开始炼的时间 + ("AlchemyTimes", c_ushort), # 炼的次数 ] def __init__(self): self.Clear() - self.Cmd = 0xA3 - self.SubCmd = 0xBF return def ReadData(self, stringData, _pos=0, _len=0): @@ -16168,39 +16582,123 @@ return _pos + self.GetLength() def Clear(self): - self.Cmd = 0xA3 - self.SubCmd = 0xBF - self.StoveLV = 0 - self.StoveExp = 0 - self.ItemID = 0 + self.AlchemyID = 0 + self.StartTime = 0 + self.AlchemyTimes = 0 return def GetLength(self): - return sizeof(tagMCPlayerStoveMsg) + return sizeof(tagMCPlayerStoveInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 BF 通知客户端炼丹炉信息 //tagMCPlayerStoveMsg: - Cmd:%s, - SubCmd:%s, - StoveLV:%d, - StoveExp:%d, - ItemID:%d + AlchemyID:%d, + StartTime:%d, + AlchemyTimes:%d '''\ %( - self.Cmd, - self.SubCmd, + self.AlchemyID, + self.StartTime, + self.AlchemyTimes + ) + return DumpString + + +class tagMCPlayerStoveMsg(Structure): + Head = tagHead() + StoveLV = 0 #(BYTE StoveLV)// 炼丹炉等级 + StoveExp = 0 #(DWORD StoveExp)// 炼丹炉经验 + ItemID = 0 #(DWORD ItemID)// 合成物品id + ItemCnt = 0 #(BYTE ItemCnt)// 丹药数量 + StoveCnt = 0 #(WORD StoveCnt)// 丹药数量 + InfoList = list() #(vector<tagMCPlayerStoveInfo> InfoList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0xBF + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.StoveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.StoveExp,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.StoveCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) + for i in range(self.StoveCnt): + temInfoList = tagMCPlayerStoveInfo() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0xBF + self.StoveLV = 0 + self.StoveExp = 0 + self.ItemID = 0 + self.ItemCnt = 0 + self.StoveCnt = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 4 + length += 4 + length += 1 + length += 2 + for i in range(self.StoveCnt): + length += self.InfoList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.StoveLV) + data = CommFunc.WriteDWORD(data, self.StoveExp) + data = CommFunc.WriteDWORD(data, self.ItemID) + data = CommFunc.WriteBYTE(data, self.ItemCnt) + data = CommFunc.WriteWORD(data, self.StoveCnt) + for i in range(self.StoveCnt): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + StoveLV:%d, + StoveExp:%d, + ItemID:%d, + ItemCnt:%d, + StoveCnt:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), self.StoveLV, self.StoveExp, - self.ItemID + self.ItemID, + self.ItemCnt, + self.StoveCnt, + "..." ) return DumpString m_NAtagMCPlayerStoveMsg=tagMCPlayerStoveMsg() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Cmd,m_NAtagMCPlayerStoveMsg.SubCmd))] = m_NAtagMCPlayerStoveMsg +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Head.Cmd,m_NAtagMCPlayerStoveMsg.Head.SubCmd))] = m_NAtagMCPlayerStoveMsg #------------------------------------------------------ @@ -16268,6 +16766,8 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BeginTime", c_int), #开始计时时间 + ("BuffTime", c_int), #buff剩余时间 + ("BuffAddRate", c_int), #buff加成万分率 ("CurExp", c_int), #当前总经验 ("CurExpPoint", c_int), #当前总经验点 ] @@ -16287,6 +16787,8 @@ self.Cmd = 0xA3 self.SubCmd = 0x27 self.BeginTime = 0 + self.BuffTime = 0 + self.BuffAddRate = 0 self.CurExp = 0 self.CurExpPoint = 0 return @@ -16302,6 +16804,8 @@ Cmd:%s, SubCmd:%s, BeginTime:%d, + BuffTime:%d, + BuffAddRate:%d, CurExp:%d, CurExpPoint:%d '''\ @@ -16309,6 +16813,8 @@ self.Cmd, self.SubCmd, self.BeginTime, + self.BuffTime, + self.BuffAddRate, self.CurExp, self.CurExpPoint ) @@ -16567,6 +17073,178 @@ m_NAtagMCSingleGoldGift=tagMCSingleGoldGift() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSingleGoldGift.Cmd,m_NAtagMCSingleGoldGift.SubCmd))] = m_NAtagMCSingleGoldGift + + +#------------------------------------------------------ +# A3 09 技能五行专精信息 #tagMCSkillElementInfo + +class tagMCSkillElementActiveData(Structure): + _pack_ = 1 + _fields_ = [ + ("SkillID", c_int), # 技能ID + ("ActiveLV", c_ubyte), # 激活等级 + ] + + def __init__(self): + self.Clear() + 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.SkillID = 0 + self.ActiveLV = 0 + return + + def GetLength(self): + return sizeof(tagMCSkillElementActiveData) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 09 技能五行专精信息 //tagMCSkillElementInfo: + SkillID:%d, + ActiveLV:%d + '''\ + %( + self.SkillID, + self.ActiveLV + ) + return DumpString + + +class tagMCSkillElementData(Structure): + MainSkillID = 0 #(DWORD MainSkillID)// 主技能ID + ElementSkillID = 0 #(DWORD ElementSkillID)// 选择的专精技能ID + SkillCnt = 0 #(BYTE SkillCnt)// 数量 + ActiveSkill = list() #(vector<tagMCSkillElementActiveData> ActiveSkill)// 激活的技能ID + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.MainSkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ElementSkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.SkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.SkillCnt): + temActiveSkill = tagMCSkillElementActiveData() + _pos = temActiveSkill.ReadData(_lpData, _pos) + self.ActiveSkill.append(temActiveSkill) + return _pos + + def Clear(self): + self.MainSkillID = 0 + self.ElementSkillID = 0 + self.SkillCnt = 0 + self.ActiveSkill = list() + return + + def GetLength(self): + length = 0 + length += 4 + length += 4 + length += 1 + for i in range(self.SkillCnt): + length += self.ActiveSkill[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteDWORD(data, self.MainSkillID) + data = CommFunc.WriteDWORD(data, self.ElementSkillID) + data = CommFunc.WriteBYTE(data, self.SkillCnt) + for i in range(self.SkillCnt): + data = CommFunc.WriteString(data, self.ActiveSkill[i].GetLength(), self.ActiveSkill[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + MainSkillID:%d, + ElementSkillID:%d, + SkillCnt:%d, + ActiveSkill:%s + '''\ + %( + self.MainSkillID, + self.ElementSkillID, + self.SkillCnt, + "..." + ) + return DumpString + + +class tagMCSkillElementInfo(Structure): + Head = tagHead() + Cnt = 0 #(BYTE Cnt)// 数量 + InfoList = list() #(vector<tagMCSkillElementData> InfoList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x09 + 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): + temInfoList = tagMCSkillElementData() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x09 + self.Cnt = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Cnt): + length += self.InfoList[i].GetLength() + + 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.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Cnt:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), + self.Cnt, + "..." + ) + return DumpString + + +m_NAtagMCSkillElementInfo=tagMCSkillElementInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSkillElementInfo.Head.Cmd,m_NAtagMCSkillElementInfo.Head.SubCmd))] = m_NAtagMCSkillElementInfo #------------------------------------------------------ @@ -17972,6 +18650,58 @@ #------------------------------------------------------ +# A5 02 家族活跃令兑换结果 #tagMCFamilyActivityExchangeResult + +class tagMCFamilyActivityExchangeResult(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("Point", c_int), # 活跃令 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x02 + 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 = 0x02 + self.Point = 0 + return + + def GetLength(self): + return sizeof(tagMCFamilyActivityExchangeResult) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 02 家族活跃令兑换结果 //tagMCFamilyActivityExchangeResult: + Cmd:%s, + SubCmd:%s, + Point:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.Point + ) + return DumpString + + +m_NAtagMCFamilyActivityExchangeResult=tagMCFamilyActivityExchangeResult() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityExchangeResult.Cmd,m_NAtagMCFamilyActivityExchangeResult.SubCmd))] = m_NAtagMCFamilyActivityExchangeResult + + +#------------------------------------------------------ # A5 06 仙盟每日福利领取状态 #tagMCFamilyDayAward class tagMCFamilyDayAward(Structure): @@ -18862,6 +19592,125 @@ m_NAtagMCChatBubbleBoxState=tagMCChatBubbleBoxState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChatBubbleBoxState.Cmd,m_NAtagMCChatBubbleBoxState.SubCmd))] = m_NAtagMCChatBubbleBoxState + + +#------------------------------------------------------ +# A7 18 采集奖励物品通知 #tagMCCollectAwardItemInfo + +class tagMCCollectAwardItem(Structure): + _pack_ = 1 + _fields_ = [ + ("ItemID", c_int), + ("Count", c_ubyte), + ("IsAuctionItem", c_ubyte), #是否拍品 + ] + + def __init__(self): + self.Clear() + 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.ItemID = 0 + self.Count = 0 + self.IsAuctionItem = 0 + return + + def GetLength(self): + return sizeof(tagMCCollectAwardItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A7 18 采集奖励物品通知 //tagMCCollectAwardItemInfo: + ItemID:%d, + Count:%d, + IsAuctionItem:%d + '''\ + %( + self.ItemID, + self.Count, + self.IsAuctionItem + ) + return DumpString + + +class tagMCCollectAwardItemInfo(Structure): + Head = tagHead() + CollectNPCID = 0 #(DWORD CollectNPCID)//采集的NPCID + Count = 0 #(BYTE Count) + AwardItemList = list() #(vector<tagMCCollectAwardItem> AwardItemList)//奖励物品信息列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x18 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.CollectNPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + temAwardItemList = tagMCCollectAwardItem() + _pos = temAwardItemList.ReadData(_lpData, _pos) + self.AwardItemList.append(temAwardItemList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x18 + self.CollectNPCID = 0 + self.Count = 0 + self.AwardItemList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 4 + length += 1 + for i in range(self.Count): + length += self.AwardItemList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteDWORD(data, self.CollectNPCID) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + CollectNPCID:%d, + Count:%d, + AwardItemList:%s + '''\ + %( + self.Head.OutputString(), + self.CollectNPCID, + self.Count, + "..." + ) + return DumpString + + +m_NAtagMCCollectAwardItemInfo=tagMCCollectAwardItemInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCollectAwardItemInfo.Head.Cmd,m_NAtagMCCollectAwardItemInfo.Head.SubCmd))] = m_NAtagMCCollectAwardItemInfo #------------------------------------------------------ @@ -19902,6 +20751,84 @@ m_NAtagMCNPCShow=tagMCNPCShow() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCShow.Cmd,m_NAtagMCNPCShow.SubCmd))] = m_NAtagMCNPCShow + + +#------------------------------------------------------ +# A7 19 查询玩家境界阶装备信息结果 #tagSCPlayerEquipCacheResult + +class tagSCPlayerEquipCacheResult(Structure): + Head = tagHead() + PlayerID = 0 #(DWORD PlayerID)//玩家ID + EquipClassLV = 0 #(BYTE EquipClassLV) + ItemDataSize = 0 #(WORD ItemDataSize) + ItemData = "" #(String ItemData)//物品记录 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x19 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.EquipClassLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ItemDataSize,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x19 + self.PlayerID = 0 + self.EquipClassLV = 0 + self.ItemDataSize = 0 + self.ItemData = "" + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 4 + length += 1 + length += 2 + length += len(self.ItemData) + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteDWORD(data, self.PlayerID) + data = CommFunc.WriteBYTE(data, self.EquipClassLV) + data = CommFunc.WriteWORD(data, self.ItemDataSize) + data = CommFunc.WriteString(data, self.ItemDataSize, self.ItemData) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + PlayerID:%d, + EquipClassLV:%d, + ItemDataSize:%d, + ItemData:%s + '''\ + %( + self.Head.OutputString(), + self.PlayerID, + self.EquipClassLV, + self.ItemDataSize, + self.ItemData + ) + return DumpString + + +m_NAtagSCPlayerEquipCacheResult=tagSCPlayerEquipCacheResult() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCPlayerEquipCacheResult.Head.Cmd,m_NAtagSCPlayerEquipCacheResult.Head.SubCmd))] = m_NAtagSCPlayerEquipCacheResult #------------------------------------------------------ @@ -21192,118 +22119,6 @@ m_NAtagMCVirtualItemDrop=tagMCVirtualItemDrop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVirtualItemDrop.Head.Cmd,m_NAtagMCVirtualItemDrop.Head.SubCmd))] = m_NAtagMCVirtualItemDrop - - -#------------------------------------------------------ -# A8 15 诛仙装备分解结果通知 #tagMCZhuXianDecomposeResult - -class tagMCZhuXianDecomposeItem(Structure): - _pack_ = 1 - _fields_ = [ - ("ItemID", c_int), #物品ID - ("ItemCnt", c_ubyte), #物品数量 - ("IsBind", c_ubyte), #是否绑定 - ] - - def __init__(self): - self.Clear() - 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.ItemID = 0 - self.ItemCnt = 0 - self.IsBind = 0 - return - - def GetLength(self): - return sizeof(tagMCZhuXianDecomposeItem) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A8 15 诛仙装备分解结果通知 //tagMCZhuXianDecomposeResult: - ItemID:%d, - ItemCnt:%d, - IsBind:%d - '''\ - %( - self.ItemID, - self.ItemCnt, - self.IsBind - ) - return DumpString - - -class tagMCZhuXianDecomposeResult(Structure): - Head = tagHead() - Cnt = 0 #(BYTE Cnt)//数量 - ItemList = list() #(vector<tagMCZhuXianDecomposeItem> ItemList) - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA8 - self.Head.SubCmd = 0x15 - 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): - temItemList = tagMCZhuXianDecomposeItem() - _pos = temItemList.ReadData(_lpData, _pos) - self.ItemList.append(temItemList) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA8 - self.Head.SubCmd = 0x15 - self.Cnt = 0 - self.ItemList = list() - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - for i in range(self.Cnt): - length += self.ItemList[i].GetLength() - - 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.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer()) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - Cnt:%d, - ItemList:%s - '''\ - %( - self.Head.OutputString(), - self.Cnt, - "..." - ) - return DumpString - - -m_NAtagMCZhuXianDecomposeResult=tagMCZhuXianDecomposeResult() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianDecomposeResult.Head.Cmd,m_NAtagMCZhuXianDecomposeResult.Head.SubCmd))] = m_NAtagMCZhuXianDecomposeResult #------------------------------------------------------ @@ -27611,6 +28426,54 @@ #------------------------------------------------------ +#B1 08 开始印记流失时间 #tagMCYinjiStartTime + +class tagMCYinjiStartTime(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + 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 + return + + def GetLength(self): + return sizeof(tagMCYinjiStartTime) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''//B1 08 开始印记流失时间 //tagMCYinjiStartTime: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagMCYinjiStartTime=tagMCYinjiStartTime() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCYinjiStartTime.Cmd,m_NAtagMCYinjiStartTime.SubCmd))] = m_NAtagMCYinjiStartTime + + +#------------------------------------------------------ # B2 08 获得仙缘币信息 #tagMCAddXianyuanCoinMsg class tagMCAddXianyuanCoinMsg(Structure): @@ -27912,6 +28775,118 @@ m_NAtagMCFamilyWarBillboard=tagMCFamilyWarBillboard() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyWarBillboard.Head.Cmd,m_NAtagMCFamilyWarBillboard.Head.SubCmd))] = m_NAtagMCFamilyWarBillboard + + +#------------------------------------------------------ +# B2 15 副本买buff信息通知 #tagMCFBBuyBuffInfo + +class tagMCFBBuyBuffTime(Structure): + _pack_ = 1 + _fields_ = [ + ("MapID", c_int), + ("MoneyCnt", c_ushort), + ("BuyTime", c_int), + ] + + def __init__(self): + self.Clear() + 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.MapID = 0 + self.MoneyCnt = 0 + self.BuyTime = 0 + return + + def GetLength(self): + return sizeof(tagMCFBBuyBuffTime) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 15 副本买buff信息通知 //tagMCFBBuyBuffInfo: + MapID:%d, + MoneyCnt:%d, + BuyTime:%d + '''\ + %( + self.MapID, + self.MoneyCnt, + self.BuyTime + ) + return DumpString + + +class tagMCFBBuyBuffInfo(Structure): + Head = tagHead() + Cnt = 0 #(BYTE Cnt) + InfoList = list() #(vector<tagMCFBBuyBuffTime> InfoList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x15 + 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): + temInfoList = tagMCFBBuyBuffTime() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x15 + self.Cnt = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Cnt): + length += self.InfoList[i].GetLength() + + 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.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Cnt:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), + self.Cnt, + "..." + ) + return DumpString + + +m_NAtagMCFBBuyBuffInfo=tagMCFBBuyBuffInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBBuyBuffInfo.Head.Cmd,m_NAtagMCFBBuyBuffInfo.Head.SubCmd))] = m_NAtagMCFBBuyBuffInfo #------------------------------------------------------ @@ -28753,6 +29728,118 @@ #------------------------------------------------------ +# B2 13 天星塔通关层数 #tagMCSkyTowerInfo + +class tagMCSkyTowerInfo(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("Floor", c_int), # 已通关层 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + self.SubCmd = 0x13 + 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 = 0x13 + self.Floor = 0 + return + + def GetLength(self): + return sizeof(tagMCSkyTowerInfo) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 13 天星塔通关层数 //tagMCSkyTowerInfo: + Cmd:%s, + SubCmd:%s, + Floor:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.Floor + ) + return DumpString + + +m_NAtagMCSkyTowerInfo=tagMCSkyTowerInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSkyTowerInfo.Cmd,m_NAtagMCSkyTowerInfo.SubCmd))] = m_NAtagMCSkyTowerInfo + + +#------------------------------------------------------ +# B2 16 开始自定义场景结果 #tagMCStartCustomSceneResult + +class tagMCStartCustomSceneResult(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MapID", c_int), + ("FuncLineID", c_ushort), + ("Result", c_ubyte), #是否允许 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + 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 = 0xB2 + self.SubCmd = 0x16 + self.MapID = 0 + self.FuncLineID = 0 + self.Result = 0 + return + + def GetLength(self): + return sizeof(tagMCStartCustomSceneResult) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 16 开始自定义场景结果 //tagMCStartCustomSceneResult: + Cmd:%s, + SubCmd:%s, + MapID:%d, + FuncLineID:%d, + Result:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MapID, + self.FuncLineID, + self.Result + ) + return DumpString + + +m_NAtagMCStartCustomSceneResult=tagMCStartCustomSceneResult() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCStartCustomSceneResult.Cmd,m_NAtagMCStartCustomSceneResult.SubCmd))] = m_NAtagMCStartCustomSceneResult + + +#------------------------------------------------------ #B2 02 推送提醒设置通知 #tagMCPushNotificationsSetting class tagMCPushNotificationsSetting(Structure): @@ -28873,62 +29960,6 @@ m_NAtagMCZhuXianBossCnt=tagMCZhuXianBossCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianBossCnt.Cmd,m_NAtagMCZhuXianBossCnt.SubCmd))] = m_NAtagMCZhuXianBossCnt - - -#------------------------------------------------------ -# B2 13 诛仙塔通关层数 #tagMCZhuXianTowerInfo - -class tagMCZhuXianTowerInfo(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("Floor", c_int), # 已通关层 - ("LastFloor", c_int), # 上次挑战层 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB2 - self.SubCmd = 0x13 - 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 = 0x13 - self.Floor = 0 - self.LastFloor = 0 - return - - def GetLength(self): - return sizeof(tagMCZhuXianTowerInfo) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B2 13 诛仙塔通关层数 //tagMCZhuXianTowerInfo: - Cmd:%s, - SubCmd:%s, - Floor:%d, - LastFloor:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.Floor, - self.LastFloor - ) - return DumpString - - -m_NAtagMCZhuXianTowerInfo=tagMCZhuXianTowerInfo() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianTowerInfo.Cmd,m_NAtagMCZhuXianTowerInfo.SubCmd))] = m_NAtagMCZhuXianTowerInfo #------------------------------------------------------ -- Gitblit v1.8.0