Example #1
0
        // 退出状态
        public override void Leave()
        {
            PlayerSkillPart playerSkill = m_SkillPart as PlayerSkillPart;

            if (SkillSystem.GetClientGlobal().IsMainPlayer(playerSkill.GetMaster()))
            {
                //  Log.Trace("Leave ..." + this.GetType().Name);
            }
        }
Example #2
0
        public SkillStateBase(Engine.Utility.StateMachine <ISkillPart> machine, ISkillPart skillpart)
        {
            m_Statemachine = machine;
            m_SkillPart    = skillpart;
            if (skillpart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART)
            {
                PlayerSkillPart skill = skillpart as PlayerSkillPart;

                m_isMainPlayer = SkillSystem.GetClientGlobal().IsMainPlayer(skill.GetMaster());
                m_caster       = skill.Caster;
            }
        }
Example #3
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);
            }
        }
Example #4
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()
                        });
                    }
                }
            }
        }