Beispiel #1
0
        /// <summary>
        /// 创建基于实体位置跟随的特效,followType一般就2种
        /// 1.脚底
        /// 2.头顶
        /// </summary>
        public static int CreateByCreaturePos(int effectId, Entity newEnt, int followType, Action <Entity> loaded = null)
        {
            if (effectId == 0)
            {
                return(0);
            }
            //BoneEntity bindEnt = (BoneEntity)EntityManager.Inst.GetEnity(bindHandleId);
            // 获取绑定点
            BoneEntity     bindEnt  = newEnt as BoneEntity;
            EntityBaseInfo baseInfo = new EntityBaseInfo();

            baseInfo.m_vPos = bindEnt.GetPos();
            CEffect effect = new CEffect(effectId, baseInfo, loaded);
            Entity  ent    = effect.GetEntity();

            if (ent == null)
            {
                return(0);
            }
            ent.SetLayer((int)LusuoLayer.eEL_Dynamic);

            effect.m_parentEnt  = bindEnt;
            effect.m_followType = followType;
            bindEnt.AddBindObject(ent);

            m_mapEffect.Add(ent.m_hid, effect);

            m_followPos.Add(effect, bindEnt);
            return(ent.m_hid);
        }
Beispiel #2
0
        public static int Create(int effectId, Vector3 pos, Vector3 rota, Action <Entity> loaded = null)
        {
            if (effectId == 0)
            {
                return(0);
            }
            EffectCsv     effectCsv    = CsvManager.Inst.GetCsv <EffectCsv>((int)eAllCSV.eAC_Effect);
            EffectCsvData m_effectData = effectCsv.GetData(effectId);

            if (m_effectData == null)
            {
                Debug.LogError("特效为空:" + effectId);
                return(0);
            }
            EntityBaseInfo entInfo = new EntityBaseInfo();

            entInfo.m_resID   = m_effectData.resId;
            entInfo.m_vPos    = pos;
            entInfo.m_vRotate = rota;
            CEffect effect = new CEffect(effectId, entInfo, loaded);
            Entity  ent    = effect.GetEntity();

            ent.SetLayer((int)LusuoLayer.eEL_Dynamic);
            ent.SetPos(pos);
            ent.SetDirection(rota);
            m_mapEffect.Add(ent.m_hid, effect);
            return(ent.m_hid);
        }
Beispiel #3
0
 private void OnCreateUI()
 {
     if (m_photoImage == null)
     {
         return;
     }
     m_photoImage.gameObject.SetActiveNew(true);
     UIDragListener.Get(m_photoImage.gameObject).OnDragEvent = (ev, delta) =>
     {
         if (m_boneEnt == null)
         {
             return;
         }
         if (m_boneEnt.m_animation != null && m_boneEnt.m_animation.IsPlaying("born"))
         {
             return;
         }
         if (ev == eDragEvent.Drag)
         {
             m_boneEnt.SetDirection(m_boneEnt.GetRotate() + new Vector3(0f, -1 * delta.x, 0f));
         }
     };
     UIEventListener.Get(m_photoImage.gameObject).onClick = (obj) =>
     {
         if (m_boneEnt == null || m_boneEnt.m_animation == null || !m_bCanClick)
         {
             return;
         }
         if (m_boneEnt.m_animation.IsPlaying("idle") &&
             !m_boneEnt.m_animation.IsPlaying(m_showEffectData.clickAnimaName)) // 在休闲时,才播放点击动作
         {
             m_bCanClick = false;
             AnimationAction anima = new AnimationAction();
             anima.crossTime = 0.2f;
             anima.strFull   = m_showEffectData.clickAnimaName;
             anima.eMode     = WrapMode.Once;
             anima.endEvent  = () =>
             {
                 m_bCanClick = true;
                 AnimationAction anima2 = new AnimationAction();
                 anima2.crossTime = 0.2f;
                 anima2.strFull   = "idle";
                 anima2.eMode     = WrapMode.Loop;
                 Play(anima2);
                 OnCreateIdleEffect();
             };
             Play(anima);
             OnDestroyIdleEffect();
             // 点击播放动作时,播放对应的特效,切换动作时删除
             int     hId = CEffectMgr.Create(m_showEffectData.clickEffectId, m_boneEnt, "origin");
             CEffect ef  = CEffectMgr.GetEffect(hId);
             if (ef != null)
             {
                 ef.SetLayer(LusuoLayer.eEL_Photo);
             }
         }
     };
 }
