From 22f9a92aa213b3a2b691e6718d8a580895e68011 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 05 十一月 2025 11:25:40 +0800
Subject: [PATCH] 16 卡牌服务端(删除无效的旧开服天通知)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py |  122 ++++++++++------------------------------
 1 files changed, 30 insertions(+), 92 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
index bde256f..b474f25 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
@@ -17,6 +17,7 @@
 
 import GameWorld
 import ShareDefine
+import PlayerControl
 import ChPyNetSendPack
 import NetPackCommon
 import IpyGameDataPY
@@ -63,78 +64,28 @@
     
     return
 
-def UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate=False, isCheckRule=True):
-    ##更新玩家总战斗力
-#    
-#    playerFightPower = PlayerControl.GetFightPower(curPlayer)
-#    if not __CheckFightPowerCanUpdate(curPlayer, ChConfig.Def_PDict_FightPower_Total, playerFightPower,
-#                                      isForceUpdate, isCheckRule, ChConfig.Def_PDict_FightPower_TotalEx):
-#        return
-#    
-#    fightPower = playerFightPower % ChConfig.Def_PerPointValue
-#    fightPowerEx = playerFightPower / ChConfig.Def_PerPointValue
-#    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_Total, fightPower,
-#                                       ChConfig.Def_PDictType_FightPower)
-#    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_TotalEx, fightPowerEx,
-#                                       ChConfig.Def_PDictType_FightPower)
-#    
-#    GameWorld.DebugLog("更新总战斗力:playerFightPower=%s" % (playerFightPower), curPlayer.GetPlayerID())
-#    
-#    UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FightPower, fightPowerEx, fightPower)
+def UpdatePlayerBillboardName(curPlayer):
+    ## 更新排行榜中的玩家名字记录
     
-#    if bType == ShareDefine.Def_BT_FightPower:
-#        playerID = bID
-#        fightPowerTotal = cmpValue * ChConfig.Def_PerPointValue + cmpValue2
-#        familyID = exInfo[0]
-#        playerJob = bType2
-#        
-#        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
-#        if curPlayer:
-#            PlayerControl.SetFightPower(curPlayer, fightPowerTotal)
-#            
-#        #更新战盟成员战力
-#        PlayerFamily.UpdFamilyMemberFightPower(familyID, playerID, fightPowerTotal)
-#        
-#        #职业战力榜
-#        job = playerJob % 10
-#        if job in ShareDefine.JobFightPowerBillboardDict:
-#            jobBType = ShareDefine.JobFightPowerBillboardDict[job]
-#            UpdatePlayerBillboard(bID, bName, bName2, jobBType, bType2, value1, value2, cmpValue, autoSort, cmpValue2, **kwargs)
+    playerID = curPlayer.GetPlayerID()
+    updName = curPlayer.GetPlayerName()
+    billboardMgr = DBDataMgr.GetBillboardMgr()
+    for billboardType in ShareDefine.BillboardTypeList:
+        if billboardType in ShareDefine.FamilyBillboardList:
+            continue
+        groupList = billboardMgr.GetBillboardGroupList(billboardType)
+        for billboardType, groupValue1, groupValue2 in groupList:
+            billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
+            billData = billboardObj.FindByID(playerID)
+            if not billData:
+                continue
+            billData.SetName1(updName)
+            
+    # 跨服榜更新, 待处理
     return
 
-#def __CheckFightPowerCanUpdate(curPlayer, key, fightPower, isForceUpdate=False, isCheckRule=True, key2=None):
-#    ''' 检查玩家可否更新战斗力
-#    @param curPlayer 玩家实例
-#    @param key 战斗力类型对应key
-#    @param fightPower 当前战斗力
-#    @param isForceUpdate 是否强制更新(若设置强制更新,在某些潜规则下也不一定能强制更新,如GM等)
-#    @param isCheckRule 是否检查战力范围更新差值
-#    @return True-可更新 
-#    '''
-#    if fightPower <= 0:
-#        return False
-#    
-#    historyFightPower = curPlayer.NomalDictGetProperty(key, 0, ChConfig.Def_PDictType_FightPower)
-#    if key2 != None:
-#        historyFightPower += curPlayer.NomalDictGetProperty(key2, 0, ChConfig.Def_PDictType_FightPower) * ChConfig.Def_PerPointValue
-#        
-#    if not __CanPlayerBillboardComm(curPlayer):
-#        return False
-#    
-#    if isForceUpdate:
-#        GameWorld.DebugLog("战斗力更新检查:强制更新 key=%s,fightPower=%s,history=%s" 
-#                           % (key, fightPower, historyFightPower), curPlayer.GetPlayerID())
-#        return True
-#    
-#    if fightPower == historyFightPower:
-#        GameWorld.DebugLog("战斗力更新检查:与上次相同,默认不更新 key=%s,fightPower=%s,history=%s" 
-#                           % (key, fightPower, historyFightPower), curPlayer.GetPlayerID())
-#        return False
-#    
-#    return True
-
-def UpdateHorseBillboard(curPlayer, isForceUpdate=False, isUpdateTotal=True):
-    ##更新玩家坐骑排行榜
+def UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate=False, isCheckRule=True):
+    ##更新玩家总战斗力
     return
 
 def UpdatePyPetBillboard(curPlayer, isForceUpdate=False, isUpdateTotal=True):
