From 78a2ce57d2d546ebade26a801b33c5cb0d8a408c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 21 十月 2019 14:09:33 +0800
Subject: [PATCH] 8309 【恺英】邮件神装物品传奇属性异常
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 232 insertions(+), 4 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index cc089ea..b994baa 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -15449,6 +15449,58 @@
#------------------------------------------------------
+# A3 28 历史累积充值奖励领取记录 #tagMCHistoryReChargeAwardRecord
+
+class tagMCHistoryReChargeAwardRecord(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("AwardGetRecord", c_int), # 按二进制位标示领取记录 配置奖励ID代表第几位
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA3
+ self.SubCmd = 0x28
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xA3
+ self.SubCmd = 0x28
+ self.AwardGetRecord = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCHistoryReChargeAwardRecord)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A3 28 历史累积充值奖励领取记录 //tagMCHistoryReChargeAwardRecord:
+ Cmd:%s,
+ SubCmd:%s,
+ AwardGetRecord:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.AwardGetRecord
+ )
+ return DumpString
+
+
+m_NAtagMCHistoryReChargeAwardRecord=tagMCHistoryReChargeAwardRecord()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHistoryReChargeAwardRecord.Cmd,m_NAtagMCHistoryReChargeAwardRecord.SubCmd))] = m_NAtagMCHistoryReChargeAwardRecord
+
+
+#------------------------------------------------------
# A3 12 通知骑宠觉醒信息 #tagMCHorsePetSkinData
class tagMCHorsePetSkinInfo(Structure):
@@ -24022,6 +24074,58 @@
#------------------------------------------------------
+# AA 24 每日免费直购礼包信息 #tagMCDayFreeGoldGiftState
+
+class tagMCDayFreeGoldGiftState(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("DayFreeGoldGiftState", c_ubyte), #每日免费直购礼包是否已领奖 0-未领 1-已领
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xAA
+ self.SubCmd = 0x24
+ 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 = 0x24
+ self.DayFreeGoldGiftState = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCDayFreeGoldGiftState)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AA 24 每日免费直购礼包信息 //tagMCDayFreeGoldGiftState:
+ Cmd:%s,
+ SubCmd:%s,
+ DayFreeGoldGiftState:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.DayFreeGoldGiftState
+ )
+ return DumpString
+
+
+m_NAtagMCDayFreeGoldGiftState=tagMCDayFreeGoldGiftState()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDayFreeGoldGiftState.Cmd,m_NAtagMCDayFreeGoldGiftState.SubCmd))] = m_NAtagMCDayFreeGoldGiftState
+
+
+#------------------------------------------------------
# AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
class tagMCFeastWeekPartyItem(Structure):
@@ -26944,6 +27048,9 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("State", c_ubyte), #0-不可领 1-可领 2-已领取
+ ("CTGTotal", c_int), #本次活动已累计充值,单位元
+ ("FireworksBuyCount", c_ushort), #已购买高级烟花数
+ ("FirewordsScore", c_int), #当前累计所有烟花总积分
]
def __init__(self):
@@ -26961,6 +27068,9 @@
self.Cmd = 0xAA
self.SubCmd = 0x14
self.State = 0
+ self.CTGTotal = 0
+ self.FireworksBuyCount = 0
+ self.FirewordsScore = 0
return
def GetLength(self):
@@ -26973,18 +27083,132 @@
DumpString = '''// AA 14 仙界盛典充值大礼 //tagMCXJSDRecharge:
Cmd:%s,
SubCmd:%s,
- State:%d
+ State:%d,
+ CTGTotal:%d,
+ FireworksBuyCount:%d,
+ FirewordsScore:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.State
+ self.State,
+ self.CTGTotal,
+ self.FireworksBuyCount,
+ self.FirewordsScore
)
return DumpString
m_NAtagMCXJSDRecharge=tagMCXJSDRecharge()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCXJSDRecharge.Cmd,m_NAtagMCXJSDRecharge.SubCmd))] = m_NAtagMCXJSDRecharge
+
+
+#------------------------------------------------------
+# AB 01 Boss首杀玩家奖励信息 #tagMCBossFirstKillStateInfo
+
+class tagMCBossFirstKillState(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("NPCID", c_int),
+ ("FKState", c_int), # 玩家该boss首杀相关状态,按位存:个位-玩家是否击杀过,十位-是否已领取首杀全服奖励,百位-是否已领取个人首杀奖励
+ ]
+
+ def __init__(self):
+ self.Clear()
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.NPCID = 0
+ self.FKState = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCBossFirstKillState)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// AB 01 Boss首杀玩家奖励信息 //tagMCBossFirstKillStateInfo:
+ NPCID:%d,
+ FKState:%d
+ '''\
+ %(
+ self.NPCID,
+ self.FKState
+ )
+ return DumpString
+
+
+class tagMCBossFirstKillStateInfo(Structure):
+ Head = tagHead()
+ BossCount = 0 #(BYTE BossCount)
+ FirstKillStateList = list() #(vector<tagMCBossFirstKillState> FirstKillStateList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xAB
+ self.Head.SubCmd = 0x01
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.BossCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.BossCount):
+ temFirstKillStateList = tagMCBossFirstKillState()
+ _pos = temFirstKillStateList.ReadData(_lpData, _pos)
+ self.FirstKillStateList.append(temFirstKillStateList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xAB
+ self.Head.SubCmd = 0x01
+ self.BossCount = 0
+ self.FirstKillStateList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ for i in range(self.BossCount):
+ length += self.FirstKillStateList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.BossCount)
+ for i in range(self.BossCount):
+ data = CommFunc.WriteString(data, self.FirstKillStateList[i].GetLength(), self.FirstKillStateList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ BossCount:%d,
+ FirstKillStateList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.BossCount,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagMCBossFirstKillStateInfo=tagMCBossFirstKillStateInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossFirstKillStateInfo.Head.Cmd,m_NAtagMCBossFirstKillStateInfo.Head.SubCmd))] = m_NAtagMCBossFirstKillStateInfo
#------------------------------------------------------
@@ -29237,6 +29461,7 @@
_fields_ = [
("DataMapID", c_int), # 地图ID
("RemainTime", c_int), # 剩余时间秒
+ ("RegainCnt", c_ubyte), # 今日已恢复次数
]
def __init__(self):
@@ -29251,6 +29476,7 @@
def Clear(self):
self.DataMapID = 0
self.RemainTime = 0
+ self.RegainCnt = 0
return
def GetLength(self):
@@ -29262,11 +29488,13 @@
def OutputString(self):
DumpString = '''// B2 09 副本次数恢复剩余时间 //tagMCFBCntRegainRemainTime:
DataMapID:%d,
- RemainTime:%d
+ RemainTime:%d,
+ RegainCnt:%d
'''\
%(
self.DataMapID,
- self.RemainTime
+ self.RemainTime,
+ self.RegainCnt
)
return DumpString
--
Gitblit v1.8.0