Ejemplo n.º 1
0
    private void ResetJoystick()
    {
        m_widget_joystick.alpha = 0.5f;
        m_widget_joystick.gameObject.transform.localPosition        = m_trans_joystickPos.localPosition;
        m_sprite_joystickThumb.transform.localPosition              = Vector3.zero;
        m_sprite_joystickBg.transform.localPosition                 = Vector3.zero;
        m_sprite_joystickThumb.GetComponent <BoxCollider>().enabled = false;

        Client.IControllerSystem controllerSys = Client.ClientGlobal.Instance().GetControllerSystem();
        if (controllerSys != null)
        {
            Client.IController ctrl = controllerSys.GetActiveCtrl();
            if (ctrl != null)
            {
                ctrl.OnMessage(Engine.MessageCode.MessageCode_JoystickEnd);
            }
        }
        Engine.Utility.EventEngine.Instance().DispatchEvent((int)(int)Client.GameEventID.JOYSTICK_UNPRESS, null);
        if (MainPlayerHelper.GetMainPlayer() != null)
        {
            ISkillPart part = MainPlayerHelper.GetMainPlayer().GetPart(EntityPart.Skill) as ISkillPart;
            if (part != null)
            {
                int st = part.GetCurSkillState();
                if (st == (int)SkillState.None || st == (int)SkillState.Prepare)
                {
                    stForbiddenJoystick info = new stForbiddenJoystick();
                    info.playerID  = MainPlayerHelper.GetPlayerUID();
                    info.bFobidden = false;
                    EventEngine.Instance().DispatchEvent((int)GameEventID.SKILL_FORBIDDENJOYSTICK, info);
                }
            }
        }
    }
Ejemplo n.º 2
0
        // 退出状态
        public override void Leave()
        {
            PlayerSkillPart playerSkill = m_SkillPart as PlayerSkillPart;

            if (playerSkill.IsMainPlayer())
            {
                Log.LogGroup("ZDY", " main player leave skilloverstate");
            }
            //SkillEffect skillEffect = m_caster.EffectNode;
            //if(skillEffect != null)
            //{//此处调用stop 会影响sing技能的放置特效 此处无意义 如果以后要调用stop 可以加break函数区分stop
            //    skillEffect.Stop();
            //}
            playerSkill.Master.SendMessage(EntityMessage.EntityCommand_ChangeMoveSpeedFact, (object)1f);

            if (SkillSystem.GetClientGlobal().IsMainPlayer(playerSkill.GetMaster()))
            {
                stForbiddenJoystick info = new stForbiddenJoystick();
                info.playerID  = playerSkill.Master.GetUID();
                info.bFobidden = false;
                EventEngine.Instance().DispatchEvent((int)GameEventID.SKILL_FORBIDDENJOYSTICK, info);
            }
        }
Ejemplo n.º 3
0
        // 进入状态
        public override void Enter(object param)
        {
            if (m_SkillPart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART)
            {
                PlayerSkillPart playerSkill = m_SkillPart as PlayerSkillPart;

                if (SkillSystem.GetClientGlobal().IsMainPlayer(playerSkill.GetMaster()))
                {
                    // Log.LogGroup("ZDY", "mainpalyer enter skilloverstate");

                    if (playerSkill != null)
                    {
                        playerSkill.CurSkillID = 0;
                    }
                    //Log.LogGroup("ZCX", "Enter ..." + this.GetType().Name + playerSkill.CurSkillID);
                    stForbiddenJoystick info = new stForbiddenJoystick();
                    info.playerID  = playerSkill.Master.GetUID();
                    info.bFobidden = false;
                    EventEngine.Instance().DispatchEvent((int)GameEventID.SKILL_FORBIDDENJOYSTICK, info);
                }
                IEntity casetr = playerSkill.GetMaster();
                if (casetr == null)
                {
                    return;
                }
                playerSkill.Master.SendMessage(EntityMessage.EntityCommond_IgnoreMoveAction, false);
                playerSkill.Master.SendMessage(EntityMessage.EntityCommand_ChangeMoveSpeedFact, (object)1f);
                CreatureState playerState = playerSkill.GetMaster().GetCurState();
                if (playerState != CreatureState.Dead)
                {
                    // 不能立即切换到Normal状态
                    PlayAni anim_param = new PlayAni();
                    bool    isMove     = (bool)m_SkillPart.GetMaster().SendMessage(EntityMessage.EntityCommand_IsMove, null);
                    if (isMove)
                    {
                        anim_param.strAcionName = EntityAction.Run;
                    }
                    else
                    {
                        if (casetr.GetEntityType() == EntityType.EntityType_Player)
                        {
                            anim_param.strAcionName = EntityAction.Stand_Combat;
                        }
                        else
                        {
                            anim_param.strAcionName = EntityAction.Stand;
                        }
                    }

                    anim_param.fSpeed      = 1;
                    anim_param.nStartFrame = 0;
                    anim_param.nLoop       = -1;
                    anim_param.fBlendTime  = 0.2f;
                    m_SkillPart.GetMaster().SendMessage(EntityMessage.EntityCommand_PlayAni, anim_param);


                    //如果在挂机 不能立即切换到Normal状态 主角才派发事件
                    if (IsMainPlayer())
                    {
                        IControllerSystem cs = playerSkill.GetCtrollerSys();
                        if (cs == null)
                        {
                            Log.Error("ExecuteCmd: ControllerSystem is null");
                            return;
                        }

                        Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLNONESTATE_ENTER,
                                                                            new stSkillStateEnter()
                        {
                            state = this.m_nStateID, uid = playerSkill.GetMaster().GetUID()
                        });
                    }
                }
            }
        }