Beispiel #4
0
        /// <summary>
        /// 创建基于绑定实体身上的特效,和角色一起显隐,无绑定点的在角色位置,不和角色一起显隐,比如刺客的施法特效
        /// 挂载特效可能需要缩放,在设置挂载之后
        /// </summary>
        public static int Create(int effectId, Entity newEnt, string bingPoint, Action <Entity> loaded = null, float scale = 1.0f)
        {
            if (effectId == 0)
            {
                return(0);
            }
            EffectCsv     effectCsv    = CsvManager.Inst.GetCsv <EffectCsv>((int)eAllCSV.eAC_Effect);
            EffectCsvData m_effectData = effectCsv.GetData(effectId);

            if (m_effectData == null)
            {
                return(0);
            }
            EntityBaseInfo baseInfo = new EntityBaseInfo();

            baseInfo.m_resID  = m_effectData.resId;
            baseInfo.m_ilayer = (int)LusuoLayer.eEL_Dynamic;
            baseInfo.m_vScale = Vector3.one * scale;
            // 获取绑定点
            BoneEntity boneEnt       = newEnt as BoneEntity;
            Transform  bindTransform = boneEnt.GetBone(bingPoint);

            CEffect effect;
            Entity  ent;

            if (bindTransform == null)
            {
                //baseInfo.m_vPos = boneEnt.GetPos();
                //baseInfo.m_vRotate = boneEnt.GetRotate();
                //effect = new CEffect(effectId, baseInfo, loaded);
                //ent = effect.GetEntity();
                GameObject obj = boneEnt.GetObject();
                if (obj == null)
                {
                    return(0);
                }
                bindTransform = obj.transform;
            }
            //else
            //{
            baseInfo.m_parent = bindTransform;
            effect            = new CEffect(effectId, baseInfo, loaded);
            ent = effect.GetEntity();
            effect.m_parentEnt = boneEnt;
            boneEnt.AddBindObject(ent);
            //}

            if (ent == null)
            {
                return(0);
            }
            m_mapEffect.Add(ent.m_hid, effect);
            return(ent.m_hid);
        }
Beispiel #5
0
        public void OnCreateIdleEffect()
        {
            OnDestroyIdleEffect();
            // 待机动作时的特效
            m_idleEffectHid = CEffectMgr.Create(m_showEffectData.idleEffectId, m_boneEnt, "origin");
            CEffect effect = CEffectMgr.GetEffect(m_idleEffectHid);

            if (effect != null)
            {
                effect.SetLayer(LusuoLayer.eEL_Photo);
            }
        }
Beispiel #6
0
        private void OnCreateEnterEffect(object obj)
        {
            if (m_photoObject == null)
            {
                return;
            }
            int     effectId = (int)obj;
            int     hId      = CEffectMgr.Create(effectId, m_photoObject.transform.position, Vector3.zero);
            CEffect ef       = CEffectMgr.GetEffect(hId);

            if (ef != null)
            {
                ef.SetLayer(LusuoLayer.eEL_Photo);
            }
            m_enterEffectHid.Add(hId);
        }
Beispiel #7
0
        public static int Create(int effectId, Transform uiBindPoint)
        {
            if (effectId == 0)
            {
                return(0);
            }
            EntityBaseInfo baseInfo = new EntityBaseInfo();

            baseInfo.m_parent = uiBindPoint;
            baseInfo.m_vScale = Vector3.one;

            CEffect effect = new CEffect(effectId, baseInfo, null);
            Entity  ent    = effect.GetEntity();

            ent.SetLayer((int)LusuoLayer.eEL_Dynamic);
            ent.SetParent(uiBindPoint);
            m_mapEffect.Add(ent.m_hid, effect);
            return(ent.m_hid);
        }
