| | |
| | | import PlayerSuccess
|
| | | import CrossPlayerData
|
| | | import PassiveBuffEffMng
|
| | | import PlayerFamilyRedPacket
|
| | | import FunctionNPCCommon
|
| | | import FormulaControl
|
| | | import PlayerGoldGift
|
| | | import PlayerFlashSale
|
| | |
| | | SkillShell.AttackFailNotify(curPlayer, useSkillData)
|
| | | GameWorld.DebugLog("----攻击失败 可能是技能CD %s"%skillTypeID)
|
| | | # 根据策划需求 以客户端动作为标准,不可攻击状态也进入CD
|
| | | playerSkill = curPlayer.GetSkillManager().FindSkillBySkillTypeID(useSkillData.GetSkillTypeID())
|
| | | if playerSkill and playerSkill.GetRemainTime() == 0:
|
| | | SkillCommon.SetSkillRemainTime(playerSkill, PlayerControl.GetReduceSkillCDPer(curPlayer), tick, curPlayer)
|
| | |
|
| | | BaseAttack.Sync_AttackResult(curPlayer, useSkillData)
|
| | | |
| | | if useSkillData and useSkillData.GetSkillID() != ChConfig.Def_SkillID_Somersault:
|
| | | # 跟随玩家同频率攻击
|
| | | PetControl.PetFight(curPlayer, tick)
|
| | |
| | | return True
|
| | | equipID = result[0]
|
| | | equipPlace = result[1]
|
| | | if equipPlace == ShareDefine.retGuard:
|
| | | if equipPlace in [ShareDefine.retGuard1, ShareDefine.retGuard2]:
|
| | | PlayerControl.NotifyCode(curPlayer, 'Guardian_Timeout', [equipID, spaceIndex])
|
| | | elif equipPlace == ShareDefine.retWing:
|
| | | PlayerControl.NotifyCode(curPlayer, 'WingTiyan_Timeout')
|
| | |
| | | PlayerGoldGift.FirstGoldTryItemOutTime(curPlayer)
|
| | |
|
| | | # 广播卸装
|
| | | if equipIndex in ChConfig.Def_SyncEquipStateByIndex:
|
| | | curPlayer.Sync_UnEquipItem(equipID, equipPlace)
|
| | | if equipIndex in PlayerControl.GetFaceEquipIndexList(curPlayer) or equipPlace in ChConfig.Def_SyncEquipStateByIndex:
|
| | | curPlayer.Sync_UnEquipItem(equipID, equipIndex)
|
| | | return True
|
| | | #---------------------------------------------------------------------
|
| | | ##全局定时器调用, 刷新玩家状态
|
| | |
| | | PlayerFlashSale.ProcessFlashSaleMail(curPlayer, tick)
|
| | | #地图经验
|
| | | ProcessAreaExp(curPlayer, tick)
|
| | | #神秘商店刷新
|
| | | FunctionNPCCommon.CheckMysticalShopRefresh(curPlayer, tick)
|
| | | #跨服数据同步,放最后
|
| | | CrossPlayerData.ProcessCrossPlayer(curPlayer, tick)
|
| | | return
|
| | |
| | | ##给场景经验
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene):
|
| | | return
|
| | | crossMapID = PlayerControl.GetCrossMapID(curPlayer)
|
| | | mapID = crossMapID if crossMapID else GameWorld.GetMap().GetMapID()
|
| | | neutralMapExpAwardDict = IpyGameDataPY.GetFuncEvalCfg('NeutralMapExpAward', 1, {})
|