Example #1
0
        // 退出状态
        public override void Leave()
        {
            Engine.Utility.EventEngine.Instance().RemoveEventListener((int)Client.GameEventID.ENTITYSYSTEM_ENTITYSTOPMOVE, OnEvent);
            Engine.Utility.EventEngine.Instance().RemoveEventListener((int)Client.GameEventID.ENTITYSYSTEM_ENTITYBEGINMOVE, OnEvent);
            if (IsMainPlayer())
            {
                Engine.Utility.EventEngine.Instance().RemoveEventListener((int)Client.GameEventID.SKLL_LONGPRESS, OnEvent);
            }
            PlayerSkillPart playerSkill = skillPart as PlayerSkillPart;

            if (skillPart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART)
            {
                SkillDatabase database = playerSkill.GetCurSkillDataBase();
                if (database == null)
                {
                    return;
                }
                if (database.dwUseMethod == (int)UseMethod.ContinueLock)
                {
                    playerSkill.Master.SendMessage(EntityMessage.EntityCommand_SetVisible, true);
                }
            }
            // playerSkill.SkillStiffTime = 0;

            //if (SkillSystem.GetClientGlobal().IsMainPlayer(playerSkill.GetMaster()))
            //{
            //    Log.Trace("Leave ..." + this.GetType().Name);
            //}
            //Log.Trace("skill attack state leave");
        }