From dae842ad6e4a43d66255251e3ca60880af8d08bb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 09 十月 2025 16:26:25 +0800
Subject: [PATCH] 242 【福利内容】每日签到-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 921 +++++++++++++++++++++------------------------------------
1 files changed, 339 insertions(+), 582 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 45da1bb..f9aad71 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -3849,114 +3849,6 @@
#------------------------------------------------------
-# A3 BD 通知玩家购买副本进入次数 #tagMCBuyEnterInfo
-
-class tagMCBuyInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("FBID", c_int), # 副本ID
- ("BuyCount", 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.FBID = 0
- self.BuyCount = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCBuyInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''// A3 BD 通知玩家购买副本进入次数 //tagMCBuyEnterInfo:
- FBID:%d,
- BuyCount:%d
- '''\
- %(
- self.FBID,
- self.BuyCount
- )
- return DumpString
-
-
-class tagMCBuyEnterInfo(Structure):
- Head = tagHead()
- FBCount = 0 #(BYTE FBCount)// 副本个数
- FBInfo = list() #(vector<tagMCBuyInfo> FBInfo)// 副本信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0xBD
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.FBCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.FBCount):
- temFBInfo = tagMCBuyInfo()
- _pos = temFBInfo.ReadData(_lpData, _pos)
- self.FBInfo.append(temFBInfo)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0xBD
- self.FBCount = 0
- self.FBInfo = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.FBCount):
- length += self.FBInfo[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.FBCount)
- for i in range(self.FBCount):
- data = CommFunc.WriteString(data, self.FBInfo[i].GetLength(), self.FBInfo[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- FBCount:%d,
- FBInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.FBCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCBuyEnterInfo=tagMCBuyEnterInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBuyEnterInfo.Head.Cmd,m_NAtagMCBuyEnterInfo.Head.SubCmd))] = m_NAtagMCBuyEnterInfo
-
-
-#------------------------------------------------------
# A3 B0 玩家购买魔魂铜钱经验额外奖励信息 #tagMCBuySomethingReward
class tagMCBuySomethingReward(Structure):
@@ -4503,71 +4395,70 @@
#------------------------------------------------------
-#A3 0D 玩家签到信息记录 # tagMCDaySignInfo
+#A3 0D 玩家签到信息记录 # tagSCDaySignInfo
-class tagMCDaySignInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("DaySignCount", c_ubyte), #已经签到天数
- ("ReplenishSignCount", c_ubyte), # 可以补签天数
- ("IsSign", c_ubyte), #当天是否已经签到,发送0和1
- ("IsFrist", c_ubyte), #是否是第一个月
- ("TotalSignCount", c_ushort), #累计总签到天数
- ]
+class tagSCDaySignInfo(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ SignStateList = list() #(vector<BYTE> SignStateList)//每日签到状态记录列表 [第1天状态, ...] 状态:0-不可签到;1-已签到;2-可补签;3-已领取
+ data = None
def __init__(self):
self.Clear()
- self.Cmd = 0xA3
- self.SubCmd = 0x0D
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x0D
return
- def ReadData(self, stringData, _pos=0, _len=0):
+ def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.SignStateList.append(value)
+ return _pos
def Clear(self):
- self.Cmd = 0xA3
- self.SubCmd = 0x0D
- self.DaySignCount = 0
- self.ReplenishSignCount = 0
- self.IsSign = 0
- self.IsFrist = 0
- self.TotalSignCount = 0
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x0D
+ self.Count = 0
+ self.SignStateList = list()
return
def GetLength(self):
- return sizeof(tagMCDaySignInfo)
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 1 * self.Count
+
+ return length
def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
+ 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.WriteBYTE(data, self.SignStateList[i])
+ return data
def OutputString(self):
- DumpString = '''//A3 0D 玩家签到信息记录 // tagMCDaySignInfo:
- Cmd:%s,
- SubCmd:%s,
- DaySignCount:%d,
- ReplenishSignCount:%d,
- IsSign:%d,
- IsFrist:%d,
- TotalSignCount:%d
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ SignStateList:%s
'''\
%(
- self.Cmd,
- self.SubCmd,
- self.DaySignCount,
- self.ReplenishSignCount,
- self.IsSign,
- self.IsFrist,
- self.TotalSignCount
+ self.Head.OutputString(),
+ self.Count,
+ "..."
)
return DumpString
-m_NAtagMCDaySignInfo=tagMCDaySignInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDaySignInfo.Cmd,m_NAtagMCDaySignInfo.SubCmd))] = m_NAtagMCDaySignInfo
+m_NAtagSCDaySignInfo=tagSCDaySignInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDaySignInfo.Head.Cmd,m_NAtagSCDaySignInfo.Head.SubCmd))] = m_NAtagSCDaySignInfo
#------------------------------------------------------
@@ -5367,6 +5258,165 @@
m_NAtagMCFaQiInfo=tagMCFaQiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFaQiInfo.Cmd,m_NAtagMCFaQiInfo.SubCmd))] = m_NAtagMCFaQiInfo
+
+
+#------------------------------------------------------
+# A3 20 玩家副本相关信息 #tagSCFBInfoList
+
+class tagSCFBInfo(Structure):
+ MapID = 0 #(DWORD MapID)
+ EnterCnt = 0 #(WORD EnterCnt)//今日累计进入次数
+ ADAddCnt = 0 #(BYTE ADAddCnt)//广告增加次数
+ BuyAddCnt = 0 #(BYTE BuyAddCnt)//购买增加次数
+ ItemAddCnt = 0 #(WORD ItemAddCnt)//物品增加次数
+ PassLineID = 0 #(DWORD PassLineID)//已过关到的lineID
+ PassGradeCnt = 0 #(BYTE PassGradeCnt)//星级值对应个数, 每个key存9个lineID
+ PassGrade = list() #(vector<DWORD> PassGrade)//副本线路对应星级值列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.EnterCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.ADAddCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.BuyAddCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ItemAddCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.PassLineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.PassGradeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.PassGradeCnt):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.PassGrade.append(value)
+ return _pos
+
+ def Clear(self):
+ self.MapID = 0
+ self.EnterCnt = 0
+ self.ADAddCnt = 0
+ self.BuyAddCnt = 0
+ self.ItemAddCnt = 0
+ self.PassLineID = 0
+ self.PassGradeCnt = 0
+ self.PassGrade = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 4
+ length += 2
+ length += 1
+ length += 1
+ length += 2
+ length += 4
+ length += 1
+ length += 4 * self.PassGradeCnt
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteDWORD(data, self.MapID)
+ data = CommFunc.WriteWORD(data, self.EnterCnt)
+ data = CommFunc.WriteBYTE(data, self.ADAddCnt)
+ data = CommFunc.WriteBYTE(data, self.BuyAddCnt)
+ data = CommFunc.WriteWORD(data, self.ItemAddCnt)
+ data = CommFunc.WriteDWORD(data, self.PassLineID)
+ data = CommFunc.WriteBYTE(data, self.PassGradeCnt)
+ for i in range(self.PassGradeCnt):
+ data = CommFunc.WriteDWORD(data, self.PassGrade[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ MapID:%d,
+ EnterCnt:%d,
+ ADAddCnt:%d,
+ BuyAddCnt:%d,
+ ItemAddCnt:%d,
+ PassLineID:%d,
+ PassGradeCnt:%d,
+ PassGrade:%s
+ '''\
+ %(
+ self.MapID,
+ self.EnterCnt,
+ self.ADAddCnt,
+ self.BuyAddCnt,
+ self.ItemAddCnt,
+ self.PassLineID,
+ self.PassGradeCnt,
+ "..."
+ )
+ return DumpString
+
+
+class tagSCFBInfoList(Structure):
+ Head = tagHead()
+ FBDataCnt = 0 #(BYTE FBDataCnt)// 副本数据个数
+ FBDataList = list() #(vector<tagSCFBInfo> FBDataList)// 副本数据列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x20
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.FBDataCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.FBDataCnt):
+ temFBDataList = tagSCFBInfo()
+ _pos = temFBDataList.ReadData(_lpData, _pos)
+ self.FBDataList.append(temFBDataList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x20
+ self.FBDataCnt = 0
+ self.FBDataList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.FBDataCnt):
+ length += self.FBDataList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.FBDataCnt)
+ for i in range(self.FBDataCnt):
+ data = CommFunc.WriteString(data, self.FBDataList[i].GetLength(), self.FBDataList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ FBDataCnt:%d,
+ FBDataList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.FBDataCnt,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCFBInfoList=tagSCFBInfoList()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFBInfoList.Head.Cmd,m_NAtagSCFBInfoList.Head.SubCmd))] = m_NAtagSCFBInfoList
#------------------------------------------------------
@@ -8186,165 +8236,6 @@
m_NAtagMCPackDownloadRecord=tagMCPackDownloadRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPackDownloadRecord.Cmd,m_NAtagMCPackDownloadRecord.SubCmd))] = m_NAtagMCPackDownloadRecord
-
-
-#------------------------------------------------------
-# A3 20 玩家副本相关信息 #tagMCPlayerFBInfoData
-
-class tagMCFBInfo(Structure):
- FBID = 0 #(DWORD FBID)//fbId
- EnterCnt = 0 #(WORD EnterCnt)//当日进入次数
- RecoverCnt = 0 #(WORD RecoverCnt)//找回次数
- ItemAddCnt = 0 #(WORD ItemAddCnt)//物品增加次数
- PassGradeCnt = 0 #(BYTE PassGradeCnt)//星级值对应个数, 每个key存9个lineID
- PassGrade = list() #(vector<DWORD> PassGrade)//副本线路对应星级值列表
- EnterCntTotal = 0 #(DWORD EnterCntTotal)//累计进入次数
- PassLineID = 0 #(DWORD PassLineID)//已过关到的lineID
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.FBID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EnterCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.RecoverCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ItemAddCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.PassGradeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.PassGradeCnt):
- value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
- self.PassGrade.append(value)
- self.EnterCntTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.PassLineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.FBID = 0
- self.EnterCnt = 0
- self.RecoverCnt = 0
- self.ItemAddCnt = 0
- self.PassGradeCnt = 0
- self.PassGrade = list()
- self.EnterCntTotal = 0
- self.PassLineID = 0
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 2
- length += 2
- length += 2
- length += 1
- length += 4 * self.PassGradeCnt
- length += 4
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.FBID)
- data = CommFunc.WriteWORD(data, self.EnterCnt)
- data = CommFunc.WriteWORD(data, self.RecoverCnt)
- data = CommFunc.WriteWORD(data, self.ItemAddCnt)
- data = CommFunc.WriteBYTE(data, self.PassGradeCnt)
- for i in range(self.PassGradeCnt):
- data = CommFunc.WriteDWORD(data, self.PassGrade[i])
- data = CommFunc.WriteDWORD(data, self.EnterCntTotal)
- data = CommFunc.WriteDWORD(data, self.PassLineID)
- return data
-
- def OutputString(self):
- DumpString = '''
- FBID:%d,
- EnterCnt:%d,
- RecoverCnt:%d,
- ItemAddCnt:%d,
- PassGradeCnt:%d,
- PassGrade:%s,
- EnterCntTotal:%d,
- PassLineID:%d
- '''\
- %(
- self.FBID,
- self.EnterCnt,
- self.RecoverCnt,
- self.ItemAddCnt,
- self.PassGradeCnt,
- "...",
- self.EnterCntTotal,
- self.PassLineID
- )
- return DumpString
-
-
-class tagMCPlayerFBInfoData(Structure):
- Head = tagHead()
- FBDataCnt = 0 #(BYTE FBDataCnt)// 副本数据个数
- FBDataList = list() #(vector<tagMCFBInfo> FBDataList)// 副本数据列表
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x20
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.FBDataCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.FBDataCnt):
- temFBDataList = tagMCFBInfo()
- _pos = temFBDataList.ReadData(_lpData, _pos)
- self.FBDataList.append(temFBDataList)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA3
- self.Head.SubCmd = 0x20
- self.FBDataCnt = 0
- self.FBDataList = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 1
- for i in range(self.FBDataCnt):
- length += self.FBDataList[i].GetLength()
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteBYTE(data, self.FBDataCnt)
- for i in range(self.FBDataCnt):
- data = CommFunc.WriteString(data, self.FBDataList[i].GetLength(), self.FBDataList[i].GetBuffer())
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- FBDataCnt:%d,
- FBDataList:%s
- '''\
- %(
- self.Head.OutputString(),
- self.FBDataCnt,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCPlayerFBInfoData=tagMCPlayerFBInfoData()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerFBInfoData.Head.Cmd,m_NAtagMCPlayerFBInfoData.Head.SubCmd))] = m_NAtagMCPlayerFBInfoData
#------------------------------------------------------
@@ -15327,6 +15218,114 @@
#------------------------------------------------------
+# A7 22 广告信息列表 #tagSCADInfoList
+
+class tagSCADInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("ADID", c_ushort), #广告ID
+ ("ADCnt", 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.ADID = 0
+ self.ADCnt = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagSCADInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A7 22 广告信息列表 //tagSCADInfoList:
+ ADID:%d,
+ ADCnt:%d
+ '''\
+ %(
+ self.ADID,
+ self.ADCnt
+ )
+ return DumpString
+
+
+class tagSCADInfoList(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ ADInfoList = list() #(vector<tagSCADInfo> ADInfoList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA7
+ self.Head.SubCmd = 0x22
+ 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):
+ temADInfoList = tagSCADInfo()
+ _pos = temADInfoList.ReadData(_lpData, _pos)
+ self.ADInfoList.append(temADInfoList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA7
+ self.Head.SubCmd = 0x22
+ self.Count = 0
+ self.ADInfoList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.Count):
+ length += self.ADInfoList[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.ADInfoList[i].GetLength(), self.ADInfoList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ ADInfoList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagSCADInfoList=tagSCADInfoList()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCADInfoList.Head.Cmd,m_NAtagSCADInfoList.Head.SubCmd))] = m_NAtagSCADInfoList
+
+
+#------------------------------------------------------
# A7 04 通知世界Boss伤血列表 #tagMCBossHurtList
class tagMCHurtPlayer(Structure):
@@ -17392,73 +17391,6 @@
m_NAtagMCGiveAwardInfo=tagMCGiveAwardInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGiveAwardInfo.Head.Cmd,m_NAtagMCGiveAwardInfo.Head.SubCmd))] = m_NAtagMCGiveAwardInfo
-
-
-#------------------------------------------------------
-# A8 12 守护成功拾取物品 #tagMCGuradPickupItemSucc
-
-class tagMCGuradPickupItemSucc(Structure):
- Head = tagHead()
- ItemCount = 0 #(WORD ItemCount)
- MapItemID = list() #(vector<WORD> MapItemID)//size = ItemCount
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x12
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
- for i in range(self.ItemCount):
- value,_pos=CommFunc.ReadWORD(_lpData,_pos)
- self.MapItemID.append(value)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xA8
- self.Head.SubCmd = 0x12
- self.ItemCount = 0
- self.MapItemID = list()
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 2
- length += 2 * self.ItemCount
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteWORD(data, self.ItemCount)
- for i in range(self.ItemCount):
- data = CommFunc.WriteWORD(data, self.MapItemID[i])
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- ItemCount:%d,
- MapItemID:%s
- '''\
- %(
- self.Head.OutputString(),
- self.ItemCount,
- "..."
- )
- return DumpString
-
-
-m_NAtagMCGuradPickupItemSucc=tagMCGuradPickupItemSucc()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGuradPickupItemSucc.Head.Cmd,m_NAtagMCGuradPickupItemSucc.Head.SubCmd))] = m_NAtagMCGuradPickupItemSucc
#------------------------------------------------------
@@ -30648,6 +30580,7 @@
class tagSCFirstCharge(Structure):
_pack_ = 1
_fields_ = [
+ ("FirstID", c_ubyte), #首充ID
("ChargeTime", c_int), #充值该首充的时间戳
("AwardRecord", c_ushort), #首充奖励领奖记录,按二进制位记录首充第X天是否已领取
]
@@ -30662,6 +30595,7 @@
return _pos + self.GetLength()
def Clear(self):
+ self.FirstID = 0
self.ChargeTime = 0
self.AwardRecord = 0
return
@@ -30674,10 +30608,12 @@
def OutputString(self):
DumpString = '''// AA 02 首充信息 //tagSCFirstChargeInfo:
+ FirstID:%d,
ChargeTime:%d,
AwardRecord:%d
'''\
%(
+ self.FirstID,
self.ChargeTime,
self.AwardRecord
)
@@ -38710,135 +38646,18 @@
#------------------------------------------------------
-# B2 08 获得仙缘币信息 #tagMCAddXianyuanCoinMsg
+# B2 01 天子考验信息 #tagSCTianziKYInfo
-class tagMCAddXianyuanCoinMsg(Structure):
- Head = tagHead()
- MapID = 0 #(DWORD MapID)
- FuncLineID = 0 #(BYTE FuncLineID)
- Relation = 0 #(BYTE Relation)// 当时的关系:0-无,1-好友,2-盟友
- RelationCoinAdd = 0 #(BYTE RelationCoinAdd)// 社交关系总加成
- XianyuanCoinAdd = 0 #(WORD XianyuanCoinAdd)// 实际增加的仙缘币
- Reason = 0 #(BYTE Reason)//仙缘币为0时的原因:1-助战次数上限;2-每日获得上限
- CallPlayerID = 0 #(DWORD CallPlayerID)// 助战的玩家ID,有值时代表真实助战,没有值时为自己打的
- NameLen = 0 #(BYTE NameLen)
- CallPlayerName = "" #(String CallPlayerName)// 助战的玩家名,size = NameLen
- IsSweep = 0 #(BYTE IsSweep)// 是否扫荡
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xB2
- self.Head.SubCmd = 0x08
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.FuncLineID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Relation,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.RelationCoinAdd,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.XianyuanCoinAdd,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Reason,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.CallPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.CallPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
- self.IsSweep,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xB2
- self.Head.SubCmd = 0x08
- self.MapID = 0
- self.FuncLineID = 0
- self.Relation = 0
- self.RelationCoinAdd = 0
- self.XianyuanCoinAdd = 0
- self.Reason = 0
- self.CallPlayerID = 0
- self.NameLen = 0
- self.CallPlayerName = ""
- self.IsSweep = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += 1
- length += 1
- length += 2
- length += 1
- length += 4
- length += 1
- length += len(self.CallPlayerName)
- length += 1
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.MapID)
- data = CommFunc.WriteBYTE(data, self.FuncLineID)
- data = CommFunc.WriteBYTE(data, self.Relation)
- data = CommFunc.WriteBYTE(data, self.RelationCoinAdd)
- data = CommFunc.WriteWORD(data, self.XianyuanCoinAdd)
- data = CommFunc.WriteBYTE(data, self.Reason)
- data = CommFunc.WriteDWORD(data, self.CallPlayerID)
- data = CommFunc.WriteBYTE(data, self.NameLen)
- data = CommFunc.WriteString(data, self.NameLen, self.CallPlayerName)
- data = CommFunc.WriteBYTE(data, self.IsSweep)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- MapID:%d,
- FuncLineID:%d,
- Relation:%d,
- RelationCoinAdd:%d,
- XianyuanCoinAdd:%d,
- Reason:%d,
- CallPlayerID:%d,
- NameLen:%d,
- CallPlayerName:%s,
- IsSweep:%d
- '''\
- %(
- self.Head.OutputString(),
- self.MapID,
- self.FuncLineID,
- self.Relation,
- self.RelationCoinAdd,
- self.XianyuanCoinAdd,
- self.Reason,
- self.CallPlayerID,
- self.NameLen,
- self.CallPlayerName,
- self.IsSweep
- )
- return DumpString
-
-
-m_NAtagMCAddXianyuanCoinMsg=tagMCAddXianyuanCoinMsg()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAddXianyuanCoinMsg.Head.Cmd,m_NAtagMCAddXianyuanCoinMsg.Head.SubCmd))] = m_NAtagMCAddXianyuanCoinMsg
-
-
-#------------------------------------------------------
-# B2 01 通知封魔坛双倍击杀状态 #tagMCFMTDoubleState
-
-class tagMCFMTDoubleState(Structure):
+class tagSCTianziKYInfo(Structure):
_pack_ = 1
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("IsDouble", c_ubyte), #是否双倍
- ("OldDouble", c_ubyte), #是否曾经允许双倍
+ ("LineID", c_ubyte), #今日是哪个lineID,对应副本表的功能线路ID
+ ("HistoryHurt", c_int), #本考验历史最大伤害,求余亿部分
+ ("HistoryHurtEx", c_int), #本考验历史最大伤害,整除亿部分
+ ("TodayHurt", c_int), #本考验今日最大伤害,求余亿部分
+ ("TodayHurtEx", c_int), #本考验今日最大伤害,整除亿部分
]
def __init__(self):
@@ -38855,105 +38674,43 @@
def Clear(self):
self.Cmd = 0xB2
self.SubCmd = 0x01
- self.IsDouble = 0
- self.OldDouble = 0
+ self.LineID = 0
+ self.HistoryHurt = 0
+ self.HistoryHurtEx = 0
+ self.TodayHurt = 0
+ self.TodayHurtEx = 0
return
def GetLength(self):
- return sizeof(tagMCFMTDoubleState)
+ return sizeof(tagSCTianziKYInfo)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''// B2 01 通知封魔坛双倍击杀状态 //tagMCFMTDoubleState:
+ DumpString = '''// B2 01 天子考验信息 //tagSCTianziKYInfo:
Cmd:%s,
SubCmd:%s,
- IsDouble:%d,
- OldDouble:%d
+ LineID:%d,
+ HistoryHurt:%d,
+ HistoryHurtEx:%d,
+ TodayHurt:%d,
+ TodayHurtEx:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.IsDouble,
- self.OldDouble
+ self.LineID,
+ self.HistoryHurt,
+ self.HistoryHurtEx,
+ self.TodayHurt,
+ self.TodayHurtEx
)
return DumpString
-m_NAtagMCFMTDoubleState=tagMCFMTDoubleState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFMTDoubleState.Cmd,m_NAtagMCFMTDoubleState.SubCmd))] = m_NAtagMCFMTDoubleState
-
-
-#------------------------------------------------------
-#B2 02 推送提醒设置通知 #tagMCPushNotificationsSetting
-
-class tagMCPushNotificationsSetting(Structure):
- Head = tagHead()
- OnoffBit = 0 #(DWORD OnoffBit)// 按位约定开关
- TimeLen = 0 #(BYTE TimeLen)
- TimeStr = "" #(String TimeStr)// 时间字符串 01:02-05:00
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0xB2
- self.Head.SubCmd = 0x02
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.OnoffBit,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.TimeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,self.TimeLen)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0xB2
- self.Head.SubCmd = 0x02
- self.OnoffBit = 0
- self.TimeLen = 0
- self.TimeStr = ""
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += len(self.TimeStr)
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.OnoffBit)
- data = CommFunc.WriteBYTE(data, self.TimeLen)
- data = CommFunc.WriteString(data, self.TimeLen, self.TimeStr)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- OnoffBit:%d,
- TimeLen:%d,
- TimeStr:%s
- '''\
- %(
- self.Head.OutputString(),
- self.OnoffBit,
- self.TimeLen,
- self.TimeStr
- )
- return DumpString
-
-
-m_NAtagMCPushNotificationsSetting=tagMCPushNotificationsSetting()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPushNotificationsSetting.Head.Cmd,m_NAtagMCPushNotificationsSetting.Head.SubCmd))] = m_NAtagMCPushNotificationsSetting
+m_NAtagSCTianziKYInfo=tagSCTianziKYInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCTianziKYInfo.Cmd,m_NAtagSCTianziKYInfo.SubCmd))] = m_NAtagSCTianziKYInfo
#------------------------------------------------------
--
Gitblit v1.8.0