Exemplo n.º 1
0
        //技能被打断
        public void BreakSkill(StateParameter stateParm)
        {
            if (null != m_skillDesc && (int)SkillType.SKILL_XUANFANZHAN == m_skillDesc.Get <int>("subtype"))
            {
                return;
            }

            if (m_bSendAttackEven && m_actor != null)
            {
                EventParameter eventBuffParam = EventParameter.Get();
                eventBuffParam.intParameter = m_skillID;
                eventBuffParam.goParameter  = m_actor.gameObject;
                eventBuffParam.objParameter = m_actor;
                if (m_hitActor != null)
                {
                    eventBuffParam.goParameter1  = m_hitActor.gameObject;
                    eventBuffParam.objParameter1 = m_hitActor;
                }
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_EVENT_ATTACK, eventBuffParam);
                m_bSendAttackEven = false;
            }

            CancelInvoke("AutoLookatTarget");
            CancelInvoke("HideSelf");

            CancelInvoke("CastSkill");
            CancelInvoke("SkillEnd");
            CancelInvoke("Start");

            SkillIsOver();

            //清除skill所有的skillcell
            for (int i = 0; i < m_skillCellObjectlist.Count; ++i)
            {
                m_skillCellObjectlist[i].SetActive(false);
            }

            DestroyEfx();

            if (stateParm != null)
            {
                //死亡,被击状态,删除对应的特效
                if (stateParm.state == ACTOR_STATE.AS_DEATH ||
                    stateParm.state == ACTOR_STATE.AS_BEHIT)
                {
                    if (m_actionEfx != null)
                    {
                        m_actionEfx.DestoryObject();
                    }

                    SendEvent(SkillCellEventType.SE_DESTROY_ACTION_EFX, null);
                }
            }


            CoreEntry.gGameObjPoolMgr.Destroy(this.gameObject);
        }
Exemplo n.º 2
0
        //接受事件
        public override void OnEvent(SkillCellEventType eventType, params ValueArg[] valueArgs)
        {
            switch (eventType)
            {
            case SkillCellEventType.SE_DESTROY_ACTION_EFX:
            {
                if (m_actionEfx != null)
                {
                    m_actionEfx.DestoryObject();
                    m_actionEfx = null;
                }
            }
            break;

            default:
                break;
            }
        }