| | |
| | | import PlayerFace
|
| | | import PlayerBackup
|
| | | import PlayerOnline
|
| | | import PlayerGoldRush
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | #---------------------------------------------------------------------
|
| | |
| | | #放在刷buff前
|
| | | #ProcessPassiveSkill(curPlayer, tick)
|
| | |
|
| | | ProcessPlayerSecond(curPlayer, tick)
|
| | | ProcessPlayerMinute(curPlayer, tick)
|
| | |
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).DoRefreshRoleAttr()
|
| | |
| | | #反外挂验证
|
| | | #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):
|
| | |
| | | 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
|