From 7bf88131759c20d54e175010d5b80da5d8148713 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期日, 28 九月 2025 19:47:56 +0800 Subject: [PATCH] 16 卡牌服务端(删除资源找回;前端自定义副本,公共扫荡;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py | 65 ++++++++++---------------------- 1 files changed, 20 insertions(+), 45 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py index 2f28b04..fef7d1b 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py @@ -42,6 +42,7 @@ import PlayerFace import PlayerBackup import PlayerOnline +import PlayerGoldRush #--------------------------------------------------------------------- #--------------------------------------------------------------------- @@ -1005,6 +1006,7 @@ #放在刷buff前 #ProcessPassiveSkill(curPlayer, tick) + ProcessPlayerSecond(curPlayer, tick) ProcessPlayerMinute(curPlayer, tick) PlayerOnline.GetOnlinePlayer(curPlayer).DoRefreshRoleAttr() @@ -1030,29 +1032,34 @@ #反外挂验证 #PlayerAutoCheckOnline.HackDefense(curPlayer, tick) - #副本相关时间处理 - #PlayerFB.DoPlayerFBTimeProcess(curPlayer, tick) - #恶意攻击时间处理 #AttackCommon.ProcessMaliciousAttackPlayer(curPlayer, tick) - #成就 - PlayerSuccess.FinishDelayAddSuccessProgress(curPlayer, tick, False) - #限时抢购 - PlayerFlashSale.ProcessFlashSaleMail(curPlayer, tick) - #地图经验 - #ProcessAreaExp(curPlayer, tick) - #神秘商店刷新 - FunctionNPCCommon.CheckMysticalShopRefresh(curPlayer, tick) + #活跃放置 #PlayerActivity.ProcessActivityPlace(curPlayer) - #自定义场景 - #FBLogic.OnCustomSceneProcess(curPlayer, tick) #炼器 #PlayerActLianqi.OnProcess(curPlayer) #仙盟攻城战 #PlayerActFamilyGCZ.OnProcess(curPlayer) #跨服数据同步,放最后 #CrossPlayerData.ProcessCrossPlayer(curPlayer, tick) + return + +def ProcessPlayerSecond(curPlayer, tick): + #玩家每秒处理,玩家Process可能每秒多次,所以增加一个每秒处理的,减少执行次数 + lastTick = curPlayer.GetDictByKey("ProcessPlayerSecond") + if tick - lastTick < 1000: + return + curPlayer.SetDict("ProcessPlayerSecond", tick) + + #成就 + PlayerSuccess.FinishDelayAddSuccessProgress(curPlayer, tick, False) + #限时抢购 + PlayerFlashSale.ProcessFlashSaleMail(curPlayer, tick) + #神秘商店刷新 + FunctionNPCCommon.CheckMysticalShopRefresh(curPlayer, tick) + #淘金 + PlayerGoldRush.OnProcess(curPlayer) return def ProcessPlayerMinute(curPlayer, tick): @@ -1215,36 +1222,4 @@ return curPlayer.SetDict(ChConfig.Def_PDict_BossStateTick, 0) PlayerControl.SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_BossState, 0) - return - -def ProcessAreaExp(curPlayer, tick): - ##给场景经验 - if GameWorld.IsCrossServer(): - return - if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene): - return - crossMapID = PlayerControl.GetCrossMapID(curPlayer) - mapID = crossMapID if crossMapID else GameWorld.GetMap().GetMapID() - if not FBLogic.OnCanGetAreaExp(curPlayer, mapID): - return - neutralMapExpAwardDict = IpyGameDataPY.GetFuncEvalCfg('NeutralMapExpAward', 1, {}) - expAwardInfo = GameWorld.GetDictValueByKey(neutralMapExpAwardDict, mapID) - if not expAwardInfo: - return - if len(expAwardInfo) != 2: - return - secondCD, expFormula = expAwardInfo - lastTick = curPlayer.GetDictByKey(ChConfig.Def_PDict_MapAreaExpTick) - if not lastTick: - curPlayer.SetDict(ChConfig.Def_PDict_MapAreaExpTick, tick) - return - if tick - lastTick < secondCD: - return - curPlayer.SetDict(ChConfig.Def_PDict_MapAreaExpTick, tick) - - reExp = PlayerControl.GetPlayerReExp(curPlayer) - reLV = curPlayer.GetLV() - worldLV = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv) - addExp = eval(FormulaControl.GetCompileFormula('NeutralMapExpAward%s'%mapID, expFormula)) - PlayerControl.PlayerControl(curPlayer).AddExp(addExp, ShareDefine.Def_ViewExpType_SysEx) return -- Gitblit v1.8.0