예제 #1
0
    public void Execute(GameCmd.stNotifyUninterruptMagicUserCmd_S cmd)
    {
        if (cmd.actiontype == UninterruptActionType.UninterruptActionType_SkillCJ)
        {
            ISkillPart skillPart = SkillHelper.GetSkillPart(cmd.userid, EntityType.EntityType_Player);

            if (skillPart == null)
            {
                Engine.Utility.Log.Error("获取主角技能部件失败!");
                return;
            }
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLGUIDE_PROGRESSBREAK,
                                                                new stGuildBreak()
            {
                action = GameCmd.UninterruptActionType.UninterruptActionType_SkillCJ, uid = cmd.userid, skillid = skillPart.GetCurSkillDataBase().wdID
            });
            TimerAxis.Instance().KillTimer(m_uReadSliderTimerID, this);
            skillPart.OnInterruptSkill(cmd.userid, cmd.time, cmd.type, (uint)cmd.actiontype);
        }
        else if (cmd.actiontype == UninterruptActionType.UninterruptActionType_GOHOME)
        {
            long id = EntitySystem.EntityHelper.MakeUID(EntityType.EntityType_Player, cmd.userid);

            IEntitySystem pEntitySystem = ClientGlobal.Instance().GetEntitySystem();
            if (pEntitySystem != null)
            {
                IPlayer pPlayer = pEntitySystem.FindPlayer((uint)id);
                if (pPlayer != null)
                {
                    if (pPlayer.IsMainPlayer())
                    {
                        Client.stUninterruptMagic param = new Client.stUninterruptMagic();
                        param.time  = cmd.time;
                        param.type  = cmd.actiontype;
                        param.uid   = id;
                        param.npcId = cmd.npcid;
                        EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLGUIDE_PROGRESSSTART, param);
                    }
                    else
                    {
                    }
                }
            }
        }
        else
        {
            long id = EntitySystem.EntityHelper.MakeUID(EntityType.EntityType_Player, cmd.userid);

            Client.stUninterruptMagic param = new Client.stUninterruptMagic();
            param.time  = cmd.time;
            param.type  = cmd.actiontype;
            param.uid   = id;
            param.npcId = cmd.npcid;
            EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLGUIDE_PROGRESSSTART, param);
        }
    }