Esempio n. 1
0
    public void Execute(GameCmd.stNotifyUninterruptEventMagicUserCmd_CS cmd)
    {
        GameCmd.UninterruptActionType action = (UninterruptActionType)cmd.actiontype;
        if (action == UninterruptActionType.UninterruptActionType_SkillCJ)
        {
            ISkillPart skillPart = SkillHelper.GetSkillPart(cmd.desid, EntityType.EntityType_Player);
            if (skillPart == null)
            {
                Engine.Utility.Log.Error("获取技能部件失败!");
                return;
            }
            skillPart.OnInterruptEventSkill((uint)cmd.etype);
        }
        else
        {
            if (cmd.etype == stNotifyUninterruptEventMagicUserCmd_CS.EventType.EventType_Break)
            {
                if (ClientGlobal.Instance().IsMainPlayer(cmd.desid) && action == UninterruptActionType.UninterruptActionType_CampCJ)
                {
                    TipsManager.Instance.ShowTips("采集被打断了");
                }

                Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLGUIDE_PROGRESSBREAK,
                                                                    new stGuildBreak()
                {
                    action = action, uid = cmd.desid, npcId = cmd.npcid
                });
            }
            else if (cmd.etype == stNotifyUninterruptEventMagicUserCmd_CS.EventType.EventType_Over)
            {
                Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLGUIDE_PROGRESSEND,
                                                                    new stGuildEnd()
                {
                    action = action, uid = cmd.desid, npcId = cmd.npcid
                });

                if (action == UninterruptActionType.UninterruptActionType_CampCJ)
                {
                    Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.CAMP_ADDCOLLECTNPC,
                                                                        new stCampCollectNpc()
                    {
                        enter = false
                    });
                }
            }
        }
    }