private static void __InstanceKillMonster_Listener(EventDispatcher listener, object data)
        {
            //获取副本数据
            ChallengeInstance instance = listener as ChallengeInstance;

            if (null == instance || null == instance.mCopyTplData)
            {
                return;
            }

            NPCInstance target = data as NPCInstance;

            if (null == target)
            {
                return;
            }

            instance.mKilledMobNum++;
            if (instance.mCopyTplData.targetId == 0) //杀光所有怪物
            {
                if (instance.mKilledMobNum == instance.mTotalMobNum)
                {
                    instance.OnFinish(true);
                }
            }
            else
            {
                if (instance.mCopyTplData.targetId == target.NPCData.TemplateId)
                {
                    instance.OnFinish(true);
                }
            }
        }
Beispiel #2
0
        private static void __InstanceProtectTarget_Listener(EventDispatcher listener, object data)
        {
            //获取副本数据
            ChallengeInstance instance = listener as ChallengeInstance;

            if (null == instance || null == instance.mCopyTplData)
            {
                return;
            }

            NPCInstance target = data as NPCInstance;

            if (null == target)
            {
                return;
            }

            instance.mKilledMobNum++;
            if (instance.mCopyTplData.targetId == target.NPCData.TemplateId) //保护目标已死,任务失败
            {
                instance.OnFinish(false);
            }
            else
            {
                if (instance.mKilledMobNum == instance.mTotalMobNum)
                {
                    NPCInstance protectTarget = instance.GetNPC(instance.mCopyTplData.targetId);
                    if (null != protectTarget && !protectTarget.IsDie)
                    {
                        instance.OnFinish(true);
                    }
                }
            }
        }