From 509e00333a0b4d26885e291af094f26ec5e010f2 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 13 十二月 2021 14:48:10 +0800 Subject: [PATCH] 9265 【BT5】【后端】53、新增幸运云购(调整为跨服节日活动模式;跨服节日活动管理优化) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 202 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 172 insertions(+), 30 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py index f04a366..41f1fec 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/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