//正常的角色动作输入,根据动作行为播放战斗 public void setState(CharacterAction _action) { //如果是死亡动作,那么攻击他的人继续他的连击 if (_action.action == enum_character_Action.Dead) { if (activeAction != null && activeAction.Skill != null) { //连击 目标死,连击者继续 if (activeAction.Skill.triggerSkill.serverData.sample.getType() == SkillType.ComboAttack && activeAction.Skill.trigger.characterCtrl.waitForFightBack == true) { StartCoroutine(continueCombo(activeAction.Skill.trigger, comboDelay)); activeAction.Skill.trigger.characterCtrl.waitForFightBack = false; } else if (activeAction.Skill.serverData.sample.getType() == SkillType.HelpOther || activeAction.Skill.serverData.sample.getType() == SkillType.FightBack || activeAction.Skill.serverData.sample.getType() == SkillType.FightBackAfterHelp) { //援护死了,攻击者waitForFightBack取消 //这里把反击的情况也包含了,理论上反击不回导致死的 activeAction.Skill.trigger.characterCtrl.waitForFightBack = false; } else if (activeAction.Skill.serverData.sample.getType() == SkillType.ComboAttack) { //连击者被反击死 activeAction.Skill.user.characterCtrl.waitForFightBack = false; } } } if (activeAction != null) { activeAction.Remove(); } activeAction = _action; isWorking = true; state = changeState(); if (state == enum_character_state.attacked || state == enum_character_state.fightBacked || state == enum_character_state.standing || state == enum_character_state.awaked || state == enum_character_state.groupAttacked || state == enum_character_state.helped || state == enum_character_state.helped || state == enum_character_state.standing) { isWorking = false; } }