| | |
| | | _fields_ = [
|
| | | ("ItemID", c_int), #果实物品ID
|
| | | ("EatCnt", c_ushort), #已使用个数
|
| | | ("AddItemCnt", c_int), #增幅丹使用个数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | def Clear(self):
|
| | | self.ItemID = 0
|
| | | self.EatCnt = 0
|
| | | self.AddItemCnt = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | 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
|
| | |
|
| | |
| | | _fields_ = [
|
| | | ("ActionID", c_int), # ID
|
| | | ("DayFinishCnt", c_ushort), # 今日已完成次数
|
| | | ("DayBuyTimes", c_ubyte), # 今日购买次数
|
| | | ("DayItemTimes", c_ubyte), # 今日物品增加次数
|
| | | ("WeekFinishCnt", c_int), # 本周已完成次数
|
| | | ]
|
| | |
|
| | |
| | | def Clear(self):
|
| | | self.ActionID = 0
|
| | | self.DayFinishCnt = 0
|
| | | self.DayBuyTimes = 0
|
| | | self.DayItemTimes = 0
|
| | | self.WeekFinishCnt = 0
|
| | | return
|
| | |
|
| | |
| | | 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
|
| | |
| | |
|
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | | #------------------------------------------------------
|
| | | # 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):
|
| | |
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AB 07 节日活动奖励状态 #tagMCFestivalLoginAwardState
|
| | |
|
| | | class tagMCFestivalLoginAwardState(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("FestivalType", c_ubyte), # 节日类型
|
| | | ("State", c_int), # 领取状态 <按位取值,0-未领取 1-可领取 2-已领取>
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAB
|
| | | 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 = 0xAB
|
| | | self.SubCmd = 0x07
|
| | | self.FestivalType = 0
|
| | | self.State = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFestivalLoginAwardState)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AB 07 节日活动奖励状态 //tagMCFestivalLoginAwardState:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | FestivalType:%d,
|
| | | State:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.FestivalType,
|
| | | self.State
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFestivalLoginAwardState=tagMCFestivalLoginAwardState()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFestivalLoginAwardState.Cmd,m_NAtagMCFestivalLoginAwardState.SubCmd))] = m_NAtagMCFestivalLoginAwardState
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AB 04 Boss复活活动信息 #tagMCBossRebornInfo
|
| | |
|
| | | class tagMCBossRebornAwardItem(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B2 10 仙盟联赛玩家排名信息 #tagMCFamilyWarBillboard
|
| | |
|
| | | class tagMCFamilyWarPlayer(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|