From 0e2a25b6e5c9935cd80e937c4c8eb393c527bd20 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 07 五月 2019 19:59:00 +0800 Subject: [PATCH] 860312 数据库操作函数更改 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 1048 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 1,023 insertions(+), 25 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index c27ff9e..ef4b9e7 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -12389,6 +12389,7 @@ _fields_ = [ ("ItemID", c_int), #果实物品ID ("EatCnt", c_ushort), #已使用个数 + ("AddItemCnt", c_int), #增幅丹使用个数 ] def __init__(self): @@ -12403,6 +12404,7 @@ def Clear(self): self.ItemID = 0 self.EatCnt = 0 + self.AddItemCnt = 0 return def GetLength(self): @@ -12414,11 +12416,13 @@ def OutputString(self): DumpString = '''// A3 39 玩家属性果实已使用个数信息//tagMCAttrFruitEatCntList: ItemID:%d, - EatCnt:%d + EatCnt:%d, + AddItemCnt:%d '''\ %( self.ItemID, - self.EatCnt + self.EatCnt, + self.AddItemCnt ) return DumpString @@ -13019,6 +13023,8 @@ _fields_ = [ ("ActionID", c_int), # ID ("DayFinishCnt", c_ushort), # 今日已完成次数 + ("DayBuyTimes", c_ubyte), # 今日购买次数 + ("DayItemTimes", c_ubyte), # 今日物品增加次数 ("WeekFinishCnt", c_int), # 本周已完成次数 ] @@ -13034,6 +13040,8 @@ def Clear(self): self.ActionID = 0 self.DayFinishCnt = 0 + self.DayBuyTimes = 0 + self.DayItemTimes = 0 self.WeekFinishCnt = 0 return @@ -13047,11 +13055,15 @@ DumpString = '''// A3 15 日常活动次数通知 //tagMCDailyActionCnt: ActionID:%d, DayFinishCnt:%d, + DayBuyTimes:%d, + DayItemTimes:%d, WeekFinishCnt:%d '''\ %( self.ActionID, self.DayFinishCnt, + self.DayBuyTimes, + self.DayItemTimes, self.WeekFinishCnt ) return DumpString @@ -13737,6 +13749,254 @@ m_NAtagMCEquipPartXLAttrInfo=tagMCEquipPartXLAttrInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartXLAttrInfo.Head.Cmd,m_NAtagMCEquipPartXLAttrInfo.Head.SubCmd))] = m_NAtagMCEquipPartXLAttrInfo + + +#------------------------------------------------------ +# A3 07 缥缈奇遇信息 #tagMCFairyAdventuresInfo + +class tagMCFairyAdventuresData(Structure): + _pack_ = 1 + _fields_ = [ + ("EventID", c_ubyte), + ("Gear", c_ubyte), #第几档 + ("Condition", 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.EventID = 0 + self.Gear = 0 + self.Condition = 0 + return + + def GetLength(self): + return sizeof(tagMCFairyAdventuresData) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 07 缥缈奇遇信息 //tagMCFairyAdventuresInfo: + EventID:%d, + Gear:%d, + Condition:%d + '''\ + %( + self.EventID, + self.Gear, + self.Condition + ) + return DumpString + + +class tagMCFairyAdventuresInfo(Structure): + Head = tagHead() + Cnt = 0 #(BYTE Cnt) + InfoList = list() #(vector<tagMCFairyAdventuresData> InfoList)// 信息 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x07 + 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 = tagMCFairyAdventuresData() + _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 = 0x07 + 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_NAtagMCFairyAdventuresInfo=tagMCFairyAdventuresInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFairyAdventuresInfo.Head.Cmd,m_NAtagMCFairyAdventuresInfo.Head.SubCmd))] = m_NAtagMCFairyAdventuresInfo + + +#------------------------------------------------------ +# A3 06 缥缈仙域信息 #tagMCFairyDomainInfo + +class tagMCFairyDomainEvent(Structure): + _pack_ = 1 + _fields_ = [ + ("EventID", c_ushort), #事件ID + ("EventState", c_ubyte), #事件状态 1-可拜访 2-拜访中 3-已拜访 + ] + + 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.EventID = 0 + self.EventState = 0 + return + + def GetLength(self): + return sizeof(tagMCFairyDomainEvent) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 06 缥缈仙域信息 //tagMCFairyDomainInfo: + EventID:%d, + EventState:%d + '''\ + %( + self.EventID, + self.EventState + ) + return DumpString + + +class tagMCFairyDomainInfo(Structure): + Head = tagHead() + 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)// 信息列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x06 + return + + 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): + temInfoList = tagMCFairyDomainEvent() + _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 = 0x06 + self.IsAll = 0 + self.State = 0 + self.VisitCnt = 0 + self.Energy = 0 + self.Count = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 1 + length += 4 + length += 2 + length += 1 + for i in range(self.Count): + 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.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): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + 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, + "..." + ) + return DumpString + + +m_NAtagMCFairyDomainInfo=tagMCFairyDomainInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFairyDomainInfo.Head.Cmd,m_NAtagMCFairyDomainInfo.Head.SubCmd))] = m_NAtagMCFairyDomainInfo #------------------------------------------------------ @@ -15272,6 +15532,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): @@ -15904,20 +16272,15 @@ #------------------------------------------------------ # 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), # 开始炼的时间 ] def __init__(self): self.Clear() - self.Cmd = 0xA3 - self.SubCmd = 0xBF return def ReadData(self, stringData, _pos=0, _len=0): @@ -15926,39 +16289,120 @@ 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 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 '''\ %( - self.Cmd, - self.SubCmd, + self.AlchemyID, + self.StartTime + ) + 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 #------------------------------------------------------ @@ -16026,6 +16470,8 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BeginTime", c_int), #开始计时时间 + ("BuffTime", c_int), #buff剩余时间 + ("BuffAddRate", c_int), #buff加成万分率 ("CurExp", c_int), #当前总经验 ("CurExpPoint", c_int), #当前总经验点 ] @@ -16045,6 +16491,8 @@ self.Cmd = 0xA3 self.SubCmd = 0x27 self.BeginTime = 0 + self.BuffTime = 0 + self.BuffAddRate = 0 self.CurExp = 0 self.CurExpPoint = 0 return @@ -16060,6 +16508,8 @@ Cmd:%s, SubCmd:%s, BeginTime:%d, + BuffTime:%d, + BuffAddRate:%d, CurExp:%d, CurExpPoint:%d '''\ @@ -16067,6 +16517,8 @@ self.Cmd, self.SubCmd, self.BeginTime, + self.BuffTime, + self.BuffAddRate, self.CurExp, self.CurExpPoint ) @@ -16325,6 +16777,114 @@ m_NAtagMCSingleGoldGift=tagMCSingleGoldGift() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSingleGoldGift.Cmd,m_NAtagMCSingleGoldGift.SubCmd))] = m_NAtagMCSingleGoldGift + + +#------------------------------------------------------ +# A3 09 技能五行专精信息 #tagMCSkillElementInfo + +class tagMCSkillElementData(Structure): + _pack_ = 1 + _fields_ = [ + ("MainSkillID", c_int), # 主技能ID + ("ElementSkillID", c_int), # 专精技能ID + ] + + 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.MainSkillID = 0 + self.ElementSkillID = 0 + return + + def GetLength(self): + return sizeof(tagMCSkillElementData) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 09 技能五行专精信息 //tagMCSkillElementInfo: + MainSkillID:%d, + ElementSkillID:%d + '''\ + %( + self.MainSkillID, + self.ElementSkillID + ) + 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 #------------------------------------------------------ @@ -18623,6 +19183,125 @@ #------------------------------------------------------ +# 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 + + +#------------------------------------------------------ # A7 13 动态障碍物状态 #tagMCDynamicBarrierState class tagMCDynamicBarrier(Structure): @@ -19660,6 +20339,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 #------------------------------------------------------ @@ -27369,6 +28126,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): @@ -27486,6 +28291,87 @@ m_NAtagMCAddXianyuanCoinMsg=tagMCAddXianyuanCoinMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAddXianyuanCoinMsg.Head.Cmd,m_NAtagMCAddXianyuanCoinMsg.Head.SubCmd))] = m_NAtagMCAddXianyuanCoinMsg + + +#------------------------------------------------------ +# B2 14 自定义副本奖励信息 #tagMCCuntomFBPrizeInfo + +class tagMCCuntomFBPrizeInfo(Structure): + Head = tagHead() + MapID = 0 #(DWORD MapID) + FuncLineID = 0 #(WORD FuncLineID) + PrizeItemCount = 0 #(BYTE PrizeItemCount) + PrizeItemIDList = list() #(vector<DWORD> PrizeItemIDList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x14 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FuncLineID,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.PrizeItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.PrizeItemCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.PrizeItemIDList.append(value) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x14 + self.MapID = 0 + self.FuncLineID = 0 + self.PrizeItemCount = 0 + self.PrizeItemIDList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 4 + length += 2 + length += 1 + length += 4 * self.PrizeItemCount + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteDWORD(data, self.MapID) + data = CommFunc.WriteWORD(data, self.FuncLineID) + data = CommFunc.WriteBYTE(data, self.PrizeItemCount) + for i in range(self.PrizeItemCount): + data = CommFunc.WriteDWORD(data, self.PrizeItemIDList[i]) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + MapID:%d, + FuncLineID:%d, + PrizeItemCount:%d, + PrizeItemIDList:%s + '''\ + %( + self.Head.OutputString(), + self.MapID, + self.FuncLineID, + self.PrizeItemCount, + "..." + ) + return DumpString + + +m_NAtagMCCuntomFBPrizeInfo=tagMCCuntomFBPrizeInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCuntomFBPrizeInfo.Head.Cmd,m_NAtagMCCuntomFBPrizeInfo.Head.SubCmd))] = m_NAtagMCCuntomFBPrizeInfo #------------------------------------------------------ @@ -27673,6 +28559,118 @@ #------------------------------------------------------ +# 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 + + +#------------------------------------------------------ # B2 09 副本次数恢复剩余时间 #tagMCFBCntRegainRemainTime class tagMCFBCntRegain(Structure): -- Gitblit v1.8.0