From 8ac5ae97a12a14e7ae875a2c8a2b1d4e45d91e72 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 29 八月 2024 16:06:41 +0800 Subject: [PATCH] 10256 【越南】【砍树】排行榜名次加入积分限制 1. 跨服榜增加延迟排序,每分钟对变更数据且不实时排序的榜单进行排序,或玩家查询时触发排序; 2. 骑宠跨服榜改为仅更新数据,不实时排序; 3. 骑宠养成增加各排名上榜积分限制;增加名次达标积分额外奖励;去除跨服榜单上榜限制配置,统一取榜单模版中最后一条限制作为保底限制; --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 205 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 182 insertions(+), 23 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index c73739c..aa6bd9b 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -36145,10 +36145,10 @@ return DumpString -class tagMCActHorsePetTrainBillard(Structure): - Rank = 0 #(DWORD Rank)// 名次,1-代表第一名;支持夸段,如1,3 代表第1名,第2~3名 - Count = 0 #(BYTE Count)// 奖励物品数 - AwardItemList = list() #(vector<tagMCActHorsePetTrainItem> AwardItemList)// 奖励物品列表 +class tagMCActHorsePetTrainAwardEx(Structure): + NeedScore = 0 #(DWORD NeedScore)// 额外奖励所需积分 + Count = 0 #(BYTE Count)// 额外奖励物品数 + AwardItemList = list() #(vector<tagMCActHorsePetTrainItem> AwardItemList)// 额外奖励物品列表 data = None def __init__(self): @@ -36157,7 +36157,7 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() - self.Rank,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.NeedScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temAwardItemList = tagMCActHorsePetTrainItem() @@ -36166,7 +36166,7 @@ return _pos def Clear(self): - self.Rank = 0 + self.NeedScore = 0 self.Count = 0 self.AwardItemList = list() return @@ -36182,7 +36182,7 @@ def GetBuffer(self): data = '' - data = CommFunc.WriteDWORD(data, self.Rank) + data = CommFunc.WriteDWORD(data, self.NeedScore) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) @@ -36190,13 +36190,96 @@ def OutputString(self): DumpString = ''' - Rank:%d, + NeedScore:%d, Count:%d, AwardItemList:%s '''\ %( + self.NeedScore, + self.Count, + "..." + ) + return DumpString + + +class tagMCActHorsePetTrainBillard(Structure): + Rank = 0 #(DWORD Rank)// 名次,1-代表第一名;支持夸段,如1,3 代表第1名,第2~3名 + Count = 0 #(BYTE Count)// 奖励物品数 + AwardItemList = list() #(vector<tagMCActHorsePetTrainItem> AwardItemList)// 奖励物品列表 + NeedScore = 0 #(DWORD NeedScore)// 上榜所需积分 + CountEx = 0 #(BYTE CountEx)// 额外奖励数 + AwardItemExList = list() #(vector<tagMCActHorsePetTrainAwardEx> AwardItemExList)// 额外奖励列表 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.Rank,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + temAwardItemList = tagMCActHorsePetTrainItem() + _pos = temAwardItemList.ReadData(_lpData, _pos) + self.AwardItemList.append(temAwardItemList) + self.NeedScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.CountEx,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.CountEx): + temAwardItemExList = tagMCActHorsePetTrainAwardEx() + _pos = temAwardItemExList.ReadData(_lpData, _pos) + self.AwardItemExList.append(temAwardItemExList) + return _pos + + def Clear(self): + self.Rank = 0 + self.Count = 0 + self.AwardItemList = list() + self.NeedScore = 0 + self.CountEx = 0 + self.AwardItemExList = list() + return + + def GetLength(self): + length = 0 + length += 4 + length += 1 + for i in range(self.Count): + length += self.AwardItemList[i].GetLength() + length += 4 + length += 1 + for i in range(self.CountEx): + length += self.AwardItemExList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteDWORD(data, self.Rank) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) + data = CommFunc.WriteDWORD(data, self.NeedScore) + data = CommFunc.WriteBYTE(data, self.CountEx) + for i in range(self.CountEx): + data = CommFunc.WriteString(data, self.AwardItemExList[i].GetLength(), self.AwardItemExList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Rank:%d, + Count:%d, + AwardItemList:%s, + NeedScore:%d, + CountEx:%d, + AwardItemExList:%s + '''\ + %( self.Rank, self.Count, + "...", + self.NeedScore, + self.CountEx, "..." ) return DumpString @@ -41823,10 +41906,10 @@ return DumpString -class tagMCCrossActHorsePetTrainBillard(Structure): - Rank = 0 #(DWORD Rank)// 名次,1-代表第一名;支持夸段,如1,3 代表第1名,第2~3名 - Count = 0 #(BYTE Count)// 奖励物品数 - AwardItemList = list() #(vector<tagMCCrossActHorsePetTrainItem> AwardItemList)// 奖励物品列表 +class tagMCCrossActHorsePetTrainAwardEx(Structure): + NeedScore = 0 #(DWORD NeedScore)// 额外奖励所需积分 + Count = 0 #(BYTE Count)// 额外奖励物品数 + AwardItemList = list() #(vector<tagMCCrossActHorsePetTrainItem> AwardItemList)// 额外奖励物品列表 data = None def __init__(self): @@ -41835,7 +41918,7 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() - self.Rank,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.NeedScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temAwardItemList = tagMCCrossActHorsePetTrainItem() @@ -41844,7 +41927,7 @@ return _pos def Clear(self): - self.Rank = 0 + self.NeedScore = 0 self.Count = 0 self.AwardItemList = list() return @@ -41860,7 +41943,7 @@ def GetBuffer(self): data = '' - data = CommFunc.WriteDWORD(data, self.Rank) + data = CommFunc.WriteDWORD(data, self.NeedScore) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) @@ -41868,13 +41951,96 @@ def OutputString(self): DumpString = ''' - Rank:%d, + NeedScore:%d, Count:%d, AwardItemList:%s '''\ %( + self.NeedScore, + self.Count, + "..." + ) + return DumpString + + +class tagMCCrossActHorsePetTrainBillard(Structure): + Rank = 0 #(DWORD Rank)// 名次,1-代表第一名;支持夸段,如1,3 代表第1名,第2~3名 + Count = 0 #(BYTE Count)// 奖励物品数 + AwardItemList = list() #(vector<tagMCCrossActHorsePetTrainItem> AwardItemList)// 奖励物品列表 + NeedScore = 0 #(DWORD NeedScore)// 上榜所需积分 + CountEx = 0 #(BYTE CountEx)// 额外奖励数 + AwardItemExList = list() #(vector<tagMCCrossActHorsePetTrainAwardEx> AwardItemExList)// 额外奖励列表 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.Rank,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + temAwardItemList = tagMCCrossActHorsePetTrainItem() + _pos = temAwardItemList.ReadData(_lpData, _pos) + self.AwardItemList.append(temAwardItemList) + self.NeedScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.CountEx,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.CountEx): + temAwardItemExList = tagMCCrossActHorsePetTrainAwardEx() + _pos = temAwardItemExList.ReadData(_lpData, _pos) + self.AwardItemExList.append(temAwardItemExList) + return _pos + + def Clear(self): + self.Rank = 0 + self.Count = 0 + self.AwardItemList = list() + self.NeedScore = 0 + self.CountEx = 0 + self.AwardItemExList = list() + return + + def GetLength(self): + length = 0 + length += 4 + length += 1 + for i in range(self.Count): + length += self.AwardItemList[i].GetLength() + length += 4 + length += 1 + for i in range(self.CountEx): + length += self.AwardItemExList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteDWORD(data, self.Rank) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) + data = CommFunc.WriteDWORD(data, self.NeedScore) + data = CommFunc.WriteBYTE(data, self.CountEx) + for i in range(self.CountEx): + data = CommFunc.WriteString(data, self.AwardItemExList[i].GetLength(), self.AwardItemExList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Rank:%d, + Count:%d, + AwardItemList:%s, + NeedScore:%d, + CountEx:%d, + AwardItemExList:%s + '''\ + %( self.Rank, self.Count, + "...", + self.NeedScore, + self.CountEx, "..." ) return DumpString @@ -41889,7 +42055,6 @@ EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d JoinStartTime = "" #(char JoinStartTime[5])// 参与开始时间点 mm:ss JoinEndTime = "" #(char JoinEndTime[5])// 参与结束时间点 mm:ss - RankLimitPersonal = 0 #(WORD RankLimitPersonal)// 个人榜上榜积分保底限制; PersonalBillCount = 0 #(BYTE PersonalBillCount) PersonalBillboardInfoList = list() #(vector<tagMCCrossActHorsePetTrainBillard> PersonalBillboardInfoList)// 个人榜单奖励信息列表,如果没有代表本次活动没有该榜奖励 data = None @@ -41910,7 +42075,6 @@ self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.JoinStartTime,_pos = CommFunc.ReadString(_lpData, _pos,5) self.JoinEndTime,_pos = CommFunc.ReadString(_lpData, _pos,5) - self.RankLimitPersonal,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PersonalBillCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PersonalBillCount): temPersonalBillboardInfoList = tagMCCrossActHorsePetTrainBillard() @@ -41930,7 +42094,6 @@ self.EndtDate = "" self.JoinStartTime = "" self.JoinEndTime = "" - self.RankLimitPersonal = 0 self.PersonalBillCount = 0 self.PersonalBillboardInfoList = list() return @@ -41945,7 +42108,6 @@ length += 10 length += 5 length += 5 - length += 2 length += 1 for i in range(self.PersonalBillCount): length += self.PersonalBillboardInfoList[i].GetLength() @@ -41962,7 +42124,6 @@ data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteString(data, 5, self.JoinStartTime) data = CommFunc.WriteString(data, 5, self.JoinEndTime) - data = CommFunc.WriteWORD(data, self.RankLimitPersonal) data = CommFunc.WriteBYTE(data, self.PersonalBillCount) for i in range(self.PersonalBillCount): data = CommFunc.WriteString(data, self.PersonalBillboardInfoList[i].GetLength(), self.PersonalBillboardInfoList[i].GetBuffer()) @@ -41978,7 +42139,6 @@ EndtDate:%s, JoinStartTime:%s, JoinEndTime:%s, - RankLimitPersonal:%d, PersonalBillCount:%d, PersonalBillboardInfoList:%s '''\ @@ -41991,7 +42151,6 @@ self.EndtDate, self.JoinStartTime, self.JoinEndTime, - self.RankLimitPersonal, self.PersonalBillCount, "..." ) -- Gitblit v1.8.0