From 38bdbd5e4429a852dc8b78cf0345016a8df83dd7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 九月 2025 14:44:29 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(上阵星级加成属性取有效最大星级;吞噬升星优先随机提升有效的槽位;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py | 145 +++++++++++++++--------------------------------
1 files changed, 47 insertions(+), 98 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 cc3e3da..bb56211 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
@@ -15,15 +15,11 @@
#"""Version = 2018-03-06 11:00"""
#-------------------------------------------------------------------------------
-import ChConfig
import GameWorld
import ShareDefine
-import PlayerControl
-import OpenServerCampaign
import ChPyNetSendPack
import NetPackCommon
import IpyGameDataPY
-import GameFuncComm
import DBDataMgr
import time
@@ -38,19 +34,13 @@
billboardMgr = DBDataMgr.GetBillboardMgr()
for billboardType in drBillboardTypeList:
- if billboardType in [ShareDefine.Def_CBT_BossTrialSubmitBak, ShareDefine.Def_CBT_BossTrialSubmitFamilyBak, ShareDefine.Def_CBT_CrossRealmPK]:
+ if billboardType in []:
continue
groupList = billboardMgr.GetBillboardGroupList(billboardType)
for billboardType, groupValue1, groupValue2 in groupList:
billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
billboardObj.SaveDRData("OnDay")
- return
-
-def DoBillboardOpen(curPlayer):
- ## 排行榜开启时需要处理的
- #UpdatePlayerBillboardOnLeaveServer(curPlayer, True) # 主动同步一次榜单
- #OpenServerCampaign.DoBillboardOpen(curPlayer) # 同步开服活动榜单
return
def BillboardOnLogin(curPlayer):
@@ -71,35 +61,30 @@
# 跨服服务器不用更新本服榜
return
- UpdatePlayerLVBillboard(curPlayer) # 等级榜
UpdatePlayerFPTotalBillboard(curPlayer, True) # 战斗力榜
UpdateHorseBillboard(curPlayer, True, False) # 坐骑榜
UpdatePyPetBillboard(curPlayer, True, False) # 灵宠榜
UpdateRealmBillboard(curPlayer) # 境界榜
-
- if isAll:
- UpdateRuneTowerBillboard(curPlayer)
-
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)
+#
+# 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)
# if bType == ShareDefine.Def_BT_FightPower:
# playerID = bID
@@ -121,83 +106,47 @@
# UpdatePlayerBillboard(bID, bName, bName2, jobBType, bType2, value1, value2, cmpValue, autoSort, cmpValue2, **kwargs)
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 __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):
##更新玩家坐骑排行榜
-
- HorseFightPower = PlayerControl.GetMFPFightPower(curPlayer, ShareDefine.Def_MFPType_Horse)
- if not HorseFightPower:
- return
-
- fightPower = HorseFightPower % ChConfig.Def_PerPointValue
- fightPowerEx = HorseFightPower / ChConfig.Def_PerPointValue
-
- UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FightPower_Horse, fightPowerEx, fightPower)
-
- if isUpdateTotal:
- UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate)
return
def UpdatePyPetBillboard(curPlayer, isForceUpdate=False, isUpdateTotal=True):
## 更新宠物排行榜
return
-# petMaxAtk = PlayerControl.GetPetMaxAtk(curPlayer)
-# if not petMaxAtk:
-# return
-# UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FightPower_Pet, petMaxAtk)
-#
-# if isUpdateTotal:
-# UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate)
-# return
-
-def UpdatePlayerLVBillboard(curPlayer, isForceUpdate=True):
- ##更新玩家等级排行榜
- UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_LV, curPlayer.GetLV())
- return
-
-def UpdateRuneTowerBillboard(curPlayer):
- ##更新玩家符印塔排行榜
- passLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
- if not passLV:
- return
- UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_TrialTower, passLV)
- return
def UpdateRealmBillboard(curPlayer):
##境界榜
- if not curPlayer.GetOfficialRank():
- return
- UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_Realm, curPlayer.GetOfficialRank())
return
def __CanPlayerBillboardComm(curPlayer):
--
Gitblit v1.8.0