/// <summary> /// 坐骑模型被重刷,ride点被重建,乘骑恢复 /// </summary> /// <param name="playerEntity"></param> /// <returns></returns> public bool RecoverExecRide(PeEntity playerEntity) { if (_monsterEntity && playerEntity && _rides) { Pathea.MotionMgrCmpt mmc = playerEntity.motionMgr; OperateCmpt operate = playerEntity.operateCmpt; if (null != mmc && null != operate) { PERide ride = _rides.GetUseable(); if (ride && ride.CanOperateMask(EOperationMask.Ride)) { if (mmc.IsActionRunning(Pathea.PEActionType.Ride)) { mmc.EndImmediately(Pathea.PEActionType.Ride); } return(ride.StartOperate(operate, EOperationMask.Ride)); } else { Debug.Log("Try recover ride failed!! ride is null!"); } } else { Debug.LogFormat("Try recover ride failed!! mmc is null:{0} ; operate is null:{1} ", null == mmc, null == operate); } } else { Debug.LogFormat("Try recover ride failed!! _monsterEntity is null:{0} ; playerEntity is null:{1} ; _rides is null:{2} ", null == _monsterEntity, null == playerEntity, null == _rides); } return(false); }
void ActiveEquipment(PEHoldAbleEquipment equipment, bool active, bool immediately = false) { if (active) { if (!m_MotionMgr.IsActionRunning(equipment.m_HandChangeAttr.m_ActiveActionType) && m_MotionMgr.DoAction(equipment.m_HandChangeAttr.m_ActiveActionType)) { m_Weapon = equipment as IWeapon; if (null != m_Weapon && null != equipment.m_ItemObj) { m_WeaponID = equipment.m_ItemObj.instanceId; } else { m_WeaponID = -1; } } } else { if ((immediately && m_MotionMgr.EndImmediately(equipment.m_HandChangeAttr.m_ActiveActionType)) || (m_MotionMgr.IsActionRunning(equipment.m_HandChangeAttr.m_ActiveActionType) && m_MotionMgr.DoAction(equipment.m_HandChangeAttr.m_UnActiveActionType))) { m_Weapon = null; m_WeaponID = -1; } } }
void CheckRelation(bool doImmediately) { //End other action for (int i = 0; i < m_RelationData.m_PauseAction.Count; ++i) { m_MotionMgr.PauseAction(m_RelationData.m_PauseAction[i], m_Action.ActionType); } for (int i = 0; i < m_RelationData.m_EndAction.Count; ++i) { if (doImmediately) { m_MotionMgr.EndImmediately(m_RelationData.m_EndAction[i]); } else { m_MotionMgr.EndAction(m_RelationData.m_EndAction[i]); } } for (int i = 0; i < m_RelationData.m_EndImmediately.Count; ++i) { m_MotionMgr.EndImmediately(m_RelationData.m_EndImmediately[i]); } }
void UpdateOtherAction() { #if UNITY_EDITOR if (Input.GetKeyDown(KeyCode.Keypad5)) { mPackage.Add(1277, 1); PeMap.StaticPoint.Mgr.Instance.UnveilAll(); } #endif if (PeCamera.isFreeLook || !m_ActionEnable) { return; } if (PeInput.Get(PeInput.LogicFunction.Jet)) { mMotionMgr.DoAction(PEActionType.JetPack); } else { mMotionMgr.EndImmediately(PEActionType.JetPack); } if (PeInput.Get(PeInput.LogicFunction.ClimbForwardLadderOnOff)) { DragItemMousePickLadder ladder = MousePicker.Instance.curPickObj as DragItemMousePickLadder; if (null != ladder) { ladder.TryClimbLadder(this); } } mEquip.HoldSheild(PeInput.Get(PeInput.LogicFunction.Block)); if (PeInput.Get(PeInput.LogicFunction.DrawWeapon)) { if (m_DisableActionByUI && mEquip.ISAimWeapon) { m_DisableActionByUI = false; } mEquip.ActiveWeapon(true); } if (PeInput.Get(PeInput.LogicFunction.Attack)) { if (SystemSettingData.Instance.AttackWhithMouseDir) { Vector3 dir = GetMouseClickDir(); mEquip.SwordAttack(dir); mEquip.TwoHandWeaponAttack(dir); } else { mEquip.SwordAttack(m_MoveDir.normalized); mEquip.TwoHandWeaponAttack(m_MoveDir.normalized); } } if (PeInput.Get(PeInput.LogicFunction.SheatheWeapon)) { mEquip.ActiveWeapon(false); } if (PeInput.Get(PeInput.LogicFunction.GatherHerb)) { mMotionMgr.DoAction(PEActionType.Gather); } if (PeInput.Get(PeInput.LogicFunction.DrawWater)) { mMotionMgr.DoAction(PEActionType.Draw); } if (PeInput.Get(PeInput.LogicFunction.TakeForwardVehicleOnOff)) { if (null != mPassenger) { if (mPassenger.IsOnVCCarrier) { mPassenger.GetOffCarrier(); } else if (null != MousePicker.Instance.curPickObj) { DragItemMousePickCarrier carrier = MousePicker.Instance.curPickObj as DragItemMousePickCarrier; if (null != carrier) { WhiteCat.CarrierController controller = carrier.GetComponent <WhiteCat.CarrierController> (); if (null != controller) { int seatIndex = controller.FindEmptySeatIndex(); if (seatIndex > -2) { if (GameConfig.IsMultiMode) { PEActionParamDrive param = PEActionParamDrive.param; param.controller = controller; param.seatIndex = seatIndex; if (mMotionMgr.CanDoAction(PEActionType.Drive, param)) { WhiteCat.CreationSkEntity skEntity = controller.GetComponent <WhiteCat.CreationSkEntity>(); if (skEntity != null && skEntity._net != null) { if (!ForceSetting.Instance.Conflict(skEntity._net.TeamId, PlayerNetwork.mainPlayerId)) { PlayerNetwork.mainPlayer.RPCServer(EPacketType.PT_InGame_GetOnVehicle, skEntity._net.Id); } else { new PeTipMsg(PELocalization.GetString(82209000), PeTipMsg.EMsgLevel.Warning); } } } } else { mPassenger.GetOn(controller, seatIndex, true); } } } } } } } if (PeInput.Get(PeInput.LogicFunction.Cut)) { mMotionMgr.DoAction(PEActionType.Fell); } else { mMotionMgr.EndAction(PEActionType.Fell); } if (PeInput.Get(PeInput.LogicFunction.EndShooting)) { mMotionMgr.EndAction(PEActionType.GunFire); mMotionMgr.EndAction(PEActionType.Pump); } else if (PeInput.Get(PeInput.LogicFunction.BegShooting)) { PEActionParamB param = PEActionParamB.param; param.b = false; mMotionMgr.DoAction(PEActionType.GunFire, param); mMotionMgr.DoAction(PEActionType.BowShoot); mMotionMgr.DoAction(PEActionType.Throw); mMotionMgr.DoAction(PEActionType.Pump); mMotionMgr.DoAction(PEActionType.RopeGunShoot); } if (m_MouseMoveMode) { if (PeInput.Get(PeInput.LogicFunction.BegShooting)) { mMove.MoveTo(m_MouseHitPos, SpeedState.Sprint); } if (Input.GetMouseButtonDown(1)) { mMove.MoveTo(Vector3.zero, SpeedState.Sprint); } } if (PeInput.Get(PeInput.LogicFunction.EndDigging)) { mMotionMgr.EndAction(PEActionType.Dig); } else if (PeInput.Get(PeInput.LogicFunction.BegDigging)) { PEActionParamV param = PEActionParamV.param; param.vec = Vector3.zero; mMotionMgr.DoAction(PEActionType.Dig, param); } if (PeInput.Get(PeInput.LogicFunction.Reload)) { mEquip.Reload(); } if (PeInput.Get(PeInput.LogicFunction.BuildMode)) { if (mMotionMgr.IsActionRunning(PEActionType.Build)) { mMotionMgr.EndAction(PEActionType.Build); } else { if (RandomDungenMgrData.InDungeon) { new PeTipMsg("[C8C800]" + PELocalization.GetString(82209004), PeTipMsg.EMsgLevel.Norm, PeTipMsg.EMsgType.Stroy); return; } if (Pathea.SingleGameStory.curType == Pathea.SingleGameStory.StoryScene.MainLand || Pathea.SingleGameStory.curType == Pathea.SingleGameStory.StoryScene.TrainingShip) { mMotionMgr.DoAction(PEActionType.Build); } else { new PeTipMsg("[C8C800]" + PELocalization.GetString(82209004), PeTipMsg.EMsgLevel.Norm, PeTipMsg.EMsgType.Stroy); } } } }