private void OnAiRemoveImpact(EntityInfo npc, int impactId) { Scene scene = npc.SceneContext.CustomData as Scene; if (null != scene) { ImpactInfo impactInfo = npc.GetSkillStateInfo().FindImpactInfoById(impactId); if (null != impactInfo) { Msg_RC_RemoveImpact removeImpactBuilder = new Msg_RC_RemoveImpact(); removeImpactBuilder.obj_id = npc.GetId(); removeImpactBuilder.impact_id = impactId; scene.NotifyAllUser(RoomMessageDefine.Msg_RC_RemoveImpact, removeImpactBuilder); scene.SkillSystem.StopSkill(npc.GetId(), impactId, impactInfo.Seq, false); } } }
protected override bool ExecCommand(StoryInstance instance, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { int unitId = m_UnitId.Value; int seq = m_Seq.Value; EntityInfo obj = scene.SceneContext.GetEntityByUnitId(unitId); if (null != obj) { ImpactInfo impactInfo = obj.GetSkillStateInfo().GetImpactInfoBySeq(seq); if (null != impactInfo) { Msg_RC_RemoveImpact removeImpactBuilder = new Msg_RC_RemoveImpact(); removeImpactBuilder.obj_id = obj.GetId(); removeImpactBuilder.impact_id = impactInfo.ImpactId; scene.NotifyAllUser(RoomMessageDefine.Msg_RC_RemoveImpact, removeImpactBuilder); scene.SkillSystem.StopSkill(obj.GetId(), impactInfo.ImpactId, seq, true); obj.GetSkillStateInfo().RemoveImpact(seq); } } } return false; }