/// <summary> /// modified by mawenbin /// 1、按照配置的释放优先级(SkillBase.txt文件的PriorityAutoFight列)选取技能 /// 2、如果正在释放连续技,则必须等待后段判定,也就是连续技后续技能优先级最高 /// 3、普攻优先级最低,并忽略普攻连续技 /// </summary> /// <returns></returns> private int SeleSkill() { int nSelectSkillId = -1; //正在使用连续技 if (IsUsingRepeatSkillWithNext()) { //连续技禁止使用时间满足(前摇时间) if (CheckTimeUsingNextContinueSkill()) { //连续技的后续技能可使用时间超时(后摇时间) if (CheckNextSkillEffectTimeOver()) { nSelectSkillId = -1; CurUseSkillId = -1; } else { nSelectSkillId = GetNextContinueSkillId(); //正在使用的连续技为普攻 if (IsNormalSkill(nSelectSkillId)) { //存在优先级高于普攻的可释放技能,则放弃普攻连续技 int nPrioritySkillId = SeleSkillByPriority(); if (GetChangeStateNormalSkillID() != nPrioritySkillId) { nSelectSkillId = nPrioritySkillId; } //无法释放普攻连续技,比如变身消失则无法继续释放变身普攻连续技 else if (!m_player.CheckBeforUseSkill(nSelectSkillId)) { nSelectSkillId = nPrioritySkillId; } } else { //连续技后续技能不可以使用 if (!m_player.CheckBeforUseSkill(nSelectSkillId, false)) { nSelectSkillId = SeleSkillByPriority(); } } } } //连续技禁止使用时间不满足,继续等待 else { nSelectSkillId = -1; } } //未使用连续技,则根据优先级选取技能 else { nSelectSkillId = SeleSkillByPriority(); } //Tab_SkillEx tabSkillExTemp = TableManager.GetSkillExByID(nSelectSkillId, 0); //int iBaseId = 0; //if (null != tabSkillExTemp) //{ // iBaseId = tabSkillExTemp.BaseId; //} //LogModule.ErrorLog("auto fight select skillID:" + nSelectSkillId.ToString() + ", baseID:" + iBaseId.ToString()); return(nSelectSkillId); }