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