@@ -155,7 +106,7 @@
 #    
 #    return True
 
-def UpdatePlayerBillboard(curPlayer, bType, cmpValue, cmpValue2=0, cmpValue3=0, value1=None, value2=0, autoSort=False, **kwargs):
+def UpdatePlayerBillboard(curPlayer, bType, cmpValue, cmpValue2=0, cmpValue3=0, autoSort=False, **kwargs):
     ## 更新玩家排行榜
     
     #if not cmpValue and not cmpValue2 and not cmpValue3:
@@ -165,11 +116,12 @@
     playerID = curPlayer.GetID()
     playerName = curPlayer.GetPlayerName()
     playerOpInfo = GetBillboardOperateInfo(curPlayer)
-    if value1 == None:
-        value1 = curPlayer.GetOfficialRank()
+    value1 = curPlayer.GetOfficialRank()
+    value2 = PlayerControl.GetTitleID(curPlayer)
     kwargs["value3"] = curPlayer.GetFace()
     kwargs["value4"] = curPlayer.GetFacePic()
     kwargs["value5"] = curPlayer.GetModelMark()
+    kwargs["value6"] = curPlayer.GetEquipShowSwitch()
     
     groupValue1 = 0
     UpdateBillboard(bType, groupValue1, playerID, playerName, playerOpInfo, playerJob, value1, value2, 
@@ -199,19 +151,12 @@
     cmpValueChange = isNewData or billboardData.GetCmpValue() != cmpValue or billboardData.GetCmpValue2() != cmpValue2 \
         or (cmpValue3 and billboardData.GetCmpValue3() != cmpValue3)
         
-    # 没设置值默认为时间time,先上榜的排前面
-    if cmpValue3 == 0:
-        # 时间权值仅在比较值变更的情况下才更新, 防止其他附属值更新时导致比较值相同的玩家名次间会变动的问题
-        if cmpValueChange:
-            calcTime = GameWorld.ChangeTimeStrToNum("2090-01-01 00:00:00")
-            cmpValue3 = max(0, calcTime - int(time.time())) # 比较值3如果没指定值则默认存当前更新的time
-        else:
-            cmpValue3 = billboardData.GetCmpValue3()
-            
     billboardData.SetCmpValue(cmpValue)
     billboardData.SetCmpValue2(cmpValue2)
     billboardData.SetCmpValue3(cmpValue3)
-    
+    if cmpValueChange or not billboardData.GetTime():
+        billboardData.SetTime(int(time.time()))
+        
     GameWorld.DebugLog("更新排行榜值: billboardType=%s,groupValue1=%s,groupValue2=%s,dataID=%s,cmpValueChange=%s,cmpValue=%s,cmpValue2=%s,cmpValue3=%s" 
                        % (billboardType, groupValue1, groupValue2, dataID, cmpValueChange,
                           cmpValue, cmpValue2, cmpValue3), dataID)
@@ -273,15 +218,6 @@
     cmpValueChange = isNewData or billboardData.GetCmpValue() != cmpValue or billboardData.GetCmpValue2() != cmpValue2 \
         or (cmpValue3 and billboardData.GetCmpValue3() != cmpValue3)
         
-    # 没设置值默认为时间time,先上榜的排前面
-    if cmpValue3 == 0:
-        # 时间权值仅在比较值变更的情况下才更新, 防止其他附属值更新时导致比较值相同的玩家名次间会变动的问题
-        if cmpValueChange:
-            calcTime = GameWorld.ChangeTimeStrToNum("2090-01-01 00:00:00")
-            cmpValue3 = max(0, calcTime - int(time.time())) # 比较值3如果没指定值则默认存当前更新的time
-        else:
-            cmpValue3 = billboardData.GetCmpValue3()
-            
     # 更新所有值
     billboardData.SetType(billboardType)
     billboardData.SetGroupValue1(groupValue1)
@@ -303,7 +239,9 @@
     billboardData.SetCmpValue(cmpValue)
     billboardData.SetCmpValue2(cmpValue2)
     billboardData.SetCmpValue3(cmpValue3)
-    
+    if cmpValueChange or not billboardData.GetTime():
+        billboardData.SetTime(int(time.time()))
+        
     GameWorld.DebugLog("更新排行榜值: billboardType=%s,groupValue1=%s,groupValue2=%s,dataID=%s,isNewData=%s,cmpValueChange=%s,type2=%s,value1=%s,value2=%s,cmpValue=%s,cmpValue2=%s,cmpValue3=%s,%s" 
                        % (billboardType, groupValue1, groupValue2, dataID, isNewData, cmpValueChange,
                           type2, value1, value2, cmpValue, cmpValue2, cmpValue3, kwargs), dataID)

--
Gitblit v1.8.0