hxp
2 天以前 7bf88131759c20d54e175010d5b80da5d8148713
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