| | |
| | | import SkillShell
|
| | | import BuffSkill
|
| | | import PlayerControl
|
| | | import ChEquip
|
| | | import SkillCommon
|
| | | import FBLogic
|
| | | import AttackCommon
|
| | | import ChItem
|
| | | import PlayerGMOper
|
| | | import ItemCommon
|
| | | import OperControlManager
|
| | | import ShareDefine
|
| | | import PlayerAutoCheckOnline
|
| | | import PlayerGameWallow
|
| | | import ReadChConfig
|
| | | import PlayerDienstgrad
|
| | | import PlayerVip
|
| | | import IpyGameDataPY
|
| | | import PlayerFB
|
| | | import GameObj
|
| | | import GameMap
|
| | | import math
|
| | | import time
|
| | | import PetControl
|
| | | import ItemControler
|
| | | import PlayerGuaji
|
| | | import AICommon
|
| | | import PlayerSuccess
|
| | | import CrossPlayerData
|
| | | import PassiveBuffEffMng
|
| | | import FunctionNPCCommon
|
| | | import FormulaControl
|
| | | import PlayerGoldGift
|
| | | import PlayerActLianqi
|
| | | import PlayerActFamilyGCZ
|
| | | import PlayerFlashSale
|
| | | import PlayerChatBox
|
| | | import PlayerFace
|
| | | import PlayerYinji
|
| | | import PlayerActivity
|
| | | import PlayerBackup
|
| | | import MirrorAttack
|
| | | import PlayerOnline
|
| | | import PlayerGoldRush
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | #---------------------------------------------------------------------
|
| | |
| | | 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亿支持,功能待定
|
| | |
| | | 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])
|
| | |
| | | # @remarks 刷新玩家在线时间
|
| | | def ProcessPlayer_OnlineTime(curPlayer, tick):
|
| | | if not CommonCheckTick(curPlayer, tick, ChConfig.TYPE_Player_Tick_PlayerOnlineTime):
|
| | | return
|
| | | return |
| | |
|
| | | #处理防沉迷在线时间,
|
| | | PlayerGameWallow.DoLogic_WallowOnlineTime(curPlayer, tick) |
| | |
|
| | | return
|
| | |
|
| | |
|
| | |
| | | #定时备档
|
| | | PlayerBackup.CheckPlayerBackup(curPlayer)
|
| | |
|
| | | #玩家镜像战斗AI
|
| | | #MirrorAttack.ProcessPlayerMirrorAI(curPlayer, tick)
|
| | | |
| | | #被GM封状态响应
|
| | | ProcessGMOperLogic(curPlayer, tick)
|
| | |
|
| | |
| | | #放在刷buff前
|
| | | #ProcessPassiveSkill(curPlayer, tick)
|
| | |
|
| | | ProcessPlayerSecond(curPlayer, tick)
|
| | | ProcessPlayerMinute(curPlayer, tick)
|
| | |
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).DoRefreshRoleAttr()
|
| | |
| | | #反外挂验证
|
| | | #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):
|
| | |
| | | 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
|