From 6fcf3513ccde191e067c8dfd8279cccedf95eb77 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 17 五月 2019 19:22:25 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 新版
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 2067 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 1,351 insertions(+), 716 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index dd7ae88..673212c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -3371,21 +3371,17 @@
#------------------------------------------------------
-#A9 05 天梯竞技场每日奖励信息#tagGCHighLadderRewardInfo
+# A9 05 通知广播装备详细信息 #tagGCNotifyEquipDetailInfo
-class tagGCHighLadderRewardInfo(Structure):
+class tagGCNotifyEquipClassEquip(Structure):
_pack_ = 1
_fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("hadGot", c_ubyte), #是否已领取
- ("Order", c_ushort), #奖励排名
+ ("ItemID", c_int),
+ ("Star", c_ubyte),
]
def __init__(self):
self.Clear()
- self.Cmd = 0xA9
- self.SubCmd = 0x05
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -3394,36 +3390,168 @@
return _pos + self.GetLength()
def Clear(self):
- self.Cmd = 0xA9
- self.SubCmd = 0x05
- self.hadGot = 0
- self.Order = 0
+ self.ItemID = 0
+ self.Star = 0
return
def GetLength(self):
- return sizeof(tagGCHighLadderRewardInfo)
+ return sizeof(tagGCNotifyEquipClassEquip)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''//A9 05 天梯竞技场每日奖励信息//tagGCHighLadderRewardInfo:
- Cmd:%s,
- SubCmd:%s,
- hadGot:%d,
- Order:%d
+ DumpString = '''// A9 05 通知广播装备详细信息 //tagGCNotifyEquipDetailInfo:
+ ItemID:%d,
+ Star:%d
'''\
%(
- self.Cmd,
- self.SubCmd,
- self.hadGot,
- self.Order
+ self.ItemID,
+ self.Star
)
return DumpString
-m_NAtagGCHighLadderRewardInfo=tagGCHighLadderRewardInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHighLadderRewardInfo.Cmd,m_NAtagGCHighLadderRewardInfo.SubCmd))] = m_NAtagGCHighLadderRewardInfo
+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
#------------------------------------------------------
@@ -5027,174 +5155,6 @@
m_NAtagGCHorsePetBossInfo=tagGCHorsePetBossInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHorsePetBossInfo.Cmd,m_NAtagGCHorsePetBossInfo.SubCmd))] = m_NAtagGCHorsePetBossInfo
-
-
-#------------------------------------------------------
-# AC 01 通知领地争夺占领情况 #tagGCManorWarInfo
-
-class tagGCManorInfo(Structure):
- Head = tagHead()
- MapID = 0 #(DWORD MapID)// 领地地图id
- FamilyID = 0 #(DWORD FamilyID)// 占领战盟id
- FNameLen = 0 #(BYTE FNameLen)// 战盟名字长度
- FamilyName = "" #(String FamilyName)// 战盟名 size = FNameLen
- LNameLen = 0 #(BYTE LNameLen)// 盟主名字长度
- LeaderName = "" #(String LeaderName)// 盟主名 size = LNameLen
- OccupyDays = 0 #(WORD OccupyDays)// 连续占领天数
- LastFamilyID = 0 #(DWORD LastFamilyID)// 上次占领的战盟id
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x01
- 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.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.FNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FNameLen)
- self.LNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LNameLen)
- self.OccupyDays,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.LastFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x01
- self.MapID = 0
- self.FamilyID = 0
- self.FNameLen = 0
- self.FamilyName = ""
- self.LNameLen = 0
- self.LeaderName = ""
- self.OccupyDays = 0
- self.LastFamilyID = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 4
- length += 1
- length += len(self.FamilyName)
- length += 1
- length += len(self.LeaderName)
- length += 2
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.MapID)
- data = CommFunc.WriteDWORD(data, self.FamilyID)
- data = CommFunc.WriteBYTE(data, self.FNameLen)
- data = CommFunc.WriteString(data, self.FNameLen, self.FamilyName)
- data = CommFunc.WriteBYTE(data, self.LNameLen)
- data = CommFunc.WriteString(data, self.LNameLen, self.LeaderName)
- data = CommFunc.WriteWORD(data, self.OccupyDays)
- data = CommFunc.WriteDWORD(data, self.LastFamilyID)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- MapID:%d,
- FamilyID:%d,
- FNameLen:%d,
- FamilyName:%s,
- LNameLen:%d,
- LeaderName:%s,
- OccupyDays:%d,
- LastFamilyID:%d
- '''\
- %(
- self.Head.OutputString(),
- self.MapID,
- self.FamilyID,
- self.FNameLen,
- self.FamilyName,
- self.LNameLen,
- self.LeaderName,
- self.OccupyDays,
- self.LastFamilyID
- )
- return DumpString
-
-
-class tagGCManorWarInfo(Structure):
- Head = tagHead()
- ManorCnt = 0 #(BYTE ManorCnt)//领地个数
- ManorInfoList = list() #(vector<tagGCManorInfo> ManorInfoList)//领地信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x01
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ManorCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ManorCnt):
- temManorInfoList = tagGCManorInfo()
- _pos = temManorInfoList.ReadData(_lpData, _pos)
- self.ManorInfoList.append(temManorInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x01
- self.ManorCnt = 0
- self.ManorInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.ManorCnt):
- length += self.ManorInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ManorCnt)
- for i in range(self.ManorCnt):
- data = CommFunc.WriteString(data, self.ManorInfoList[i].GetLength(), self.ManorInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ManorCnt:%d,
- ManorInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ManorCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagGCManorWarInfo=tagGCManorWarInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCManorWarInfo.Head.Cmd,m_NAtagGCManorWarInfo.Head.SubCmd))] = m_NAtagGCManorWarInfo
#------------------------------------------------------
@@ -12613,6 +12573,7 @@
_fields_ = [
("ItemID", c_int), #果实物品ID
("EatCnt", c_ushort), #已使用个数
+ ("AddItemCnt", c_int), #增幅丹使用个数
]
def __init__(self):
@@ -12627,6 +12588,7 @@
def Clear(self):
self.ItemID = 0
self.EatCnt = 0
+ self.AddItemCnt = 0
return
def GetLength(self):
@@ -12638,11 +12600,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
@@ -13243,6 +13207,8 @@
_fields_ = [
("ActionID", c_int), # ID
("DayFinishCnt", c_ushort), # 今日已完成次数
+ ("DayBuyTimes", c_ubyte), # 今日购买次数
+ ("DayItemTimes", c_ubyte), # 今日物品增加次数
("WeekFinishCnt", c_int), # 本周已完成次数
]
@@ -13258,6 +13224,8 @@
def Clear(self):
self.ActionID = 0
self.DayFinishCnt = 0
+ self.DayBuyTimes = 0
+ self.DayItemTimes = 0
self.WeekFinishCnt = 0
return
@@ -13271,11 +13239,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
@@ -13961,6 +13933,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
#------------------------------------------------------
@@ -14957,73 +15177,6 @@
#------------------------------------------------------
-# A3 12 通知玩家法宝信息 #tagMCMagicWeaponData
-
-class tagMCMagicWeaponData(Structure):
- Head = tagHead()
- Num = 0 #(BYTE Num)//个数
- MagicWeaponID = list() #(vector<DWORD> MagicWeaponID)// 已激活的法宝ID列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x12
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Num):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.MagicWeaponID.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x12
- self.Num = 0
- self.MagicWeaponID = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 4 * self.Num
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.Num)
- for i in range(self.Num):
- data = CommFunc.WriteDWORD(data, self.MagicWeaponID[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Num:%d,
- MagicWeaponID:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Num,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCMagicWeaponData=tagMCMagicWeaponData()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponData.Head.Cmd,m_NAtagMCMagicWeaponData.Head.SubCmd))] = m_NAtagMCMagicWeaponData
-
-
-#------------------------------------------------------
# A3 52 法宝等级信息 #tagMCMagicWeaponLVInfo
class tagMCMagicWeaponInfo(Structure):
@@ -15032,7 +15185,6 @@
("MWID", c_int),
("LV", c_ubyte),
("Exp", c_int),
- ("State", c_ubyte), #是否点击法宝认主
("FBPassLV", c_ubyte), #副本关卡
("IsWear", c_ubyte), #是否佩戴(仅适用王者法宝)
]
@@ -15050,7 +15202,6 @@
self.MWID = 0
self.LV = 0
self.Exp = 0
- self.State = 0
self.FBPassLV = 0
self.IsWear = 0
return
@@ -15066,7 +15217,6 @@
MWID:%d,
LV:%d,
Exp:%d,
- State:%d,
FBPassLV:%d,
IsWear:%d
'''\
@@ -15074,7 +15224,6 @@
self.MWID,
self.LV,
self.Exp,
- self.State,
self.FBPassLV,
self.IsWear
)
@@ -15564,6 +15713,114 @@
m_NAtagMCModuleFightPowerInfo=tagMCModuleFightPowerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCModuleFightPowerInfo.Head.Cmd,m_NAtagMCModuleFightPowerInfo.Head.SubCmd))] = m_NAtagMCModuleFightPowerInfo
+
+
+#------------------------------------------------------
+# 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
#------------------------------------------------------
@@ -16199,20 +16456,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):
@@ -16221,39 +16473,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
#------------------------------------------------------
@@ -16321,6 +16654,8 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("BeginTime", c_int), #开始计时时间
+ ("BuffTime", c_int), #buff剩余时间
+ ("BuffAddRate", c_int), #buff加成万分率
("CurExp", c_int), #当前总经验
("CurExpPoint", c_int), #当前总经验点
]
@@ -16340,6 +16675,8 @@
self.Cmd = 0xA3
self.SubCmd = 0x27
self.BeginTime = 0
+ self.BuffTime = 0
+ self.BuffAddRate = 0
self.CurExp = 0
self.CurExpPoint = 0
return
@@ -16355,6 +16692,8 @@
Cmd:%s,
SubCmd:%s,
BeginTime:%d,
+ BuffTime:%d,
+ BuffAddRate:%d,
CurExp:%d,
CurExpPoint:%d
'''\
@@ -16362,6 +16701,8 @@
self.Cmd,
self.SubCmd,
self.BeginTime,
+ self.BuffTime,
+ self.BuffAddRate,
self.CurExp,
self.CurExpPoint
)
@@ -16620,6 +16961,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
#------------------------------------------------------
@@ -18181,74 +18694,6 @@
#------------------------------------------------------
-#A5 34 天梯竞技场状态#tagMCHighLadderState
-
-class tagMCHighLadderState(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("Count", c_ubyte), #已挑战次数
- ("MaxCount", c_ubyte), #最大次数
- ("CDTime", c_int), #累计冷却时间
- ("IsRelCD", c_ubyte), #是否正在真实冷却状态
- ("Currency", c_int), #积分
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x34
- 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 = 0x34
- self.Count = 0
- self.MaxCount = 0
- self.CDTime = 0
- self.IsRelCD = 0
- self.Currency = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCHighLadderState)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 34 天梯竞技场状态//tagMCHighLadderState:
- Cmd:%s,
- SubCmd:%s,
- Count:%d,
- MaxCount:%d,
- CDTime:%d,
- IsRelCD:%d,
- Currency:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.Count,
- self.MaxCount,
- self.CDTime,
- self.IsRelCD,
- self.Currency
- )
- return DumpString
-
-
-m_NAtagMCHighLadderState=tagMCHighLadderState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHighLadderState.Cmd,m_NAtagMCHighLadderState.SubCmd))] = m_NAtagMCHighLadderState
-
-
-#------------------------------------------------------
#A5 01 查看已申请加入的家族信息 #tagMCNotifyRequestJoinFamilyInfo
class tagRequestJoinFamily(Structure):
@@ -18983,6 +19428,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
#------------------------------------------------------
@@ -20023,6 +20587,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
#------------------------------------------------------
@@ -26066,310 +26708,6 @@
#------------------------------------------------------
-# AB 06 活动物品兑换次数记录 #tagMCExchangeActionItemCntRecord
-
-class tagMCExchangeActionItemCnt(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ItemID", c_int),
- ("ExcCnt", c_int), # 已兑换次数
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAB
- self.SubCmd = 0x06
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAB
- self.SubCmd = 0x06
- self.ItemID = 0
- self.ExcCnt = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCExchangeActionItemCnt)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AB 06 活动物品兑换次数记录 //tagMCExchangeActionItemCntRecord:
- Cmd:%s,
- SubCmd:%s,
- ItemID:%d,
- ExcCnt:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ItemID,
- self.ExcCnt
- )
- return DumpString
-
-
-class tagMCExchangeActionItemCntRecord(Structure):
- Head = tagHead()
- ActionKeyLen = 0 #(BYTE ActionKeyLen)
- ActionKey = "" #(String ActionKey)
- RecordCnt = 0 #(BYTE RecordCnt)
- RecordList = list() #(vector<tagMCExchangeActionItemCnt> RecordList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAB
- self.Head.SubCmd = 0x06
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActionKeyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ActionKey,_pos = CommFunc.ReadString(_lpData, _pos,self.ActionKeyLen)
- self.RecordCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.RecordCnt):
- temRecordList = tagMCExchangeActionItemCnt()
- _pos = temRecordList.ReadData(_lpData, _pos)
- self.RecordList.append(temRecordList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAB
- self.Head.SubCmd = 0x06
- self.ActionKeyLen = 0
- self.ActionKey = ""
- self.RecordCnt = 0
- self.RecordList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += len(self.ActionKey)
- length += 1
- for i in range(self.RecordCnt):
- length += self.RecordList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActionKeyLen)
- data = CommFunc.WriteString(data, self.ActionKeyLen, self.ActionKey)
- data = CommFunc.WriteBYTE(data, self.RecordCnt)
- for i in range(self.RecordCnt):
- data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActionKeyLen:%d,
- ActionKey:%s,
- RecordCnt:%d,
- RecordList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActionKeyLen,
- self.ActionKey,
- self.RecordCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCExchangeActionItemCntRecord=tagMCExchangeActionItemCntRecord()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCExchangeActionItemCntRecord.Head.Cmd,m_NAtagMCExchangeActionItemCntRecord.Head.SubCmd))] = m_NAtagMCExchangeActionItemCntRecord
-
-
-#------------------------------------------------------
-# 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 02 领地占领每日奖励领奖情况 #tagMCManorDailyAward
-
-class tagMCManorDailyAward(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("AwardRecord", c_int), # 按位表示每个领地领取情况;0-未领,1-已领
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAB
- 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 = 0xAB
- self.SubCmd = 0x02
- self.AwardRecord = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCManorDailyAward)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AB 02 领地占领每日奖励领奖情况 //tagMCManorDailyAward:
- Cmd:%s,
- SubCmd:%s,
- AwardRecord:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.AwardRecord
- )
- return DumpString
-
-
-m_NAtagMCManorDailyAward=tagMCManorDailyAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorDailyAward.Cmd,m_NAtagMCManorDailyAward.SubCmd))] = m_NAtagMCManorDailyAward
-
-
-#------------------------------------------------------
-# AB 01 通知领地战结果 #tagMCManorWarResult
-
-class tagMCManorWarResult(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("Type", c_ubyte), # 0-普通信息;1-活动结果总结
- ("Result", c_ubyte), # 战盟胜负情况;0-未知,1-胜利,2-失败
- ("JoinTime", c_int), # 活动时总参与时间,毫秒
- ("JoinAward", c_ubyte), # 参与奖状态;0-不可领,1-可领,2-已领
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAB
- 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 = 0xAB
- self.SubCmd = 0x01
- self.Type = 0
- self.Result = 0
- self.JoinTime = 0
- self.JoinAward = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCManorWarResult)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AB 01 通知领地战结果 //tagMCManorWarResult:
- Cmd:%s,
- SubCmd:%s,
- Type:%d,
- Result:%d,
- JoinTime:%d,
- JoinAward:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.Type,
- self.Result,
- self.JoinTime,
- self.JoinAward
- )
- return DumpString
-
-
-m_NAtagMCManorWarResult=tagMCManorWarResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorWarResult.Cmd,m_NAtagMCManorWarResult.SubCmd))] = m_NAtagMCManorWarResult
-
-
-#------------------------------------------------------
# AB 04 Boss复活活动信息 #tagMCBossRebornInfo
class tagMCBossRebornAwardItem(Structure):
@@ -28036,6 +28374,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):
@@ -28153,6 +28539,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
#------------------------------------------------------
@@ -28337,6 +28804,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
#------------------------------------------------------
@@ -29178,6 +29757,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):
@@ -29298,62 +29989,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