Beispiel #8
0
        public static void Update(float fTime, float fDTime)
        {
            Dictionary <int, CEffect> .Enumerator ms = m_mapEffect.GetEnumerator();
            while (ms.MoveNext())
            {
                m_tempListEffect.Add(ms.Current.Value);
            }

            for (int i = 0; i < m_tempListEffect.Count; i++)
            {
                CEffect ef = m_tempListEffect[i];
                if (!ef.IsFinish())
                {
                    ef.Update(fTime, fDTime);
                }
                else
                {
                    //m_mapEffect.Remove(ef.GetEntity().m_hid);
                    //ef.Destory();
                    Destroy(ef.GetEntity().m_hid);
                }
            }
            m_tempListEffect.Clear();

            foreach (KeyValuePair <CEffect, Entity> item in m_followPos)
            {
                CEffect effect = item.Key;
                Entity  ent    = effect.GetEntity();
                if (ent.IsInited())
                {
                    if (effect.m_followType == 1)
                    {
                        Vector3 targetPos = item.Value.GetPos();
                        ent.SetPos(new Vector3(targetPos.x, 0, targetPos.z));
                    }
                    else
                    {
                        ent.SetPos(item.Value.GetPos() + Vector3.up * item.Value.m_headPos);
                    }
                }
            }
        }
Beispiel #9
0
        /// <summary>
        /// 创建基于UI的特效绑定
        /// </summary>
        public static int CreateUI(int effectId, Transform uiBindPoint, int order = 0, Action <CEffect> playend = null, Action <Entity> loaded = null, float scale = 1.0f)
        {
            if (effectId == 0)
            {
                return(0);
            }
            EntityBaseInfo baseInfo = new EntityBaseInfo();

            baseInfo.m_parent = uiBindPoint;
            baseInfo.m_vScale = new Vector3(scale, scale, scale);

            CEffect effect = new CEffect(effectId, baseInfo, loaded);
            Entity  ent    = effect.GetEntity();

            ent.SetLayer((int)LusuoLayer.eEL_UI);
            ent.SetOrder(order);
            ent.SetParent(uiBindPoint);
            m_mapEffect.Add(ent.m_hid, effect);
            effect.AddPlayEnd(playend);
            return(ent.m_hid);
        }
Beispiel #10
0
        private void OnEnter()
        {
            // 先播放入场特效
            if (m_showEffectData == null)
            {
                Debug.LogError("英雄展示特效表无资源id:" + m_resId);
                OnCreateEnterPhoto("born");
                return;
            }

            string[] timeList   = m_showEffectData.enterEffectTime.Split('|');
            string[] effectList = m_showEffectData.enterEffectId.Split('|');

            for (int i = 0; i < timeList.Length; i++)
            {
                float time = 0;
                float.TryParse(timeList[i], out time);
                int effectId = 0;
                int.TryParse(effectList[i], out effectId);

                int eEventId = TimeMgr.Inst.RegisterEvent(time, () =>
                {
                    int hId    = CEffectMgr.Create(effectId, m_photoObject.transform.position, Vector3.zero);
                    CEffect ef = CEffectMgr.GetEffect(hId);
                    if (ef != null)
                    {
                        ef.SetLayer(LusuoLayer.eEL_Photo);
                    }
                    m_enterEffectHid.Add(hId);
                });

                m_eventList.Add(eEventId);
            }

            // 入场播放动作
            int eventId = TimeMgr.Inst.RegisterEvent(m_showEffectData.enterAnimaTime, () => {
                if (m_photoObject == null)
                {
                    return;
                }
                string animaName = m_showEffectData.enterAnimaName;

                EntityBaseInfo info = new EntityBaseInfo();
                info.m_resID        = (int)m_resId;
                info.m_ilayer       = (int)LusuoLayer.eEL_Photo;
                m_handleId          = EntityManager.Inst.CreateEntity(eEntityType.eBoneEntity, info, (ent) =>
                {
                    if (m_photoObject == null)
                    {
                        return;
                    }
                    // 播放人物动作
                    if (m_type == PhotoType.hero)
                    {
                        m_boneEnt = ent as BoneEntity;
                        m_boneEnt.SetParent(m_photoObject.transform);

                        string idleAnima      = "idle";
                        AnimationAction anima = new AnimationAction();
                        anima.strFull         = animaName;
                        anima.eMode           = WrapMode.Once;
                        anima.endEvent        = () =>
                        {
                            AnimationAction anima2 = new AnimationAction();
                            anima2.crossTime       = AnimationInfo.m_crossTime;
                            anima2.strFull         = idleAnima;
                            anima2.eMode           = WrapMode.Loop;
                            Play(anima2);
                            OnCreateIdleEffect();
                        };
                        Play(anima);
                    }
                    else if (m_type == PhotoType.uieffect)
                    {
                        m_boneEnt = ent as BoneEntity;
                        m_boneEnt.SetParent(m_photoObject.transform);

                        AnimationAction anima = new AnimationAction();
                        anima.strFull         = "idle";
                        anima.eMode           = WrapMode.Loop;
                        Play(anima);
                    }
                });
            });

            m_eventList.Add(eventId);
            // 播放英雄声音
            m_speakSoundHid = SoundManager.Inst.PlaySound(m_showEffectData.enterSpeakId, null);
        }
