Example #1
0
        // 进入状态
        public override void Enter(object param)
        {
            IEntity target = skillPart.GetSkillTarget();

            // 只有主角会进入战斗状态
            if (skillPart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART && EntitySystem.EntityHelper.IsMainPlayer(skillPart.GetMaster()))
            {
                PlayerSkillPart playerSkill = skillPart as PlayerSkillPart;
                if (playerSkill != null)
                {
                    playerSkill.SkillStartPlayTime = Time.realtimeSinceStartup;
                    playerSkill.SetFighting(true);
                }
            }
            SkillDatabase skilltable = skillPart.GetCurSkillDataBase();

            if (skilltable == null)
            {
                return;
            }
            // 朝向目标
            if (target != null)
            {
                if (skilltable.targetType != (int)SkillTargetType.TargetForwardPoint)
                {
                    skillPart.GetMaster().SendMessage(EntityMessage.EntityCommand_LookTarget, target.GetPos());
                }
            }

            database = skilltable;
            //准备时间结束 发送结束消息
            if (SkillSystem.GetClientGlobal().IsMainPlayer(skillPart.GetMaster()) && skilltable.dwReadTime > 0) // 非瞬发技能
            {                                                                                                   //读条技能
                Client.stUninterruptMagic evenparam = new Client.stUninterruptMagic();
                evenparam.time = database.dwReadTime;
                evenparam.type = GameCmd.UninterruptActionType.UninterruptActionType_SkillCJ;
                evenparam.uid  = skillPart.GetMaster().GetUID();
                EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLGUIDE_PROGRESSSTART, evenparam);
            }

            preparetime = 0;
        }