From 6d2905e461b22a1184f21d9df139e38b2ace6825 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 三月 2021 10:13:26 +0800
Subject: [PATCH] 8807 【BT2】【后端】Part1 14、投资返利送充值券(A541领取投资奖励注册函数名修改);
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 1291 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 1,261 insertions(+), 30 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index a1fbe33..ed0706d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -829,7 +829,7 @@
Head = tagHead()
Type = 0 #(BYTE Type)//类型
Count = 0 #(WORD Count)//数量
- UniversalGameRec = list() #(vector<tagUniversalGameRec> UniversalGameRec)///size = Count
+ UniversalGameRec = list() #(vector<tagUniversalGameRec> UniversalGameRec)///size = Count
data = None
def __init__(self):
@@ -1133,7 +1133,7 @@
FamilyID = 0 #(DWORD FamilyID)//家族ID
ActionType = 0 #(BYTE ActionType)//类型
Count = 0 #(WORD Count)//数量
- FamilyActionList = list() #(vector<tagGCFamilyAction> FamilyActionList)//size = Count
+ FamilyActionList = list() #(vector<tagGCFamilyAction> FamilyActionList)//size = Count
data = None
def __init__(self):
@@ -1402,7 +1402,7 @@
Time = 0 #(DWORD Time)//时间
PlayeJob = 0 #(BYTE PlayeJob)//玩家职业
MoneyType = 0 #(BYTE MoneyType)//金钱类型
- MoneyNum = 0 #(WORD MoneyNum)//金钱数量
+ MoneyNum = 0 #(DWORD MoneyNum)//金钱数量
GetWay = 0 #(BYTE GetWay)//获得途径
PacketCnt = 0 #(BYTE PacketCnt)//可抢个数
State = 0 #(BYTE State)//0未发,1未领取,2已领取,3全部领完
@@ -1421,7 +1421,7 @@
self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.MoneyNum,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.GetWay,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.PacketCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -1450,7 +1450,7 @@
length += 4
length += 1
length += 1
- length += 2
+ length += 4
length += 1
length += 1
length += 1
@@ -1466,7 +1466,7 @@
data = CommFunc.WriteDWORD(data, self.Time)
data = CommFunc.WriteBYTE(data, self.PlayeJob)
data = CommFunc.WriteBYTE(data, self.MoneyType)
- data = CommFunc.WriteWORD(data, self.MoneyNum)
+ data = CommFunc.WriteDWORD(data, self.MoneyNum)
data = CommFunc.WriteBYTE(data, self.GetWay)
data = CommFunc.WriteBYTE(data, self.PacketCnt)
data = CommFunc.WriteBYTE(data, self.State)
@@ -3352,8 +3352,8 @@
IsAlive = 0 #(BYTE IsAlive)// 是否存活
RecordLen = 0 #(WORD RecordLen)// 长度
KillRecord = "" #(String KillRecord)// 最近击杀记录时间玩家名size = RecordLen
- RefreshSecond = 0 #(DWORD RefreshSecond)// 刷新倒计时, 秒
- RefreshCD = 0 #(DWORD RefreshCD)// 刷新总CD时, 秒
+ RefreshSecond = 0 #(DWORD RefreshSecond)// 刷新倒计时, 秒
+ RefreshCD = 0 #(DWORD RefreshCD)// 刷新总CD时, 秒
data = None
def __init__(self):
@@ -3792,7 +3792,7 @@
EvolveLV = 0 #(BYTE EvolveLV)//进化等级
WashLV = 0 #(BYTE WashLV)//洗练等级
WashValueCount = 0 #(BYTE WashValueCount)
- WashValueList = list() #(vector<WORD> WashValueList)//洗练值
+ WashValueList = list() #(vector<DWORD> WashValueList)//洗练值
StoneIDCount = 0 #(BYTE StoneIDCount)
StoneIDList = list() #(vector<DWORD> StoneIDList)//宝石
ClassEquipCount = 0 #(BYTE ClassEquipCount)
@@ -3816,7 +3816,7 @@
self.WashLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.WashValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.WashValueCount):
- value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
self.WashValueList.append(value)
self.StoneIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.StoneIDCount):
@@ -3858,7 +3858,7 @@
length += 1
length += 1
length += 1
- length += 2 * self.WashValueCount
+ length += 4 * self.WashValueCount
length += 1
length += 4 * self.StoneIDCount
length += 1
@@ -3878,7 +3878,7 @@
data = CommFunc.WriteBYTE(data, self.WashLV)
data = CommFunc.WriteBYTE(data, self.WashValueCount)
for i in range(self.WashValueCount):
- data = CommFunc.WriteWORD(data, self.WashValueList[i])
+ data = CommFunc.WriteDWORD(data, self.WashValueList[i])
data = CommFunc.WriteBYTE(data, self.StoneIDCount)
for i in range(self.StoneIDCount):
data = CommFunc.WriteDWORD(data, self.StoneIDList[i])
@@ -4318,7 +4318,7 @@
Count = 0 #(DWORD Count)//数量
IsBind = 0 #(BYTE IsBind)//是否绑定
UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
+ UserData = "" #(String UserData)//自定义数据
data = None
def __init__(self):
@@ -4559,7 +4559,7 @@
Name = "" #(char Name[33])
LV = 0 #(DWORD LV)//等级
Job = 0 #(BYTE Job)
- RealmLV = 0 #(WORD RealmLV)//境界
+ RealmLV = 0 #(WORD RealmLV)//境界
data = None
def __init__(self):
@@ -6650,7 +6650,7 @@
class tagFamilyArrestOverStateInfo(Structure):
Head = tagHead()
Count = 0 #(WORD Count)
- ArrestOverStateInfo = list() #(vector<tagFamilyArrestOverState> ArrestOverStateInfo)///size = Count
+ ArrestOverStateInfo = list() #(vector<tagFamilyArrestOverState> ArrestOverStateInfo)///size = Count
data = None
def __init__(self):
@@ -7717,7 +7717,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
- ("RefreshType", c_ubyte), #参考CDBPlayerRefresh__
+ ("RefreshType", c_ubyte), #参考CDBPlayerRefresh__
("Value", c_int),
]
@@ -7773,7 +7773,7 @@
class tagGCVoiceChat(Structure):
Head = tagHead()
- ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 5 区域
+ ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 5 区域
SrcNameLen = 0 #(BYTE SrcNameLen)
SrcName = "" #(String SrcName)//size = SrcNameLen
PlayerID = 0 #(DWORD PlayerID)
@@ -9513,7 +9513,7 @@
ItemGUID = "" #(char ItemGUID[40])
AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
AddTime = "" #(char AddTime[19])//上架时间
- BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
+ BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
BidderPrice = 0 #(DWORD BidderPrice)//最高竞拍价格
BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
data = None
@@ -11379,8 +11379,8 @@
class tagGCCrossRealmPKBillboardInfo(Structure):
Head = tagHead()
- ZoneID = 0 #(BYTE ZoneID)// 赛区ID
- SeasonID = 0 #(BYTE SeasonID)// 赛季ID
+ ZoneID = 0 #(BYTE ZoneID)// 赛区ID
+ SeasonID = 0 #(BYTE SeasonID)// 赛季ID
Count = 0 #(WORD Count)
PKBillboardList = list() #(vector<tagGCCrossRealmPKBillboardData> PKBillboardList)
data = None
@@ -12397,7 +12397,7 @@
BackpackLV = 0 #(BYTE BackpackLV)//背包等级
WarehouseLV = 0 #(BYTE WarehouseLV)//仓库等级
TeamID = 0 #(DWORD TeamID)//队伍ID
- UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
+ UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
UseSilverType = 0 #(BYTE UseSilverType)//默认用的银子/银票
AttackMode = 0 #(BYTE AttackMode)//攻击模式
LastWeekOnlineTime = 0 #(DWORD LastWeekOnlineTime)//上周在线时间
@@ -15591,7 +15591,7 @@
class tagMCEquipPartXLAttr(Structure):
- EquipPlace = 0 #(BYTE EquipPlace)// 装备位
+ EquipPlace = 0 #(BYTE EquipPlace)// 装备位
XLAttrLV = 0 #(BYTE XLAttrLV)// 洗练等级
XLAttrCnt = 0 #(BYTE XLAttrCnt)// 属性条数
XLAttrList = list() #(vector<tagMCEquipPartXLAttrValue> XLAttrList)// 属性列表,索引0的代表属性1,依次递增
@@ -17134,6 +17134,97 @@
#------------------------------------------------------
+# A3 38 投资理财信息 #tagMCInvestInfo
+
+class tagMCInvestInfo(Structure):
+ Head = tagHead()
+ InvestType = 0 #(BYTE InvestType)// 投资类型
+ CurDay = 0 #(WORD CurDay)// 当前天数,投资第一天为1
+ ValueCount = 0 #(BYTE ValueCount)
+ RewardValue = list() #(vector<DWORD> RewardValue)//领奖记录值,按投资回报索引位记录是否已领取
+ ProgressValue = list() #(vector<DWORD> ProgressValue)//投资相关可领取进度记录值: 9登录投资-记录已登录天数;11Boss投资-按回报索引位记录是否已击杀该boss
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x38
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.InvestType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.CurDay,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.ValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ValueCount):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.RewardValue.append(value)
+ for i in range(self.ValueCount):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.ProgressValue.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xA3
+ self.Head.SubCmd = 0x38
+ self.InvestType = 0
+ self.CurDay = 0
+ self.ValueCount = 0
+ self.RewardValue = list()
+ self.ProgressValue = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 2
+ length += 1
+ length += 4 * self.ValueCount
+ length += 4 * self.ValueCount
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.InvestType)
+ data = CommFunc.WriteWORD(data, self.CurDay)
+ data = CommFunc.WriteBYTE(data, self.ValueCount)
+ for i in range(self.ValueCount):
+ data = CommFunc.WriteDWORD(data, self.RewardValue[i])
+ for i in range(self.ValueCount):
+ data = CommFunc.WriteDWORD(data, self.ProgressValue[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ InvestType:%d,
+ CurDay:%d,
+ ValueCount:%d,
+ RewardValue:%s,
+ ProgressValue:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.InvestType,
+ self.CurDay,
+ self.ValueCount,
+ "...",
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCInvestInfo=tagMCInvestInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCInvestInfo.Head.Cmd,m_NAtagMCInvestInfo.Head.SubCmd))] = m_NAtagMCInvestInfo
+
+
+#------------------------------------------------------
# A3 52 法宝等级信息 #tagMCMagicWeaponLVInfo
class tagMCMagicWeaponInfo(Structure):
@@ -18078,7 +18169,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("Record", c_ubyte), #0-未领取 1-已领取
+ ("Record", c_ubyte), #0-未领取 1-已领取
]
def __init__(self):
@@ -22719,7 +22810,7 @@
PlayerID = 0 #(DWORD PlayerID)//玩家ID
EquipClassLV = 0 #(BYTE EquipClassLV)
ItemDataSize = 0 #(WORD ItemDataSize)
- ItemData = "" #(String ItemData)//物品记录
+ ItemData = "" #(String ItemData)//物品记录
data = None
def __init__(self):
@@ -23018,7 +23109,7 @@
ItemDataSize = 0 #(DWORD ItemDataSize)
ItemData = "" #(String ItemData)//物品记录
PlusDataSize = 0 #(DWORD PlusDataSize)
- PlusData = "" #(String PlusData)//扩展记录
+ PlusData = "" #(String PlusData)//扩展记录
data = None
def __init__(self):
@@ -23515,7 +23606,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("MakeType", c_ubyte), #类型 TMakeItemType
+ ("MakeType", c_ubyte), #类型 TMakeItemType
("Result", c_ubyte), #是否成功
("MakeItemID", c_int), #合成的物品ID
]
@@ -24179,7 +24270,7 @@
class tagMCActCollectWordsExchangeItem(Structure):
ExchangeNum = 0 #(BYTE ExchangeNum)//兑换编号
- ExchangeCountMax = 0 #(BYTE ExchangeCountMax)//最大兑换次数,0不限制
+ ExchangeCountMax = 0 #(WORD ExchangeCountMax)//最大兑换次数,0不限制
ItemID = 0 #(DWORD ItemID)//目标物品
ItemCount = 0 #(WORD ItemCount)
IsBind = 0 #(BYTE IsBind)
@@ -24194,7 +24285,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
self.ExchangeNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ExchangeCountMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ExchangeCountMax,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.IsBind,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -24218,7 +24309,7 @@
def GetLength(self):
length = 0
length += 1
- length += 1
+ length += 2
length += 4
length += 2
length += 1
@@ -24231,7 +24322,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteBYTE(data, self.ExchangeNum)
- data = CommFunc.WriteBYTE(data, self.ExchangeCountMax)
+ data = CommFunc.WriteWORD(data, self.ExchangeCountMax)
data = CommFunc.WriteDWORD(data, self.ItemID)
data = CommFunc.WriteWORD(data, self.ItemCount)
data = CommFunc.WriteBYTE(data, self.IsBind)
@@ -26741,6 +26832,7 @@
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)//是否每天重置
@@ -26758,6 +26850,7 @@
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)
@@ -26774,6 +26867,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x09
+ self.ActNum = 0
self.StartDate = ""
self.EndtDate = ""
self.IsDayReset = 0
@@ -26785,6 +26879,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 10
length += 10
length += 1
@@ -26798,6 +26893,7 @@
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)
@@ -26810,6 +26906,7 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
StartDate:%s,
EndtDate:%s,
IsDayReset:%d,
@@ -26819,6 +26916,7 @@
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.StartDate,
self.EndtDate,
self.IsDayReset,
@@ -26841,6 +26939,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
+ ("ActNum", c_ubyte), #活动编号
("CostGoldTotal", c_int), #本次活动已累计消费仙玉数
("AwardRecord", c_int), #返利奖励领奖记录,按奖励索引二进制位存储是否已领取
]
@@ -26859,6 +26958,7 @@
def Clear(self):
self.Cmd = 0xAA
self.SubCmd = 0x10
+ self.ActNum = 0
self.CostGoldTotal = 0
self.AwardRecord = 0
return
@@ -26873,12 +26973,14 @@
DumpString = '''// AA 10 消费返利玩家活动信息 //tagMCCostRebatePlayerInfo:
Cmd:%s,
SubCmd:%s,
+ ActNum:%d,
CostGoldTotal:%d,
AwardRecord:%d
'''\
%(
self.Cmd,
self.SubCmd,
+ self.ActNum,
self.CostGoldTotal,
self.AwardRecord
)
@@ -27240,6 +27342,692 @@
m_NAtagMCDayFreeGoldGiftState=tagMCDayFreeGoldGiftState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDayFreeGoldGiftState.Cmd,m_NAtagMCDayFreeGoldGiftState.SubCmd))] = m_NAtagMCDayFreeGoldGiftState
+
+
+#------------------------------------------------------
+# AA 42 节日登录奖励活动信息 #tagMCFeastLoginInfo
+
+class tagMCFeastLoginDayAwardItem(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(tagMCFeastLoginDayAwardItem)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 42 节日登录奖励活动信息 //tagMCFeastLoginInfo:
+ ItemID:%d,
+ ItemCount:%d,
+ IsBind:%d
+ '''\
+ %(
+ self.ItemID,
+ self.ItemCount,
+ self.IsBind
+ )
+ return DumpString
+
+
+class tagMCFeastLoginDayAward(Structure):
+ DayNum = 0 #(BYTE DayNum)//天编号,从1开始,活动第X天只能领对应第X天的奖励
+ AwardCount = 0 #(BYTE AwardCount)
+ AwardItemList = list() #(vector<tagMCFeastLoginDayAwardItem> AwardItemList)// 奖励物品列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.DayNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.AwardCount):
+ temAwardItemList = tagMCFeastLoginDayAwardItem()
+ _pos = temAwardItemList.ReadData(_lpData, _pos)
+ self.AwardItemList.append(temAwardItemList)
+ return _pos
+
+ def Clear(self):
+ self.DayNum = 0
+ self.AwardCount = 0
+ self.AwardItemList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 1
+ for i in range(self.AwardCount):
+ length += self.AwardItemList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.DayNum)
+ data = CommFunc.WriteBYTE(data, self.AwardCount)
+ for i in range(self.AwardCount):
+ data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ DayNum:%d,
+ AwardCount:%d,
+ AwardItemList:%s
+ '''\
+ %(
+ self.DayNum,
+ self.AwardCount,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastLoginInfo(Structure):
+ Head = tagHead()
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ DayCount = 0 #(BYTE DayCount)// 总共几天
+ DayAwardList = list() #(vector<tagMCFeastLoginDayAward> DayAwardList)//登录天奖励列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x42
+ 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.DayCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.DayCount):
+ temDayAwardList = tagMCFeastLoginDayAward()
+ _pos = temDayAwardList.ReadData(_lpData, _pos)
+ self.DayAwardList.append(temDayAwardList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x42
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.DayCount = 0
+ self.DayAwardList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ length += 1
+ for i in range(self.DayCount):
+ length += self.DayAwardList[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.WriteBYTE(data, self.DayCount)
+ for i in range(self.DayCount):
+ data = CommFunc.WriteString(data, self.DayAwardList[i].GetLength(), self.DayAwardList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StartDate:%s,
+ EndtDate:%s,
+ DayCount:%d,
+ DayAwardList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ self.DayCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastLoginInfo=tagMCFeastLoginInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastLoginInfo.Head.Cmd,m_NAtagMCFeastLoginInfo.Head.SubCmd))] = m_NAtagMCFeastLoginInfo
+
+
+#------------------------------------------------------
+# AA 39 节日登录奖励活动玩家信息 #tagMCFeastLoginPlayerInfo
+
+class tagMCFeastLoginPlayerInfo(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("LoginState", c_int), # 是否已登录,按天索引0代表第1天记录当天是否已登录
+ ("LoginAward", c_int), # 是否已领取,按天索引0代表第1天记录当天是否已领取
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x39
+ 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 = 0x39
+ self.LoginState = 0
+ self.LoginAward = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastLoginPlayerInfo)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 39 节日登录奖励活动玩家信息 //tagMCFeastLoginPlayerInfo:
+ Cmd:%s,
+ SubCmd:%s,
+ LoginState:%d,
+ LoginAward:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.LoginState,
+ self.LoginAward
+ )
+ return DumpString
+
+
+m_NAtagMCFeastLoginPlayerInfo=tagMCFeastLoginPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastLoginPlayerInfo.Cmd,m_NAtagMCFeastLoginPlayerInfo.SubCmd))] = m_NAtagMCFeastLoginPlayerInfo
+
+
+#------------------------------------------------------
+# AA 46 节日游历活动信息 #tagMCFeastTravelInfo
+
+class tagMCFeastTravelAwardItem(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(tagMCFeastTravelAwardItem)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
+ ItemID:%d,
+ ItemCount:%d,
+ IsBind:%d
+ '''\
+ %(
+ self.ItemID,
+ self.ItemCount,
+ self.IsBind
+ )
+ return DumpString
+
+
+class tagMCFeastTravelAward(Structure):
+ AwardIndex = 0 #(BYTE AwardIndex)//游历奖励索引
+ NeedTravelPoint = 0 #(WORD NeedTravelPoint)//单次领奖所需游历值
+ AwardCountMax = 0 #(WORD AwardCountMax)//最大可领取次数,0代表不限
+ AwardItemCount = 0 #(BYTE AwardItemCount)//奖励物品数
+ AwardItemList = list() #(vector<tagMCFeastTravelAwardItem> 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.NeedTravelPoint,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.AwardCountMax,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.AwardItemCount):
+ temAwardItemList = tagMCFeastTravelAwardItem()
+ _pos = temAwardItemList.ReadData(_lpData, _pos)
+ self.AwardItemList.append(temAwardItemList)
+ return _pos
+
+ def Clear(self):
+ self.AwardIndex = 0
+ self.NeedTravelPoint = 0
+ self.AwardCountMax = 0
+ self.AwardItemCount = 0
+ self.AwardItemList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ 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.WriteWORD(data, self.NeedTravelPoint)
+ data = CommFunc.WriteWORD(data, self.AwardCountMax)
+ 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,
+ NeedTravelPoint:%d,
+ AwardCountMax:%d,
+ AwardItemCount:%d,
+ AwardItemList:%s
+ '''\
+ %(
+ self.AwardIndex,
+ self.NeedTravelPoint,
+ self.AwardCountMax,
+ self.AwardItemCount,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastTravelTask(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("TravelTaskID", c_ubyte), #游历任务ID
+ ("FinishNeedValue", c_ushort), #单次完成所需进度
+ ("FinishTimeMax", c_ushort), #最大可完成次数,0代表不限
+ ("AddTravelPoint", 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.TravelTaskID = 0
+ self.FinishNeedValue = 0
+ self.FinishTimeMax = 0
+ self.AddTravelPoint = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastTravelTask)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
+ TravelTaskID:%d,
+ FinishNeedValue:%d,
+ FinishTimeMax:%d,
+ AddTravelPoint:%d
+ '''\
+ %(
+ self.TravelTaskID,
+ self.FinishNeedValue,
+ self.FinishTimeMax,
+ self.AddTravelPoint
+ )
+ return DumpString
+
+
+class tagMCFeastTravelInfo(Structure):
+ Head = tagHead()
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
+ TravelTaskCount = 0 #(BYTE TravelTaskCount)// 游历任务数
+ TravelTaskList = list() #(vector<tagMCFeastTravelTask> TravelTaskList)//游历任务信息列表
+ TravelAwardCount = 0 #(BYTE TravelAwardCount)// 游历奖励数
+ TravelAwardList = list() #(vector<tagMCFeastTravelAward> TravelAwardList)//游历奖励信息列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x46
+ 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.TravelTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.TravelTaskCount):
+ temTravelTaskList = tagMCFeastTravelTask()
+ _pos = temTravelTaskList.ReadData(_lpData, _pos)
+ self.TravelTaskList.append(temTravelTaskList)
+ self.TravelAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.TravelAwardCount):
+ temTravelAwardList = tagMCFeastTravelAward()
+ _pos = temTravelAwardList.ReadData(_lpData, _pos)
+ self.TravelAwardList.append(temTravelAwardList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x46
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.ResetType = 0
+ self.TravelTaskCount = 0
+ self.TravelTaskList = list()
+ self.TravelAwardCount = 0
+ self.TravelAwardList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ length += 1
+ length += 1
+ for i in range(self.TravelTaskCount):
+ length += self.TravelTaskList[i].GetLength()
+ length += 1
+ for i in range(self.TravelAwardCount):
+ length += self.TravelAwardList[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.WriteBYTE(data, self.ResetType)
+ data = CommFunc.WriteBYTE(data, self.TravelTaskCount)
+ for i in range(self.TravelTaskCount):
+ data = CommFunc.WriteString(data, self.TravelTaskList[i].GetLength(), self.TravelTaskList[i].GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.TravelAwardCount)
+ for i in range(self.TravelAwardCount):
+ data = CommFunc.WriteString(data, self.TravelAwardList[i].GetLength(), self.TravelAwardList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StartDate:%s,
+ EndtDate:%s,
+ ResetType:%d,
+ TravelTaskCount:%d,
+ TravelTaskList:%s,
+ TravelAwardCount:%d,
+ TravelAwardList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ self.ResetType,
+ self.TravelTaskCount,
+ "...",
+ self.TravelAwardCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastTravelInfo=tagMCFeastTravelInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelInfo.Head.Cmd,m_NAtagMCFeastTravelInfo.Head.SubCmd))] = m_NAtagMCFeastTravelInfo
+
+
+#------------------------------------------------------
+# AA 47 节日游历活动玩家信息 #tagMCFeastTravelPlayerInfo
+
+class tagMCFeastTravelPlayerAward(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("AwardIndex", c_ubyte), #游历奖励索引
+ ("GetAwardCount", c_ubyte), #已领取次数;前端判断是否可领取: 总游历值 >= (已领取次数 + 1) * 单次所需游历值
+ ]
+
+ 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.AwardIndex = 0
+ self.GetAwardCount = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastTravelPlayerAward)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
+ AwardIndex:%d,
+ GetAwardCount:%d
+ '''\
+ %(
+ self.AwardIndex,
+ self.GetAwardCount
+ )
+ return DumpString
+
+
+class tagMCFeastTravelPlayerTask(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("TravelTaskID", c_ubyte), #游历任务ID
+ ("TravelValue", c_int), #当前进度值,一直累加
+ ("FinishCount", c_ubyte), #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
+ ]
+
+ 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.TravelTaskID = 0
+ self.TravelValue = 0
+ self.FinishCount = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastTravelPlayerTask)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
+ TravelTaskID:%d,
+ TravelValue:%d,
+ FinishCount:%d
+ '''\
+ %(
+ self.TravelTaskID,
+ self.TravelValue,
+ self.FinishCount
+ )
+ return DumpString
+
+
+class tagMCFeastTravelPlayerInfo(Structure):
+ Head = tagHead()
+ TravelPoint = 0 #(DWORD TravelPoint)//当前总游历值,一直累加,不会扣的
+ TravelPlayerTaskCount = 0 #(BYTE TravelPlayerTaskCount)// 游历任务数,不一定有同步,有同步数据则替换即可
+ TravelPlayerTaskList = list() #(vector<tagMCFeastTravelPlayerTask> TravelPlayerTaskList)//游历任务信息列表
+ TravelPlayerAwardCount = 0 #(BYTE TravelPlayerAwardCount)// 游历奖励数,不一定有同步,有同步数据则替换即可
+ TravelPlayerAwardList = list() #(vector<tagMCFeastTravelPlayerAward> TravelPlayerAwardList)//游历奖励信息列表
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x47
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.TravelPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.TravelPlayerTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.TravelPlayerTaskCount):
+ temTravelPlayerTaskList = tagMCFeastTravelPlayerTask()
+ _pos = temTravelPlayerTaskList.ReadData(_lpData, _pos)
+ self.TravelPlayerTaskList.append(temTravelPlayerTaskList)
+ self.TravelPlayerAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.TravelPlayerAwardCount):
+ temTravelPlayerAwardList = tagMCFeastTravelPlayerAward()
+ _pos = temTravelPlayerAwardList.ReadData(_lpData, _pos)
+ self.TravelPlayerAwardList.append(temTravelPlayerAwardList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x47
+ self.TravelPoint = 0
+ self.TravelPlayerTaskCount = 0
+ self.TravelPlayerTaskList = list()
+ self.TravelPlayerAwardCount = 0
+ self.TravelPlayerAwardList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 1
+ for i in range(self.TravelPlayerTaskCount):
+ length += self.TravelPlayerTaskList[i].GetLength()
+ length += 1
+ for i in range(self.TravelPlayerAwardCount):
+ length += self.TravelPlayerAwardList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.TravelPoint)
+ data = CommFunc.WriteBYTE(data, self.TravelPlayerTaskCount)
+ for i in range(self.TravelPlayerTaskCount):
+ data = CommFunc.WriteString(data, self.TravelPlayerTaskList[i].GetLength(), self.TravelPlayerTaskList[i].GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.TravelPlayerAwardCount)
+ for i in range(self.TravelPlayerAwardCount):
+ data = CommFunc.WriteString(data, self.TravelPlayerAwardList[i].GetLength(), self.TravelPlayerAwardList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ TravelPoint:%d,
+ TravelPlayerTaskCount:%d,
+ TravelPlayerTaskList:%s,
+ TravelPlayerAwardCount:%d,
+ TravelPlayerAwardList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.TravelPoint,
+ self.TravelPlayerTaskCount,
+ "...",
+ self.TravelPlayerAwardCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastTravelPlayerInfo=tagMCFeastTravelPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelPlayerInfo.Head.Cmd,m_NAtagMCFeastTravelPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastTravelPlayerInfo
#------------------------------------------------------
@@ -27755,6 +28543,414 @@
#------------------------------------------------------
+# AA 43 节日祝福活动信息 #tagMCFeastWishInfo
+
+class tagMCFeastWishBottleItem(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("RecordIndex", c_ubyte), #物品索引,用于选择及记录是否已选择
+ ("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.RecordIndex = 0
+ self.ItemID = 0
+ self.ItemCount = 0
+ self.IsBind = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastWishBottleItem)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 43 节日祝福活动信息 //tagMCFeastWishInfo:
+ RecordIndex:%d,
+ ItemID:%d,
+ ItemCount:%d,
+ IsBind:%d
+ '''\
+ %(
+ self.RecordIndex,
+ self.ItemID,
+ self.ItemCount,
+ self.IsBind
+ )
+ return DumpString
+
+
+class tagMCFeastWishBottleInfo(Structure):
+ BottleNum = 0 #(BYTE BottleNum)//瓶子编号
+ NeedWishValue = 0 #(WORD NeedWishValue)//单次领奖所需祝福值
+ ChooseTimeMax = 0 #(BYTE ChooseTimeMax)//最大可领奖次数
+ ChoosePrizeCount = 0 #(BYTE ChoosePrizeCount)//可选择奖励个数
+ ChoosePrizeList = list() #(vector<tagMCFeastWishBottleItem> ChoosePrizeList)// 选择奖励物品列表,已选过的无法再选
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ self.BottleNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.NeedWishValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.ChooseTimeMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ChoosePrizeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ChoosePrizeCount):
+ temChoosePrizeList = tagMCFeastWishBottleItem()
+ _pos = temChoosePrizeList.ReadData(_lpData, _pos)
+ self.ChoosePrizeList.append(temChoosePrizeList)
+ return _pos
+
+ def Clear(self):
+ self.BottleNum = 0
+ self.NeedWishValue = 0
+ self.ChooseTimeMax = 0
+ self.ChoosePrizeCount = 0
+ self.ChoosePrizeList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += 1
+ length += 2
+ length += 1
+ length += 1
+ for i in range(self.ChoosePrizeCount):
+ length += self.ChoosePrizeList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteBYTE(data, self.BottleNum)
+ data = CommFunc.WriteWORD(data, self.NeedWishValue)
+ data = CommFunc.WriteBYTE(data, self.ChooseTimeMax)
+ data = CommFunc.WriteBYTE(data, self.ChoosePrizeCount)
+ for i in range(self.ChoosePrizeCount):
+ data = CommFunc.WriteString(data, self.ChoosePrizeList[i].GetLength(), self.ChoosePrizeList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ BottleNum:%d,
+ NeedWishValue:%d,
+ ChooseTimeMax:%d,
+ ChoosePrizeCount:%d,
+ ChoosePrizeList:%s
+ '''\
+ %(
+ self.BottleNum,
+ self.NeedWishValue,
+ self.ChooseTimeMax,
+ self.ChoosePrizeCount,
+ "..."
+ )
+ return DumpString
+
+
+class tagMCFeastWishInfo(Structure):
+ Head = tagHead()
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
+ WishPoolShowCount = 0 #(BYTE WishPoolShowCount)//祝福池展示物品数
+ WishPoolShowItemList = list() #(vector<DWORD> WishPoolShowItemList)//祝福池展示物品ID列表
+ BottleCount = 0 #(BYTE BottleCount)// 祝福瓶个数
+ BottleInfoList = list() #(vector<tagMCFeastWishBottleInfo> BottleInfoList)// 祝福瓶信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x43
+ 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.WishPoolShowCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.WishPoolShowCount):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.WishPoolShowItemList.append(value)
+ self.BottleCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.BottleCount):
+ temBottleInfoList = tagMCFeastWishBottleInfo()
+ _pos = temBottleInfoList.ReadData(_lpData, _pos)
+ self.BottleInfoList.append(temBottleInfoList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x43
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.ResetType = 0
+ self.WishPoolShowCount = 0
+ self.WishPoolShowItemList = list()
+ self.BottleCount = 0
+ self.BottleInfoList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ length += 1
+ length += 1
+ length += 4 * self.WishPoolShowCount
+ length += 1
+ for i in range(self.BottleCount):
+ length += self.BottleInfoList[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.WriteBYTE(data, self.ResetType)
+ data = CommFunc.WriteBYTE(data, self.WishPoolShowCount)
+ for i in range(self.WishPoolShowCount):
+ data = CommFunc.WriteDWORD(data, self.WishPoolShowItemList[i])
+ data = CommFunc.WriteBYTE(data, self.BottleCount)
+ for i in range(self.BottleCount):
+ data = CommFunc.WriteString(data, self.BottleInfoList[i].GetLength(), self.BottleInfoList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ StartDate:%s,
+ EndtDate:%s,
+ ResetType:%d,
+ WishPoolShowCount:%d,
+ WishPoolShowItemList:%s,
+ BottleCount:%d,
+ BottleInfoList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ self.ResetType,
+ self.WishPoolShowCount,
+ "...",
+ self.BottleCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastWishInfo=tagMCFeastWishInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishInfo.Head.Cmd,m_NAtagMCFeastWishInfo.Head.SubCmd))] = m_NAtagMCFeastWishInfo
+
+
+#------------------------------------------------------
+# AA 44 节日祝福活动玩家信息 #tagMCFeastWishPlayerInfo
+
+class tagMCFeastWishPlayerBottle(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("BottleNum", c_ubyte), #瓶子编号
+ ("WishValue", c_ushort), #当前可用祝福值
+ ("ChooseRecord", 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.BottleNum = 0
+ self.WishValue = 0
+ self.ChooseRecord = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCFeastWishPlayerBottle)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 44 节日祝福活动玩家信息 //tagMCFeastWishPlayerInfo:
+ BottleNum:%d,
+ WishValue:%d,
+ ChooseRecord:%d
+ '''\
+ %(
+ self.BottleNum,
+ self.WishValue,
+ self.ChooseRecord
+ )
+ return DumpString
+
+
+class tagMCFeastWishPlayerInfo(Structure):
+ Head = tagHead()
+ BottleCount = 0 #(BYTE BottleCount)// 祝福瓶个数
+ PlayerBottleInfo = list() #(vector<tagMCFeastWishPlayerBottle> PlayerBottleInfo)// 祝福瓶信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x44
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.BottleCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.BottleCount):
+ temPlayerBottleInfo = tagMCFeastWishPlayerBottle()
+ _pos = temPlayerBottleInfo.ReadData(_lpData, _pos)
+ self.PlayerBottleInfo.append(temPlayerBottleInfo)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x44
+ self.BottleCount = 0
+ self.PlayerBottleInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.BottleCount):
+ length += self.PlayerBottleInfo[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.BottleCount)
+ for i in range(self.BottleCount):
+ data = CommFunc.WriteString(data, self.PlayerBottleInfo[i].GetLength(), self.PlayerBottleInfo[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ BottleCount:%d,
+ PlayerBottleInfo:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.BottleCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCFeastWishPlayerInfo=tagMCFeastWishPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishPlayerInfo.Head.Cmd,m_NAtagMCFeastWishPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastWishPlayerInfo
+
+
+#------------------------------------------------------
+# AA 45 节日祝福祝福结果 #tagMCFeastWishResult
+
+class tagMCFeastWishResult(Structure):
+ Head = tagHead()
+ AddWishValue = 0 #(WORD AddWishValue)// 本次增加的祝福值
+ WishResultLen = 0 #(WORD WishResultLen)
+ WishResult = "" #(String WishResult)// 获得物品结果[[物品ID,个数,是否绑定], ...]
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x45
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.AddWishValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.WishResultLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.WishResult,_pos = CommFunc.ReadString(_lpData, _pos,self.WishResultLen)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAA
+ self.Head.SubCmd = 0x45
+ self.AddWishValue = 0
+ self.WishResultLen = 0
+ self.WishResult = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 2
+ length += 2
+ length += len(self.WishResult)
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteWORD(data, self.AddWishValue)
+ data = CommFunc.WriteWORD(data, self.WishResultLen)
+ data = CommFunc.WriteString(data, self.WishResultLen, self.WishResult)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ AddWishValue:%d,
+ WishResultLen:%d,
+ WishResult:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.AddWishValue,
+ self.WishResultLen,
+ self.WishResult
+ )
+ return DumpString
+
+
+m_NAtagMCFeastWishResult=tagMCFeastWishResult()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishResult.Head.Cmd,m_NAtagMCFeastWishResult.Head.SubCmd))] = m_NAtagMCFeastWishResult
+
+
+#------------------------------------------------------
# AA 02 首充信息 #tagMCFirstGoldInfo
class tagMCFirstGoldInfo(Structure):
@@ -28105,6 +29301,7 @@
class tagMCFlashGiftbagInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
@@ -28125,6 +29322,7 @@
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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -28147,6 +29345,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x12
+ self.ActNum = 0
self.StartDate = ""
self.EndtDate = ""
self.AdvanceMinutes = 0
@@ -28161,6 +29360,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 10
length += 10
length += 2
@@ -28178,6 +29378,7 @@
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.WriteWORD(data, self.AdvanceMinutes)
@@ -28194,6 +29395,7 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
StartDate:%s,
EndtDate:%s,
AdvanceMinutes:%d,
@@ -28206,6 +29408,7 @@
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.StartDate,
self.EndtDate,
self.AdvanceMinutes,
@@ -28267,6 +29470,7 @@
class tagMCFlashGiftbagPlayerInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
Count = 0 #(BYTE Count)
BuyCountList = list() #(vector<tagMCFlashGiftbagBuyCount> BuyCountList)//礼包购买次数信息
data = None
@@ -28280,6 +29484,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
temBuyCountList = tagMCFlashGiftbagBuyCount()
@@ -28292,6 +29497,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x13
+ self.ActNum = 0
self.Count = 0
self.BuyCountList = list()
return
@@ -28299,6 +29505,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 1
for i in range(self.Count):
length += self.BuyCountList[i].GetLength()
@@ -28308,6 +29515,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ActNum)
data = CommFunc.WriteBYTE(data, self.Count)
for i in range(self.Count):
data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
@@ -28316,11 +29524,13 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
Count:%d,
BuyCountList:%s
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.Count,
"..."
)
@@ -28375,6 +29585,7 @@
class tagMCFlashSaleAppointmentInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
IsAll = 0 #(BYTE IsAll)// 是否全部
GoodsCount = 0 #(WORD GoodsCount)// 商品数
GoodsList = list() #(vector<tagMCFlashSaleAppointmentState> GoodsList)// 预约的商品
@@ -28389,6 +29600,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.GoodsCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
for i in range(self.GoodsCount):
@@ -28402,6 +29614,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x18
+ self.ActNum = 0
self.IsAll = 0
self.GoodsCount = 0
self.GoodsList = list()
@@ -28410,6 +29623,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 1
length += 2
for i in range(self.GoodsCount):
@@ -28420,6 +29634,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ActNum)
data = CommFunc.WriteBYTE(data, self.IsAll)
data = CommFunc.WriteWORD(data, self.GoodsCount)
for i in range(self.GoodsCount):
@@ -28429,12 +29644,14 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
IsAll:%d,
GoodsCount:%d,
GoodsList:%s
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.IsAll,
self.GoodsCount,
"..."
@@ -28627,6 +29844,7 @@
class tagMCFlashSaleInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
@@ -28647,6 +29865,7 @@
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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -28669,6 +29888,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x17
+ self.ActNum = 0
self.StartDate = ""
self.EndtDate = ""
self.AdvanceMinutes = 0
@@ -28683,6 +29903,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 10
length += 10
length += 2
@@ -28700,6 +29921,7 @@
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.WriteWORD(data, self.AdvanceMinutes)
@@ -28716,6 +29938,7 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
StartDate:%s,
EndtDate:%s,
AdvanceMinutes:%d,
@@ -28728,6 +29951,7 @@
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.StartDate,
self.EndtDate,
self.AdvanceMinutes,
@@ -29474,6 +30698,7 @@
class tagMCSpringSaleInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
@@ -29494,6 +30719,7 @@
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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -29516,6 +30742,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x11
+ self.ActNum = 0
self.StartDate = ""
self.EndtDate = ""
self.AdvanceMinutes = 0
@@ -29530,6 +30757,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 10
length += 10
length += 2
@@ -29547,6 +30775,7 @@
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.WriteWORD(data, self.AdvanceMinutes)
@@ -29563,6 +30792,7 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
StartDate:%s,
EndtDate:%s,
AdvanceMinutes:%d,
@@ -29575,6 +30805,7 @@
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.StartDate,
self.EndtDate,
self.AdvanceMinutes,
--
Gitblit v1.8.0