public override void Process() { XLog.Log.Debug("CPtcM2CNtf_CastSkill"); if (Singleton <ClientMain> .singleton.EGameState == EnumGameState.eState_GameMain) { UseSkillParam useSkillParam = new UseSkillParam(); useSkillParam.m_dwRoleId = this.m_dwRoleId; useSkillParam.m_dwSkillId = this.m_dwSkillId; useSkillParam.m_dwTargetRoleId = this.m_dwTargetRoleId; useSkillParam.m_oTargetPos = this.m_oTargetPos; Singleton <BeastManager> .singleton.OnUseSkill(this.m_dwRoleId, EnumSkillType.eSkillType_Skill, this.m_dwSkillId, useSkillParam); Singleton <SequenceShowManager> .singleton.UseSeqShow = true; if (Singleton <SequenceShowManager> .singleton.UseSeqShow) { Singleton <SequenceShowManager> .singleton.OnMsg(this); } //让神兽说出话 Beast beast = Singleton <BeastManager> .singleton.GetBeastById(this.m_dwRoleId); if (beast != null) { beast.ResetMomentForVoiceInRound(); } /* * if (beast.Role) * { * Singleton<BeastRole>.singleton.LockUseSkill(EnumSkillType.eSkillType_Skill, this.m_dwSkillId, false); * } */ } }
/// <summary> /// 玩家使用技能,根据不同的技能类型用不同的技能管理器 /// </summary> /// <param name="type"></param> /// <param name="skillId"></param> /// <param name="param"></param> public void OnUseSkill(EnumSkillType type, int skillId, UseSkillParam param) { //if (type == EnumSkillType.eSkillType_Skill) //{ // this.m_skillManager.OnUseSkill(skillId, param); //} }
/// <summary> /// 技能使用 /// </summary> /// <param name="param"></param> public virtual void OnUse(UseSkillParam param) { this.m_log.Debug("OnUse:" + this.m_unskillId); UseSkillEvent useSkillEvent = new UseSkillEvent(); useSkillEvent.DurationTime = 1f; useSkillEvent.UseSkillParam = param; Singleton <ActEventManager> .singleton.AddEvent(useSkillEvent); }
/// <summary> /// 玩家使用技能 /// </summary> /// <param name="beastId"></param> /// <param name="type"></param> /// <param name="skillId"></param> /// <param name="param"></param> public void OnUseSkill(long beastId, EnumSkillType type, int skillId, UseSkillParam param) { Beast beast = this.GetBeastById(beastId); if (beast != null) { beast.OnUseSkill(type, skillId, param); } }
/// <summary> /// 使用技能 /// </summary> /// <param name="skillId"></param> /// <param name="param"></param> public void OnUseSkill(int skillId, UseSkillParam param) { if (SkillGameManager.m_dicAllSkillBase.ContainsKey(skillId)) { SkillBase skill = SkillGameManager.m_dicAllSkillBase[skillId]; if (skill != null) { skill.OnUse(param); } } }
/// <summary> /// 具体技能使用表现 /// </summary> /// <param name="useSkillParam"></param> public virtual void OnUseSkillAction(UseSkillParam useSkillParam) { if (useSkillParam != null) { Beast beast = Singleton <BeastManager> .singleton.GetBeastById(useSkillParam.m_dwRoleId); if (beast != null) { Vector3 forward = beast.Forward; if (useSkillParam.m_dwTargetRoleId > 0 && useSkillParam.m_dwTargetRoleId != useSkillParam.m_dwRoleId) { Beast targetBeast = Singleton <BeastManager> .singleton.GetBeastById(useSkillParam.m_dwTargetRoleId); if (targetBeast != null) { forward = beast.RealPos3D - targetBeast.RealPos3D; } } } } }