From dcc91df4e4090f84da0bf7027de4550a0315c184 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 21 十二月 2021 16:52:28 +0800
Subject: [PATCH] 1111 【后端】修复组队报错;修复购买副本次数报错;
---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 202 +++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 172 insertions(+), 30 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index f04a366..41f1fec 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -13376,7 +13376,9 @@
class tagGCLuckyCloudBuyLotteryRecInfo(Structure):
Head = tagHead()
- ZoneID = 0 #(BYTE ZoneID)// 分区
+ ZoneCount = 0 #(BYTE ZoneCount)// 分区数
+ ZoneIDList = list() #(vector<BYTE> ZoneIDList)// 所有分区ID列表
+ ZoneID = 0 #(BYTE ZoneID)// 返回记录分区ID
Count = 0 #(WORD Count)
LotteryRecList = list() #(vector<tagGCLuckyCloudBuyLotteryRec> LotteryRecList)
data = None
@@ -13390,6 +13392,10 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.ZoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.ZoneCount):
+ value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+ self.ZoneIDList.append(value)
self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
for i in range(self.Count):
@@ -13403,6 +13409,8 @@
self.Head.Clear()
self.Head.Cmd = 0xC0
self.Head.SubCmd = 0x14
+ self.ZoneCount = 0
+ self.ZoneIDList = list()
self.ZoneID = 0
self.Count = 0
self.LotteryRecList = list()
@@ -13411,6 +13419,8 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
+ length += 1 * self.ZoneCount
length += 1
length += 2
for i in range(self.Count):
@@ -13421,6 +13431,9 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ZoneCount)
+ for i in range(self.ZoneCount):
+ data = CommFunc.WriteBYTE(data, self.ZoneIDList[i])
data = CommFunc.WriteBYTE(data, self.ZoneID)
data = CommFunc.WriteWORD(data, self.Count)
for i in range(self.Count):
@@ -13430,12 +13443,16 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ZoneCount:%d,
+ ZoneIDList:%s,
ZoneID:%d,
Count:%d,
LotteryRecList:%s
'''\
%(
self.Head.OutputString(),
+ self.ZoneCount,
+ "...",
self.ZoneID,
self.Count,
"..."
@@ -13504,6 +13521,7 @@
class tagGCLuckyCloudBuyNumRecInfo(Structure):
Head = tagHead()
+ RemainCount = 0 #(WORD RemainCount)// 开奖剩余份数
Count = 0 #(WORD Count)
BuyNumRecList = list() #(vector<tagGCLuckyCloudBuyNumRec> BuyNumRecList)
data = None
@@ -13517,6 +13535,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.RemainCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
for i in range(self.Count):
temBuyNumRecList = tagGCLuckyCloudBuyNumRec()
@@ -13529,6 +13548,7 @@
self.Head.Clear()
self.Head.Cmd = 0xC0
self.Head.SubCmd = 0x13
+ self.RemainCount = 0
self.Count = 0
self.BuyNumRecList = list()
return
@@ -13536,6 +13556,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 2
length += 2
for i in range(self.Count):
length += self.BuyNumRecList[i].GetLength()
@@ -13545,6 +13566,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteWORD(data, self.RemainCount)
data = CommFunc.WriteWORD(data, self.Count)
for i in range(self.Count):
data = CommFunc.WriteString(data, self.BuyNumRecList[i].GetLength(), self.BuyNumRecList[i].GetBuffer())
@@ -13553,11 +13575,13 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ RemainCount:%d,
Count:%d,
BuyNumRecList:%s
'''\
%(
self.Head.OutputString(),
+ self.RemainCount,
self.Count,
"..."
)
@@ -13571,24 +13595,16 @@
#------------------------------------------------------
# C0 12 幸运云购轮次信息 #tagGCLuckyCloudBuyRoundInfo
-class tagGCLuckyCloudBuyRoundInfo(Structure):
+class tagGCLuckyCloudBuyRoundItem(Structure):
_pack_ = 1
_fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("RoundID", c_int), # 轮次唯一ID标识,当收到的轮次ID变更时,前端需清空购买号码记录缓存
- ("RoundNum", c_ubyte), # 今日第几轮
- ("SuperItemID", c_int), # 大奖物品ID
- ("SuperItemCount", c_ubyte), # 大奖物品个数
- ("SuperItemMoneyType", c_ubyte), # 大奖价值货币类型
- ("SuperItemMoneyValue", c_int), # 大奖价值
- ("RemainCount", c_ushort), # 开奖剩余份数
+ ("ItemID", c_int),
+ ("ItemCount", c_ushort),
+ ("IsBind", c_ubyte), # 是否拍品
]
def __init__(self):
self.Clear()
- self.Cmd = 0xC0
- self.SubCmd = 0x12
return
def ReadData(self, stringData, _pos=0, _len=0):
@@ -13597,51 +13613,177 @@
return _pos + self.GetLength()
def Clear(self):
- self.Cmd = 0xC0
- self.SubCmd = 0x12
- self.RoundID = 0
- self.RoundNum = 0
- self.SuperItemID = 0
- self.SuperItemCount = 0
- self.SuperItemMoneyType = 0
- self.SuperItemMoneyValue = 0
- self.RemainCount = 0
+ self.ItemID = 0
+ self.ItemCount = 0
+ self.IsBind = 0
return
def GetLength(self):
- return sizeof(tagGCLuckyCloudBuyRoundInfo)
+ return sizeof(tagGCLuckyCloudBuyRoundItem)
def GetBuffer(self):
return string_at(addressof(self), self.GetLength())
def OutputString(self):
DumpString = '''// C0 12 幸运云购轮次信息 //tagGCLuckyCloudBuyRoundInfo:
- Cmd:%s,
- SubCmd:%s,
+ ItemID:%d,
+ ItemCount:%d,
+ IsBind:%d
+ '''\
+ %(
+ self.ItemID,
+ self.ItemCount,
+ self.IsBind
+ )
+ return DumpString
+
+
+class tagGCLuckyCloudBuyRoundInfo(Structure):
+ Head = tagHead()
+ ZoneID = 0 #(BYTE ZoneID)// 所属分区ID
+ StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
+ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
+ RoundID = 0 #(DWORD RoundID)// 轮次唯一ID标识,当收到的轮次ID变更时,前端需清空购买号码记录缓存
+ RoundNum = 0 #(BYTE RoundNum)// 今日第几轮
+ SuperItemID = 0 #(DWORD SuperItemID)// 大奖物品ID
+ SuperItemCount = 0 #(BYTE SuperItemCount)// 大奖物品个数
+ SuperItemMoneyType = 0 #(BYTE SuperItemMoneyType)// 大奖价值货币类型
+ SuperItemMoneyValue = 0 #(DWORD SuperItemMoneyValue)// 大奖价值
+ BaseItemCount = 0 #(BYTE BaseItemCount)// 每次购买固定奖励物品数
+ BaseItemList = list() #(vector<tagGCLuckyCloudBuyRoundItem> BaseItemList)// 每次购买固定奖励物品信息
+ RandItemCount = 0 #(BYTE RandItemCount)// 每次购买随机奖励物品数
+ RandItemList = list() #(vector<tagGCLuckyCloudBuyRoundItem> RandItemList)// 每次购买随机奖励物品信息
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xC0
+ self.Head.SubCmd = 0x12
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+ self.RoundID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.RoundNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.SuperItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.SuperItemMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.SuperItemMoneyValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.BaseItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.BaseItemCount):
+ temBaseItemList = tagGCLuckyCloudBuyRoundItem()
+ _pos = temBaseItemList.ReadData(_lpData, _pos)
+ self.BaseItemList.append(temBaseItemList)
+ self.RandItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.RandItemCount):
+ temRandItemList = tagGCLuckyCloudBuyRoundItem()
+ _pos = temRandItemList.ReadData(_lpData, _pos)
+ self.RandItemList.append(temRandItemList)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xC0
+ self.Head.SubCmd = 0x12
+ self.ZoneID = 0
+ self.StartDate = ""
+ self.EndtDate = ""
+ self.RoundID = 0
+ self.RoundNum = 0
+ self.SuperItemID = 0
+ self.SuperItemCount = 0
+ self.SuperItemMoneyType = 0
+ self.SuperItemMoneyValue = 0
+ self.BaseItemCount = 0
+ self.BaseItemList = list()
+ self.RandItemCount = 0
+ self.RandItemList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 10
+ length += 10
+ length += 4
+ length += 1
+ length += 4
+ length += 1
+ length += 1
+ length += 4
+ length += 1
+ for i in range(self.BaseItemCount):
+ length += self.BaseItemList[i].GetLength()
+ length += 1
+ for i in range(self.RandItemCount):
+ length += self.RandItemList[i].GetLength()
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ZoneID)
+ data = CommFunc.WriteString(data, 10, self.StartDate)
+ data = CommFunc.WriteString(data, 10, self.EndtDate)
+ data = CommFunc.WriteDWORD(data, self.RoundID)
+ data = CommFunc.WriteBYTE(data, self.RoundNum)
+ data = CommFunc.WriteDWORD(data, self.SuperItemID)
+ data = CommFunc.WriteBYTE(data, self.SuperItemCount)
+ data = CommFunc.WriteBYTE(data, self.SuperItemMoneyType)
+ data = CommFunc.WriteDWORD(data, self.SuperItemMoneyValue)
+ data = CommFunc.WriteBYTE(data, self.BaseItemCount)
+ for i in range(self.BaseItemCount):
+ data = CommFunc.WriteString(data, self.BaseItemList[i].GetLength(), self.BaseItemList[i].GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.RandItemCount)
+ for i in range(self.RandItemCount):
+ data = CommFunc.WriteString(data, self.RandItemList[i].GetLength(), self.RandItemList[i].GetBuffer())
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ ZoneID:%d,
+ StartDate:%s,
+ EndtDate:%s,
RoundID:%d,
RoundNum:%d,
SuperItemID:%d,
SuperItemCount:%d,
SuperItemMoneyType:%d,
SuperItemMoneyValue:%d,
- RemainCount:%d
+ BaseItemCount:%d,
+ BaseItemList:%s,
+ RandItemCount:%d,
+ RandItemList:%s
'''\
%(
- self.Cmd,
- self.SubCmd,
+ self.Head.OutputString(),
+ self.ZoneID,
+ self.StartDate,
+ self.EndtDate,
self.RoundID,
self.RoundNum,
self.SuperItemID,
self.SuperItemCount,
self.SuperItemMoneyType,
self.SuperItemMoneyValue,
- self.RemainCount
+ self.BaseItemCount,
+ "...",
+ self.RandItemCount,
+ "..."
)
return DumpString
m_NAtagGCLuckyCloudBuyRoundInfo=tagGCLuckyCloudBuyRoundInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCLuckyCloudBuyRoundInfo.Cmd,m_NAtagGCLuckyCloudBuyRoundInfo.SubCmd))] = m_NAtagGCLuckyCloudBuyRoundInfo
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCLuckyCloudBuyRoundInfo.Head.Cmd,m_NAtagGCLuckyCloudBuyRoundInfo.Head.SubCmd))] = m_NAtagGCLuckyCloudBuyRoundInfo
#------------------------------------------------------
--
Gitblit v1.8.0