Beispiel #11
0
        public override void PushCommand(IFspCmdType cmd)
        {
            BattleEntity ent = GetEnt() as BattleEntity;

            //Debug.Log("切换:" + cmd.GetCmdType());
            switch (cmd.GetCmdType())
            {
                #region 常态
            case CmdFspEnum.eFspStopMove:

                m_state = cmd.GetCmdType();
                SetMove(false);
                //Debug.Log("设置停止");
                ((BattleEntity)GetEnt()).SetPriority(0);
                ResetState();
                break;

            case CmdFspEnum.eFspMove:
            case CmdFspEnum.eFspAutoMove:
                m_state = cmd.GetCmdType();
                SetMove(true);
                //Debug.Log("设置移动");
                ResetState();
                break;

            case CmdFspEnum.eUIHead:
                CmdUIHead head = cmd as CmdUIHead;
                switch (head.type)
                {
                case 1:
                    if (m_head != null)
                    {
                        m_head.SetName(head.name);
                    }
                    break;

                case 2:
                    if (m_head != null)
                    {
                        m_head.SetLevel(head.lv);
                    }
                    break;

                case 3:
                    if (m_head != null)
                    {
                        m_head.SetHp(head.curHp, head.maxHp);
                    }
                    break;

                case 4:
                    if (m_head != null)
                    {
                        m_head.SetHud(head.hudText, head.hudType);
                    }
                    break;

                case 5:
                    if (m_head != null)
                    {
                        m_head.SetHeadShow(head.bShow);
                    }
                    break;

                case 8:
                    if (m_head != null)
                    {
                        m_head.SetTeam(head.bTeam);
                    }
                    break;

                //case 9:
                //    if (m_head != null)
                //        m_head.ShowNameOnly(head.bShow);
                //    break;
                case 10:
                    // The state of dizziness does not play the hit action
                    //if (CheckState(eVObjectState.stun))
                    //    return;
                    ent.PlayAnima(head.animaId, () => {
                        ResetState();
                    });
                    break;

                case 11:
                    if (head.effectBindPos == (int)SBindPont.eBindType.CreatureHeadPos)
                    {
                        CEffectMgr.CreateByCreaturePos(head.effectId, ent, 2);
                    }
                    else if (head.effectBindPos == (int)SBindPont.eBindType.Muzzle)         // 枪口
                    {
                        CEffectMgr.Create(head.effectId, ((BattleEntity)GetEnt()).
                                          GetRightPoint());
                    }
                    else
                    {
                        CEffectMgr.Create(head.effectId, GetEnt(), SBindPont.GetBindPont(head.effectBindPos));
                    }
                    break;

                case 12:
                    if (head.bRide)
                    {
                        m_ride = true;
                        VObject obj = head.rideObject;
                        GetEnt().SetParent(((BattleEntity)obj.GetEnt()).GetBone("ride"));
                    }
                    else
                    {
                        m_ride = false;
                        GetEnt().ClearBind();
                        Quaternion dest = Quaternion.LookRotation(m_moveInfo.m_dir);
                        GetEnt().SetRot(dest);
                        GetEnt().SetScale(Vector3.one * m_baseInfo.m_scale);
                    }
                    break;

                //case 13:
                //    if (m_head != null)
                //        m_head.SetTaskState(head.taskstate);
                //    break;
                case 14:
                    ShowFootHalo(head.effectId);
                    break;
                }
                break;

            case CmdFspEnum.eLife:
                if (ent == null)
                {
                    return;
                }
                CmdLife life = cmd as CmdLife;
                m_bDead = !life.state;

                if (life.state)
                {
                    ent.SetPriority(0);
                    ent.PlayAnima(SMtCreatureAnima.ANIMA_RESET, () => {
                        ResetState();
                        // 复活说话
                        //PlaySpeak(eRoleSpeakCsv.revive);
                    });
                    // 播放复活特效
                    if (m_bMaster)
                    {
                        CEffectMgr.Create(21002, GetEnt().GetPos(), GetEnt().GetRotate());
                    }
                }
                else
                {
                    SetMove(false);
                    ent.PlayAnima(SMtCreatureAnima.ANIMA_DIE);
                    //SoundManager.Inst.PlaySound(m_baseInfo.m_dieSound, ent.GetPos());
                    CEffectMgr.Create(m_baseInfo.m_dieEffect, GetEnt(), SBindPont.ORIGIN);

                    // xingzuo sound
                    PlayerCsv     playerCsv = CsvManager.Inst.GetCsv <PlayerCsv>((int)eAllCSV.eAC_Player);
                    PlayerCsvData csvData   = playerCsv.GetData(m_baseInfo.csvId);
                    if (csvData != null)
                    {
                        int soundId = 0, pct = 0;
                        JoyStickModule.GetSpeak(csvData.dieSpeak, ref soundId, ref pct);
                        SoundManager.Inst.PlaySound(soundId, (e) =>
                        {
                            e.SetPos(m_moveInfo.m_pos);
                        });
                    }
                    // 死亡说话
                    //PlaySpeak(eRoleSpeakCsv.die);
                }
                break;

                #endregion
            case CmdFspEnum.eFspUpdateEquip:
                m_cmdUpdateEquip = cmd as CmdFspUpdateEquip;
                UpdateEquip();
                break;

                #region BUFF特效
            case CmdFspEnum.eBuff:                            // 特效挂点设置
                CmdFspBuff buff     = cmd as CmdFspBuff;
                int        effectId = buff.effectId;
                if (effectId == 0)
                {
                    return;
                }

                //Debug.Log(buff.effectId + " add:" + buff.bAdd + "   " + buff.bindType);
                if (m_dicBuff == null)
                {
                    m_dicBuff = new Dictionary <int, object>();
                }
                if (m_dicBuffCount == null)
                {
                    m_dicBuffCount = new Dictionary <int, int>();
                }
                if (buff.bAdd)
                {
                    if (!m_dicBuff.ContainsKey(effectId))
                    {
                        if (buff.bindType == (int)SBindPont.eBindType.LRHand)      // 左右手
                        {
                            List <int> hid = new List <int>();
                            int        l   = CEffectMgr.Create(effectId, m_ent, SBindPont.L_HAND);
                            int        r   = CEffectMgr.Create(effectId, m_ent, SBindPont.R_HAND);
                            hid.Add(l);
                            hid.Add(r);
                            m_dicBuff[effectId] = hid;

                            if (!IsVisible())
                            {
                                CEffectMgr.GetEffect(l).SetShow(false);
                                CEffectMgr.GetEffect(r).SetShow(false);
                            }
                        }
                        else if (buff.bindType == (int)SBindPont.eBindType.CreaturePos)
                        {
                            int hid = CEffectMgr.CreateByCreaturePos(effectId, m_ent, 1);
                            m_dicBuff[effectId] = hid;

                            if (!IsVisible())
                            {
                                CEffect c = CEffectMgr.GetEffect(hid);
                                if (c != null)
                                {
                                    c.SetShow(false);
                                }
                            }
                        }
                        else if (buff.bindType == (int)SBindPont.eBindType.CreatureHeadPos)
                        {
                            int hid = CEffectMgr.CreateByCreaturePos(effectId, m_ent, 2);
                            m_dicBuff[effectId] = hid;

                            if (!IsVisible())
                            {
                                CEffect c = CEffectMgr.GetEffect(hid);
                                if (c != null)
                                {
                                    c.SetShow(false);
                                }
                            }
                        }
                        else
                        {
                            int hid = CEffectMgr.Create(effectId, m_ent, SBindPont.GetBindPont(buff.bindType), null);
                            m_dicBuff[effectId] = hid;

                            if (!IsVisible())
                            {
                                CEffect c = CEffectMgr.GetEffect(hid);
                                if (c != null)
                                {
                                    c.SetShow(false);
                                }
                            }
                        }
                    }
                    if (!m_dicBuffCount.ContainsKey(effectId))
                    {
                        m_dicBuffCount[effectId] = 1;
                    }
                    else
                    {
                        m_dicBuffCount[effectId]++;
                    }
                }
                else
                {
                    if (m_dicBuffCount.ContainsKey(effectId))
                    {
                        m_dicBuffCount[effectId]--;
                        if (m_dicBuffCount[effectId] <= 0)
                        {
                            m_dicBuffCount.Remove(effectId);
                        }
                    }

                    if (m_dicBuff.ContainsKey(effectId) && !m_dicBuffCount.ContainsKey(effectId))       // 如果包含这个BUFF,并且计数=0,才销毁
                    {
                        if (buff.bindType == (int)SBindPont.eBindType.LRHand)
                        {
                            List <int> hid = (List <int>)m_dicBuff[effectId];
                            for (int i = 0; i < hid.Count; i++)
                            {
                                CEffectMgr.Destroy(hid[i]);
                            }
                        }
                        else
                        {
                            CEffectMgr.Destroy((int)m_dicBuff[effectId]);
                        }
                        m_dicBuff.Remove(effectId);
                    }
                }

                break;
                #endregion

                #region 状态表现
            case CmdFspEnum.eState:                          // 外观状态设置
                CmdFspState   state = cmd as CmdFspState;
                eVObjectState type  = state.type;
                //Debug.Log("状态 add:" + state.bAdd + "   " + (eVObjectState)type);
                if (state.bAdd)
                {
                    SetShowState(type, true);
                    switch (type)
                    {
                    case eVObjectState.WindBlowsUp:
                        ent.SetWindBlowsUp(true);
                        break;

                    case eVObjectState.GhostShadow:
                        ent.SetGhostShadow(true);
                        break;

                    case eVObjectState.AlphaToHide:           // 全透 all alpha need hide effect
                        ent.SetShader(eShaderType.eAlphaToHide, Color.white, 0.3f, false, () =>
                        {
                            ent.SetShow(false);
                        });
                        break;

                    case eVObjectState.AlphaToHalf:                // 半透
                        GetEnt().SetShow(true);
                        if (CheckState(eVObjectState.AlphaToHide)) // 半透,全透状态应该是互斥的
                        {
                            SetShowState(eVObjectState.AlphaToHide, false);
                            ent.SetShader(eShaderType.eAlphaToHalf, Color.white, 0.0f, false);
                        }
                        else
                        {
                            ent.SetShader(eShaderType.eAlphaToHalf, Color.white, 0.3f, false);
                        }
                        break;

                    case eVObjectState.Nihility:            // 虚无
                        //if (m_head != null)
                        //{
                        //    m_head.SetHeadAlpha(0.5f);
                        //}
                        //ent.SetShader(eShaderType.eNihility, new Color(1, 1, 1, 0.7f));
                        break;

                    case eVObjectState.God:            // 无敌
                        //ent.SetShader(eShaderType.eRim, Color.yellow);
                        break;

                    case eVObjectState.Hit:            // 受击
                        //ent.SetShader(eShaderType.eRim, new Color(0.8f, 0.8f, 0.8f, 1.0f));
                        break;

                    case eVObjectState.Silence:           // 被沉默
                        if (m_bMaster)
                        {
                            JoyStickModule js = (JoyStickModule)LayoutMgr.Inst.GetLogicModule(LogicModuleIndex.eLM_PanelJoyStick);
                            //js.SetLock(true);
                        }
                        break;

                    case eVObjectState.Show:
                        GetEnt().SetShow(true);
                        break;

                    case eVObjectState.stun:            // 晕眩
                        //((BattleEntity)GetEnt()).Play(false);
                        if (m_bMaster)
                        {
                            JoyStickModule js = (JoyStickModule)LayoutMgr.Inst.GetLogicModule(LogicModuleIndex.eLM_PanelJoyStick);
                            //js.SetLock(true);
                        }
                        break;

                    case eVObjectState.unmove:            // 禁锢

                        break;

                    case eVObjectState.sleep:            // 睡眠

                        if (m_bMaster)
                        {
                            JoyStickModule js = (JoyStickModule)LayoutMgr.Inst.GetLogicModule(LogicModuleIndex.eLM_PanelJoyStick);
                            //js.SetLock(true);
                        }
                        break;
                    }
                }
                else
                {
                    SetShowState(type, false);
                    switch (type)
                    {
                    case eVObjectState.WindBlowsUp:
                        ent.SetWindBlowsUp(false);
                        break;

                    case eVObjectState.GhostShadow:
                        ent.SetGhostShadow(false);
                        break;

                    case eVObjectState.AlphaToHide:           // 全透
                        ent.RemoveShader();
                        ent.SetShow(true);
                        break;

                    case eVObjectState.AlphaToHalf:         // 半透,暂时都只用了移除全透
                        if (m_head != null)
                        {
                            m_head.SetHeadAlpha(1.0f);
                        }
                        ent.RemoveShader();
                        break;

                    case eVObjectState.Nihility:
                    case eVObjectState.God:
                    case eVObjectState.Hit:
                        //if (m_head != null)
                        //{
                        //    m_head.SetHeadAlpha(1.0f);
                        //}
                        //ent.RemoveShader();
                        break;

                    case eVObjectState.Silence:           // 取消沉默
                        if (m_bMaster)
                        {
                            JoyStickModule js = (JoyStickModule)LayoutMgr.Inst.GetLogicModule(LogicModuleIndex.eLM_PanelJoyStick);
                            //js.SetLock(false);
                        }
                        break;

                    case eVObjectState.Show:
                        GetEnt().SetShow(false);
                        break;

                    case eVObjectState.stun:            // 晕眩
                        //((BattleEntity)GetEnt()).Play(true);
                        ResetState();
                        if (m_bMaster)
                        {
                            JoyStickModule js = (JoyStickModule)LayoutMgr.Inst.GetLogicModule(LogicModuleIndex.eLM_PanelJoyStick);
                            //js.SetLock(false);
                        }
                        break;

                    case eVObjectState.unmove:            // 禁锢
                        ResetState();
                        break;

                    case eVObjectState.sleep:            // 睡眠
                        ResetState();
                        if (m_bMaster)
                        {
                            JoyStickModule js = (JoyStickModule)LayoutMgr.Inst.GetLogicModule(LogicModuleIndex.eLM_PanelJoyStick);
                            //js.SetLock(false);
                        }
                        break;
                    }
                }
                break;
                #endregion

            case CmdFspEnum.eSkillAnimaPriority:       // 设置技能动作优先级
                CmdSkillAnimaPriority cmdPri = cmd as CmdSkillAnimaPriority;
                ((BattleEntity)GetEnt()).SetPriority(cmdPri.priority);
                break;
            }
        }