From 11c9a3b5846401523e4dafc17f2a074a712730da Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 11 三月 2026 18:27:10 +0800
Subject: [PATCH] 526 【挑战】PVP群英榜-后端(本服群英榜;优化机器人表支持按功能加载不同的机器人;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Billboard.py | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Billboard.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Billboard.py
index 309a4f3..cf018cb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Billboard.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Billboard.py
@@ -29,10 +29,8 @@
GameWorld.DebugAnswer(curPlayer, "输出排行榜数据: Billboard p 类型 [分组值1 值2 从x名 到x名]")
GameWorld.DebugAnswer(curPlayer, "注:如果没有特殊说明,本服榜单分组值均为0,跨服榜单分组值1为分区ID,分组2为0")
- nameTypeList = ShareDefine.BillboardNameDict.keys()
- nameTypeList.sort()
- for billboardType in nameTypeList:
- bName = ShareDefine.BillboardNameDict[billboardType]
+ for billboardType in ShareDefine.BillboardTypeAllList:
+ bName = ShareDefine.BillboardNameDict.get(billboardType, billboardType)
GameWorld.DebugAnswer(curPlayer, "(%s) %s" % (billboardType, bName))
return
@@ -91,7 +89,9 @@
billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
curDataCount = billboardObj.GetCount()
maxDataCount = billboardObj.GetMaxCount()
-
+ isLayerMode = billboardObj.IsOrderRuleByLayer()
+ if isLayerMode:
+ cmpValue1 = min(cmpValue1, maxDataCount)
count = min(count, maxDataCount - curDataCount)
FakeName = GameWorld.GbkToCode("主公")
@@ -105,9 +105,12 @@
name1 = dataPlayerName
cmpValue = dataCmpValue1
cmpValue2 = dataCmpValue2
- PlayerBillboard.UpdateBillboard(billboardType, groupValue1, dataID, name1, name2, type2, value1, value2,
- cmpValue, cmpValue2, cmpValue3, groupValue2, id2, False,
- value3=value3, value4=value4, value5=value5)
+ if isLayerMode:
+ PlayerBillboard.UpdateBillboardLayer(dataID, billboardType, cmpValue, groupValue1, False)
+ else:
+ PlayerBillboard.UpdateBillboard(billboardType, groupValue1, dataID, name1, name2, type2, value1, value2,
+ cmpValue, cmpValue2, cmpValue3, groupValue2, id2, False,
+ value3=value3, value4=value4, value5=value5)
billboardObj.SortData()
@@ -157,8 +160,9 @@
maxDataCount = billboardObj.GetMaxCount()
if not curDataCount:
continue
+ bName = ShareDefine.BillboardNameDict.get(bType, bType)
billTypeSign = __GetBillTypeSign(bType, groupValue1, groupValue2)
- GameWorld.DebugAnswer(curPlayer, "榜单数据(%s)条数: %s/%s" % (billTypeSign, curDataCount, maxDataCount))
+ GameWorld.DebugAnswer(curPlayer, "%s(%s)条数: %s/%s" % (bName, billTypeSign, curDataCount, maxDataCount))
return
billboardType = gmList[1]
@@ -175,7 +179,7 @@
printDebugCnt = 0
billTypeSign = __GetBillTypeSign(billboardType, groupValue1, groupValue2)
- bName = ShareDefine.BillboardNameDict[billboardType]
+ bName = ShareDefine.BillboardNameDict.get(billboardType, billboardType)
GameWorld.DebugAnswer(curPlayer, "%s(%s)条数: %s/%s 详见日志" % (bName, billTypeSign, curDataCount, maxDataCount))
for index in range(curDataCount):
bbData = billboardObj.At(index)
@@ -188,7 +192,7 @@
valueList = [getattr(bbData, "GetValue%s" % num)() for num in range(1, 9)]
if printDebugCnt < 20:
printDebugCnt += 1
- GameWorld.DebugAnswer(curPlayer, "%s,ID:%s,榜值:%s" % (rank, dataID, cmpValues))
+ GameWorld.DebugAnswer(curPlayer, "名次:%s,ID:%s,榜值:%s" % (rank, dataID, cmpValues))
GameWorld.DebugLog("%s,rank=%s,ID=%s,CmpValues=%s,Value=%s"
% (index, rank, dataID, cmpValues, valueList), curPlayer.GetPlayerID())
--
Gitblit v1.8.0