ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
@@ -24,7 +24,6 @@
import PlayerGMOper
import OperControlManager
import ShareDefine
import PlayerGameWallow
import ReadChConfig
import PlayerDienstgrad
import IpyGameDataPY
@@ -43,6 +42,7 @@
import PlayerFace
import PlayerBackup
import PlayerOnline
import PlayerGoldRush
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -771,7 +771,7 @@
    curPlayer.SetDict(ChConfig.Def_PlayerKey_SitForZhenQi, tick)
    
    vipLV = curPlayer.GetVIPLv()
    vipRate = ShareDefine.Def_MaxRateValue#PlayerVip.GetVIPMuseSitRate(vipLV)
    vipRate = ShareDefine.Def_MaxRateValue
    
    #取得人物当前经验
    curTotalExp = PlayerControl.GetPlayerTotalExp(curPlayer) # 超过20亿支持,功能待定
@@ -787,7 +787,7 @@
                             isSysHint=False)
        
        if vipLV == 0:
            canVipRate = ShareDefine.Def_MaxRateValue#PlayerVip.GetVIPMuseSitRate(ShareDefine.Def_VIPType_Platina)
            canVipRate = ShareDefine.Def_MaxRateValue
            canVipExpValue = int(addExpValue * canVipRate / float(ShareDefine.Def_MaxRateValue))
            #GeRen_chenxin_684833:获得经验%s点,成为VIP经验%s
            PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_684833", [addExpValue, canVipExpValue])
@@ -867,11 +867,8 @@
# @remarks 刷新玩家在线时间
def ProcessPlayer_OnlineTime(curPlayer, tick):
    if not CommonCheckTick(curPlayer, tick, ChConfig.TYPE_Player_Tick_PlayerOnlineTime):
        return
        return
    
    #处理防沉迷在线时间,
    PlayerGameWallow.DoLogic_WallowOnlineTime(curPlayer, tick)
    return
    
@@ -1009,6 +1006,7 @@
    #放在刷buff前
    #ProcessPassiveSkill(curPlayer, tick)
    
    ProcessPlayerSecond(curPlayer, tick)
    ProcessPlayerMinute(curPlayer, tick)
    
    PlayerOnline.GetOnlinePlayer(curPlayer).DoRefreshRoleAttr()
@@ -1034,32 +1032,34 @@
    #反外挂验证
    #PlayerAutoCheckOnline.HackDefense(curPlayer, tick)
    
    #副本相关时间处理
    #PlayerFB.DoPlayerFBTimeProcess(curPlayer, tick)
    #挂机收益
    #PlayerGuaji.ProcessGuaji(curPlayer)
    #恶意攻击时间处理
    #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):
@@ -1222,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