Exemplo n.º 1
0
    /// <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);
        }
    }
Exemplo n.º 2
0
    /// <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;
        }
    }