From fd1197fd91110938802a68d998e6f45bb65495ed Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 09 二月 2026 20:12:07 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(公会讨伐支持跨服;test_OnDay等命令支持跨服同步过天等;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 4906 ++++++++++++++--------------------------------------------
1 files changed, 1,228 insertions(+), 3,678 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index b525881..f3609e7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -2386,6 +2386,127 @@
#------------------------------------------------------
+# A1 31 前端自定义保存的设置内容信息 #tagSCSettingDataInfo
+
+class tagSCSettingData(Structure):
+ KeyNum = 0 #(BYTE KeyNum)// 自定义key编号,后端使用数字key存储,前端自行进行转换定义,限制100个
+ DataLen = 0 #(BYTE DataLen)
+ SetData = "" #(String SetData)//自定义保存的内容
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.KeyNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.DataLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.SetData,_pos = CommFunc.ReadString(_lpData, _pos,self.DataLen)
+ return _pos
+
+ def Clear(self):
+ self.KeyNum = 0
+ self.DataLen = 0
+ self.SetData = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 1
+ length += len(self.SetData)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.KeyNum)
+ data = CommFunc.WriteBYTE(data, self.DataLen)
+ data = CommFunc.WriteString(data, self.DataLen, self.SetData)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ KeyNum:%d,
+ DataLen:%d,
+ SetData:%s
+ '''\
+ %(
+ self.KeyNum,
+ self.DataLen,
+ self.SetData
+ )
+ return DumpString
+
+
+class tagSCSettingDataInfo(Structure):
+ Head = tagHead()
+ DataCnt = 0 #(WORD DataCnt)
+ SettingDataList = list() #(vector<tagSCSettingData> SettingDataList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA1
+ self.Head.SubCmd = 0x31
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.DataCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ for i in range(self.DataCnt):
+ temSettingDataList = tagSCSettingData()
+ _pos = temSettingDataList.ReadData(_lpData, _pos)
+ self.SettingDataList.append(temSettingDataList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA1
+ self.Head.SubCmd = 0x31
+ self.DataCnt = 0
+ self.SettingDataList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 2
+ for i in range(self.DataCnt):
+ length += self.SettingDataList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteWORD(data, self.DataCnt)
+ for i in range(self.DataCnt):
+ data = CommFunc.WriteString(data, self.SettingDataList[i].GetLength(), self.SettingDataList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ DataCnt:%d,
+ SettingDataList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.DataCnt,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCSettingDataInfo=tagSCSettingDataInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCSettingDataInfo.Head.Cmd,m_NAtagSCSettingDataInfo.Head.SubCmd))] = m_NAtagSCSettingDataInfo
+
+
+#------------------------------------------------------
#A1 26 准备切换地图 #tagMCPrepareChangeMap
class tagMCPrepareChangeMap(Structure):
@@ -7419,80 +7540,6 @@
#------------------------------------------------------
-# A3 1F 玩家符印信息 #tagMCRuneInfo
-
-class tagMCRuneInfo(Structure):
- Head = tagHead()
- RuneHoleOpenState = 0 #(DWORD RuneHoleOpenState)//符印孔状态, 按索引表示激活状态
- Count = 0 #(BYTE Count)// 符印孔信息数
- RuneDataList = list() #(vector<DWORD> RuneDataList)// 符印孔数据信息, 数据与背包数据相同
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x1F
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.RuneHoleOpenState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.RuneDataList.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x1F
- self.RuneHoleOpenState = 0
- self.Count = 0
- self.RuneDataList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += 4 * self.Count
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.RuneHoleOpenState)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteDWORD(data, self.RuneDataList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- RuneHoleOpenState:%d,
- Count:%d,
- RuneDataList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.RuneHoleOpenState,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCRuneInfo=tagMCRuneInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRuneInfo.Head.Cmd,m_NAtagMCRuneInfo.Head.SubCmd))] = m_NAtagMCRuneInfo
-
-
-#------------------------------------------------------
# A3 44 当日累计充值多选一礼包信息 #tagMCSingleGoldGift
class tagMCSingleGoldGift(Structure):
@@ -8388,290 +8435,6 @@
m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Head.Cmd,m_NAtagMCSyncRealmInfo.Head.SubCmd))] = m_NAtagMCSyncRealmInfo
-
-
-#------------------------------------------------------
-# A3 56 通天令信息 #tagMCTongTianLingInfo
-
-class tagMCTongTianLingInfo(Structure):
- Head = tagHead()
- TTLBuyState = 0 #(BYTE TTLBuyState)//通天令是否已购买
- TTLLV = 0 #(BYTE TTLLV)//通天令等级,从0开始
- CurPoint = 0 #(DWORD CurPoint)//通天令当前等级经验积分点
- AwardStateCount = 0 #(BYTE AwardStateCount)//等级领奖记录值数,每个值存31个记录 0-30, 31-61, ...
- CommAwardStateList = list() #(vector<DWORD> CommAwardStateList)//常规奖励领奖记录,按等级二进制位存储是否领奖
- XianAwardStateList = list() #(vector<DWORD> XianAwardStateList)//仙品奖励领奖记录,按等级二进制位存储是否领奖
- StartTime = 0 #(DWORD StartTime)//通天令本轮开始时间戳,秒
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x56
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.TTLBuyState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.TTLLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.CurPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardStateCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardStateCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.CommAwardStateList.append(value)
- for i in range(self.AwardStateCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.XianAwardStateList.append(value)
- self.StartTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x56
- self.TTLBuyState = 0
- self.TTLLV = 0
- self.CurPoint = 0
- self.AwardStateCount = 0
- self.CommAwardStateList = list()
- self.XianAwardStateList = list()
- self.StartTime = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1
- length += 4
- length += 1
- length += 4 * self.AwardStateCount
- length += 4 * self.AwardStateCount
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.TTLBuyState)
- data = CommFunc.WriteBYTE(data, self.TTLLV)
- data = CommFunc.WriteDWORD(data, self.CurPoint)
- data = CommFunc.WriteBYTE(data, self.AwardStateCount)
- for i in range(self.AwardStateCount):
- data = CommFunc.WriteDWORD(data, self.CommAwardStateList[i])
- for i in range(self.AwardStateCount):
- data = CommFunc.WriteDWORD(data, self.XianAwardStateList[i])
- data = CommFunc.WriteDWORD(data, self.StartTime)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- TTLBuyState:%d,
- TTLLV:%d,
- CurPoint:%d,
- AwardStateCount:%d,
- CommAwardStateList:%s,
- XianAwardStateList:%s,
- StartTime:%d
- '''\
- %(
- self.Head.OutputString(),
- self.TTLBuyState,
- self.TTLLV,
- self.CurPoint,
- self.AwardStateCount,
- "...",
- "...",
- self.StartTime
- )
- return DumpString
-
-
-m_NAtagMCTongTianLingInfo=tagMCTongTianLingInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTongTianLingInfo.Head.Cmd,m_NAtagMCTongTianLingInfo.Head.SubCmd))] = m_NAtagMCTongTianLingInfo
-
-
-#------------------------------------------------------
-# A3 58 通天令任务奖励信息 #tagMCTongTianLingTaskAwardInfo
-
-class tagMCTongTianLingTaskAwardInfo(Structure):
- Head = tagHead()
- AwardStateCount = 0 #(BYTE AwardStateCount)
- TaskAwardStateList = list() #(vector<DWORD> TaskAwardStateList)//任务领奖记录值个数,按任务ID二进制位存储是否已领取,每个值存31个记录 0-30, 31-61, ...
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x58
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.AwardStateCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardStateCount):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.TaskAwardStateList.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x58
- self.AwardStateCount = 0
- self.TaskAwardStateList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 4 * self.AwardStateCount
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.AwardStateCount)
- for i in range(self.AwardStateCount):
- data = CommFunc.WriteDWORD(data, self.TaskAwardStateList[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- AwardStateCount:%d,
- TaskAwardStateList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.AwardStateCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCTongTianLingTaskAwardInfo=tagMCTongTianLingTaskAwardInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTongTianLingTaskAwardInfo.Head.Cmd,m_NAtagMCTongTianLingTaskAwardInfo.Head.SubCmd))] = m_NAtagMCTongTianLingTaskAwardInfo
-
-
-#------------------------------------------------------
-# A3 57 通天令任务进度信息 #tagMCTongTianLingTaskValueInfo
-
-class tagMCTongTianLingTaskValue(Structure):
- _pack_ = 1
- _fields_ = [
- ("TaskType", c_ubyte), #成就类型
- ("IsDaily", c_ubyte), #是否每日任务
- ("TaskValue", 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.TaskType = 0
- self.IsDaily = 0
- self.TaskValue = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCTongTianLingTaskValue)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 57 通天令任务进度信息 //tagMCTongTianLingTaskValueInfo:
- TaskType:%d,
- IsDaily:%d,
- TaskValue:%d
- '''\
- %(
- self.TaskType,
- self.IsDaily,
- self.TaskValue
- )
- return DumpString
-
-
-class tagMCTongTianLingTaskValueInfo(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)//信息个数
- TaskValueList = list() #(vector<tagMCTongTianLingTaskValue> TaskValueList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x57
- 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):
- temTaskValueList = tagMCTongTianLingTaskValue()
- _pos = temTaskValueList.ReadData(_lpData, _pos)
- self.TaskValueList.append(temTaskValueList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x57
- self.Count = 0
- self.TaskValueList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.TaskValueList[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.TaskValueList[i].GetLength(), self.TaskValueList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- TaskValueList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCTongTianLingTaskValueInfo=tagMCTongTianLingTaskValueInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTongTianLingTaskValueInfo.Head.Cmd,m_NAtagMCTongTianLingTaskValueInfo.Head.SubCmd))] = m_NAtagMCTongTianLingTaskValueInfo
#------------------------------------------------------
@@ -10725,6 +10488,158 @@
#------------------------------------------------------
+# A5 05 公会跨服互通信息 #tagSCFamilyCrossInfo
+
+class tagSCFamilyCrossInfo(Structure):
+ Head = tagHead()
+ ZoneID = 0 #(BYTE ZoneID)// 所属分区
+ ServerCnt = 0 #(WORD ServerCnt)
+ ServerIDList = list() #(vector<DWORD> ServerIDList)// 互通服务器ID列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x05
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ServerCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ for i in range(self.ServerCnt):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.ServerIDList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x05
+ self.ZoneID = 0
+ self.ServerCnt = 0
+ self.ServerIDList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 2
+ length += 4 * self.ServerCnt
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ZoneID)
+ data = CommFunc.WriteWORD(data, self.ServerCnt)
+ for i in range(self.ServerCnt):
+ data = CommFunc.WriteDWORD(data, self.ServerIDList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ZoneID:%d,
+ ServerCnt:%d,
+ ServerIDList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.ZoneID,
+ self.ServerCnt,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCFamilyCrossInfo=tagSCFamilyCrossInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFamilyCrossInfo.Head.Cmd,m_NAtagSCFamilyCrossInfo.Head.SubCmd))] = m_NAtagSCFamilyCrossInfo
+
+
+#------------------------------------------------------
+# A5 24 公会成员删除 #tagSCFamilyMemDel
+
+class tagSCFamilyMemDel(Structure):
+ Head = tagHead()
+ Type = 0 #(BYTE Type)// 0-踢出;1-主动退出
+ PlayerID = 0 #(DWORD PlayerID)
+ NameLen = 0 #(BYTE NameLen)
+ Name = "" #(String Name)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x24
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x24
+ self.Type = 0
+ self.PlayerID = 0
+ self.NameLen = 0
+ self.Name = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 4
+ length += 1
+ length += len(self.Name)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.Type)
+ data = CommFunc.WriteDWORD(data, self.PlayerID)
+ data = CommFunc.WriteBYTE(data, self.NameLen)
+ data = CommFunc.WriteString(data, self.NameLen, self.Name)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Type:%d,
+ PlayerID:%d,
+ NameLen:%d,
+ Name:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Type,
+ self.PlayerID,
+ self.NameLen,
+ self.Name
+ )
+ return DumpString
+
+
+m_NAtagSCFamilyMemDel=tagSCFamilyMemDel()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFamilyMemDel.Head.Cmd,m_NAtagSCFamilyMemDel.Head.SubCmd))] = m_NAtagSCFamilyMemDel
+
+
+#------------------------------------------------------
# A5 22 家族申请加入的玩家信息 #tagMCFamilyReqJoinInfo
class tagMCFamilyReqJoinPlayer(Structure):
@@ -11194,6 +11109,7 @@
LeaderID = 0 #(DWORD LeaderID)//族长ID
LeaderNameLen = 0 #(BYTE LeaderNameLen)
LeaderName = "" #(String LeaderName)//size = LeaderNameLen
+ LeaderServerID = 0 #(DWORD LeaderServerID)//族长服务器ID
FamilyLV = 0 #(BYTE FamilyLV)//家族等级
JoinReview = 0 #(BYTE JoinReview)//成员加入是否需要审核,默认0自动加入
JoinLVMin = 0 #(WORD JoinLVMin)//限制最低可加入的玩家等级
@@ -11218,6 +11134,7 @@
self.LeaderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.LeaderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LeaderNameLen)
+ self.LeaderServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.FamilyLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.JoinReview,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.JoinLVMin,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -11237,6 +11154,7 @@
self.LeaderID = 0
self.LeaderNameLen = 0
self.LeaderName = ""
+ self.LeaderServerID = 0
self.FamilyLV = 0
self.JoinReview = 0
self.JoinLVMin = 0
@@ -11257,6 +11175,7 @@
length += 4
length += 1
length += len(self.LeaderName)
+ length += 4
length += 1
length += 1
length += 2
@@ -11278,6 +11197,7 @@
data = CommFunc.WriteDWORD(data, self.LeaderID)
data = CommFunc.WriteBYTE(data, self.LeaderNameLen)
data = CommFunc.WriteString(data, self.LeaderNameLen, self.LeaderName)
+ data = CommFunc.WriteDWORD(data, self.LeaderServerID)
data = CommFunc.WriteBYTE(data, self.FamilyLV)
data = CommFunc.WriteBYTE(data, self.JoinReview)
data = CommFunc.WriteWORD(data, self.JoinLVMin)
@@ -11298,6 +11218,7 @@
LeaderID:%d,
LeaderNameLen:%d,
LeaderName:%s,
+ LeaderServerID:%d,
FamilyLV:%d,
JoinReview:%d,
JoinLVMin:%d,
@@ -11316,6 +11237,7 @@
self.LeaderID,
self.LeaderNameLen,
self.LeaderName,
+ self.LeaderServerID,
self.FamilyLV,
self.JoinReview,
self.JoinLVMin,
@@ -11338,6 +11260,7 @@
TotalPage = 0 #(BYTE TotalPage)//一共有多少页
FamilyCount = 0 #(BYTE FamilyCount)
FamilyList = list() #(vector<tagMCFamilyView> FamilyList)//本页家族信息列表
+ Rank = 0 #(DWORD Rank)//玩家公会所在名次,0-没有公会或没有在榜上;>0-对应排名
data = None
def __init__(self):
@@ -11359,6 +11282,7 @@
temFamilyList = tagMCFamilyView()
_pos = temFamilyList.ReadData(_lpData, _pos)
self.FamilyList.append(temFamilyList)
+ self.Rank,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -11373,6 +11297,7 @@
self.TotalPage = 0
self.FamilyCount = 0
self.FamilyList = list()
+ self.Rank = 0
return
def GetLength(self):
@@ -11386,6 +11311,7 @@
length += 1
for i in range(self.FamilyCount):
length += self.FamilyList[i].GetLength()
+ length += 4
return length
@@ -11400,6 +11326,7 @@
data = CommFunc.WriteBYTE(data, self.FamilyCount)
for i in range(self.FamilyCount):
data = CommFunc.WriteString(data, self.FamilyList[i].GetLength(), self.FamilyList[i].GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.Rank)
return data
def OutputString(self):
@@ -11411,7 +11338,8 @@
ShowCount:%d,
TotalPage:%d,
FamilyCount:%d,
- FamilyList:%s
+ FamilyList:%s,
+ Rank:%d
'''\
%(
self.Head.OutputString(),
@@ -11421,7 +11349,8 @@
self.ShowCount,
self.TotalPage,
self.FamilyCount,
- "..."
+ "...",
+ self.Rank
)
return DumpString
@@ -11738,6 +11667,7 @@
LeaderID = 0 #(DWORD LeaderID)//族长玩家ID
MemberCount = 0 #(BYTE MemberCount)//人数
MemberList = list() #(vector<tagMCRoleFamilyMember> MemberList)//size = MemberCount
+ Extra1 = 0 #(DWORD Extra1)//附加字段1
data = None
def __init__(self):
@@ -11768,6 +11698,7 @@
temMemberList = tagMCRoleFamilyMember()
_pos = temMemberList.ReadData(_lpData, _pos)
self.MemberList.append(temMemberList)
+ self.Extra1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -11791,6 +11722,7 @@
self.LeaderID = 0
self.MemberCount = 0
self.MemberList = list()
+ self.Extra1 = 0
return
def GetLength(self):
@@ -11813,6 +11745,7 @@
length += 1
for i in range(self.MemberCount):
length += self.MemberList[i].GetLength()
+ length += 4
return length
@@ -11836,6 +11769,7 @@
data = CommFunc.WriteBYTE(data, self.MemberCount)
for i in range(self.MemberCount):
data = CommFunc.WriteString(data, self.MemberList[i].GetLength(), self.MemberList[i].GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.Extra1)
return data
def OutputString(self):
@@ -11856,7 +11790,8 @@
Broadcast:%s,
LeaderID:%d,
MemberCount:%d,
- MemberList:%s
+ MemberList:%s,
+ Extra1:%d
'''\
%(
self.Head.OutputString(),
@@ -11875,13 +11810,183 @@
self.Broadcast,
self.LeaderID,
self.MemberCount,
- "..."
+ "...",
+ self.Extra1
)
return DumpString
m_NAtagMCRoleFamilyInfo=tagMCRoleFamilyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRoleFamilyInfo.Head.Cmd,m_NAtagMCRoleFamilyInfo.Head.SubCmd))] = m_NAtagMCRoleFamilyInfo
+
+
+#------------------------------------------------------
+# A5 19 查看目标公会信息 #tagSCTagFamilyInfo
+
+class tagSCTagFamilyInfo(Structure):
+ Head = tagHead()
+ FamilyID = 0 #(DWORD FamilyID)//家族ID
+ FamilyNameLen = 0 #(BYTE FamilyNameLen)
+ FamilyName = "" #(String FamilyName)//size = FamilyNameLen
+ LeaderID = 0 #(DWORD LeaderID)//族长ID
+ LeaderNameLen = 0 #(BYTE LeaderNameLen)
+ LeaderName = "" #(String LeaderName)//size = LeaderNameLen
+ LeaderServerID = 0 #(DWORD LeaderServerID)//会长区服ID
+ FamilyLV = 0 #(BYTE FamilyLV)//家族等级
+ ServerID = 0 #(DWORD ServerID)//区服ID
+ EmblemID = 0 #(DWORD EmblemID)//徽章ID
+ EmblemWord = "" #(char EmblemWord[3])//徽章文字
+ FightPower = 0 #(DWORD FightPower)//总战力,求余亿部分
+ FightPowerEx = 0 #(DWORD FightPowerEx)//总战力,整除亿部分
+ BroadcastLen = 0 #(WORD BroadcastLen)//公告
+ Broadcast = "" #(String Broadcast)//size = BroadcastLen
+ MemberCount = 0 #(BYTE MemberCount)//成员人数
+ DataServerID = 0 #(DWORD DataServerID)//数据所在服务器ID
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x19
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen)
+ self.LeaderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.LeaderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LeaderNameLen)
+ self.LeaderServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.FamilyLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.EmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
+ self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BroadcastLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.Broadcast,_pos = CommFunc.ReadString(_lpData, _pos,self.BroadcastLen)
+ self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.DataServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA5
+ self.Head.SubCmd = 0x19
+ self.FamilyID = 0
+ self.FamilyNameLen = 0
+ self.FamilyName = ""
+ self.LeaderID = 0
+ self.LeaderNameLen = 0
+ self.LeaderName = ""
+ self.LeaderServerID = 0
+ self.FamilyLV = 0
+ self.ServerID = 0
+ self.EmblemID = 0
+ self.EmblemWord = ""
+ self.FightPower = 0
+ self.FightPowerEx = 0
+ self.BroadcastLen = 0
+ self.Broadcast = ""
+ self.MemberCount = 0
+ self.DataServerID = 0
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 1
+ length += len(self.FamilyName)
+ length += 4
+ length += 1
+ length += len(self.LeaderName)
+ length += 4
+ length += 1
+ length += 4
+ length += 4
+ length += 3
+ length += 4
+ length += 4
+ length += 2
+ length += len(self.Broadcast)
+ length += 1
+ length += 4
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.FamilyID)
+ data = CommFunc.WriteBYTE(data, self.FamilyNameLen)
+ data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName)
+ data = CommFunc.WriteDWORD(data, self.LeaderID)
+ data = CommFunc.WriteBYTE(data, self.LeaderNameLen)
+ data = CommFunc.WriteString(data, self.LeaderNameLen, self.LeaderName)
+ data = CommFunc.WriteDWORD(data, self.LeaderServerID)
+ data = CommFunc.WriteBYTE(data, self.FamilyLV)
+ data = CommFunc.WriteDWORD(data, self.ServerID)
+ data = CommFunc.WriteDWORD(data, self.EmblemID)
+ data = CommFunc.WriteString(data, 3, self.EmblemWord)
+ data = CommFunc.WriteDWORD(data, self.FightPower)
+ data = CommFunc.WriteDWORD(data, self.FightPowerEx)
+ data = CommFunc.WriteWORD(data, self.BroadcastLen)
+ data = CommFunc.WriteString(data, self.BroadcastLen, self.Broadcast)
+ data = CommFunc.WriteBYTE(data, self.MemberCount)
+ data = CommFunc.WriteDWORD(data, self.DataServerID)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ FamilyID:%d,
+ FamilyNameLen:%d,
+ FamilyName:%s,
+ LeaderID:%d,
+ LeaderNameLen:%d,
+ LeaderName:%s,
+ LeaderServerID:%d,
+ FamilyLV:%d,
+ ServerID:%d,
+ EmblemID:%d,
+ EmblemWord:%s,
+ FightPower:%d,
+ FightPowerEx:%d,
+ BroadcastLen:%d,
+ Broadcast:%s,
+ MemberCount:%d,
+ DataServerID:%d
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.FamilyID,
+ self.FamilyNameLen,
+ self.FamilyName,
+ self.LeaderID,
+ self.LeaderNameLen,
+ self.LeaderName,
+ self.LeaderServerID,
+ self.FamilyLV,
+ self.ServerID,
+ self.EmblemID,
+ self.EmblemWord,
+ self.FightPower,
+ self.FightPowerEx,
+ self.BroadcastLen,
+ self.Broadcast,
+ self.MemberCount,
+ self.DataServerID
+ )
+ return DumpString
+
+
+m_NAtagSCTagFamilyInfo=tagSCTagFamilyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCTagFamilyInfo.Head.Cmd,m_NAtagSCTagFamilyInfo.Head.SubCmd))] = m_NAtagSCTagFamilyInfo
#------------------------------------------------------
@@ -13715,6 +13820,7 @@
FamilyName = "" #(char FamilyName[33])
FamilyEmblemID = 0 #(DWORD FamilyEmblemID)//仙盟徽章ID
FamilyEmblemWord = "" #(char FamilyEmblemWord[3])//徽章文字
+ FamilyDataServerID = 0 #(DWORD FamilyDataServerID)//公会数据所在服务器ID,A619查看公会用
PlusDataSize = 0 #(DWORD PlusDataSize)
PlusData = "" #(String PlusData)//扩展记录
data = None
@@ -13745,6 +13851,7 @@
self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33)
self.FamilyEmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.FamilyEmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
+ self.FamilyDataServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
return _pos
@@ -13771,6 +13878,7 @@
self.FamilyName = ""
self.FamilyEmblemID = 0
self.FamilyEmblemWord = ""
+ self.FamilyDataServerID = 0
self.PlusDataSize = 0
self.PlusData = ""
return
@@ -13796,6 +13904,7 @@
length += 4
length += 3
length += 4
+ length += 4
length += len(self.PlusData)
return length
@@ -13820,6 +13929,7 @@
data = CommFunc.WriteString(data, 33, self.FamilyName)
data = CommFunc.WriteDWORD(data, self.FamilyEmblemID)
data = CommFunc.WriteString(data, 3, self.FamilyEmblemWord)
+ data = CommFunc.WriteDWORD(data, self.FamilyDataServerID)
data = CommFunc.WriteDWORD(data, self.PlusDataSize)
data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
return data
@@ -13844,6 +13954,7 @@
FamilyName:%s,
FamilyEmblemID:%d,
FamilyEmblemWord:%s,
+ FamilyDataServerID:%d,
PlusDataSize:%d,
PlusData:%s
'''\
@@ -13866,6 +13977,7 @@
self.FamilyName,
self.FamilyEmblemID,
self.FamilyEmblemWord,
+ self.FamilyDataServerID,
self.PlusDataSize,
self.PlusData
)
@@ -21202,386 +21314,6 @@
#------------------------------------------------------
-# AA 27 充值返利活动信息 #tagMCActRechargePrizeInfo
-
-class tagMCActRechargePrize(Structure):
- _pack_ = 1
- _fields_ = [
- ("CTGID", c_ushort), # 对应充值表充值ID
- ("GoldPrize", c_int), #返利仙玉数
- ("PrizeCountLimit", 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.CTGID = 0
- self.GoldPrize = 0
- self.PrizeCountLimit = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCActRechargePrize)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 27 充值返利活动信息 //tagMCActRechargePrizeInfo:
- CTGID:%d,
- GoldPrize:%d,
- PrizeCountLimit:%d
- '''\
- %(
- self.CTGID,
- self.GoldPrize,
- self.PrizeCountLimit
- )
- return DumpString
-
-
-class tagMCActRechargePrizeDay(Structure):
- Prizes = 0 #(BYTE Prizes)// 返利档数
- PrizeInfo = list() #(vector<tagMCActRechargePrize> PrizeInfo)// 返利档信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.Prizes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Prizes):
- temPrizeInfo = tagMCActRechargePrize()
- _pos = temPrizeInfo.ReadData(_lpData, _pos)
- self.PrizeInfo.append(temPrizeInfo)
- return _pos
-
- def Clear(self):
- self.Prizes = 0
- self.PrizeInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- for i in range(self.Prizes):
- length += self.PrizeInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.Prizes)
- for i in range(self.Prizes):
- data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Prizes:%d,
- PrizeInfo:%s
- '''\
- %(
- self.Prizes,
- "..."
- )
- return DumpString
-
-
-class tagMCActRechargePrizeInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- PrizeDays = 0 #(BYTE PrizeDays)
- PrizeDayInfo = list() #(vector<tagMCActRechargePrizeDay> PrizeDayInfo)//每天对应信息; 如果只有一天,但是活动有多天,则代表每天奖励都一样
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x27
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PrizeDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.PrizeDays):
- temPrizeDayInfo = tagMCActRechargePrizeDay()
- _pos = temPrizeDayInfo.ReadData(_lpData, _pos)
- self.PrizeDayInfo.append(temPrizeDayInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x27
- self.StartDate = ""
- self.EndtDate = ""
- self.LimitLV = 0
- self.IsDayReset = 0
- self.PrizeDays = 0
- self.PrizeDayInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 2
- length += 1
- length += 1
- for i in range(self.PrizeDays):
- length += self.PrizeDayInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteBYTE(data, self.PrizeDays)
- for i in range(self.PrizeDays):
- data = CommFunc.WriteString(data, self.PrizeDayInfo[i].GetLength(), self.PrizeDayInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- LimitLV:%d,
- IsDayReset:%d,
- PrizeDays:%d,
- PrizeDayInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.LimitLV,
- self.IsDayReset,
- self.PrizeDays,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActRechargePrizeInfo=tagMCActRechargePrizeInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActRechargePrizeInfo.Head.Cmd,m_NAtagMCActRechargePrizeInfo.Head.SubCmd))] = m_NAtagMCActRechargePrizeInfo
-
-
-#------------------------------------------------------
-# AA 29 累计充值返利仙玉活动信息 #tagMCActRechargeRebateGoldInfo
-
-class tagMCActRechargeRebate(Structure):
- _pack_ = 1
- _fields_ = [
- ("RMBMin", c_int), # 充值RMB最小值
- ("RMBMax", c_int), # 充值RMB最大值,0代表无上限
- ("RebateRate", c_ushort), # 返利仙玉比例百分比
- ]
-
- 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.RMBMin = 0
- self.RMBMax = 0
- self.RebateRate = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCActRechargeRebate)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 29 累计充值返利仙玉活动信息 //tagMCActRechargeRebateGoldInfo:
- RMBMin:%d,
- RMBMax:%d,
- RebateRate:%d
- '''\
- %(
- self.RMBMin,
- self.RMBMax,
- self.RebateRate
- )
- return DumpString
-
-
-class tagMCActRechargeRebateDay(Structure):
- Rebates = 0 #(BYTE Rebates)// 返利档数
- RebateInfo = list() #(vector<tagMCActRechargeRebate> RebateInfo)// 返利档信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.Rebates,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Rebates):
- temRebateInfo = tagMCActRechargeRebate()
- _pos = temRebateInfo.ReadData(_lpData, _pos)
- self.RebateInfo.append(temRebateInfo)
- return _pos
-
- def Clear(self):
- self.Rebates = 0
- self.RebateInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- for i in range(self.Rebates):
- length += self.RebateInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.Rebates)
- for i in range(self.Rebates):
- data = CommFunc.WriteString(data, self.RebateInfo[i].GetLength(), self.RebateInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Rebates:%d,
- RebateInfo:%s
- '''\
- %(
- self.Rebates,
- "..."
- )
- return DumpString
-
-
-class tagMCActRechargeRebateGoldInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- RebateDays = 0 #(BYTE RebateDays)
- RebateDayInfo = list() #(vector<tagMCActRechargeRebateDay> RebateDayInfo)//每天对应信息; 如果只有一天,但是活动有多天,则代表每天奖励都一样
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x29
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.RebateDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.RebateDays):
- temRebateDayInfo = tagMCActRechargeRebateDay()
- _pos = temRebateDayInfo.ReadData(_lpData, _pos)
- self.RebateDayInfo.append(temRebateDayInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x29
- self.StartDate = ""
- self.EndtDate = ""
- self.LimitLV = 0
- self.IsDayReset = 0
- self.RebateDays = 0
- self.RebateDayInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 2
- length += 1
- length += 1
- for i in range(self.RebateDays):
- length += self.RebateDayInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteBYTE(data, self.RebateDays)
- for i in range(self.RebateDays):
- data = CommFunc.WriteString(data, self.RebateDayInfo[i].GetLength(), self.RebateDayInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- LimitLV:%d,
- IsDayReset:%d,
- RebateDays:%d,
- RebateDayInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.LimitLV,
- self.IsDayReset,
- self.RebateDays,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCActRechargeRebateGoldInfo=tagMCActRechargeRebateGoldInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActRechargeRebateGoldInfo.Head.Cmd,m_NAtagMCActRechargeRebateGoldInfo.Head.SubCmd))] = m_NAtagMCActRechargeRebateGoldInfo
-
-
-#------------------------------------------------------
# AA 50 单笔累充活动信息 #tagMCActSingleRechargeInfo
class tagMCActSingleRechargeAwardItem(Structure):
@@ -23592,804 +23324,6 @@
#------------------------------------------------------
-# AA 32 跨服充值排行活动信息 #tagMCCACTGBillboardInfo
-
-class tagMCCACTGBillboardAwardItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("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.ItemCount = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCCACTGBillboardAwardItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 32 跨服充值排行活动信息 //tagMCCACTGBillboardInfo:
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCCACTGBillboardDabiao(Structure):
- AwardIndex = 0 #(BYTE AwardIndex)// 奖励索引 0~31
- NeedRMB = 0 #(DWORD NeedRMB)// 所需充值RMB
- AwardItemCount = 0 #(BYTE AwardItemCount)// 奖励物品数
- AwardItemList = list() #(vector<tagMCCACTGBillboardAwardItem> AwardItemList)// 奖励物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.NeedRMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardItemCount):
- temAwardItemList = tagMCCACTGBillboardAwardItem()
- _pos = temAwardItemList.ReadData(_lpData, _pos)
- self.AwardItemList.append(temAwardItemList)
- return _pos
-
- def Clear(self):
- self.AwardIndex = 0
- self.NeedRMB = 0
- self.AwardItemCount = 0
- self.AwardItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 4
- length += 1
- for i in range(self.AwardItemCount):
- length += self.AwardItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.AwardIndex)
- data = CommFunc.WriteDWORD(data, self.NeedRMB)
- data = CommFunc.WriteBYTE(data, self.AwardItemCount)
- for i in range(self.AwardItemCount):
- data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- AwardIndex:%d,
- NeedRMB:%d,
- AwardItemCount:%d,
- AwardItemList:%s
- '''\
- %(
- self.AwardIndex,
- self.NeedRMB,
- self.AwardItemCount,
- "..."
- )
- return DumpString
-
-
-class tagMCCACTGBillboardOrder(Structure):
- OrderA = 0 #(BYTE OrderA)// 名次A
- OrderB = 0 #(BYTE OrderB)// 至名次B
- NeedRMB = 0 #(DWORD NeedRMB)// 所需充值RMB,未达标的该名次空,排名后面的玩家向下顺延
- AwardItemCount = 0 #(BYTE AwardItemCount)// 奖励物品数
- AwardItemList = list() #(vector<tagMCCACTGBillboardAwardItem> AwardItemList)// 奖励物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.OrderA,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.OrderB,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.NeedRMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardItemCount):
- temAwardItemList = tagMCCACTGBillboardAwardItem()
- _pos = temAwardItemList.ReadData(_lpData, _pos)
- self.AwardItemList.append(temAwardItemList)
- return _pos
-
- def Clear(self):
- self.OrderA = 0
- self.OrderB = 0
- self.NeedRMB = 0
- self.AwardItemCount = 0
- self.AwardItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 1
- length += 4
- length += 1
- for i in range(self.AwardItemCount):
- length += self.AwardItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.OrderA)
- data = CommFunc.WriteBYTE(data, self.OrderB)
- data = CommFunc.WriteDWORD(data, self.NeedRMB)
- data = CommFunc.WriteBYTE(data, self.AwardItemCount)
- for i in range(self.AwardItemCount):
- data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- OrderA:%d,
- OrderB:%d,
- NeedRMB:%d,
- AwardItemCount:%d,
- AwardItemList:%s
- '''\
- %(
- self.OrderA,
- self.OrderB,
- self.NeedRMB,
- self.AwardItemCount,
- "..."
- )
- return DumpString
-
-
-class tagMCCACTGBillboardTempInfo(Structure):
- TemplateID = 0 #(BYTE TemplateID)// 活动模板ID
- DabiaoAwardCount = 0 #(BYTE DabiaoAwardCount)// 达标奖励档数
- DabiaoAwardInfo = list() #(vector<tagMCCACTGBillboardDabiao> DabiaoAwardInfo)// 达标奖励信息
- OrderAwardCount = 0 #(BYTE OrderAwardCount)// 排行奖励档数
- OrderAwardInfo = list() #(vector<tagMCCACTGBillboardOrder> OrderAwardInfo)// 排行奖励信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.TemplateID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.DabiaoAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.DabiaoAwardCount):
- temDabiaoAwardInfo = tagMCCACTGBillboardDabiao()
- _pos = temDabiaoAwardInfo.ReadData(_lpData, _pos)
- self.DabiaoAwardInfo.append(temDabiaoAwardInfo)
- self.OrderAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.OrderAwardCount):
- temOrderAwardInfo = tagMCCACTGBillboardOrder()
- _pos = temOrderAwardInfo.ReadData(_lpData, _pos)
- self.OrderAwardInfo.append(temOrderAwardInfo)
- return _pos
-
- def Clear(self):
- self.TemplateID = 0
- self.DabiaoAwardCount = 0
- self.DabiaoAwardInfo = list()
- self.OrderAwardCount = 0
- self.OrderAwardInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 1
- for i in range(self.DabiaoAwardCount):
- length += self.DabiaoAwardInfo[i].GetLength()
- length += 1
- for i in range(self.OrderAwardCount):
- length += self.OrderAwardInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.TemplateID)
- data = CommFunc.WriteBYTE(data, self.DabiaoAwardCount)
- for i in range(self.DabiaoAwardCount):
- data = CommFunc.WriteString(data, self.DabiaoAwardInfo[i].GetLength(), self.DabiaoAwardInfo[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.OrderAwardCount)
- for i in range(self.OrderAwardCount):
- data = CommFunc.WriteString(data, self.OrderAwardInfo[i].GetLength(), self.OrderAwardInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- TemplateID:%d,
- DabiaoAwardCount:%d,
- DabiaoAwardInfo:%s,
- OrderAwardCount:%d,
- OrderAwardInfo:%s
- '''\
- %(
- self.TemplateID,
- self.DabiaoAwardCount,
- "...",
- self.OrderAwardCount,
- "..."
- )
- return DumpString
-
-
-class tagMCCACTGBillboardInfo(Structure):
- Head = tagHead()
- ServerInfoLen = 0 #(BYTE ServerInfoLen)
- ServerIDRangeInfo = "" #(String ServerIDRangeInfo)//开放该活动的服务器ID范围列表,json格式 [[IDA, IDB], ...], [] 为全服
- GroupValue1 = 0 #(BYTE GroupValue1)// 活动榜单分组值1,用于查询对应榜单
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- TemplateID = 0 #(BYTE TemplateID)// 当前活动模板ID
- TemplateCount = 0 #(BYTE TemplateCount)
- TempInfo = list() #(vector<tagMCCACTGBillboardTempInfo> TempInfo)// 模板信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x32
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ServerInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ServerIDRangeInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.ServerInfoLen)
- self.GroupValue1,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.TemplateID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.TemplateCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.TemplateCount):
- temTempInfo = tagMCCACTGBillboardTempInfo()
- _pos = temTempInfo.ReadData(_lpData, _pos)
- self.TempInfo.append(temTempInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x32
- self.ServerInfoLen = 0
- self.ServerIDRangeInfo = ""
- self.GroupValue1 = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.TemplateID = 0
- self.TemplateCount = 0
- self.TempInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += len(self.ServerIDRangeInfo)
- length += 1
- length += 10
- length += 10
- length += 1
- length += 1
- for i in range(self.TemplateCount):
- length += self.TempInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ServerInfoLen)
- data = CommFunc.WriteString(data, self.ServerInfoLen, self.ServerIDRangeInfo)
- data = CommFunc.WriteBYTE(data, self.GroupValue1)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.TemplateID)
- data = CommFunc.WriteBYTE(data, self.TemplateCount)
- for i in range(self.TemplateCount):
- data = CommFunc.WriteString(data, self.TempInfo[i].GetLength(), self.TempInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ServerInfoLen:%d,
- ServerIDRangeInfo:%s,
- GroupValue1:%d,
- StartDate:%s,
- EndtDate:%s,
- TemplateID:%d,
- TemplateCount:%d,
- TempInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ServerInfoLen,
- self.ServerIDRangeInfo,
- self.GroupValue1,
- self.StartDate,
- self.EndtDate,
- self.TemplateID,
- self.TemplateCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCCACTGBillboardInfo=tagMCCACTGBillboardInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCACTGBillboardInfo.Head.Cmd,m_NAtagMCCACTGBillboardInfo.Head.SubCmd))] = m_NAtagMCCACTGBillboardInfo
-
-
-#------------------------------------------------------
-# AA 33 跨服充值排行活动玩家信息 #tagMCCACTGBillboardPlayerInfo
-
-class tagMCCACTGBillboardPlayerInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("CTGRMBTotal", c_int), # 活动已累计充值RMB
- ("DabiaoAwardRecord", c_int), # 达标奖励记录,与达标奖励索引位或运算判断是否已领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x33
- 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 = 0x33
- self.CTGRMBTotal = 0
- self.DabiaoAwardRecord = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCCACTGBillboardPlayerInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 33 跨服充值排行活动玩家信息 //tagMCCACTGBillboardPlayerInfo:
- Cmd:%s,
- SubCmd:%s,
- CTGRMBTotal:%d,
- DabiaoAwardRecord:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.CTGRMBTotal,
- self.DabiaoAwardRecord
- )
- return DumpString
-
-
-m_NAtagMCCACTGBillboardPlayerInfo=tagMCCACTGBillboardPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCACTGBillboardPlayerInfo.Cmd,m_NAtagMCCACTGBillboardPlayerInfo.SubCmd))] = m_NAtagMCCACTGBillboardPlayerInfo
-
-
-#------------------------------------------------------
-# AA 09 消费返利活动信息 #tagMCCostRebateInfo
-
-class tagMCCostRebateAwardItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_int),
- ("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.ItemCount = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCCostRebateAwardItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 09 消费返利活动信息 //tagMCCostRebateInfo:
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCCostRebateAward(Structure):
- AwardIndex = 0 #(BYTE AwardIndex)// 奖励索引 0~31
- NeedGold = 0 #(DWORD NeedGold)// 所需仙玉数
- AwardItemCount = 0 #(BYTE AwardItemCount)// 奖励物品数
- AwardItem = list() #(vector<tagMCCostRebateAwardItem> AwardItem)// 奖励物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.NeedGold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardItemCount):
- temAwardItem = tagMCCostRebateAwardItem()
- _pos = temAwardItem.ReadData(_lpData, _pos)
- self.AwardItem.append(temAwardItem)
- return _pos
-
- def Clear(self):
- self.AwardIndex = 0
- self.NeedGold = 0
- self.AwardItemCount = 0
- self.AwardItem = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 4
- length += 1
- for i in range(self.AwardItemCount):
- length += self.AwardItem[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.AwardIndex)
- data = CommFunc.WriteDWORD(data, self.NeedGold)
- data = CommFunc.WriteBYTE(data, self.AwardItemCount)
- for i in range(self.AwardItemCount):
- data = CommFunc.WriteString(data, self.AwardItem[i].GetLength(), self.AwardItem[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- AwardIndex:%d,
- NeedGold:%d,
- AwardItemCount:%d,
- AwardItem:%s
- '''\
- %(
- self.AwardIndex,
- self.NeedGold,
- self.AwardItemCount,
- "..."
- )
- return DumpString
-
-
-class tagMCCostRebateAwardDay(Structure):
- AwardCount = 0 #(BYTE AwardCount)// 奖励档数
- AwardInfo = list() #(vector<tagMCCostRebateAward> AwardInfo)// 奖励档信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardCount):
- temAwardInfo = tagMCCostRebateAward()
- _pos = temAwardInfo.ReadData(_lpData, _pos)
- self.AwardInfo.append(temAwardInfo)
- return _pos
-
- def Clear(self):
- self.AwardCount = 0
- self.AwardInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- for i in range(self.AwardCount):
- length += self.AwardInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.AwardCount)
- for i in range(self.AwardCount):
- data = CommFunc.WriteString(data, self.AwardInfo[i].GetLength(), self.AwardInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- AwardCount:%d,
- AwardInfo:%s
- '''\
- %(
- self.AwardCount,
- "..."
- )
- return DumpString
-
-
-class tagMCCostRebateInfo(Structure):
- Head = tagHead()
- ActNum = 0 #(BYTE ActNum)//活动编号
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- AwardDays = 0 #(BYTE AwardDays)
- AwardDayInfo = list() #(vector<tagMCCostRebateAwardDay> AwardDayInfo)//每天对应返利信息; 如果只有一天,但是活动有多天,则代表每天奖励都一样
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x09
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.AwardDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardDays):
- temAwardDayInfo = tagMCCostRebateAwardDay()
- _pos = temAwardDayInfo.ReadData(_lpData, _pos)
- self.AwardDayInfo.append(temAwardDayInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x09
- self.ActNum = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.IsDayReset = 0
- self.LimitLV = 0
- self.AwardDays = 0
- self.AwardDayInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 1
- length += 2
- length += 1
- for i in range(self.AwardDays):
- length += self.AwardDayInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ActNum)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.AwardDays)
- for i in range(self.AwardDays):
- data = CommFunc.WriteString(data, self.AwardDayInfo[i].GetLength(), self.AwardDayInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ActNum:%d,
- StartDate:%s,
- EndtDate:%s,
- IsDayReset:%d,
- LimitLV:%d,
- AwardDays:%d,
- AwardDayInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ActNum,
- self.StartDate,
- self.EndtDate,
- self.IsDayReset,
- self.LimitLV,
- self.AwardDays,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCCostRebateInfo=tagMCCostRebateInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRebateInfo.Head.Cmd,m_NAtagMCCostRebateInfo.Head.SubCmd))] = m_NAtagMCCostRebateInfo
-
-
-#------------------------------------------------------
-# AA 10 消费返利玩家活动信息 #tagMCCostRebatePlayerInfo
-
-class tagMCCostRebatePlayerInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ActNum", c_ubyte), #活动编号
- ("CostGoldTotal", c_int), #本次活动已累计消费仙玉数
- ("AwardRecord", c_int), #返利奖励领奖记录,按奖励索引二进制位存储是否已领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x10
- 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 = 0x10
- self.ActNum = 0
- self.CostGoldTotal = 0
- self.AwardRecord = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCCostRebatePlayerInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 10 消费返利玩家活动信息 //tagMCCostRebatePlayerInfo:
- Cmd:%s,
- SubCmd:%s,
- ActNum:%d,
- CostGoldTotal:%d,
- AwardRecord:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ActNum,
- self.CostGoldTotal,
- self.AwardRecord
- )
- return DumpString
-
-
-m_NAtagMCCostRebatePlayerInfo=tagMCCostRebatePlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRebatePlayerInfo.Cmd,m_NAtagMCCostRebatePlayerInfo.SubCmd))] = m_NAtagMCCostRebatePlayerInfo
-
-
-#------------------------------------------------------
-# AA 34 跨服全民充值活动玩家信息 #tagMCCrossActAllRechargePlayerInfo
-
-class tagMCCrossActAllRechargePlayerInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("CTGRMBTotal", c_int), # 活动已累计充值RMB
- ("AwardRecord", c_int), # 奖励记录,根据奖励索引位或运算判断是否已领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- 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 = 0xAA
- self.SubCmd = 0x34
- self.CTGRMBTotal = 0
- self.AwardRecord = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCCrossActAllRechargePlayerInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 34 跨服全民充值活动玩家信息 //tagMCCrossActAllRechargePlayerInfo:
- Cmd:%s,
- SubCmd:%s,
- CTGRMBTotal:%d,
- AwardRecord:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.CTGRMBTotal,
- self.AwardRecord
- )
- return DumpString
-
-
-m_NAtagMCCrossActAllRechargePlayerInfo=tagMCCrossActAllRechargePlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCrossActAllRechargePlayerInfo.Cmd,m_NAtagMCCrossActAllRechargePlayerInfo.SubCmd))] = m_NAtagMCCrossActAllRechargePlayerInfo
-
-
-#------------------------------------------------------
# AA 90 炼器跨服活动信息 #tagMCCrossActLianqiInfo
class tagMCCrossActLianqiItem(Structure):
@@ -25512,518 +24446,6 @@
m_NAtagMCFeastLoginPlayerInfo=tagMCFeastLoginPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastLoginPlayerInfo.Cmd,m_NAtagMCFeastLoginPlayerInfo.SubCmd))] = m_NAtagMCFeastLoginPlayerInfo
-
-
-#------------------------------------------------------
-# AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
-
-class tagMCFeastWeekPartyItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("NeedPoint", c_ushort), # 领奖需要积分
- ("ItemID", c_int), # 物品ID
- ("ItemCnt", c_ushort), # 物品数量
- ("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.NeedPoint = 0
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFeastWeekPartyItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 20 节日巡礼活动信息 //tagMCFeastWeekPartyInfo:
- NeedPoint:%d,
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d
- '''\
- %(
- self.NeedPoint,
- self.ItemID,
- self.ItemCnt,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCFeastWeekPartyAction(Structure):
- TemplateID = 0 #(DWORD TemplateID)// 模板ID
- ActionType = 0 #(WORD ActionType)// 活动类别
- TotalTimes = 0 #(DWORD TotalTimes)// 可完成的总次数,0表示不限次数
- SingleTimes = 0 #(DWORD SingleTimes)// 单次领奖需要的次数
- Point = 0 #(DWORD Point)// 单次领奖积分
- Count = 0 #(BYTE Count)// 物品数
- ItemInfo = list() #(vector<tagMCFeastWeekPartyItem> ItemInfo)// 物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temItemInfo = tagMCFeastWeekPartyItem()
- _pos = temItemInfo.ReadData(_lpData, _pos)
- self.ItemInfo.append(temItemInfo)
- return _pos
-
- def Clear(self):
- self.TemplateID = 0
- self.ActionType = 0
- self.TotalTimes = 0
- self.SingleTimes = 0
- self.Point = 0
- self.Count = 0
- self.ItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 2
- length += 4
- length += 4
- length += 4
- length += 1
- for i in range(self.Count):
- length += self.ItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.TemplateID)
- data = CommFunc.WriteWORD(data, self.ActionType)
- data = CommFunc.WriteDWORD(data, self.TotalTimes)
- data = CommFunc.WriteDWORD(data, self.SingleTimes)
- data = CommFunc.WriteDWORD(data, self.Point)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- TemplateID:%d,
- ActionType:%d,
- TotalTimes:%d,
- SingleTimes:%d,
- Point:%d,
- Count:%d,
- ItemInfo:%s
- '''\
- %(
- self.TemplateID,
- self.ActionType,
- self.TotalTimes,
- self.SingleTimes,
- self.Point,
- self.Count,
- "..."
- )
- return DumpString
-
-
-class tagMCFeastWeekPartyDayInfo(Structure):
- ActCnt = 0 #(BYTE ActCnt)// 数量
- TemplateList = list() #(vector<WORD> TemplateList)// 模板列表
- PCount = 0 #(BYTE PCount)// 物品数
- PItemInfo = list() #(vector<tagMCFeastWeekPartyItem> PItemInfo)// 物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ActCnt):
- value,_pos=CommFunc.ReadWORD(_lpData,_pos)
- self.TemplateList.append(value)
- self.PCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.PCount):
- temPItemInfo = tagMCFeastWeekPartyItem()
- _pos = temPItemInfo.ReadData(_lpData, _pos)
- self.PItemInfo.append(temPItemInfo)
- return _pos
-
- def Clear(self):
- self.ActCnt = 0
- self.TemplateList = list()
- self.PCount = 0
- self.PItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 2 * self.ActCnt
- length += 1
- for i in range(self.PCount):
- length += self.PItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.ActCnt)
- for i in range(self.ActCnt):
- data = CommFunc.WriteWORD(data, self.TemplateList[i])
- data = CommFunc.WriteBYTE(data, self.PCount)
- for i in range(self.PCount):
- data = CommFunc.WriteString(data, self.PItemInfo[i].GetLength(), self.PItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- ActCnt:%d,
- TemplateList:%s,
- PCount:%d,
- PItemInfo:%s
- '''\
- %(
- self.ActCnt,
- "...",
- self.PCount,
- "..."
- )
- return DumpString
-
-
-class tagMCFeastWeekPartyInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- DayCnt = 0 #(BYTE DayCnt)// 天数
- DayInfoList = list() #(vector<tagMCFeastWeekPartyDayInfo> DayInfoList)// 每天模板
- TCount = 0 #(BYTE TCount)// 模板数
- ActionInfo = list() #(vector<tagMCFeastWeekPartyAction> ActionInfo)// 活动模板信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x20
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.DayCnt):
- temDayInfoList = tagMCFeastWeekPartyDayInfo()
- _pos = temDayInfoList.ReadData(_lpData, _pos)
- self.DayInfoList.append(temDayInfoList)
- self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.TCount):
- temActionInfo = tagMCFeastWeekPartyAction()
- _pos = temActionInfo.ReadData(_lpData, _pos)
- self.ActionInfo.append(temActionInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x20
- self.StartDate = ""
- self.EndtDate = ""
- self.AdvanceMinutes = 0
- self.IsDayReset = 0
- self.ResetType = 0
- self.LimitLV = 0
- self.DayCnt = 0
- self.DayInfoList = list()
- self.TCount = 0
- self.ActionInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 2
- length += 1
- length += 1
- length += 2
- length += 1
- for i in range(self.DayCnt):
- length += self.DayInfoList[i].GetLength()
- length += 1
- for i in range(self.TCount):
- length += self.ActionInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteBYTE(data, self.ResetType)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.DayCnt)
- for i in range(self.DayCnt):
- data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.TCount)
- for i in range(self.TCount):
- data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- AdvanceMinutes:%d,
- IsDayReset:%d,
- ResetType:%d,
- LimitLV:%d,
- DayCnt:%d,
- DayInfoList:%s,
- TCount:%d,
- ActionInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.AdvanceMinutes,
- self.IsDayReset,
- self.ResetType,
- self.LimitLV,
- self.DayCnt,
- "...",
- self.TCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFeastWeekPartyInfo=tagMCFeastWeekPartyInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyInfo.Head.Cmd,m_NAtagMCFeastWeekPartyInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyInfo
-
-
-#------------------------------------------------------
-# AA 21 节日巡礼玩家活动信息 #tagMCFeastWeekPartyPlayerInfo
-
-class tagMCFeastWeekPartyTaskInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("TemplateID", c_ushort), # 模板ID
- ("CurTimes", c_int), #已完成次数
- ("GotTimes", 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.TemplateID = 0
- self.CurTimes = 0
- self.GotTimes = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCFeastWeekPartyTaskInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 21 节日巡礼玩家活动信息 //tagMCFeastWeekPartyPlayerInfo:
- TemplateID:%d,
- CurTimes:%d,
- GotTimes:%d
- '''\
- %(
- self.TemplateID,
- self.CurTimes,
- self.GotTimes
- )
- return DumpString
-
-
-class tagMCFeastWeekPartyDayPlayerInfo(Structure):
- DayIndex = 0 #(DWORD DayIndex)//第X天
- Point = 0 #(DWORD Point)//积分
- AwardRecord = 0 #(DWORD AwardRecord)//积分领奖记录
- ACount = 0 #(DWORD ACount)//任务条目数
- TaskList = list() #(vector<tagMCFeastWeekPartyTaskInfo> TaskList)//活动完成次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- for i in range(self.ACount):
- temTaskList = tagMCFeastWeekPartyTaskInfo()
- _pos = temTaskList.ReadData(_lpData, _pos)
- self.TaskList.append(temTaskList)
- return _pos
-
- def Clear(self):
- self.DayIndex = 0
- self.Point = 0
- self.AwardRecord = 0
- self.ACount = 0
- self.TaskList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 4
- length += 4
- length += 4
- for i in range(self.ACount):
- length += self.TaskList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.DayIndex)
- data = CommFunc.WriteDWORD(data, self.Point)
- data = CommFunc.WriteDWORD(data, self.AwardRecord)
- data = CommFunc.WriteDWORD(data, self.ACount)
- for i in range(self.ACount):
- data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- DayIndex:%d,
- Point:%d,
- AwardRecord:%d,
- ACount:%d,
- TaskList:%s
- '''\
- %(
- self.DayIndex,
- self.Point,
- self.AwardRecord,
- self.ACount,
- "..."
- )
- return DumpString
-
-
-class tagMCFeastWeekPartyPlayerInfo(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)
- DayInfoList = list() #(vector<tagMCFeastWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x21
- 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):
- temDayInfoList = tagMCFeastWeekPartyDayPlayerInfo()
- _pos = temDayInfoList.ReadData(_lpData, _pos)
- self.DayInfoList.append(temDayInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x21
- self.Count = 0
- self.DayInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.DayInfoList[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.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- DayInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCFeastWeekPartyPlayerInfo=tagMCFeastWeekPartyPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyPlayerInfo.Head.Cmd,m_NAtagMCFeastWeekPartyPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyPlayerInfo
#------------------------------------------------------
@@ -27850,166 +26272,6 @@
#------------------------------------------------------
-# AA 28 充值返利玩家活动信息 #tagMCRechargePrizePlayerInfo
-
-class tagMCRechargePrizeInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("CTGID", c_ushort), # 对应充值表充值ID
- ("PrizeCount", 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.CTGID = 0
- self.PrizeCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCRechargePrizeInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 28 充值返利玩家活动信息 //tagMCRechargePrizePlayerInfo:
- CTGID:%d,
- PrizeCount:%d
- '''\
- %(
- self.CTGID,
- self.PrizeCount
- )
- return DumpString
-
-
-class tagMCRechargePrizePlayerInfo(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)
- PlayerInfoList = list() #(vector<tagMCRechargePrizeInfo> PlayerInfoList)//玩家返利信息列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x28
- 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):
- temPlayerInfoList = tagMCRechargePrizeInfo()
- _pos = temPlayerInfoList.ReadData(_lpData, _pos)
- self.PlayerInfoList.append(temPlayerInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x28
- self.Count = 0
- self.PlayerInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.PlayerInfoList[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.PlayerInfoList[i].GetLength(), self.PlayerInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- PlayerInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCRechargePrizePlayerInfo=tagMCRechargePrizePlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargePrizePlayerInfo.Head.Cmd,m_NAtagMCRechargePrizePlayerInfo.Head.SubCmd))] = m_NAtagMCRechargePrizePlayerInfo
-
-
-#------------------------------------------------------
-# AA 30 累计充值返利仙玉玩家活动信息 #tagMCRechargeRebateGoldPlayerInfo
-
-class tagMCRechargeRebateGoldPlayerInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("RechargeRMBTotal", c_int), # 活动已累计充值RMB
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xAA
- self.SubCmd = 0x30
- 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 = 0x30
- self.RechargeRMBTotal = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCRechargeRebateGoldPlayerInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 30 累计充值返利仙玉玩家活动信息 //tagMCRechargeRebateGoldPlayerInfo:
- Cmd:%s,
- SubCmd:%s,
- RechargeRMBTotal:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.RechargeRMBTotal
- )
- return DumpString
-
-
-m_NAtagMCRechargeRebateGoldPlayerInfo=tagMCRechargeRebateGoldPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRebateGoldPlayerInfo.Cmd,m_NAtagMCRechargeRebateGoldPlayerInfo.SubCmd))] = m_NAtagMCRechargeRebateGoldPlayerInfo
-
-
-#------------------------------------------------------
# AA 11 限时特惠活动信息 #tagMCSpringSaleInfo
class tagMCSpringSaleItem(Structure):
@@ -28535,518 +26797,6 @@
#------------------------------------------------------
-# AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo
-
-class tagMCWeekPartyItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("NeedPoint", c_ushort), # 领奖需要积分
- ("ItemID", c_int), # 物品ID
- ("ItemCnt", c_ushort), # 物品数量
- ("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.NeedPoint = 0
- self.ItemID = 0
- self.ItemCnt = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCWeekPartyItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 0A 周狂欢活动信息 //tagMCWeekPartyInfo:
- NeedPoint:%d,
- ItemID:%d,
- ItemCnt:%d,
- IsBind:%d
- '''\
- %(
- self.NeedPoint,
- self.ItemID,
- self.ItemCnt,
- self.IsBind
- )
- return DumpString
-
-
-class tagMCWeekPartyAction(Structure):
- TemplateID = 0 #(DWORD TemplateID)// 模板ID
- ActionType = 0 #(WORD ActionType)// 活动类别
- TotalTimes = 0 #(DWORD TotalTimes)// 可完成的总次数,0表示不限次数
- SingleTimes = 0 #(DWORD SingleTimes)// 单次领奖需要的次数
- Point = 0 #(DWORD Point)// 单次领奖积分
- Count = 0 #(BYTE Count)// 物品数
- ItemInfo = list() #(vector<tagMCWeekPartyItem> ItemInfo)// 物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.Count):
- temItemInfo = tagMCWeekPartyItem()
- _pos = temItemInfo.ReadData(_lpData, _pos)
- self.ItemInfo.append(temItemInfo)
- return _pos
-
- def Clear(self):
- self.TemplateID = 0
- self.ActionType = 0
- self.TotalTimes = 0
- self.SingleTimes = 0
- self.Point = 0
- self.Count = 0
- self.ItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 2
- length += 4
- length += 4
- length += 4
- length += 1
- for i in range(self.Count):
- length += self.ItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.TemplateID)
- data = CommFunc.WriteWORD(data, self.ActionType)
- data = CommFunc.WriteDWORD(data, self.TotalTimes)
- data = CommFunc.WriteDWORD(data, self.SingleTimes)
- data = CommFunc.WriteDWORD(data, self.Point)
- data = CommFunc.WriteBYTE(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- TemplateID:%d,
- ActionType:%d,
- TotalTimes:%d,
- SingleTimes:%d,
- Point:%d,
- Count:%d,
- ItemInfo:%s
- '''\
- %(
- self.TemplateID,
- self.ActionType,
- self.TotalTimes,
- self.SingleTimes,
- self.Point,
- self.Count,
- "..."
- )
- return DumpString
-
-
-class tagMCWeekPartyDayInfo(Structure):
- ActCnt = 0 #(BYTE ActCnt)// 数量
- TemplateList = list() #(vector<WORD> TemplateList)// 模板列表
- PCount = 0 #(BYTE PCount)// 物品数
- PItemInfo = list() #(vector<tagMCWeekPartyItem> PItemInfo)// 物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ActCnt):
- value,_pos=CommFunc.ReadWORD(_lpData,_pos)
- self.TemplateList.append(value)
- self.PCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.PCount):
- temPItemInfo = tagMCWeekPartyItem()
- _pos = temPItemInfo.ReadData(_lpData, _pos)
- self.PItemInfo.append(temPItemInfo)
- return _pos
-
- def Clear(self):
- self.ActCnt = 0
- self.TemplateList = list()
- self.PCount = 0
- self.PItemInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 2 * self.ActCnt
- length += 1
- for i in range(self.PCount):
- length += self.PItemInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.ActCnt)
- for i in range(self.ActCnt):
- data = CommFunc.WriteWORD(data, self.TemplateList[i])
- data = CommFunc.WriteBYTE(data, self.PCount)
- for i in range(self.PCount):
- data = CommFunc.WriteString(data, self.PItemInfo[i].GetLength(), self.PItemInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- ActCnt:%d,
- TemplateList:%s,
- PCount:%d,
- PItemInfo:%s
- '''\
- %(
- self.ActCnt,
- "...",
- self.PCount,
- "..."
- )
- return DumpString
-
-
-class tagMCWeekPartyInfo(Structure):
- Head = tagHead()
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
- IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
- ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
- LimitLV = 0 #(WORD LimitLV)// 限制等级
- DayCnt = 0 #(BYTE DayCnt)// 天数
- DayInfoList = list() #(vector<tagMCWeekPartyDayInfo> DayInfoList)// 每天模板
- TCount = 0 #(BYTE TCount)// 模板数
- ActionInfo = list() #(vector<tagMCWeekPartyAction> ActionInfo)// 活动模板信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x0A
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.DayCnt):
- temDayInfoList = tagMCWeekPartyDayInfo()
- _pos = temDayInfoList.ReadData(_lpData, _pos)
- self.DayInfoList.append(temDayInfoList)
- self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.TCount):
- temActionInfo = tagMCWeekPartyAction()
- _pos = temActionInfo.ReadData(_lpData, _pos)
- self.ActionInfo.append(temActionInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x0A
- self.StartDate = ""
- self.EndtDate = ""
- self.AdvanceMinutes = 0
- self.IsDayReset = 0
- self.ResetType = 0
- self.LimitLV = 0
- self.DayCnt = 0
- self.DayInfoList = list()
- self.TCount = 0
- self.ActionInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 10
- length += 10
- length += 2
- length += 1
- length += 1
- length += 2
- length += 1
- for i in range(self.DayCnt):
- length += self.DayInfoList[i].GetLength()
- length += 1
- for i in range(self.TCount):
- length += self.ActionInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
- data = CommFunc.WriteBYTE(data, self.IsDayReset)
- data = CommFunc.WriteBYTE(data, self.ResetType)
- data = CommFunc.WriteWORD(data, self.LimitLV)
- data = CommFunc.WriteBYTE(data, self.DayCnt)
- for i in range(self.DayCnt):
- data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.TCount)
- for i in range(self.TCount):
- data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- StartDate:%s,
- EndtDate:%s,
- AdvanceMinutes:%d,
- IsDayReset:%d,
- ResetType:%d,
- LimitLV:%d,
- DayCnt:%d,
- DayInfoList:%s,
- TCount:%d,
- ActionInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.StartDate,
- self.EndtDate,
- self.AdvanceMinutes,
- self.IsDayReset,
- self.ResetType,
- self.LimitLV,
- self.DayCnt,
- "...",
- self.TCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCWeekPartyInfo=tagMCWeekPartyInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWeekPartyInfo.Head.Cmd,m_NAtagMCWeekPartyInfo.Head.SubCmd))] = m_NAtagMCWeekPartyInfo
-
-
-#------------------------------------------------------
-# AA 0B 周狂欢玩家活动信息 #tagMCWeekPartyPlayerInfo
-
-class tagMCWeekPartyTaskInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("TemplateID", c_ushort), # 模板ID
- ("CurTimes", c_int), #已完成次数
- ("GotTimes", 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.TemplateID = 0
- self.CurTimes = 0
- self.GotTimes = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCWeekPartyTaskInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AA 0B 周狂欢玩家活动信息 //tagMCWeekPartyPlayerInfo:
- TemplateID:%d,
- CurTimes:%d,
- GotTimes:%d
- '''\
- %(
- self.TemplateID,
- self.CurTimes,
- self.GotTimes
- )
- return DumpString
-
-
-class tagMCWeekPartyDayPlayerInfo(Structure):
- DayIndex = 0 #(DWORD DayIndex)//第X天
- Point = 0 #(DWORD Point)//积分
- AwardRecord = 0 #(DWORD AwardRecord)//积分领奖记录
- ACount = 0 #(DWORD ACount)//任务条目数
- TaskList = list() #(vector<tagMCWeekPartyTaskInfo> TaskList)//活动完成次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- for i in range(self.ACount):
- temTaskList = tagMCWeekPartyTaskInfo()
- _pos = temTaskList.ReadData(_lpData, _pos)
- self.TaskList.append(temTaskList)
- return _pos
-
- def Clear(self):
- self.DayIndex = 0
- self.Point = 0
- self.AwardRecord = 0
- self.ACount = 0
- self.TaskList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 4
- length += 4
- length += 4
- for i in range(self.ACount):
- length += self.TaskList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.DayIndex)
- data = CommFunc.WriteDWORD(data, self.Point)
- data = CommFunc.WriteDWORD(data, self.AwardRecord)
- data = CommFunc.WriteDWORD(data, self.ACount)
- for i in range(self.ACount):
- data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- DayIndex:%d,
- Point:%d,
- AwardRecord:%d,
- ACount:%d,
- TaskList:%s
- '''\
- %(
- self.DayIndex,
- self.Point,
- self.AwardRecord,
- self.ACount,
- "..."
- )
- return DumpString
-
-
-class tagMCWeekPartyPlayerInfo(Structure):
- Head = tagHead()
- Count = 0 #(BYTE Count)
- DayInfoList = list() #(vector<tagMCWeekPartyDayPlayerInfo> DayInfoList)//活动完成次数信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x0B
- 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):
- temDayInfoList = tagMCWeekPartyDayPlayerInfo()
- _pos = temDayInfoList.ReadData(_lpData, _pos)
- self.DayInfoList.append(temDayInfoList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAA
- self.Head.SubCmd = 0x0B
- self.Count = 0
- self.DayInfoList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.Count):
- length += self.DayInfoList[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.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- Count:%d,
- DayInfoList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCWeekPartyPlayerInfo=tagMCWeekPartyPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWeekPartyPlayerInfo.Head.Cmd,m_NAtagMCWeekPartyPlayerInfo.Head.SubCmd))] = m_NAtagMCWeekPartyPlayerInfo
-
-
-#------------------------------------------------------
# AA 14 仙界盛典充值大礼 #tagMCXJSDRecharge
class tagMCXJSDRecharge(Structure):
@@ -29164,224 +26914,6 @@
m_NAtagSCOSACelebrationInfo=tagSCOSACelebrationInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCOSACelebrationInfo.Cmd,m_NAtagSCOSACelebrationInfo.SubCmd))] = m_NAtagSCOSACelebrationInfo
-
-
-#------------------------------------------------------
-# AC 13 跨服全民充值活动信息 #tagGCCrossActAllRechargeInfo
-
-class tagGCCrossActAllRechargeItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("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.ItemCount = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagGCCrossActAllRechargeItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// AC 13 跨服全民充值活动信息 //tagGCCrossActAllRechargeInfo:
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount,
- self.IsBind
- )
- return DumpString
-
-
-class tagGCCrossActAllRechargeAward(Structure):
- AwardIndex = 0 #(BYTE AwardIndex)// 奖励索引 0~31
- NeedRMB = 0 #(DWORD NeedRMB)// 所需全民充值RMB
- NeedPlayerCount = 0 #(WORD NeedPlayerCount)// 所需充值达到该档玩家数
- NowPlayerCount = 0 #(WORD NowPlayerCount)// 当前充值达到该档玩家数
- AwardItemCount = 0 #(BYTE AwardItemCount)// 奖励物品数
- AwardItemList = list() #(vector<tagGCCrossActAllRechargeItem> AwardItemList)// 奖励物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.NeedRMB,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.NeedPlayerCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.NowPlayerCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardItemCount):
- temAwardItemList = tagGCCrossActAllRechargeItem()
- _pos = temAwardItemList.ReadData(_lpData, _pos)
- self.AwardItemList.append(temAwardItemList)
- return _pos
-
- def Clear(self):
- self.AwardIndex = 0
- self.NeedRMB = 0
- self.NeedPlayerCount = 0
- self.NowPlayerCount = 0
- self.AwardItemCount = 0
- self.AwardItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += 4
- length += 2
- length += 2
- length += 1
- for i in range(self.AwardItemCount):
- length += self.AwardItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.AwardIndex)
- data = CommFunc.WriteDWORD(data, self.NeedRMB)
- data = CommFunc.WriteWORD(data, self.NeedPlayerCount)
- data = CommFunc.WriteWORD(data, self.NowPlayerCount)
- data = CommFunc.WriteBYTE(data, self.AwardItemCount)
- for i in range(self.AwardItemCount):
- data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- AwardIndex:%d,
- NeedRMB:%d,
- NeedPlayerCount:%d,
- NowPlayerCount:%d,
- AwardItemCount:%d,
- AwardItemList:%s
- '''\
- %(
- self.AwardIndex,
- self.NeedRMB,
- self.NeedPlayerCount,
- self.NowPlayerCount,
- self.AwardItemCount,
- "..."
- )
- return DumpString
-
-
-class tagGCCrossActAllRechargeInfo(Structure):
- Head = tagHead()
- ServerInfoLen = 0 #(BYTE ServerInfoLen)
- ServerIDRangeInfo = "" #(String ServerIDRangeInfo)//开放该活动的服务器ID范围列表,json格式 [[IDA, IDB], ...], [] 为全服
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- AwardCount = 0 #(BYTE AwardCount)
- AwardList = list() #(vector<tagGCCrossActAllRechargeAward> AwardList)// 奖励档次信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x13
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ServerInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ServerIDRangeInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.ServerInfoLen)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.AwardCount):
- temAwardList = tagGCCrossActAllRechargeAward()
- _pos = temAwardList.ReadData(_lpData, _pos)
- self.AwardList.append(temAwardList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xAC
- self.Head.SubCmd = 0x13
- self.ServerInfoLen = 0
- self.ServerIDRangeInfo = ""
- self.StartDate = ""
- self.EndtDate = ""
- self.AwardCount = 0
- self.AwardList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += len(self.ServerIDRangeInfo)
- length += 10
- length += 10
- length += 1
- for i in range(self.AwardCount):
- length += self.AwardList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ServerInfoLen)
- data = CommFunc.WriteString(data, self.ServerInfoLen, self.ServerIDRangeInfo)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.AwardCount)
- for i in range(self.AwardCount):
- data = CommFunc.WriteString(data, self.AwardList[i].GetLength(), self.AwardList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ServerInfoLen:%d,
- ServerIDRangeInfo:%s,
- StartDate:%s,
- EndtDate:%s,
- AwardCount:%d,
- AwardList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ServerInfoLen,
- self.ServerIDRangeInfo,
- self.StartDate,
- self.EndtDate,
- self.AwardCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagGCCrossActAllRechargeInfo=tagGCCrossActAllRechargeInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossActAllRechargeInfo.Head.Cmd,m_NAtagGCCrossActAllRechargeInfo.Head.SubCmd))] = m_NAtagGCCrossActAllRechargeInfo
#------------------------------------------------------
@@ -30065,7 +27597,7 @@
class tagSCTravelInfo(Structure):
Head = tagHead()
- Energy = 0 #(BYTE Energy)//剩余体力
+ Energy = 0 #(DWORD Energy)//剩余体力
EnergyTime = 0 #(DWORD EnergyTime)//上次恢复体力时间戳
TravelCnt = 0 #(DWORD TravelCnt)//累计游历次数
SceneryType = 0 #(BYTE SceneryType)//景观类型
@@ -30086,7 +27618,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
- self.Energy,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Energy,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.EnergyTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.TravelCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.SceneryType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -30121,7 +27653,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
- length += 1
+ length += 4
length += 4
length += 4
length += 1
@@ -30138,7 +27670,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.Energy)
+ data = CommFunc.WriteDWORD(data, self.Energy)
data = CommFunc.WriteDWORD(data, self.EnergyTime)
data = CommFunc.WriteDWORD(data, self.TravelCnt)
data = CommFunc.WriteBYTE(data, self.SceneryType)
@@ -30183,6 +27715,114 @@
m_NAtagSCTravelInfo=tagSCTravelInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCTravelInfo.Head.Cmd,m_NAtagSCTravelInfo.Head.SubCmd))] = m_NAtagSCTravelInfo
+
+
+#------------------------------------------------------
+# B1 63 战斗预设切换信息 #tagSCBatPresetSwitchInfo
+
+class tagSCBatPresetSwitch(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("BatPresetType", c_ubyte), #战斗预设类型:1-主线战斗;2-演武场防守;
+ ("BatPresetID", c_ubyte), #该战斗功能所使用的战斗预设ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.BatPresetType = 0
+ self.BatPresetID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagSCBatPresetSwitch)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B1 63 战斗预设切换信息 //tagSCBatPresetSwitchInfo:
+ BatPresetType:%d,
+ BatPresetID:%d
+ '''\
+ %(
+ self.BatPresetType,
+ self.BatPresetID
+ )
+ return DumpString
+
+
+class tagSCBatPresetSwitchInfo(Structure):
+ Head = tagHead()
+ BatFuncCnt = 0 #(BYTE BatFuncCnt)
+ BatPresetList = list() #(vector<tagSCBatPresetSwitch> BatPresetList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x63
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.BatFuncCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.BatFuncCnt):
+ temBatPresetList = tagSCBatPresetSwitch()
+ _pos = temBatPresetList.ReadData(_lpData, _pos)
+ self.BatPresetList.append(temBatPresetList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x63
+ self.BatFuncCnt = 0
+ self.BatPresetList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.BatFuncCnt):
+ length += self.BatPresetList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.BatFuncCnt)
+ for i in range(self.BatFuncCnt):
+ data = CommFunc.WriteString(data, self.BatPresetList[i].GetLength(), self.BatPresetList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ BatFuncCnt:%d,
+ BatPresetList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.BatFuncCnt,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCBatPresetSwitchInfo=tagSCBatPresetSwitchInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCBatPresetSwitchInfo.Head.Cmd,m_NAtagSCBatPresetSwitchInfo.Head.SubCmd))] = m_NAtagSCBatPresetSwitchInfo
#------------------------------------------------------
@@ -31117,6 +28757,356 @@
#------------------------------------------------------
+# B1 61 功能预设信息 #tagSCFuncPresetInfoList
+
+class tagSCFuncPreset(Structure):
+ PresetID = 0 #(BYTE PresetID)//预设方案ID
+ NameLen = 0 #(BYTE NameLen)
+ PresetName = "" #(String PresetName)//预设名称
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.PresetID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.PresetName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
+ return _pos
+
+ def Clear(self):
+ self.PresetID = 0
+ self.NameLen = 0
+ self.PresetName = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 1
+ length += len(self.PresetName)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.PresetID)
+ data = CommFunc.WriteBYTE(data, self.NameLen)
+ data = CommFunc.WriteString(data, self.NameLen, self.PresetName)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ PresetID:%d,
+ NameLen:%d,
+ PresetName:%s
+ '''\
+ %(
+ self.PresetID,
+ self.NameLen,
+ self.PresetName
+ )
+ return DumpString
+
+
+class tagSCFuncPresetInfo(Structure):
+ FuncPresetType = 0 #(BYTE FuncPresetType)//预设类型,1-全局战斗;2-阵容;3-命格;
+ UnlockState = 0 #(DWORD UnlockState)//该功能预设解锁状态,按预设ID二进制位运算记录是否已解锁
+ PresetCnt = 0 #(BYTE PresetCnt)
+ PresetList = list() #(vector<tagSCFuncPreset> PresetList)//本功能下预设列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.FuncPresetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.UnlockState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.PresetCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.PresetCnt):
+ temPresetList = tagSCFuncPreset()
+ _pos = temPresetList.ReadData(_lpData, _pos)
+ self.PresetList.append(temPresetList)
+ return _pos
+
+ def Clear(self):
+ self.FuncPresetType = 0
+ self.UnlockState = 0
+ self.PresetCnt = 0
+ self.PresetList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 4
+ length += 1
+ for i in range(self.PresetCnt):
+ length += self.PresetList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.FuncPresetType)
+ data = CommFunc.WriteDWORD(data, self.UnlockState)
+ data = CommFunc.WriteBYTE(data, self.PresetCnt)
+ for i in range(self.PresetCnt):
+ data = CommFunc.WriteString(data, self.PresetList[i].GetLength(), self.PresetList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ FuncPresetType:%d,
+ UnlockState:%d,
+ PresetCnt:%d,
+ PresetList:%s
+ '''\
+ %(
+ self.FuncPresetType,
+ self.UnlockState,
+ self.PresetCnt,
+ "..."
+ )
+ return DumpString
+
+
+class tagSCFuncPresetInfoList(Structure):
+ Head = tagHead()
+ FuncCnt = 0 #(BYTE FuncCnt)
+ FuncPresetList = list() #(vector<tagSCFuncPresetInfo> FuncPresetList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x61
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.FuncCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.FuncCnt):
+ temFuncPresetList = tagSCFuncPresetInfo()
+ _pos = temFuncPresetList.ReadData(_lpData, _pos)
+ self.FuncPresetList.append(temFuncPresetList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x61
+ self.FuncCnt = 0
+ self.FuncPresetList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.FuncCnt):
+ length += self.FuncPresetList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.FuncCnt)
+ for i in range(self.FuncCnt):
+ data = CommFunc.WriteString(data, self.FuncPresetList[i].GetLength(), self.FuncPresetList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ FuncCnt:%d,
+ FuncPresetList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.FuncCnt,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCFuncPresetInfoList=tagSCFuncPresetInfoList()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFuncPresetInfoList.Head.Cmd,m_NAtagSCFuncPresetInfoList.Head.SubCmd))] = m_NAtagSCFuncPresetInfoList
+
+
+#------------------------------------------------------
+# B1 62 功能预设切换信息 #tagSCFuncPresetSwitchInfo
+
+class tagSCFuncPresetFunc(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("FuncPresetType", c_ubyte), #预设类型,2-阵容;3-命格;
+ ("FuncPresetID", c_ubyte), #该全局战斗预设下本功能使用的预设ID
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.FuncPresetType = 0
+ self.FuncPresetID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagSCFuncPresetFunc)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B1 62 功能预设切换信息 //tagSCFuncPresetSwitchInfo:
+ FuncPresetType:%d,
+ FuncPresetID:%d
+ '''\
+ %(
+ self.FuncPresetType,
+ self.FuncPresetID
+ )
+ return DumpString
+
+
+class tagSCFuncPresetBat(Structure):
+ BatPresetID = 0 #(BYTE BatPresetID)//所属全局战斗预设ID
+ FuncCnt = 0 #(BYTE FuncCnt)
+ FuncPresetList = list() #(vector<tagSCFuncPresetFunc> FuncPresetList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.BatPresetID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.FuncCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.FuncCnt):
+ temFuncPresetList = tagSCFuncPresetFunc()
+ _pos = temFuncPresetList.ReadData(_lpData, _pos)
+ self.FuncPresetList.append(temFuncPresetList)
+ return _pos
+
+ def Clear(self):
+ self.BatPresetID = 0
+ self.FuncCnt = 0
+ self.FuncPresetList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 1
+ for i in range(self.FuncCnt):
+ length += self.FuncPresetList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.BatPresetID)
+ data = CommFunc.WriteBYTE(data, self.FuncCnt)
+ for i in range(self.FuncCnt):
+ data = CommFunc.WriteString(data, self.FuncPresetList[i].GetLength(), self.FuncPresetList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ BatPresetID:%d,
+ FuncCnt:%d,
+ FuncPresetList:%s
+ '''\
+ %(
+ self.BatPresetID,
+ self.FuncCnt,
+ "..."
+ )
+ return DumpString
+
+
+class tagSCFuncPresetSwitchInfo(Structure):
+ Head = tagHead()
+ BatPresetCnt = 0 #(BYTE BatPresetCnt)
+ BatPresetList = list() #(vector<tagSCFuncPresetBat> BatPresetList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x62
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.BatPresetCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.BatPresetCnt):
+ temBatPresetList = tagSCFuncPresetBat()
+ _pos = temBatPresetList.ReadData(_lpData, _pos)
+ self.BatPresetList.append(temBatPresetList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB1
+ self.Head.SubCmd = 0x62
+ self.BatPresetCnt = 0
+ self.BatPresetList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.BatPresetCnt):
+ length += self.BatPresetList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.BatPresetCnt)
+ for i in range(self.BatPresetCnt):
+ data = CommFunc.WriteString(data, self.BatPresetList[i].GetLength(), self.BatPresetList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ BatPresetCnt:%d,
+ BatPresetList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.BatPresetCnt,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCFuncPresetSwitchInfo=tagSCFuncPresetSwitchInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFuncPresetSwitchInfo.Head.Cmd,m_NAtagSCFuncPresetSwitchInfo.Head.SubCmd))] = m_NAtagSCFuncPresetSwitchInfo
+
+
+#------------------------------------------------------
# B1 11 功能系统特权信息 #tagMCFuncSysPrivilegeInfoList
class tagMCFuncSysPrivilegeInfo(Structure):
@@ -31469,11 +29459,10 @@
#------------------------------------------------------
-# B1 24 阵容信息 #tagSCLineupInfo
+# B1 24 武将预设信息 #tagSCHeroPresetInfo
-class tagSCLineup(Structure):
- LineupID = 0 #(BYTE LineupID)// 阵容ID
- ShapeType = 0 #(BYTE ShapeType)// 阵型
+class tagSCHeroPreset(Structure):
+ PresetID = 0 #(BYTE PresetID)//阵容方案预设ID
HeroCnt = 0 #(BYTE HeroCnt)
HeroItemIndexList = list() #(vector<WORD> HeroItemIndexList)// 所在武将背包索引+1列表 [站位1物品索引+1, 站位2, ...],站位无武将时为0
data = None
@@ -31484,8 +29473,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
- self.LineupID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ShapeType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.PresetID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.HeroCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.HeroCnt):
value,_pos=CommFunc.ReadWORD(_lpData,_pos)
@@ -31493,8 +29481,7 @@
return _pos
def Clear(self):
- self.LineupID = 0
- self.ShapeType = 0
+ self.PresetID = 0
self.HeroCnt = 0
self.HeroItemIndexList = list()
return
@@ -31503,15 +29490,13 @@
length = 0
length += 1
length += 1
- length += 1
length += 2 * self.HeroCnt
return length
def GetBuffer(self):
data = ''
- data = CommFunc.WriteBYTE(data, self.LineupID)
- data = CommFunc.WriteBYTE(data, self.ShapeType)
+ data = CommFunc.WriteBYTE(data, self.PresetID)
data = CommFunc.WriteBYTE(data, self.HeroCnt)
for i in range(self.HeroCnt):
data = CommFunc.WriteWORD(data, self.HeroItemIndexList[i])
@@ -31519,24 +29504,22 @@
def OutputString(self):
DumpString = '''
- LineupID:%d,
- ShapeType:%d,
+ PresetID:%d,
HeroCnt:%d,
HeroItemIndexList:%s
'''\
%(
- self.LineupID,
- self.ShapeType,
+ self.PresetID,
self.HeroCnt,
"..."
)
return DumpString
-class tagSCLineupInfo(Structure):
+class tagSCHeroPresetInfo(Structure):
Head = tagHead()
- LineupCnt = 0 #(BYTE LineupCnt)
- LineupList = list() #(vector<tagSCLineup> LineupList)
+ PresetCnt = 0 #(BYTE PresetCnt)
+ PresetList = list() #(vector<tagSCHeroPreset> PresetList)
data = None
def __init__(self):
@@ -31548,11 +29531,11 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
- self.LineupCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.LineupCnt):
- temLineupList = tagSCLineup()
- _pos = temLineupList.ReadData(_lpData, _pos)
- self.LineupList.append(temLineupList)
+ self.PresetCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.PresetCnt):
+ temPresetList = tagSCHeroPreset()
+ _pos = temPresetList.ReadData(_lpData, _pos)
+ self.PresetList.append(temPresetList)
return _pos
def Clear(self):
@@ -31560,43 +29543,43 @@
self.Head.Clear()
self.Head.Cmd = 0xB1
self.Head.SubCmd = 0x24
- self.LineupCnt = 0
- self.LineupList = list()
+ self.PresetCnt = 0
+ self.PresetList = list()
return
def GetLength(self):
length = 0
length += self.Head.GetLength()
length += 1
- for i in range(self.LineupCnt):
- length += self.LineupList[i].GetLength()
+ for i in range(self.PresetCnt):
+ length += self.PresetList[i].GetLength()
return length
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.LineupCnt)
- for i in range(self.LineupCnt):
- data = CommFunc.WriteString(data, self.LineupList[i].GetLength(), self.LineupList[i].GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.PresetCnt)
+ for i in range(self.PresetCnt):
+ data = CommFunc.WriteString(data, self.PresetList[i].GetLength(), self.PresetList[i].GetBuffer())
return data
def OutputString(self):
DumpString = '''
Head:%s,
- LineupCnt:%d,
- LineupList:%s
+ PresetCnt:%d,
+ PresetList:%s
'''\
%(
self.Head.OutputString(),
- self.LineupCnt,
+ self.PresetCnt,
"..."
)
return DumpString
-m_NAtagSCLineupInfo=tagSCLineupInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCLineupInfo.Head.Cmd,m_NAtagSCLineupInfo.Head.SubCmd))] = m_NAtagSCLineupInfo
+m_NAtagSCHeroPresetInfo=tagSCHeroPresetInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCHeroPresetInfo.Head.Cmd,m_NAtagSCHeroPresetInfo.Head.SubCmd))] = m_NAtagSCHeroPresetInfo
#------------------------------------------------------
@@ -45196,66 +43179,6 @@
#------------------------------------------------------
-# C0 11 跨服妖魔boss玩家伤害信息 #tagGCCrossYaomoBossPlayerHurtInfo
-
-class tagGCCrossYaomoBossPlayerHurtInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("HurtTotal", c_int), # 总伤害值,小于亿部分
- ("HurtTotalEx", c_int), # 总伤害值,整除亿部分
- ("AwardState", c_int), # 伤害目标值领奖状态,按奖励记录索引位运算判断是否已领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xC0
- self.SubCmd = 0x11
- 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 = 0xC0
- self.SubCmd = 0x11
- self.HurtTotal = 0
- self.HurtTotalEx = 0
- self.AwardState = 0
- return
-
- def GetLength(self):
- return sizeof(tagGCCrossYaomoBossPlayerHurtInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// C0 11 跨服妖魔boss玩家伤害信息 //tagGCCrossYaomoBossPlayerHurtInfo:
- Cmd:%s,
- SubCmd:%s,
- HurtTotal:%d,
- HurtTotalEx:%d,
- AwardState:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.HurtTotal,
- self.HurtTotalEx,
- self.AwardState
- )
- return DumpString
-
-
-m_NAtagGCCrossYaomoBossPlayerHurtInfo=tagGCCrossYaomoBossPlayerHurtInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossYaomoBossPlayerHurtInfo.Cmd,m_NAtagGCCrossYaomoBossPlayerHurtInfo.SubCmd))] = m_NAtagGCCrossYaomoBossPlayerHurtInfo
-
-
-#------------------------------------------------------
# C0 10 跨服所属分区信息 #tagGCCrossZoneInfo
class tagGCCrossZoneInfo(Structure):
@@ -47133,572 +45056,6 @@
#------------------------------------------------------
-# C0 14 幸运云购开奖记录 #tagGCLuckyCloudBuyLotteryRecInfo
-
-class tagGCLuckyCloudBuyLotteryRec(Structure):
- SuperItemID = 0 #(DWORD SuperItemID)// 大奖物品ID
- SuperItemCount = 0 #(BYTE SuperItemCount)// 大奖物品个数
- NameLen = 0 #(BYTE NameLen)
- PlayerName = "" #(String PlayerName)// 中奖玩家名
- LotteryNum = 0 #(WORD LotteryNum)// 开奖号码
- LotteryTime = 0 #(DWORD LotteryTime)// 开奖时间戳,秒
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.SuperItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
- self.LotteryNum,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.LotteryTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.SuperItemID = 0
- self.SuperItemCount = 0
- self.NameLen = 0
- self.PlayerName = ""
- self.LotteryNum = 0
- self.LotteryTime = 0
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 1
- length += 1
- length += len(self.PlayerName)
- length += 2
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.SuperItemID)
- data = CommFunc.WriteBYTE(data, self.SuperItemCount)
- data = CommFunc.WriteBYTE(data, self.NameLen)
- data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
- data = CommFunc.WriteWORD(data, self.LotteryNum)
- data = CommFunc.WriteDWORD(data, self.LotteryTime)
- return data
-
- def OutputString(self):
- DumpString = '''
- SuperItemID:%d,
- SuperItemCount:%d,
- NameLen:%d,
- PlayerName:%s,
- LotteryNum:%d,
- LotteryTime:%d
- '''\
- %(
- self.SuperItemID,
- self.SuperItemCount,
- self.NameLen,
- self.PlayerName,
- self.LotteryNum,
- self.LotteryTime
- )
- return DumpString
-
-
-class tagGCLuckyCloudBuyLotteryRecInfo(Structure):
- Head = tagHead()
- ZoneCount = 0 #(BYTE ZoneCount)// 分区数
- ZoneIDList = list() #(vector<BYTE> ZoneIDList)// 所有分区ID列表
- ZoneID = 0 #(BYTE ZoneID)// 返回记录分区ID
- Count = 0 #(WORD Count)
- LotteryRecList = list() #(vector<tagGCLuckyCloudBuyLotteryRec> LotteryRecList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xC0
- self.Head.SubCmd = 0x14
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ZoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.ZoneCount):
- value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
- self.ZoneIDList.append(value)
- self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.Count):
- temLotteryRecList = tagGCLuckyCloudBuyLotteryRec()
- _pos = temLotteryRecList.ReadData(_lpData, _pos)
- self.LotteryRecList.append(temLotteryRecList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xC0
- self.Head.SubCmd = 0x14
- self.ZoneCount = 0
- self.ZoneIDList = list()
- self.ZoneID = 0
- self.Count = 0
- self.LotteryRecList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 1 * self.ZoneCount
- length += 1
- length += 2
- for i in range(self.Count):
- length += self.LotteryRecList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ZoneCount)
- for i in range(self.ZoneCount):
- data = CommFunc.WriteBYTE(data, self.ZoneIDList[i])
- data = CommFunc.WriteBYTE(data, self.ZoneID)
- data = CommFunc.WriteWORD(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.LotteryRecList[i].GetLength(), self.LotteryRecList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ZoneCount:%d,
- ZoneIDList:%s,
- ZoneID:%d,
- Count:%d,
- LotteryRecList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ZoneCount,
- "...",
- self.ZoneID,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagGCLuckyCloudBuyLotteryRecInfo=tagGCLuckyCloudBuyLotteryRecInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCLuckyCloudBuyLotteryRecInfo.Head.Cmd,m_NAtagGCLuckyCloudBuyLotteryRecInfo.Head.SubCmd))] = m_NAtagGCLuckyCloudBuyLotteryRecInfo
-
-
-#------------------------------------------------------
-# C0 13 幸运云购购买号码记录 #tagGCLuckyCloudBuyNumRecInfo
-
-class tagGCLuckyCloudBuyNumRec(Structure):
- NameLen = 0 #(BYTE NameLen)
- PlayerName = "" #(String PlayerName)
- BuyNum = 0 #(WORD BuyNum)
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
- self.BuyNum,_pos = CommFunc.ReadWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.NameLen = 0
- self.PlayerName = ""
- self.BuyNum = 0
- return
-
- def GetLength(self):
- length = 0
- length += 1
- length += len(self.PlayerName)
- length += 2
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.NameLen)
- data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
- data = CommFunc.WriteWORD(data, self.BuyNum)
- return data
-
- def OutputString(self):
- DumpString = '''
- NameLen:%d,
- PlayerName:%s,
- BuyNum:%d
- '''\
- %(
- self.NameLen,
- self.PlayerName,
- self.BuyNum
- )
- return DumpString
-
-
-class tagGCLuckyCloudBuyNumRecInfo(Structure):
- Head = tagHead()
- RemainCount = 0 #(WORD RemainCount)// 开奖剩余份数
- Count = 0 #(WORD Count)
- BuyNumRecList = list() #(vector<tagGCLuckyCloudBuyNumRec> BuyNumRecList)
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xC0
- self.Head.SubCmd = 0x13
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.RemainCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.Count):
- temBuyNumRecList = tagGCLuckyCloudBuyNumRec()
- _pos = temBuyNumRecList.ReadData(_lpData, _pos)
- self.BuyNumRecList.append(temBuyNumRecList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xC0
- self.Head.SubCmd = 0x13
- self.RemainCount = 0
- self.Count = 0
- self.BuyNumRecList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 2
- length += 2
- for i in range(self.Count):
- length += self.BuyNumRecList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteWORD(data, self.RemainCount)
- data = CommFunc.WriteWORD(data, self.Count)
- for i in range(self.Count):
- data = CommFunc.WriteString(data, self.BuyNumRecList[i].GetLength(), self.BuyNumRecList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- RemainCount:%d,
- Count:%d,
- BuyNumRecList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.RemainCount,
- self.Count,
- "..."
- )
- return DumpString
-
-
-m_NAtagGCLuckyCloudBuyNumRecInfo=tagGCLuckyCloudBuyNumRecInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCLuckyCloudBuyNumRecInfo.Head.Cmd,m_NAtagGCLuckyCloudBuyNumRecInfo.Head.SubCmd))] = m_NAtagGCLuckyCloudBuyNumRecInfo
-
-
-#------------------------------------------------------
-# C0 12 幸运云购轮次信息 #tagGCLuckyCloudBuyRoundInfo
-
-class tagGCLuckyCloudBuyRoundItem(Structure):
- _pack_ = 1
- _fields_ = [
- ("ItemID", c_int),
- ("ItemCount", c_ushort),
- ("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.ItemCount = 0
- self.IsBind = 0
- return
-
- def GetLength(self):
- return sizeof(tagGCLuckyCloudBuyRoundItem)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// C0 12 幸运云购轮次信息 //tagGCLuckyCloudBuyRoundInfo:
- ItemID:%d,
- ItemCount:%d,
- IsBind:%d
- '''\
- %(
- self.ItemID,
- self.ItemCount,
- self.IsBind
- )
- return DumpString
-
-
-class tagGCLuckyCloudBuyRoundTime(Structure):
- StartTime = "" #(char StartTime[5])// 开始时间 H:M
- EndtTime = "" #(char EndtTime[5])// 结束时间 H:M
- RoundMax = 0 #(BYTE RoundMax)// 本时段最大轮次
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
- self.RoundMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.StartTime = ""
- self.EndtTime = ""
- self.RoundMax = 0
- return
-
- def GetLength(self):
- length = 0
- length += 5
- length += 5
- length += 1
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, 5, self.StartTime)
- data = CommFunc.WriteString(data, 5, self.EndtTime)
- data = CommFunc.WriteBYTE(data, self.RoundMax)
- return data
-
- def OutputString(self):
- DumpString = '''
- StartTime:%s,
- EndtTime:%s,
- RoundMax:%d
- '''\
- %(
- self.StartTime,
- self.EndtTime,
- self.RoundMax
- )
- return DumpString
-
-
-class tagGCLuckyCloudBuyRoundInfo(Structure):
- Head = tagHead()
- ZoneID = 0 #(BYTE ZoneID)// 所属分区ID
- StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
- EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
- RoundTimeCount = 0 #(BYTE RoundTimeCount)
- RoundTimeList = list() #(vector<tagGCLuckyCloudBuyRoundTime> RoundTimeList)//轮次时间段
- RoundID = 0 #(DWORD RoundID)// 轮次唯一ID标识,当收到的轮次ID变更时,前端需清空购买号码记录缓存
- RoundNum = 0 #(BYTE RoundNum)// 当前时段第几轮
- SuperItemID = 0 #(DWORD SuperItemID)// 大奖物品ID
- SuperItemCount = 0 #(BYTE SuperItemCount)// 大奖物品个数
- SuperItemMoneyType = 0 #(BYTE SuperItemMoneyType)// 大奖价值货币类型
- SuperItemMoneyValue = 0 #(DWORD SuperItemMoneyValue)// 大奖价值
- LVLimit = 0 #(WORD LVLimit)//开启等级
- BaseItemCount = 0 #(BYTE BaseItemCount)// 每次购买固定奖励物品数
- BaseItemList = list() #(vector<tagGCLuckyCloudBuyRoundItem> BaseItemList)// 每次购买固定奖励物品信息
- RandItemCount = 0 #(BYTE RandItemCount)// 每次购买随机奖励物品数
- RandItemList = list() #(vector<tagGCLuckyCloudBuyRoundItem> RandItemList)// 每次购买随机奖励物品信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xC0
- self.Head.SubCmd = 0x12
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
- self.RoundTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.RoundTimeCount):
- temRoundTimeList = tagGCLuckyCloudBuyRoundTime()
- _pos = temRoundTimeList.ReadData(_lpData, _pos)
- self.RoundTimeList.append(temRoundTimeList)
- self.RoundID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.RoundNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.SuperItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.SuperItemMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.SuperItemMoneyValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.LVLimit,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.BaseItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.BaseItemCount):
- temBaseItemList = tagGCLuckyCloudBuyRoundItem()
- _pos = temBaseItemList.ReadData(_lpData, _pos)
- self.BaseItemList.append(temBaseItemList)
- self.RandItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.RandItemCount):
- temRandItemList = tagGCLuckyCloudBuyRoundItem()
- _pos = temRandItemList.ReadData(_lpData, _pos)
- self.RandItemList.append(temRandItemList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xC0
- self.Head.SubCmd = 0x12
- self.ZoneID = 0
- self.StartDate = ""
- self.EndtDate = ""
- self.RoundTimeCount = 0
- self.RoundTimeList = list()
- self.RoundID = 0
- self.RoundNum = 0
- self.SuperItemID = 0
- self.SuperItemCount = 0
- self.SuperItemMoneyType = 0
- self.SuperItemMoneyValue = 0
- self.LVLimit = 0
- self.BaseItemCount = 0
- self.BaseItemList = list()
- self.RandItemCount = 0
- self.RandItemList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- length += 10
- length += 10
- length += 1
- for i in range(self.RoundTimeCount):
- length += self.RoundTimeList[i].GetLength()
- length += 4
- length += 1
- length += 4
- length += 1
- length += 1
- length += 4
- length += 2
- length += 1
- for i in range(self.BaseItemCount):
- length += self.BaseItemList[i].GetLength()
- length += 1
- for i in range(self.RandItemCount):
- length += self.RandItemList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.ZoneID)
- data = CommFunc.WriteString(data, 10, self.StartDate)
- data = CommFunc.WriteString(data, 10, self.EndtDate)
- data = CommFunc.WriteBYTE(data, self.RoundTimeCount)
- for i in range(self.RoundTimeCount):
- data = CommFunc.WriteString(data, self.RoundTimeList[i].GetLength(), self.RoundTimeList[i].GetBuffer())
- data = CommFunc.WriteDWORD(data, self.RoundID)
- data = CommFunc.WriteBYTE(data, self.RoundNum)
- data = CommFunc.WriteDWORD(data, self.SuperItemID)
- data = CommFunc.WriteBYTE(data, self.SuperItemCount)
- data = CommFunc.WriteBYTE(data, self.SuperItemMoneyType)
- data = CommFunc.WriteDWORD(data, self.SuperItemMoneyValue)
- data = CommFunc.WriteWORD(data, self.LVLimit)
- data = CommFunc.WriteBYTE(data, self.BaseItemCount)
- for i in range(self.BaseItemCount):
- data = CommFunc.WriteString(data, self.BaseItemList[i].GetLength(), self.BaseItemList[i].GetBuffer())
- data = CommFunc.WriteBYTE(data, self.RandItemCount)
- for i in range(self.RandItemCount):
- data = CommFunc.WriteString(data, self.RandItemList[i].GetLength(), self.RandItemList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ZoneID:%d,
- StartDate:%s,
- EndtDate:%s,
- RoundTimeCount:%d,
- RoundTimeList:%s,
- RoundID:%d,
- RoundNum:%d,
- SuperItemID:%d,
- SuperItemCount:%d,
- SuperItemMoneyType:%d,
- SuperItemMoneyValue:%d,
- LVLimit:%d,
- BaseItemCount:%d,
- BaseItemList:%s,
- RandItemCount:%d,
- RandItemList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ZoneID,
- self.StartDate,
- self.EndtDate,
- self.RoundTimeCount,
- "...",
- self.RoundID,
- self.RoundNum,
- self.SuperItemID,
- self.SuperItemCount,
- self.SuperItemMoneyType,
- self.SuperItemMoneyValue,
- self.LVLimit,
- self.BaseItemCount,
- "...",
- self.RandItemCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagGCLuckyCloudBuyRoundInfo=tagGCLuckyCloudBuyRoundInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCLuckyCloudBuyRoundInfo.Head.Cmd,m_NAtagGCLuckyCloudBuyRoundInfo.Head.SubCmd))] = m_NAtagGCLuckyCloudBuyRoundInfo
-
-
-#------------------------------------------------------
# C1 09 跨服排位玩家信息 #tagMCChampionshipPlayerInfo
class tagMCChampionshipPlayerInfo(Structure):
@@ -48254,58 +45611,6 @@
#------------------------------------------------------
-# C1 08 幸运云购玩家信息 #tagMCLuckyCloudBuyPlayerInfo
-
-class tagMCLuckyCloudBuyPlayerInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("BuyCount", c_ushort), # 本轮已购买份数
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xC1
- 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 = 0xC1
- self.SubCmd = 0x08
- self.BuyCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCLuckyCloudBuyPlayerInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// C1 08 幸运云购玩家信息 //tagMCLuckyCloudBuyPlayerInfo:
- Cmd:%s,
- SubCmd:%s,
- BuyCount:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.BuyCount
- )
- return DumpString
-
-
-m_NAtagMCLuckyCloudBuyPlayerInfo=tagMCLuckyCloudBuyPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLuckyCloudBuyPlayerInfo.Cmd,m_NAtagMCLuckyCloudBuyPlayerInfo.SubCmd))] = m_NAtagMCLuckyCloudBuyPlayerInfo
-
-
-#------------------------------------------------------
# C1 04 准备进入跨服服务器 #tagMCPrepareEnterCrossServer
class tagMCPrepareEnterCrossServer(Structure):
@@ -48406,12 +45711,243 @@
#------------------------------------------------------
-# C2 02 跨服通用信息包 #tagSSCommMsg
+# C2 03 跨服中心事件同步 #tagSSCrossCenterEvent
+
+class tagSSCrossCenterEvent(Structure):
+ Head = tagHead()
+ ServerID = 0 #(DWORD ServerID)
+ ServerType = 0 #(BYTE ServerType)//服务器类型
+ EventValue = 0 #(DWORD EventValue)//事件值,yyyyMMddhh用于判断过天等
+ GMLen = 0 #(BYTE GMLen)
+ GMEvent = "" #(String GMEvent)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xC2
+ self.Head.SubCmd = 0x03
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ServerType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.EventValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.GMLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.GMEvent,_pos = CommFunc.ReadString(_lpData, _pos,self.GMLen)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xC2
+ self.Head.SubCmd = 0x03
+ self.ServerID = 0
+ self.ServerType = 0
+ self.EventValue = 0
+ self.GMLen = 0
+ self.GMEvent = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 1
+ length += 4
+ length += 1
+ length += len(self.GMEvent)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.ServerID)
+ data = CommFunc.WriteBYTE(data, self.ServerType)
+ data = CommFunc.WriteDWORD(data, self.EventValue)
+ data = CommFunc.WriteBYTE(data, self.GMLen)
+ data = CommFunc.WriteString(data, self.GMLen, self.GMEvent)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ServerID:%d,
+ ServerType:%d,
+ EventValue:%d,
+ GMLen:%d,
+ GMEvent:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.ServerID,
+ self.ServerType,
+ self.EventValue,
+ self.GMLen,
+ self.GMEvent
+ )
+ return DumpString
+
+
+m_NAtagSSCrossCenterEvent=tagSSCrossCenterEvent()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSCrossCenterEvent.Head.Cmd,m_NAtagSSCrossCenterEvent.Head.SubCmd))] = m_NAtagSSCrossCenterEvent
+
+
+#------------------------------------------------------
+# C2 04 跨服GM命令 #tagSSGMCMD
+
+class tagSSGMCMD(Structure):
+ Head = tagHead()
+ FromServerID = 0 #(DWORD FromServerID)//哪个服发的
+ ServerType = 0 #(BYTE ServerType)//服务器类型
+ PlayerID = 0 #(DWORD PlayerID)//哪个玩家触发发送的
+ CMDLen = 0 #(BYTE CMDLen)
+ CMDStr = "" #(String CMDStr)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xC2
+ self.Head.SubCmd = 0x04
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.FromServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ServerType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.CMDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.CMDStr,_pos = CommFunc.ReadString(_lpData, _pos,self.CMDLen)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xC2
+ self.Head.SubCmd = 0x04
+ self.FromServerID = 0
+ self.ServerType = 0
+ self.PlayerID = 0
+ self.CMDLen = 0
+ self.CMDStr = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 1
+ length += 4
+ length += 1
+ length += len(self.CMDStr)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.FromServerID)
+ data = CommFunc.WriteBYTE(data, self.ServerType)
+ data = CommFunc.WriteDWORD(data, self.PlayerID)
+ data = CommFunc.WriteBYTE(data, self.CMDLen)
+ data = CommFunc.WriteString(data, self.CMDLen, self.CMDStr)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ FromServerID:%d,
+ ServerType:%d,
+ PlayerID:%d,
+ CMDLen:%d,
+ CMDStr:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.FromServerID,
+ self.ServerType,
+ self.PlayerID,
+ self.CMDLen,
+ self.CMDStr
+ )
+ return DumpString
+
+
+m_NAtagSSGMCMD=tagSSGMCMD()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSGMCMD.Head.Cmd,m_NAtagSSGMCMD.Head.SubCmd))] = m_NAtagSSGMCMD
+
+
+#------------------------------------------------------
+# C2 02 服务器连接跨服成功 #tagSSServerConnOK
+
+class tagSSServerConnOK(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ServerID", c_int),
+ ("ServerType", c_ubyte), #服务器类型
+ ("IsReconn", c_ubyte), #是否重连的
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xC2
+ 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 = 0xC2
+ self.SubCmd = 0x02
+ self.ServerID = 0
+ self.ServerType = 0
+ self.IsReconn = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagSSServerConnOK)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// C2 02 服务器连接跨服成功 //tagSSServerConnOK:
+ Cmd:%s,
+ SubCmd:%s,
+ ServerID:%d,
+ ServerType:%d,
+ IsReconn:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ServerID,
+ self.ServerType,
+ self.IsReconn
+ )
+ return DumpString
+
+
+m_NAtagSSServerConnOK=tagSSServerConnOK()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSServerConnOK.Cmd,m_NAtagSSServerConnOK.SubCmd))] = m_NAtagSSServerConnOK
+
+
+#------------------------------------------------------
+# C2 10 跨服通用信息包 #tagSSCommMsg
class tagSSCommMsg(Structure):
Head = tagHead()
FromServerID = 0 #(DWORD FromServerID)//哪个服发的
- ServerTime = 0 #(DWORD ServerTime)//来源服务器时间戳
+ ServerType = 0 #(BYTE ServerType)//服务器类型
+ PlayerID = 0 #(DWORD PlayerID)//哪个玩家触发发送的
TypeLen = 0 #(BYTE TypeLen)
MsgType = "" #(String MsgType)
Len = 0 #(DWORD Len)
@@ -48421,14 +45957,15 @@
def __init__(self):
self.Clear()
self.Head.Cmd = 0xC2
- self.Head.SubCmd = 0x02
+ self.Head.SubCmd = 0x10
return
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
self.FromServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ServerTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ServerType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.TypeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.MsgType,_pos = CommFunc.ReadString(_lpData, _pos,self.TypeLen)
self.Len,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -48439,9 +45976,10 @@
self.Head = tagHead()
self.Head.Clear()
self.Head.Cmd = 0xC2
- self.Head.SubCmd = 0x02
+ self.Head.SubCmd = 0x10
self.FromServerID = 0
- self.ServerTime = 0
+ self.ServerType = 0
+ self.PlayerID = 0
self.TypeLen = 0
self.MsgType = ""
self.Len = 0
@@ -48452,6 +45990,7 @@
length = 0
length += self.Head.GetLength()
length += 4
+ length += 1
length += 4
length += 1
length += len(self.MsgType)
@@ -48464,7 +46003,8 @@
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
data = CommFunc.WriteDWORD(data, self.FromServerID)
- data = CommFunc.WriteDWORD(data, self.ServerTime)
+ data = CommFunc.WriteBYTE(data, self.ServerType)
+ data = CommFunc.WriteDWORD(data, self.PlayerID)
data = CommFunc.WriteBYTE(data, self.TypeLen)
data = CommFunc.WriteString(data, self.TypeLen, self.MsgType)
data = CommFunc.WriteDWORD(data, self.Len)
@@ -48475,7 +46015,8 @@
DumpString = '''
Head:%s,
FromServerID:%d,
- ServerTime:%d,
+ ServerType:%d,
+ PlayerID:%d,
TypeLen:%d,
MsgType:%s,
Len:%d,
@@ -48484,7 +46025,8 @@
%(
self.Head.OutputString(),
self.FromServerID,
- self.ServerTime,
+ self.ServerType,
+ self.PlayerID,
self.TypeLen,
self.MsgType,
self.Len,
@@ -48498,14 +46040,16 @@
#------------------------------------------------------
-# C2 01 跨服服务器间的测试包 #tagSSTest
+# C2 01 跨服服务器心跳包 #tagSSHeart
-class tagSSTest(Structure):
+class tagSSHeart(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("Data", c_int), #测试
+ ("ServerID", c_int),
+ ("ServerType", c_ubyte), #服务器类型
+ ("ServerTime", c_int), #服务器时间戳
]
def __init__(self):
@@ -48522,28 +46066,34 @@
def Clear(self):
self.Cmd = 0xC2
self.SubCmd = 0x01
- self.Data = 0
+ self.ServerID = 0
+ self.ServerType = 0
+ self.ServerTime = 0
return
def GetLength(self):
- return sizeof(tagSSTest)
+ return sizeof(tagSSHeart)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// C2 01 跨服服务器间的测试包 //tagSSTest:
+ DumpString = '''// C2 01 跨服服务器心跳包 //tagSSHeart:
Cmd:%s,
SubCmd:%s,
- Data:%d
+ ServerID:%d,
+ ServerType:%d,
+ ServerTime:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.Data
+ self.ServerID,
+ self.ServerType,
+ self.ServerTime
)
return DumpString
-m_NAtagSSTest=tagSSTest()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSTest.Cmd,m_NAtagSSTest.SubCmd))] = m_NAtagSSTest
\ No newline at end of file
+m_NAtagSSHeart=tagSSHeart()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSHeart.Cmd,m_NAtagSSHeart.SubCmd))] = m_NAtagSSHeart
\ No newline at end of file
--
Gitblit v1.8.0