From 23876f36a929f7e8f1fe94ae543b03bc24a61f1e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 25 二月 2025 20:24:08 +0800
Subject: [PATCH] 10263 【越南】【英文】【BT】【GM】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(镜像回收时同步清除地图中缓存的镜像被动buff效果;)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCharm.py | 39 +++++++++++++++++++++++++++++++++++++++
1 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCharm.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCharm.py
index fa0e9b7..def7d09 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCharm.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerCharm.py
@@ -17,6 +17,7 @@
import CommFunc
import ShareDefine
+import IpyGameDataPY
import PlayerControl
import ChPyNetSendPack
import PyGameDataStruct
@@ -126,6 +127,21 @@
Sync_PlayerCharmInfo(curPlayer)
return
+def OnMixServerFirstLogin(curPlayer):
+ playerID = curPlayer.GetPlayerID()
+ charmValueRecMgr = PyDataManager.GetDBPyCharmValueRecManager()
+ if playerID not in charmValueRecMgr.charmTotalDict:
+ return
+ recTypeValueDict = charmValueRecMgr.charmTotalDict.get(playerID, {})
+ charmTotal = recTypeValueDict.get(CharmValueRecType_Total, 0)
+ charmWeek = recTypeValueDict.get(CharmValueRecType_Week, 0)
+ charmDay = recTypeValueDict.get(CharmValueRecType_Day, 0)
+ GameWorld.Log("合服首登同步魅力榜单: charmTotal=%s,charmWeek=%s,charmDay=%s" % (charmTotal, charmWeek, charmDay), playerID)
+ PlayerBillboard.UpdatePlayerBillboardEx(curPlayer, playerID, ShareDefine.Def_BT_CharmTotal, charmTotal)
+ PlayerBillboard.UpdatePlayerBillboardEx(curPlayer, playerID, ShareDefine.Def_BT_CharmWeek, charmWeek)
+ PlayerBillboard.UpdatePlayerBillboardEx(curPlayer, playerID, ShareDefine.Def_BT_CharmDay, charmDay)
+ return
+
def GetPlayerCharmOfferSortList(playerID, recType):
## 获取排序后的玩家魅力贡献榜
@@ -160,6 +176,29 @@
charmValueRecMgr.charmValueRecDict[playerID] = {}
recTypeDataDict = charmValueRecMgr.charmValueRecDict[playerID]
+ dayCharmMax = IpyGameDataPY.GetFuncCfg("CharmCfg", 1)
+ couple = PyDataManager.GetDBPyCoupleManager().GetCouple(playerID)
+ coupleID = couple.GetCoupleID(playerID) if couple else 0
+ if dayCharmMax and offerPlayerID not in [playerID, coupleID]:
+ if CharmValueRecType_Day not in recTypeDataDict:
+ recTypeDataDict[CharmValueRecType_Day] = {}
+ dayOfferPlayerDict = recTypeDataDict[CharmValueRecType_Day]
+ dayFromOtherTotal = 0 # 今日非伴侣来源魅力
+ dayFromOtherList = []
+ for oID, recData in dayOfferPlayerDict.items():
+ if oID not in [playerID, coupleID]:
+ dayFromOtherTotal += recData.CharmValue
+ dayFromOtherList.append([oID, recData.CharmValue, dayFromOtherTotal])
+ if dayFromOtherTotal >= dayCharmMax:
+ GameWorld.Log("今日非自己或伴侣赠送获得魅力值已达上限! dayFromOtherTotal=%s >= %s, %s"
+ % (dayFromOtherTotal, dayCharmMax, dayFromOtherList), playerID)
+ return
+ canAddToday = dayCharmMax - dayFromOtherTotal
+ GameWorld.DebugLog("addValue=%s,canAddToday=%s,dayCharmMax=%s,dayFromOtherTotal=%s,%s"
+ % (addValue, canAddToday, dayCharmMax, dayFromOtherTotal, dayFromOtherList), playerID)
+ addValue = min(canAddToday, addValue)
+ GameWorld.DebugLog("实际增加: addValue=%s" % (addValue), playerID)
+
if playerID not in charmValueRecMgr.charmTotalDict:
charmValueRecMgr.charmTotalDict[playerID] = {}
recTypeValueDict = charmValueRecMgr.charmTotalDict[playerID]
--
Gitblit v1.8.0