/// <summary> /// client的角色开始释放技能 /// server需要通知视野内其他client播放动画 /// 并添加待结算技能计时, 计时结束后进入技能结算 /// </summary> public void CommandApplyCastSkillBegin(int netId, short skillId, NO_SkillParam parmNo, int[] hitTargetNetIdArr) { // 获取释放者, 技能, 技能参数, 作用目标列表 E_Character charObj = EM_Character.s_instance.GetCharacterByNetworkId(netId); E_Skill skill = EM_Skill.s_instance.GetCharacterSkillByIdAndNetworkId(skillId, netId); E_Unit targetObj = EM_Sight.s_instance.GetUnitVisibleByNetworkId(parmNo.m_targetNetworkId); if (charObj == null || skill == null) { return; } if (skill.m_skillLevel == 0) { return; } List <E_Unit> targetList = new List <E_Unit> (); for (int i = 0; i < hitTargetNetIdArr.Length; i++) { var target = EM_Sight.s_instance.GetUnitVisibleByNetworkId(hitTargetNetIdArr[i]); if (target == null) { continue; } targetList.Add(target); } GL_Skill.s_instance.NotifyCastSkill(charObj, skill, targetList); // 向Client发送CastBegin事件 var otherList = EM_Sight.s_instance.GetInSightCharacterNetworkId(netId, true); m_networkService.SendServerCommand(SC_ApplyAllCastSkillBegin.Instance(otherList, netId, skillId, parmNo)); }
public void MFSMCastSkillBegin(int netId, E_MonsterSkill skill, SkillParam sp) { // client m_networkService.SendServerCommand(SC_ApplyAllCastSkillBegin.Instance( EM_Sight.s_instance.GetInSightCharacterNetworkId(netId, false), netId, skill.m_SkillId, sp.GetNo())); }