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); } } }
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); } } } }