From ca4de46e0beb47d7ec1dfa3817f59e2ba885bf76 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 16 十一月 2020 19:52:47 +0800
Subject: [PATCH] 4862 【主干】【长尾】【BT】宝箱支持部分拍品、非拍品配置
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 357 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 350 insertions(+), 7 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index cf09baf..7be48bd 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -8543,7 +8543,7 @@
("EquipPlace", c_ubyte), #当前要升星的装备位
("CurStar", c_ubyte), #当前星级
("CurRate", c_ubyte), #当前自动购买后的总概率,不满100则代表拍品库存不足
- ("AutoBuyCostMoney", c_ushort), #自动购买所需总消耗
+ ("AutoBuyCostMoney", c_int), #自动购买所需总消耗
]
def __init__(self):
@@ -17934,7 +17934,7 @@
StoveLV = 0 #(BYTE StoveLV)// 炼丹炉等级
StoveExp = 0 #(DWORD StoveExp)// 炼丹炉经验
ItemID = 0 #(DWORD ItemID)// 合成物品id
- ItemCnt = 0 #(BYTE ItemCnt)// 丹药数量
+ ItemCnt = 0 #(WORD ItemCnt)// 丹药数量
StoveCnt = 0 #(WORD StoveCnt)// 丹药数量
InfoList = list() #(vector<tagMCPlayerStoveInfo> InfoList)
data = None
@@ -17951,7 +17951,7 @@
self.StoveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.StoveExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ItemCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.StoveCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
for i in range(self.StoveCnt):
temInfoList = tagMCPlayerStoveInfo()
@@ -17978,7 +17978,7 @@
length += 1
length += 4
length += 4
- length += 1
+ length += 2
length += 2
for i in range(self.StoveCnt):
length += self.InfoList[i].GetLength()
@@ -17991,7 +17991,7 @@
data = CommFunc.WriteBYTE(data, self.StoveLV)
data = CommFunc.WriteDWORD(data, self.StoveExp)
data = CommFunc.WriteDWORD(data, self.ItemID)
- data = CommFunc.WriteBYTE(data, self.ItemCnt)
+ data = CommFunc.WriteWORD(data, self.ItemCnt)
data = CommFunc.WriteWORD(data, self.StoveCnt)
for i in range(self.StoveCnt):
data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
@@ -19242,7 +19242,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("LV", c_ubyte), #等阶
- ("EatItemCount", c_ushort), #当前阶已吃丹个数
+ ("EatItemCount", c_int), #当前阶已吃丹个数
("SkinPlusState", c_int), #幻化激活状态,按位存储是否激活,幻化编号ID对应位
]
@@ -20982,6 +20982,58 @@
m_NAtagMCCollectAwardItemInfo=tagMCCollectAwardItemInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCollectAwardItemInfo.Head.Cmd,m_NAtagMCCollectAwardItemInfo.Head.SubCmd))] = m_NAtagMCCollectAwardItemInfo
+
+
+#------------------------------------------------------
+# A7 20 创角奖励领奖状态 #tagMCCreateRoleAwardState
+
+class tagMCCreateRoleAwardState(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("GetState", c_ubyte), # 是否已领取
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xA7
+ self.SubCmd = 0x20
+ 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 = 0xA7
+ self.SubCmd = 0x20
+ self.GetState = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagMCCreateRoleAwardState)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// A7 20 创角奖励领奖状态 //tagMCCreateRoleAwardState:
+ Cmd:%s,
+ SubCmd:%s,
+ GetState:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.GetState
+ )
+ return DumpString
+
+
+m_NAtagMCCreateRoleAwardState=tagMCCreateRoleAwardState()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCreateRoleAwardState.Cmd,m_NAtagMCCreateRoleAwardState.SubCmd))] = m_NAtagMCCreateRoleAwardState
#------------------------------------------------------
@@ -23872,6 +23924,189 @@
#------------------------------------------------------
+# 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
+ 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.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.IsDayReset = 0
+ self.PrizeDays = 0
+ self.PrizeDayInfo = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 10
+ length += 10
+ 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.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,
+ IsDayReset:%d,
+ PrizeDays:%d,
+ PrizeDayInfo:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.StartDate,
+ self.EndtDate,
+ 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 1D 累计充值活动信息 #tagMCActTotalRechargeInfo
class tagMCTotalRechargeAwardItem(Structure):
@@ -24701,7 +24936,7 @@
_pack_ = 1
_fields_ = [
("ItemID", c_int),
- ("ItemCount", c_ushort),
+ ("ItemCount", c_int),
("IsBind", c_ubyte),
]
@@ -27250,6 +27485,114 @@
#------------------------------------------------------
+# 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 11 限时特惠活动信息 #tagMCSpringSaleInfo
class tagMCSpringSaleItem(Structure):
--
Gitblit v1.8.0