From 303a03f56c01092ce7a7194e994dea2089b4728d Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 11 七月 2019 14:24:45 +0800
Subject: [PATCH] 7982 【后端】【主干】渡劫条件调整
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 3546 ++++++++++++++++++++++++++++------------------------------
1 files changed, 1,704 insertions(+), 1,842 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index ae970d5..de47a18 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -2121,6 +2121,58 @@
#------------------------------------------------------
+# A4 0D 通知建盟次数 #tagGCServerCreatFamilyTimes
+
+class tagGCServerCreatFamilyTimes(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Times", c_int), #建盟次数
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA4
+ self.SubCmd = 0x0D
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xA4
+ self.SubCmd = 0x0D
+ self.Times = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagGCServerCreatFamilyTimes)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A4 0D 通知建盟次数 //tagGCServerCreatFamilyTimes:
+ Cmd:%s,
+ SubCmd:%s,
+ Times:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Times
+ )
+ return DumpString
+
+
+m_NAtagGCServerCreatFamilyTimes=tagGCServerCreatFamilyTimes()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCServerCreatFamilyTimes.Cmd,m_NAtagGCServerCreatFamilyTimes.SubCmd))] = m_NAtagGCServerCreatFamilyTimes
+
+
+#------------------------------------------------------
#A4 01 查看申请入会的玩家信息 #tagGCViewFamilyRequestInfo
class tagtMemberInfo(Structure):
@@ -3371,21 +3423,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 +3442,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
#------------------------------------------------------
@@ -4188,124 +4368,6 @@
#------------------------------------------------------
-# A9 07 定时商店刷新倒计时 #tagGCShopRefreshTimeList
-
-class tagGCShopRefreshTime(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ShopID", c_int), # 商店ID
- ("RemainSecond", c_int), # 多少秒后刷新
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA9
- 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 = 0xA9
- self.SubCmd = 0x07
- self.ShopID = 0
- self.RemainSecond = 0
- return
-
- def GetLength(self):
- return sizeof(tagGCShopRefreshTime)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A9 07 定时商店刷新倒计时 //tagGCShopRefreshTimeList:
- Cmd:%s,
- SubCmd:%s,
- ShopID:%d,
- RemainSecond:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ShopID,
- self.RemainSecond
- )
- return DumpString
-
-
-class tagGCShopRefreshTimeList(Structure):
- Head = tagHead()
- ShopCnt = 0 #(BYTE ShopCnt)//商店信息个数
- ShopTimeInfoList = list() #(vector<tagGCShopRefreshTime> ShopTimeInfoList)//商店信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA9
- self.Head.SubCmd = 0x07
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ShopCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ShopCnt):
- temShopTimeInfoList = tagGCShopRefreshTime()
- _pos = temShopTimeInfoList.ReadData(_lpData, _pos)
- self.ShopTimeInfoList.append(temShopTimeInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA9
- self.Head.SubCmd = 0x07
- self.ShopCnt = 0
- self.ShopTimeInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.ShopCnt):
- length += self.ShopTimeInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ShopCnt)
- for i in range(self.ShopCnt):
- data = CommFunc.WriteString(data, self.ShopTimeInfoList[i].GetLength(), self.ShopTimeInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ShopCnt:%d,
- ShopTimeInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ShopCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagGCShopRefreshTimeList=tagGCShopRefreshTimeList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCShopRefreshTimeList.Head.Cmd,m_NAtagGCShopRefreshTimeList.Head.SubCmd))] = m_NAtagGCShopRefreshTimeList
-
-
-#------------------------------------------------------
# A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
class tagGCStoreServerBuyCnt(Structure):
@@ -4767,6 +4829,58 @@
#------------------------------------------------------
+# AC 01 仙盟联赛信息通知 #tagGCFamilyWarInfo
+
+class tagGCFamilyWarInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("WorldLV", c_ushort), # 当前进行中的联赛世界等级
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAC
+ self.SubCmd = 0x01
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xAC
+ self.SubCmd = 0x01
+ self.WorldLV = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagGCFamilyWarInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AC 01 仙盟联赛信息通知 //tagGCFamilyWarInfo:
+ Cmd:%s,
+ SubCmd:%s,
+ WorldLV:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.WorldLV
+ )
+ return DumpString
+
+
+m_NAtagGCFamilyWarInfo=tagGCFamilyWarInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyWarInfo.Cmd,m_NAtagGCFamilyWarInfo.SubCmd))] = m_NAtagGCFamilyWarInfo
+
+
+#------------------------------------------------------
# AC 11 节日红包活动信息 #tagGCFeastRedPacketInfo
class tagGCFeastRedPacketDay(Structure):
@@ -5096,171 +5210,55 @@
#------------------------------------------------------
-# AC 01 通知领地争夺占领情况 #tagGCManorWarInfo
+# AC 07 骑宠Boss信息 #tagGCHorsePetBossInfo
-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
+class tagGCHorsePetBossInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("IsEnd", c_int), # 是否已结束(按位代表对应线路是否结束)
+ ]
def __init__(self):
self.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x01
+ self.Cmd = 0xAC
+ self.SubCmd = 0x07
return
- def ReadData(self, _lpData, _pos=0, _Len=0):
+ def ReadData(self, stringData, _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
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
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
+ self.Cmd = 0xAC
+ self.SubCmd = 0x07
+ self.IsEnd = 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
+ return sizeof(tagGCHorsePetBossInfo)
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
+ return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''
- Head:%s,
- MapID:%d,
- FamilyID:%d,
- FNameLen:%d,
- FamilyName:%s,
- LNameLen:%d,
- LeaderName:%s,
- OccupyDays:%d,
- LastFamilyID:%d
+ DumpString = '''// AC 07 骑宠Boss信息 //tagGCHorsePetBossInfo:
+ Cmd:%s,
+ SubCmd:%s,
+ IsEnd:%d
'''\
%(
- self.Head.OutputString(),
- self.MapID,
- self.FamilyID,
- self.FNameLen,
- self.FamilyName,
- self.LNameLen,
- self.LeaderName,
- self.OccupyDays,
- self.LastFamilyID
+ self.Cmd,
+ self.SubCmd,
+ self.IsEnd
)
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
+m_NAtagGCHorsePetBossInfo=tagGCHorsePetBossInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHorsePetBossInfo.Cmd,m_NAtagGCHorsePetBossInfo.SubCmd))] = m_NAtagGCHorsePetBossInfo
#------------------------------------------------------
@@ -5725,132 +5723,6 @@
m_NAtagGCXMZZFightInfo=tagGCXMZZFightInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZFightInfo.Head.Cmd,m_NAtagGCXMZZFightInfo.Head.SubCmd))] = m_NAtagGCXMZZFightInfo
-
-
-#------------------------------------------------------
-# AD 01 特惠活动信息 #tagGCTeHuiActivityInfoList
-
-class tagGCTeHuiActivityInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActivityType", c_ubyte), # 活动类型
- ("ActivityValue", c_int), # 活动值
- ("StartDate", c_int), # 开始时间time
- ("EndDate", c_int), # 结束时间time
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAD
- 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 = 0xAD
- self.SubCmd = 0x01
- self.ActivityType = 0
- self.ActivityValue = 0
- self.StartDate = 0
- self.EndDate = 0
- return
-
- def GetLength(self):
- return sizeof(tagGCTeHuiActivityInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AD 01 特惠活动信息 //tagGCTeHuiActivityInfoList:
- Cmd:%s,
- SubCmd:%s,
- ActivityType:%d,
- ActivityValue:%d,
- StartDate:%d,
- EndDate:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActivityType,
- self.ActivityValue,
- self.StartDate,
- self.EndDate
- )
- return DumpString
-
-
-class tagGCTeHuiActivityInfoList(Structure):
- Head = tagHead()
- ActivityCount = 0 #(BYTE ActivityCount)//活动信息个数
- ActivityInfoList = list() #(vector<tagGCTeHuiActivityInfo> ActivityInfoList)//活动信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAD
- self.Head.SubCmd = 0x01
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActivityCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ActivityCount):
- temActivityInfoList = tagGCTeHuiActivityInfo()
- _pos = temActivityInfoList.ReadData(_lpData, _pos)
- self.ActivityInfoList.append(temActivityInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAD
- self.Head.SubCmd = 0x01
- self.ActivityCount = 0
- self.ActivityInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.ActivityCount):
- length += self.ActivityInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActivityCount)
- for i in range(self.ActivityCount):
- data = CommFunc.WriteString(data, self.ActivityInfoList[i].GetLength(), self.ActivityInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActivityCount:%d,
- ActivityInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActivityCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagGCTeHuiActivityInfoList=tagGCTeHuiActivityInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeHuiActivityInfoList.Head.Cmd,m_NAtagGCTeHuiActivityInfoList.Head.SubCmd))] = m_NAtagGCTeHuiActivityInfoList
#------------------------------------------------------
@@ -7091,6 +6963,7 @@
ItemCount = 0 #(WORD ItemCount)
AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
+ BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
data = None
@@ -7107,6 +6980,7 @@
self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
return _pos
@@ -7118,6 +6992,7 @@
self.ItemCount = 0
self.AddTime = ""
self.BidderPrice = 0
+ self.BiddingTime = ""
self.UserDataLen = 0
self.UserData = ""
return
@@ -7130,6 +7005,7 @@
length += 2
length += 19
length += 2
+ length += 19
length += 2
length += len(self.UserData)
@@ -7143,6 +7019,7 @@
data = CommFunc.WriteWORD(data, self.ItemCount)
data = CommFunc.WriteString(data, 19, self.AddTime)
data = CommFunc.WriteWORD(data, self.BidderPrice)
+ data = CommFunc.WriteString(data, 19, self.BiddingTime)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
return data
@@ -7155,6 +7032,7 @@
ItemCount:%d,
AddTime:%s,
BidderPrice:%d,
+ BiddingTime:%s,
UserDataLen:%d,
UserData:%s
'''\
@@ -7165,6 +7043,7 @@
self.ItemCount,
self.AddTime,
self.BidderPrice,
+ self.BiddingTime,
self.UserDataLen,
self.UserData
)
@@ -7247,6 +7126,7 @@
ItemCount = 0 #(WORD ItemCount)
AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
+ BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
data = None
@@ -7263,6 +7143,7 @@
self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
return _pos
@@ -7274,6 +7155,7 @@
self.ItemCount = 0
self.AddTime = ""
self.BidderPrice = 0
+ self.BiddingTime = ""
self.UserDataLen = 0
self.UserData = ""
return
@@ -7286,6 +7168,7 @@
length += 2
length += 19
length += 2
+ length += 19
length += 2
length += len(self.UserData)
@@ -7299,6 +7182,7 @@
data = CommFunc.WriteWORD(data, self.ItemCount)
data = CommFunc.WriteString(data, 19, self.AddTime)
data = CommFunc.WriteWORD(data, self.BidderPrice)
+ data = CommFunc.WriteString(data, 19, self.BiddingTime)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
return data
@@ -7311,6 +7195,7 @@
ItemCount:%d,
AddTime:%s,
BidderPrice:%d,
+ BiddingTime:%s,
UserDataLen:%d,
UserData:%s
'''\
@@ -7321,6 +7206,7 @@
self.ItemCount,
self.AddTime,
self.BidderPrice,
+ self.BiddingTime,
self.UserDataLen,
self.UserData
)
@@ -7480,6 +7366,7 @@
AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
BidderID = 0 #(DWORD BidderID)//竞拍玩家ID,也就是当前最高竞价玩家ID
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
+ BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
data = None
@@ -7497,6 +7384,7 @@
self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
return _pos
@@ -7509,6 +7397,7 @@
self.AddTime = ""
self.BidderID = 0
self.BidderPrice = 0
+ self.BiddingTime = ""
self.UserDataLen = 0
self.UserData = ""
return
@@ -7522,6 +7411,7 @@
length += 19
length += 4
length += 2
+ length += 19
length += 2
length += len(self.UserData)
@@ -7536,6 +7426,7 @@
data = CommFunc.WriteString(data, 19, self.AddTime)
data = CommFunc.WriteDWORD(data, self.BidderID)
data = CommFunc.WriteWORD(data, self.BidderPrice)
+ data = CommFunc.WriteString(data, 19, self.BiddingTime)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
return data
@@ -7549,6 +7440,7 @@
AddTime:%s,
BidderID:%d,
BidderPrice:%d,
+ BiddingTime:%s,
UserDataLen:%d,
UserData:%s
'''\
@@ -7560,6 +7452,7 @@
self.AddTime,
self.BidderID,
self.BidderPrice,
+ self.BiddingTime,
self.UserDataLen,
self.UserData
)
@@ -7749,6 +7642,7 @@
ItemCount = 0 #(WORD ItemCount)
AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
+ BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
FamilyPlayerIDLen = 0 #(WORD FamilyPlayerIDLen)
@@ -7768,6 +7662,7 @@
self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
self.FamilyPlayerIDLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -7782,6 +7677,7 @@
self.ItemCount = 0
self.AddTime = ""
self.BidderPrice = 0
+ self.BiddingTime = ""
self.UserDataLen = 0
self.UserData = ""
self.FamilyPlayerIDLen = 0
@@ -7797,6 +7693,7 @@
length += 2
length += 19
length += 2
+ length += 19
length += 2
length += len(self.UserData)
length += 2
@@ -7813,6 +7710,7 @@
data = CommFunc.WriteWORD(data, self.ItemCount)
data = CommFunc.WriteString(data, 19, self.AddTime)
data = CommFunc.WriteWORD(data, self.BidderPrice)
+ data = CommFunc.WriteString(data, 19, self.BiddingTime)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
data = CommFunc.WriteWORD(data, self.FamilyPlayerIDLen)
@@ -7828,6 +7726,7 @@
ItemCount:%d,
AddTime:%s,
BidderPrice:%d,
+ BiddingTime:%s,
UserDataLen:%d,
UserData:%s,
FamilyPlayerIDLen:%d,
@@ -7841,6 +7740,7 @@
self.ItemCount,
self.AddTime,
self.BidderPrice,
+ self.BiddingTime,
self.UserDataLen,
self.UserData,
self.FamilyPlayerIDLen,
@@ -7926,6 +7826,7 @@
ItemCount = 0 #(WORD ItemCount)
AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
+ BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
UserDataLen = 0 #(WORD UserDataLen)
UserData = "" #(String UserData)//自定义数据
data = None
@@ -7942,6 +7843,7 @@
self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
return _pos
@@ -7953,6 +7855,7 @@
self.ItemCount = 0
self.AddTime = ""
self.BidderPrice = 0
+ self.BiddingTime = ""
self.UserDataLen = 0
self.UserData = ""
return
@@ -7965,6 +7868,7 @@
length += 2
length += 19
length += 2
+ length += 19
length += 2
length += len(self.UserData)
@@ -7978,6 +7882,7 @@
data = CommFunc.WriteWORD(data, self.ItemCount)
data = CommFunc.WriteString(data, 19, self.AddTime)
data = CommFunc.WriteWORD(data, self.BidderPrice)
+ data = CommFunc.WriteString(data, 19, self.BiddingTime)
data = CommFunc.WriteWORD(data, self.UserDataLen)
data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
return data
@@ -7990,6 +7895,7 @@
ItemCount:%d,
AddTime:%s,
BidderPrice:%d,
+ BiddingTime:%s,
UserDataLen:%d,
UserData:%s
'''\
@@ -8000,6 +7906,7 @@
self.ItemCount,
self.AddTime,
self.BidderPrice,
+ self.BiddingTime,
self.UserDataLen,
self.UserData
)
@@ -8258,6 +8165,7 @@
AddTime = "" #(char AddTime[19])//上架时间
BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
BidderPrice = 0 #(DWORD BidderPrice)//最高竞拍价格
+ BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
data = None
def __init__(self):
@@ -8271,6 +8179,7 @@
self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
return _pos
def Clear(self):
@@ -8279,6 +8188,7 @@
self.AddTime = ""
self.BidderID = 0
self.BidderPrice = 0
+ self.BiddingTime = ""
return
def GetLength(self):
@@ -8288,6 +8198,7 @@
length += 19
length += 4
length += 4
+ length += 19
return length
@@ -8298,6 +8209,7 @@
data = CommFunc.WriteString(data, 19, self.AddTime)
data = CommFunc.WriteDWORD(data, self.BidderID)
data = CommFunc.WriteDWORD(data, self.BidderPrice)
+ data = CommFunc.WriteString(data, 19, self.BiddingTime)
return data
def OutputString(self):
@@ -8306,14 +8218,16 @@
AuctionType:%d,
AddTime:%s,
BidderID:%d,
- BidderPrice:%d
+ BidderPrice:%d,
+ BiddingTime:%s
'''\
%(
self.ItemGUID,
self.AuctionType,
self.AddTime,
self.BidderID,
- self.BidderPrice
+ self.BidderPrice,
+ self.BiddingTime
)
return DumpString
@@ -10615,6 +10529,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
+ ("IsRobot", c_ubyte), # 是否匹配机器人
]
def __init__(self):
@@ -10631,6 +10546,7 @@
def Clear(self):
self.Cmd = 0xC0
self.SubCmd = 0x02
+ self.IsRobot = 0
return
def GetLength(self):
@@ -10642,11 +10558,13 @@
def OutputString(self):
DumpString = '''// C0 02 跨服PK开始匹配 //tagGCCrossRealmPKStartMatch:
Cmd:%s,
- SubCmd:%s
+ SubCmd:%s,
+ IsRobot:%d
'''\
%(
self.Cmd,
- self.SubCmd
+ self.SubCmd,
+ self.IsRobot
)
return DumpString
@@ -12763,6 +12681,8 @@
_fields_ = [
("ItemID", c_int), #果实物品ID
("EatCnt", c_ushort), #已使用个数
+ ("ItemAddCnt", c_int), #增幅丹增加上限
+ ("ItemBreakCnt", c_int), #增幅丹突破次数
]
def __init__(self):
@@ -12777,6 +12697,8 @@
def Clear(self):
self.ItemID = 0
self.EatCnt = 0
+ self.ItemAddCnt = 0
+ self.ItemBreakCnt = 0
return
def GetLength(self):
@@ -12788,11 +12710,15 @@
def OutputString(self):
DumpString = '''// A3 39 玩家属性果实已使用个数信息//tagMCAttrFruitEatCntList:
ItemID:%d,
- EatCnt:%d
+ EatCnt:%d,
+ ItemAddCnt:%d,
+ ItemBreakCnt:%d
'''\
%(
self.ItemID,
- self.EatCnt
+ self.EatCnt,
+ self.ItemAddCnt,
+ self.ItemBreakCnt
)
return DumpString
@@ -12928,6 +12854,7 @@
("BossType", c_ubyte), #编号类型0-世界boss 1-boss之家
("KillCnt", c_int), #击杀次数
("ItemAddCnt", c_int), #物品增加次数
+ ("BuyCnt", c_ubyte), #购买次数
]
def __init__(self):
@@ -12943,6 +12870,7 @@
self.BossType = 0
self.KillCnt = 0
self.ItemAddCnt = 0
+ self.BuyCnt = 0
return
def GetLength(self):
@@ -12955,12 +12883,14 @@
DumpString = '''//A3 B7 当日累计攻击boss次数 //tagMCBOSSAttactCnt:
BossType:%d,
KillCnt:%d,
- ItemAddCnt:%d
+ ItemAddCnt:%d,
+ BuyCnt:%d
'''\
%(
self.BossType,
self.KillCnt,
- self.ItemAddCnt
+ self.ItemAddCnt,
+ self.BuyCnt
)
return DumpString
@@ -13393,6 +13323,8 @@
_fields_ = [
("ActionID", c_int), # ID
("DayFinishCnt", c_ushort), # 今日已完成次数
+ ("DayBuyTimes", c_ubyte), # 今日购买次数
+ ("DayItemTimes", c_ubyte), # 今日物品增加次数
("WeekFinishCnt", c_int), # 本周已完成次数
]
@@ -13408,6 +13340,8 @@
def Clear(self):
self.ActionID = 0
self.DayFinishCnt = 0
+ self.DayBuyTimes = 0
+ self.DayItemTimes = 0
self.WeekFinishCnt = 0
return
@@ -13421,11 +13355,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
@@ -14111,6 +14049,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
#------------------------------------------------------
@@ -15107,12 +15293,63 @@
#------------------------------------------------------
-# A3 12 通知玩家法宝信息 #tagMCMagicWeaponData
+# A3 12 通知骑宠觉醒信息 #tagMCHorsePetSkinData
-class tagMCMagicWeaponData(Structure):
+class tagMCHorsePetSkinInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Type", c_ubyte), # 1-坐骑 2-灵宠
+ ("ID", c_int), # 对应坐骑表灵宠表ID
+ ("Exp", c_int), #经验
+ ("SkinLV", c_ubyte), #觉醒等级
+ ("SkinIndex", 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.Type = 0
+ self.ID = 0
+ self.Exp = 0
+ self.SkinLV = 0
+ self.SkinIndex = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCHorsePetSkinInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A3 12 通知骑宠觉醒信息 //tagMCHorsePetSkinData:
+ Type:%d,
+ ID:%d,
+ Exp:%d,
+ SkinLV:%d,
+ SkinIndex:%d
+ '''\
+ %(
+ self.Type,
+ self.ID,
+ self.Exp,
+ self.SkinLV,
+ self.SkinIndex
+ )
+ return DumpString
+
+
+class tagMCHorsePetSkinData(Structure):
Head = tagHead()
Num = 0 #(BYTE Num)//个数
- MagicWeaponID = list() #(vector<DWORD> MagicWeaponID)// 已激活的法宝ID列表
+ InfoList = list() #(vector<tagMCHorsePetSkinInfo> InfoList)// 数据列表
data = None
def __init__(self):
@@ -15126,8 +15363,9 @@
_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)
+ temInfoList = tagMCHorsePetSkinInfo()
+ _pos = temInfoList.ReadData(_lpData, _pos)
+ self.InfoList.append(temInfoList)
return _pos
def Clear(self):
@@ -15136,14 +15374,15 @@
self.Head.Cmd = 0xA3
self.Head.SubCmd = 0x12
self.Num = 0
- self.MagicWeaponID = list()
+ self.InfoList = list()
return
def GetLength(self):
length = 0
length += self.Head.GetLength()
length += 1
- length += 4 * self.Num
+ for i in range(self.Num):
+ length += self.InfoList[i].GetLength()
return length
@@ -15152,14 +15391,14 @@
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])
+ data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
return data
def OutputString(self):
DumpString = '''
Head:%s,
Num:%d,
- MagicWeaponID:%s
+ InfoList:%s
'''\
%(
self.Head.OutputString(),
@@ -15169,8 +15408,8 @@
return DumpString
-m_NAtagMCMagicWeaponData=tagMCMagicWeaponData()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponData.Head.Cmd,m_NAtagMCMagicWeaponData.Head.SubCmd))] = m_NAtagMCMagicWeaponData
+m_NAtagMCHorsePetSkinData=tagMCHorsePetSkinData()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHorsePetSkinData.Head.Cmd,m_NAtagMCHorsePetSkinData.Head.SubCmd))] = m_NAtagMCHorsePetSkinData
#------------------------------------------------------
@@ -15182,7 +15421,6 @@
("MWID", c_int),
("LV", c_ubyte),
("Exp", c_int),
- ("State", c_ubyte), #是否点击法宝认主
("FBPassLV", c_ubyte), #副本关卡
("IsWear", c_ubyte), #是否佩戴(仅适用王者法宝)
]
@@ -15200,7 +15438,6 @@
self.MWID = 0
self.LV = 0
self.Exp = 0
- self.State = 0
self.FBPassLV = 0
self.IsWear = 0
return
@@ -15216,7 +15453,6 @@
MWID:%d,
LV:%d,
Exp:%d,
- State:%d,
FBPassLV:%d,
IsWear:%d
'''\
@@ -15224,7 +15460,6 @@
self.MWID,
self.LV,
self.Exp,
- self.State,
self.FBPassLV,
self.IsWear
)
@@ -15717,16 +15952,13 @@
#------------------------------------------------------
-# A3 53 法宝特权数据 #tagMCMWPrivilegeDataInfo
+# A3 25 NPC已攻击次数信息 #tagMCNPCAttackCountInfo
-class tagMCMWPrivilegeData(Structure):
+class tagMCNPCAttackCount(Structure):
_pack_ = 1
_fields_ = [
- ("PriID", c_int), # 特权ID
- ("State", c_ubyte), #激活状态
- ("CurValue", c_int), #当前总进度
- ("GotValue", c_int), #已领取进度
- ("ItemAwardState", c_ubyte), #物品奖励是否已领取
+ ("NPCID", c_int),
+ ("AttackCount", c_ubyte), #已攻击次数
]
def __init__(self):
@@ -15739,47 +15971,38 @@
return _pos + self.GetLength()
def Clear(self):
- self.PriID = 0
- self.State = 0
- self.CurValue = 0
- self.GotValue = 0
- self.ItemAwardState = 0
+ self.NPCID = 0
+ self.AttackCount = 0
return
def GetLength(self):
- return sizeof(tagMCMWPrivilegeData)
+ return sizeof(tagMCNPCAttackCount)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// A3 53 法宝特权数据 //tagMCMWPrivilegeDataInfo:
- PriID:%d,
- State:%d,
- CurValue:%d,
- GotValue:%d,
- ItemAwardState:%d
+ DumpString = '''// A3 25 NPC已攻击次数信息 //tagMCNPCAttackCountInfo:
+ NPCID:%d,
+ AttackCount:%d
'''\
%(
- self.PriID,
- self.State,
- self.CurValue,
- self.GotValue,
- self.ItemAwardState
+ self.NPCID,
+ self.AttackCount
)
return DumpString
-class tagMCMWPrivilegeDataInfo(Structure):
+class tagMCNPCAttackCountInfo(Structure):
Head = tagHead()
- Count = 0 #(BYTE Count)// 信息个数
- InfoList = list() #(vector<tagMCMWPrivilegeData> InfoList)// 信息列表
+ Count = 0 #(BYTE Count)
+ NPCAttackCountList = list() #(vector<tagMCNPCAttackCount> NPCAttackCountList)
data = None
def __init__(self):
self.Clear()
self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x53
+ self.Head.SubCmd = 0x25
return
def ReadData(self, _lpData, _pos=0, _Len=0):
@@ -15787,18 +16010,18 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
- temInfoList = tagMCMWPrivilegeData()
- _pos = temInfoList.ReadData(_lpData, _pos)
- self.InfoList.append(temInfoList)
+ 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 = 0x53
+ self.Head.SubCmd = 0x25
self.Count = 0
- self.InfoList = list()
+ self.NPCAttackCountList = list()
return
def GetLength(self):
@@ -15806,7 +16029,7 @@
length += self.Head.GetLength()
length += 1
for i in range(self.Count):
- length += self.InfoList[i].GetLength()
+ length += self.NPCAttackCountList[i].GetLength()
return length
@@ -15815,14 +16038,14 @@
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.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
+ data = CommFunc.WriteString(data, self.NPCAttackCountList[i].GetLength(), self.NPCAttackCountList[i].GetBuffer())
return data
def OutputString(self):
DumpString = '''
Head:%s,
Count:%d,
- InfoList:%s
+ NPCAttackCountList:%s
'''\
%(
self.Head.OutputString(),
@@ -15832,8 +16055,8 @@
return DumpString
-m_NAtagMCMWPrivilegeDataInfo=tagMCMWPrivilegeDataInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMWPrivilegeDataInfo.Head.Cmd,m_NAtagMCMWPrivilegeDataInfo.Head.SubCmd))] = m_NAtagMCMWPrivilegeDataInfo
+m_NAtagMCNPCAttackCountInfo=tagMCNPCAttackCountInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCAttackCountInfo.Head.Cmd,m_NAtagMCNPCAttackCountInfo.Head.SubCmd))] = m_NAtagMCNPCAttackCountInfo
#------------------------------------------------------
@@ -16469,20 +16692,16 @@
#------------------------------------------------------
# A3 BF 通知客户端炼丹炉信息 #tagMCPlayerStoveMsg
-class tagMCPlayerStoveMsg(Structure):
+class tagMCPlayerStoveInfo(Structure):
_pack_ = 1
_fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("StoveLV", c_ubyte), # 炼丹炉等级
- ("StoveExp", c_int), # 炼丹炉经验
- ("ItemID", c_int), # 合成物品id
+ ("AlchemyID", c_int), # 丹 ID
+ ("StartTime", c_int), # 开始炼的时间
+ ("AlchemyTimes", c_ushort), # 炼的次数
]
def __init__(self):
self.Clear()
- self.Cmd = 0xA3
- self.SubCmd = 0xBF
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -16491,39 +16710,123 @@
return _pos + self.GetLength()
def Clear(self):
- self.Cmd = 0xA3
- self.SubCmd = 0xBF
- self.StoveLV = 0
- self.StoveExp = 0
- self.ItemID = 0
+ self.AlchemyID = 0
+ self.StartTime = 0
+ self.AlchemyTimes = 0
return
def GetLength(self):
- return sizeof(tagMCPlayerStoveMsg)
+ return sizeof(tagMCPlayerStoveInfo)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
DumpString = '''// A3 BF 通知客户端炼丹炉信息 //tagMCPlayerStoveMsg:
- Cmd:%s,
- SubCmd:%s,
- StoveLV:%d,
- StoveExp:%d,
- ItemID:%d
+ AlchemyID:%d,
+ StartTime:%d,
+ AlchemyTimes:%d
'''\
%(
- self.Cmd,
- self.SubCmd,
+ self.AlchemyID,
+ self.StartTime,
+ self.AlchemyTimes
+ )
+ return DumpString
+
+
+class tagMCPlayerStoveMsg(Structure):
+ Head = tagHead()
+ StoveLV = 0 #(BYTE StoveLV)// 炼丹炉等级
+ StoveExp = 0 #(DWORD StoveExp)// 炼丹炉经验
+ ItemID = 0 #(DWORD ItemID)// 合成物品id
+ ItemCnt = 0 #(BYTE ItemCnt)// 丹药数量
+ StoveCnt = 0 #(WORD StoveCnt)// 丹药数量
+ InfoList = list() #(vector<tagMCPlayerStoveInfo> InfoList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0xBF
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.StoveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.StoveExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.StoveCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ for i in range(self.StoveCnt):
+ temInfoList = tagMCPlayerStoveInfo()
+ _pos = temInfoList.ReadData(_lpData, _pos)
+ self.InfoList.append(temInfoList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0xBF
+ self.StoveLV = 0
+ self.StoveExp = 0
+ self.ItemID = 0
+ self.ItemCnt = 0
+ self.StoveCnt = 0
+ self.InfoList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 4
+ length += 4
+ length += 1
+ length += 2
+ for i in range(self.StoveCnt):
+ length += self.InfoList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.StoveLV)
+ data = CommFunc.WriteDWORD(data, self.StoveExp)
+ data = CommFunc.WriteDWORD(data, self.ItemID)
+ data = CommFunc.WriteBYTE(data, self.ItemCnt)
+ data = CommFunc.WriteWORD(data, self.StoveCnt)
+ for i in range(self.StoveCnt):
+ data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StoveLV:%d,
+ StoveExp:%d,
+ ItemID:%d,
+ ItemCnt:%d,
+ StoveCnt:%d,
+ InfoList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
self.StoveLV,
self.StoveExp,
- self.ItemID
+ self.ItemID,
+ self.ItemCnt,
+ self.StoveCnt,
+ "..."
)
return DumpString
m_NAtagMCPlayerStoveMsg=tagMCPlayerStoveMsg()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Cmd,m_NAtagMCPlayerStoveMsg.SubCmd))] = m_NAtagMCPlayerStoveMsg
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Head.Cmd,m_NAtagMCPlayerStoveMsg.Head.SubCmd))] = m_NAtagMCPlayerStoveMsg
#------------------------------------------------------
@@ -16583,6 +16886,74 @@
#------------------------------------------------------
+# A3 27 境界修为池信息 #tagMCRealmExpInfo
+
+class tagMCRealmExpInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("BeginTime", c_int), #开始计时时间
+ ("BuffTime", c_int), #buff剩余时间
+ ("BuffAddRate", c_int), #buff加成万分率
+ ("CurExp", c_int), #当前总经验
+ ("CurExpPoint", c_int), #当前总经验点
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA3
+ self.SubCmd = 0x27
+ 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 = 0xA3
+ self.SubCmd = 0x27
+ self.BeginTime = 0
+ self.BuffTime = 0
+ self.BuffAddRate = 0
+ self.CurExp = 0
+ self.CurExpPoint = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCRealmExpInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A3 27 境界修为池信息 //tagMCRealmExpInfo:
+ Cmd:%s,
+ SubCmd:%s,
+ BeginTime:%d,
+ BuffTime:%d,
+ BuffAddRate:%d,
+ CurExp:%d,
+ CurExpPoint:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.BeginTime,
+ self.BuffTime,
+ self.BuffAddRate,
+ self.CurExp,
+ self.CurExpPoint
+ )
+ return DumpString
+
+
+m_NAtagMCRealmExpInfo=tagMCRealmExpInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRealmExpInfo.Cmd,m_NAtagMCRealmExpInfo.SubCmd))] = m_NAtagMCRealmExpInfo
+
+
+#------------------------------------------------------
# A3 49 资源找回次数 #tagMCRecoverNum
class tagMCRecoverNumInfo(Structure):
@@ -16593,6 +16964,7 @@
("ExtraCnt", c_ubyte), # VIP额外次数
("ExtraData", c_ubyte), # 额外参数1
("ExtraData2", c_ubyte), # 额外参数2
+ ("HaveRecover", c_ubyte), # 已找回 1-全部已找回 2-非VIP已找回
]
def __init__(self):
@@ -16610,6 +16982,7 @@
self.ExtraCnt = 0
self.ExtraData = 0
self.ExtraData2 = 0
+ self.HaveRecover = 0
return
def GetLength(self):
@@ -16624,14 +16997,16 @@
RecoverCnt:%d,
ExtraCnt:%d,
ExtraData:%d,
- ExtraData2:%d
+ ExtraData2:%d,
+ HaveRecover:%d
'''\
%(
self.Index,
self.RecoverCnt,
self.ExtraCnt,
self.ExtraData,
- self.ExtraData2
+ self.ExtraData2,
+ self.HaveRecover
)
return DumpString
@@ -16830,6 +17205,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
#------------------------------------------------------
@@ -17437,18 +17984,14 @@
#------------------------------------------------------
-# A3 11 通知玩家境界渡劫是否开启 #tagMCSyncRealmFBIsOpen
+# A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
-class tagMCSyncRealmFBIsOpen(Structure):
+class tagMCSyncRealmInfo(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("IsOpen", c_ubyte), #是否开启
- ("SitAllTime", c_ushort), #打坐总时间秒
- ("SitRemainTime", c_int), #开始打坐前剩余时间秒
- ("SitStartTime", c_int), #开始打坐时间
- ("LastEnterTime", c_int), #上次进入渡劫副本时间
+ ("IsPass", c_ubyte), #是否通关副本
]
def __init__(self):
@@ -17465,43 +18008,31 @@
def Clear(self):
self.Cmd = 0xA3
self.SubCmd = 0x11
- self.IsOpen = 0
- self.SitAllTime = 0
- self.SitRemainTime = 0
- self.SitStartTime = 0
- self.LastEnterTime = 0
+ self.IsPass = 0
return
def GetLength(self):
- return sizeof(tagMCSyncRealmFBIsOpen)
+ return sizeof(tagMCSyncRealmInfo)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// A3 11 通知玩家境界渡劫是否开启 //tagMCSyncRealmFBIsOpen:
+ DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
Cmd:%s,
SubCmd:%s,
- IsOpen:%d,
- SitAllTime:%d,
- SitRemainTime:%d,
- SitStartTime:%d,
- LastEnterTime:%d
+ IsPass:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.IsOpen,
- self.SitAllTime,
- self.SitRemainTime,
- self.SitStartTime,
- self.LastEnterTime
+ self.IsPass
)
return DumpString
-m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen
+m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
#------------------------------------------------------
@@ -18251,6 +18782,58 @@
#------------------------------------------------------
+# A5 02 家族活跃令兑换结果 #tagMCFamilyActivityExchangeResult
+
+class tagMCFamilyActivityExchangeResult(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("Point", c_int), # 活跃令
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA5
+ self.SubCmd = 0x02
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xA5
+ self.SubCmd = 0x02
+ self.Point = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFamilyActivityExchangeResult)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A5 02 家族活跃令兑换结果 //tagMCFamilyActivityExchangeResult:
+ Cmd:%s,
+ SubCmd:%s,
+ Point:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.Point
+ )
+ return DumpString
+
+
+m_NAtagMCFamilyActivityExchangeResult=tagMCFamilyActivityExchangeResult()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityExchangeResult.Cmd,m_NAtagMCFamilyActivityExchangeResult.SubCmd))] = m_NAtagMCFamilyActivityExchangeResult
+
+
+#------------------------------------------------------
# A5 06 仙盟每日福利领取状态 #tagMCFamilyDayAward
class tagMCFamilyDayAward(Structure):
@@ -18404,74 +18987,6 @@
m_NAtagMCFamilyRedPacketGoldLimit=tagMCFamilyRedPacketGoldLimit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyRedPacketGoldLimit.Cmd,m_NAtagMCFamilyRedPacketGoldLimit.SubCmd))] = m_NAtagMCFamilyRedPacketGoldLimit
-
-
-#------------------------------------------------------
-#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
#------------------------------------------------------
@@ -19209,6 +19724,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
#------------------------------------------------------
@@ -20252,6 +20886,84 @@
#------------------------------------------------------
+# 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
+
+
+#------------------------------------------------------
# A7 07 通知玩家自定义聊天 #tagMCPyTalk
class tagMCPyTalk(Structure):
@@ -20918,6 +21630,58 @@
#------------------------------------------------------
+# A8 15 灵器突破结果 #tagMCLingQiEquipBreakResult
+
+class tagMCLingQiEquipBreakResult(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("MakeItemID", c_int), #突破后的物品ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA8
+ self.SubCmd = 0x15
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xA8
+ self.SubCmd = 0x15
+ self.MakeItemID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCLingQiEquipBreakResult)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A8 15 灵器突破结果 //tagMCLingQiEquipBreakResult:
+ Cmd:%s,
+ SubCmd:%s,
+ MakeItemID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.MakeItemID
+ )
+ return DumpString
+
+
+m_NAtagMCLingQiEquipBreakResult=tagMCLingQiEquipBreakResult()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLingQiEquipBreakResult.Cmd,m_NAtagMCLingQiEquipBreakResult.SubCmd))] = m_NAtagMCLingQiEquipBreakResult
+
+
+#------------------------------------------------------
# A8 14 合成结果通知 #tagMCMakeItemAnswer
class tagMCMakeItemAnswer(Structure):
@@ -21345,126 +22109,6 @@
#------------------------------------------------------
-# A8 04 通知商店限购物品已购买次数信息 # tagMCShopItemBuyCntInfoList
-
-class tagMCShopItemBuyCntInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("ShopID", c_int),
- ("ItemShopIndex", c_ushort),
- ("ItemID", c_int),
- ("BuyCnt", c_int), # 个人已购买数
- ("ServerBuyCnt", 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.ShopID = 0
- self.ItemShopIndex = 0
- self.ItemID = 0
- self.BuyCnt = 0
- self.ServerBuyCnt = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCShopItemBuyCntInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A8 04 通知商店限购物品已购买次数信息 // tagMCShopItemBuyCntInfoList:
- ShopID:%d,
- ItemShopIndex:%d,
- ItemID:%d,
- BuyCnt:%d,
- ServerBuyCnt:%d
- '''\
- %(
- self.ShopID,
- self.ItemShopIndex,
- self.ItemID,
- self.BuyCnt,
- self.ServerBuyCnt
- )
- return DumpString
-
-
-class tagMCShopItemBuyCntInfoList(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)//通知个数
- BuyCntList = list() #(vector<tagMCShopItemBuyCntInfo> BuyCntList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x04
- 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):
- temBuyCntList = tagMCShopItemBuyCntInfo()
- _pos = temBuyCntList.ReadData(_lpData, _pos)
- self.BuyCntList.append(temBuyCntList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x04
- self.Count = 0
- self.BuyCntList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.BuyCntList[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.BuyCntList[i].GetLength(), self.BuyCntList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- BuyCntList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCShopItemBuyCntInfoList=tagMCShopItemBuyCntInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemBuyCntInfoList.Head.Cmd,m_NAtagMCShopItemBuyCntInfoList.Head.SubCmd))] = m_NAtagMCShopItemBuyCntInfoList
-
-
-#------------------------------------------------------
# A8 02 通知NPC商店物品今日已购买次数 #tagMCShopItemDayBuyCntInfo
class tagMCShopItemDayBuyCnt(Structure):
@@ -21577,239 +22221,6 @@
#------------------------------------------------------
-# A8 03 通知自定义商店物品信息 #tagMCShopItemInfoList
-
-class tagMCShopItemInfo(Structure):
- ShopID = 0 #(DWORD ShopID)
- ItemShopIndex = 0 #(WORD ItemShopIndex)
- DataSize = 0 #(DWORD DataSize)
- ItemList = "" #(String ItemList)//物品列表[[物品ID,数量,是否绑定,是否定制]]
- PriceType = 0 #(BYTE PriceType)
- Price = 0 #(DWORD Price)
- OriginalPrice = 0 #(DWORD OriginalPrice)// 原价
- PlayerLVLimit = 0 #(WORD PlayerLVLimit)// 购买等级限制
- FamilyLVLimit = 0 #(BYTE FamilyLVLimit)// 购买战盟等级限制
- MaxBuyCnt = 0 #(DWORD MaxBuyCnt)// 个人限购数
- ServerMaxBuyCnt = 0 #(DWORD ServerMaxBuyCnt)// 全服限购数
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.ShopID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ItemShopIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ItemList,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize)
- self.PriceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Price,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.OriginalPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.PlayerLVLimit,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.FamilyLVLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.MaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ServerMaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.ShopID = 0
- self.ItemShopIndex = 0
- self.DataSize = 0
- self.ItemList = ""
- self.PriceType = 0
- self.Price = 0
- self.OriginalPrice = 0
- self.PlayerLVLimit = 0
- self.FamilyLVLimit = 0
- self.MaxBuyCnt = 0
- self.ServerMaxBuyCnt = 0
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 2
- length += 4
- length += len(self.ItemList)
- length += 1
- length += 4
- length += 4
- length += 2
- length += 1
- length += 4
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.ShopID)
- data = CommFunc.WriteWORD(data, self.ItemShopIndex)
- data = CommFunc.WriteDWORD(data, self.DataSize)
- data = CommFunc.WriteString(data, self.DataSize, self.ItemList)
- data = CommFunc.WriteBYTE(data, self.PriceType)
- data = CommFunc.WriteDWORD(data, self.Price)
- data = CommFunc.WriteDWORD(data, self.OriginalPrice)
- data = CommFunc.WriteWORD(data, self.PlayerLVLimit)
- data = CommFunc.WriteBYTE(data, self.FamilyLVLimit)
- data = CommFunc.WriteDWORD(data, self.MaxBuyCnt)
- data = CommFunc.WriteDWORD(data, self.ServerMaxBuyCnt)
- return data
-
- def OutputString(self):
- DumpString = '''
- ShopID:%d,
- ItemShopIndex:%d,
- DataSize:%d,
- ItemList:%s,
- PriceType:%d,
- Price:%d,
- OriginalPrice:%d,
- PlayerLVLimit:%d,
- FamilyLVLimit:%d,
- MaxBuyCnt:%d,
- ServerMaxBuyCnt:%d
- '''\
- %(
- self.ShopID,
- self.ItemShopIndex,
- self.DataSize,
- self.ItemList,
- self.PriceType,
- self.Price,
- self.OriginalPrice,
- self.PlayerLVLimit,
- self.FamilyLVLimit,
- self.MaxBuyCnt,
- self.ServerMaxBuyCnt
- )
- return DumpString
-
-
-class tagMCShopItemInfoList(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)//通知个数
- ShopItemList = list() #(vector<tagMCShopItemInfo> ShopItemList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x03
- 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):
- temShopItemList = tagMCShopItemInfo()
- _pos = temShopItemList.ReadData(_lpData, _pos)
- self.ShopItemList.append(temShopItemList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x03
- self.Count = 0
- self.ShopItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.ShopItemList[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.ShopItemList[i].GetLength(), self.ShopItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- ShopItemList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCShopItemInfoList=tagMCShopItemInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemInfoList.Head.Cmd,m_NAtagMCShopItemInfoList.Head.SubCmd))] = m_NAtagMCShopItemInfoList
-
-
-#------------------------------------------------------
-# A8 05 通知神秘商店刷新次数 #tagMCShopRefreshCnt
-
-class tagMCShopRefreshCnt(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ShopID", c_int), #商店ID
- ("RefreshCnt", c_ushort), #已手动刷新次数
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA8
- self.SubCmd = 0x05
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xA8
- self.SubCmd = 0x05
- self.ShopID = 0
- self.RefreshCnt = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCShopRefreshCnt)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A8 05 通知神秘商店刷新次数 //tagMCShopRefreshCnt:
- Cmd:%s,
- SubCmd:%s,
- ShopID:%d,
- RefreshCnt:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ShopID,
- self.RefreshCnt
- )
- return DumpString
-
-
-m_NAtagMCShopRefreshCnt=tagMCShopRefreshCnt()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopRefreshCnt.Cmd,m_NAtagMCShopRefreshCnt.SubCmd))] = m_NAtagMCShopRefreshCnt
-
-
-#------------------------------------------------------
# A8 13 虚拟掉落物品 #tagMCVirtualItemDrop
class tagMCVirtualItemDrop(Structure):
@@ -21892,118 +22303,6 @@
m_NAtagMCVirtualItemDrop=tagMCVirtualItemDrop()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVirtualItemDrop.Head.Cmd,m_NAtagMCVirtualItemDrop.Head.SubCmd))] = m_NAtagMCVirtualItemDrop
-
-
-#------------------------------------------------------
-# A8 15 诛仙装备分解结果通知 #tagMCZhuXianDecomposeResult
-
-class tagMCZhuXianDecomposeItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int), #物品ID
- ("ItemCnt", c_ubyte), #物品数量
- ("IsBind", c_ubyte), #是否绑定
- ]
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCZhuXianDecomposeItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A8 15 诛仙装备分解结果通知 //tagMCZhuXianDecomposeResult:
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d
- '''\
- %(
- self.ItemID,
- self.ItemCnt,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCZhuXianDecomposeResult(Structure):
- Head = tagHead()
- Cnt = 0 #(BYTE Cnt)//数量
- ItemList = list() #(vector<tagMCZhuXianDecomposeItem> ItemList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x15
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Cnt):
- temItemList = tagMCZhuXianDecomposeItem()
- _pos = temItemList.ReadData(_lpData, _pos)
- self.ItemList.append(temItemList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x15
- self.Cnt = 0
- self.ItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Cnt):
- length += self.ItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.Cnt)
- for i in range(self.Cnt):
- data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Cnt:%d,
- ItemList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Cnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCZhuXianDecomposeResult=tagMCZhuXianDecomposeResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianDecomposeResult.Head.Cmd,m_NAtagMCZhuXianDecomposeResult.Head.SubCmd))] = m_NAtagMCZhuXianDecomposeResult
#------------------------------------------------------
@@ -23254,240 +23553,6 @@
m_NAtagMCAllPeoplePartyInfo=tagMCAllPeoplePartyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllPeoplePartyInfo.Head.Cmd,m_NAtagMCAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCAllPeoplePartyInfo
-
-
-#------------------------------------------------------
-# AA 03 升阶功能特惠奖励记录 #tagMCClassUPDayAwardRecordList
-
-class tagMCClassUPDayAwardRecord(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("DayType", c_ubyte), # 奖励日类型
- ("Record", c_int), # 奖励记录
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x03
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x03
- self.DayType = 0
- self.Record = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCClassUPDayAwardRecord)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 03 升阶功能特惠奖励记录 //tagMCClassUPDayAwardRecordList:
- Cmd:%s,
- SubCmd:%s,
- DayType:%d,
- Record:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.DayType,
- self.Record
- )
- return DumpString
-
-
-class tagMCClassUPDayAwardRecordList(Structure):
- Head = tagHead()
- RecordCount = 0 #(BYTE RecordCount)//记录个数
- RecordInfoList = list() #(vector<tagMCClassUPDayAwardRecord> RecordInfoList)//记录列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x03
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.RecordCount):
- temRecordInfoList = tagMCClassUPDayAwardRecord()
- _pos = temRecordInfoList.ReadData(_lpData, _pos)
- self.RecordInfoList.append(temRecordInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x03
- self.RecordCount = 0
- self.RecordInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.RecordCount):
- length += self.RecordInfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.RecordCount)
- for i in range(self.RecordCount):
- data = CommFunc.WriteString(data, self.RecordInfoList[i].GetLength(), self.RecordInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- RecordCount:%d,
- RecordInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.RecordCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCClassUPDayAwardRecordList=tagMCClassUPDayAwardRecordList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClassUPDayAwardRecordList.Head.Cmd,m_NAtagMCClassUPDayAwardRecordList.Head.SubCmd))] = m_NAtagMCClassUPDayAwardRecordList
-
-
-#------------------------------------------------------
-# AA 06 消费奖励信息 #tagMCCostProfitInfo
-
-class tagMCCostProfitInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActionID", c_int), # 活动ID
- ("TotalCost", c_int), # 总消费
- ("AwardState", c_int), # 奖励领取状态
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- 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 = 0xAA
- self.SubCmd = 0x06
- self.ActionID = 0
- self.TotalCost = 0
- self.AwardState = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCCostProfitInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 06 消费奖励信息 //tagMCCostProfitInfo:
- Cmd:%s,
- SubCmd:%s,
- ActionID:%d,
- TotalCost:%d,
- AwardState:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActionID,
- self.TotalCost,
- self.AwardState
- )
- return DumpString
-
-
-m_NAtagMCCostProfitInfo=tagMCCostProfitInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostProfitInfo.Cmd,m_NAtagMCCostProfitInfo.SubCmd))] = m_NAtagMCCostProfitInfo
-
-
-#------------------------------------------------------
-# AA 07 消费排行特惠信息 #tagMCCostRankTeHuiInfo
-
-class tagMCCostRankTeHuiInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActionID", c_int), # 活动ID
- ("TotalCost", c_int), # 总累计消费钻石
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- 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 = 0xAA
- self.SubCmd = 0x07
- self.ActionID = 0
- self.TotalCost = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCCostRankTeHuiInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 07 消费排行特惠信息 //tagMCCostRankTeHuiInfo:
- Cmd:%s,
- SubCmd:%s,
- ActionID:%d,
- TotalCost:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActionID,
- self.TotalCost
- )
- return DumpString
-
-
-m_NAtagMCCostRankTeHuiInfo=tagMCCostRankTeHuiInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRankTeHuiInfo.Cmd,m_NAtagMCCostRankTeHuiInfo.SubCmd))] = m_NAtagMCCostRankTeHuiInfo
#------------------------------------------------------
@@ -25689,198 +25754,6 @@
#------------------------------------------------------
-# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
-
-class tagMCRechargeRankTeHuiInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActionID", c_int), # 活动ID
- ("TotalGold", c_int), # 总累计充值元宝
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x05
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x05
- self.ActionID = 0
- self.TotalGold = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCRechargeRankTeHuiInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 05 充值排行特惠信息 //tagMCRechargeRankTeHuiInfo:
- Cmd:%s,
- SubCmd:%s,
- ActionID:%d,
- TotalGold:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActionID,
- self.TotalGold
- )
- return DumpString
-
-
-m_NAtagMCRechargeRankTeHuiInfo=tagMCRechargeRankTeHuiInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRankTeHuiInfo.Cmd,m_NAtagMCRechargeRankTeHuiInfo.SubCmd))] = m_NAtagMCRechargeRankTeHuiInfo
-
-
-#------------------------------------------------------
-# AA 04 充值特惠信息 #tagMCRechargeTeHuiInfoList
-
-class tagMCRechargeTeHuiInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("GotCnt", c_ubyte), # 已领取次数
- ("CanGetCnt", c_ubyte), # 当前可领取次数
- ("CurTotalGold", c_int), # 当前规则累计充值元宝-仅针对累充规则
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x04
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0xAA
- self.SubCmd = 0x04
- self.GotCnt = 0
- self.CanGetCnt = 0
- self.CurTotalGold = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCRechargeTeHuiInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 04 充值特惠信息 //tagMCRechargeTeHuiInfoList:
- Cmd:%s,
- SubCmd:%s,
- GotCnt:%d,
- CanGetCnt:%d,
- CurTotalGold:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.GotCnt,
- self.CanGetCnt,
- self.CurTotalGold
- )
- return DumpString
-
-
-class tagMCRechargeTeHuiInfoList(Structure):
- Head = tagHead()
- ActionID = 0 #(DWORD ActionID)// 活动ID
- TotalGold = 0 #(DWORD TotalGold)// 总累计充值元宝
- InfoCnt = 0 #(BYTE InfoCnt)// 信息个数
- InfoList = list() #(vector<tagMCRechargeTeHuiInfo> InfoList)// 信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x04
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActionID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.TotalGold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.InfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.InfoCnt):
- temInfoList = tagMCRechargeTeHuiInfo()
- _pos = temInfoList.ReadData(_lpData, _pos)
- self.InfoList.append(temInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x04
- self.ActionID = 0
- self.TotalGold = 0
- self.InfoCnt = 0
- self.InfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 4
- length += 1
- for i in range(self.InfoCnt):
- length += self.InfoList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.ActionID)
- data = CommFunc.WriteDWORD(data, self.TotalGold)
- data = CommFunc.WriteBYTE(data, self.InfoCnt)
- for i in range(self.InfoCnt):
- data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActionID:%d,
- TotalGold:%d,
- InfoCnt:%d,
- InfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActionID,
- self.TotalGold,
- self.InfoCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCRechargeTeHuiInfoList=tagMCRechargeTeHuiInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeTeHuiInfoList.Head.Cmd,m_NAtagMCRechargeTeHuiInfoList.Head.SubCmd))] = m_NAtagMCRechargeTeHuiInfoList
-
-
-#------------------------------------------------------
# AA 11 限时特惠活动信息 #tagMCSpringSaleInfo
class tagMCSpringSaleItem(Structure):
@@ -27068,310 +26941,6 @@
m_NAtagMCBossRebornPlayerInfo=tagMCBossRebornPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornPlayerInfo.Head.Cmd,m_NAtagMCBossRebornPlayerInfo.Head.SubCmd))] = m_NAtagMCBossRebornPlayerInfo
-
-
-#------------------------------------------------------
-# 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
#------------------------------------------------------
@@ -28744,6 +28313,83 @@
#------------------------------------------------------
+# B1 07 玩家点数信息 #tagMCRolePointInfo
+
+class tagMCRolePointInfo(Structure):
+ Head = tagHead()
+ PointAttrIDCount = 0 #(BYTE PointAttrIDCount)// 点类型个数
+ PointAttrIDList = list() #(vector<BYTE> PointAttrIDList)// 点类型列表
+ PointValueList = list() #(vector<DWORD> PointValueList)// 点类型对应已加自由点数列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x07
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.PointAttrIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.PointAttrIDCount):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.PointAttrIDList.append(value)
+ for i in range(self.PointAttrIDCount):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.PointValueList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x07
+ self.PointAttrIDCount = 0
+ self.PointAttrIDList = list()
+ self.PointValueList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 1 * self.PointAttrIDCount
+ length += 4 * self.PointAttrIDCount
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.PointAttrIDCount)
+ for i in range(self.PointAttrIDCount):
+ data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i])
+ for i in range(self.PointAttrIDCount):
+ data = CommFunc.WriteDWORD(data, self.PointValueList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ PointAttrIDCount:%d,
+ PointAttrIDList:%s,
+ PointValueList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.PointAttrIDCount,
+ "...",
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCRolePointInfo=tagMCRolePointInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRolePointInfo.Head.Cmd,m_NAtagMCRolePointInfo.Head.SubCmd))] = m_NAtagMCRolePointInfo
+
+
+#------------------------------------------------------
# B1 01 玩家技能连击通知 #tagMCSkillCombo
class tagMCSkillCombo(Structure):
@@ -28961,6 +28607,54 @@
m_NAtagMCPlayerWallow=tagMCPlayerWallow()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerWallow.Cmd,m_NAtagMCPlayerWallow.SubCmd))] = m_NAtagMCPlayerWallow
+
+
+#------------------------------------------------------
+#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
#------------------------------------------------------
@@ -29265,6 +28959,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
#------------------------------------------------------
@@ -30106,6 +29912,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):
@@ -30226,62 +30144,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