// 进入状态 public override void Enter(object param) { totalTime = 0; skillPart = m_SkillPart; if (skillPart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART) { PlayerSkillPart playerSkill = skillPart as PlayerSkillPart; if (playerSkill.AttackAnimState != null) { // playerSkill.PlaySkillAnim("Skill005", false); //收招 string aniName = playerSkill.AttackAnimState.name + "_over"; if (playerSkill.Master.GetAnimationState(aniName) != null) { playerSkill.PlaySkillAnim(aniName, false); } } else { //Engine.Utility.Log.Trace("SkillOverState.Enter {0}技能收招动作为空!", playerSkill.GetMaster().GetName()); } playerSkill.Master.SendMessage(EntityMessage.EntityCommond_IgnoreMoveAction, false); if (playerSkill.IsMainPlayer()) { stNextSkill st = new stNextSkill(); IControllerSystem cs = playerSkill.GetCtrollerSys(); if (cs == null) { Log.Error("ExecuteCmd: ControllerSystem is null"); return; } if (cs.GetCombatRobot().Status == CombatRobotStatus.RUNNING) { if (playerSkill.IsCombo(playerSkill.CurSkillID)) {//挂机连击 st.curSkillID = playerSkill.CurSkillID; SkillDoubleHitDataBase db = GameTableManager.Instance.GetTableItem <SkillDoubleHitDataBase>((uint)playerSkill.CurSkillID); if (db != null) { st.nextSkillID = db.nextskillid; if (db.nextskillid == db.beginskillid) {//挂机第三招要收招 st.nextSkillID = 0; } EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_STIFFTIMEOVER, st); } } } else {//非挂机时 插入其他技能 st.nextSkillID = 0; EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_STIFFTIMEOVER, st); } } } }