/// <summary> /// 移动回调正常执行完毕后,移除回调编号 /// </summary> /// <param name="tid">回调编号</param> public void RmvMoveCB(int tid) { int index = -1; for (int i = 0; i < SkMoveCBLst.Count; i++) { if (SkMoveCBLst[i] == tid) { index = i; break; } } if (index != -1) { SkMoveCBLst.RemoveAt(index); } }
/// <summary> /// 在死亡或受伤时,取消技能回调(例如,移动/停止,延时技能,连招) /// 当前正在播放的技能不受影响 /// </summary> public void RmvSkillCB() { SetDir(Vector2.zero); SetSkillMoveState(false); for (int i = 0; i < SkMoveCBLst.Count; i++) { int tid = SkMoveCBLst[i]; GameEntry.Timer.DelTask(tid); } for (int i = 0; i < SkActionCBLst.Count; i++) { int tid = SkActionCBLst[i]; GameEntry.Timer.DelTask(tid); } //攻击被中断,删除定时回调 if (SkEndCB != -1) { GameEntry.Timer.DelTask(SkEndCB); SkEndCB = -1; } SkMoveCBLst.Clear(); SkActionCBLst.Clear(); //清空连招 if (NextSkillID != 0 || ComboQue.Count > 0) { NextSkillID = 0; ComboQue.Clear(); BattleMgr.LastAtkTime = 0; BattleMgr.ComboIndex = 0; } }