From d74ffd4e91154ea48d36b7ea153907b171c47b74 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 06 五月 2024 18:31:35 +0800
Subject: [PATCH] 10033 【后端】仙树升级系统及砍树产出规则(仙树等级前后端统一:从1开始,1代表1级;)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py |   55 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 9 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
index 25705b1..36ee9a2 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
@@ -28,6 +28,7 @@
 import PlayerFamily
 import PyDataManager
 import PlayerViewCache
+import IpyGameDataPY
 
 import time
 import random
@@ -35,11 +36,6 @@
 Def_Key_BillboardSortTick = "BillboardSortTick_%s" # 排行榜是否排序tick,参数(排行榜类型)
 Def_Key_BillboardNeedSort = "BillboardNeedSort_%s" # 排行榜是否需要排序,参数(排行榜类型)
 
-#需要每天记录到oss的排行榜类型
-Def_NoteOssBillboardTypeList = [
-    ShareDefine.Def_BT_LV ,                  #个人等级日榜            
-    ShareDefine.Def_BT_FightPower,           #个人战斗力
-                                ]
 #需要每天拷贝昨日榜单的排行榜类型字典
 Def_NeedCopyYesterday_Dict = {
     #昨日榜(拷贝)                                    #今日榜(源数据)
@@ -47,6 +43,7 @@
 
 def NoteOssBillboardInfoByDay():
     ## 每天记录排行榜信息到oss中
+    Def_NoteOssBillboardTypeList = IpyGameDataPY.GetFuncEvalCfg("BillboardSet", 1)
     for billboardType in Def_NoteOssBillboardTypeList:
         DataRecordPack.DR_BillboardDataByDay(billboardType)
     return
@@ -510,12 +507,28 @@
             
     return
 
+def DelJobFightPowerBillboard(curPlayer, delJob):
+    ## 删除玩家对应职业战力榜  - 一般是玩家职业改变了,需要删除旧职业的职业战力榜单
+    if delJob not in ShareDefine.JobFightPowerBillboardDict:
+        return
+    jobBType = ShareDefine.JobFightPowerBillboardDict[delJob]
+    playerID = curPlayer.GetPlayerID()
+    billboardMgr = GameWorld.GetBillboard()
+    playerBillBoard = billboardMgr.FindBillboard(jobBType)
+    if not playerBillBoard:
+        return
+    if playerBillBoard.FindByID(playerID):
+        playerBillBoard.DeleteByID(playerID)
+        GameWorld.DebugLog("删除玩家职业战力榜单: delJob=%s,jobBType=%s" % (delJob, jobBType), playerID)
+    return
+
 def GetBillboardOperateInfo(curPlayer):
     # 排行榜中所保存的运营商相关信息
-    platform = curPlayer.GetAccID()
-    if platform in ["tencent"]:
-        return curPlayer.GetOperateInfo()
-    return platform
+    return curPlayer.GetFace()
+#    platform = curPlayer.GetAccID()
+#    if platform in ["tencent"]:
+#        return curPlayer.GetOperateInfo()
+#    return platform
 
 def UpdatePlayerBillboardEx(curPlayer, playerID, bType, cmpValue, cmpValue2=0, cmpValue3=0, value1=0, value2=0, autoSort=False):
     ## 更新玩家排行榜
@@ -616,6 +629,9 @@
         if opInfo != str(curPlayerOpInfo):
             playerBillBoardData.SetName2(str(curPlayerOpInfo))
             GameWorld.DebugLog("    更新operatInfo=%s" % curPlayerOpInfo, curPlayerID)
+        if playerBillBoardData.GetType2() != billboardType:
+            playerBillBoardData.SetType2(billboardType)
+            GameWorld.DebugLog("    更新Type2=%s" % billboardType, curPlayerID)
         return False
     
     # 没设置值默认为时间time,先上榜的排前面
@@ -811,3 +827,24 @@
         
     return
 
+def UpdateBillboardFace(curPlayer):
+    ## 更新排行榜中的玩家头像
+    
+    curPlayerID = curPlayer.GetID()
+    curFace = curPlayer.GetFace()
+    
+    billboardMgr = GameWorld.GetBillboard()
+    for billboardIndex in ShareDefine.BillboardTypeList:
+        billBoard = billboardMgr.FindBillboard(billboardIndex)
+        if not billBoard:
+            #找不到这类型排行榜
+            continue
+        
+        playerBillBoardData = billBoard.FindByID(curPlayerID)
+        if not playerBillBoardData:
+            #该玩家没有在排行榜上
+            continue
+        
+        playerBillBoardData.SetName2(str(curFace))
+        
+    return

--
Gitblit v1.8.0