From c0e3cc99e22ae7b013b549aa10319b42075cb179 Mon Sep 17 00:00:00 2001 From: GriffonHeart Date: Thu, 7 Jan 2010 20:29:16 +0300 Subject: [PATCH] [9119] Add achievement creteria requirements for ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET* Most ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET and ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 not need any additional requirements (so just ACHIEVEMENT_CRITERIA_REQUIRE_NONE(0) in DB) but some need map difficualty checks and some ACHIEVEMENT_CRITERIA_REQUIRE_INSTANCE_SCRIPT also. Signed-off-by: VladimirMangos --- src/game/AchievementMgr.cpp | 13 +++++++++++++ src/shared/revision_nr.h | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 124195a4df7..aa8c999eb6e 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -93,6 +93,8 @@ bool AchievementCriteriaRequirement::IsValid(AchievementCriteriaEntry const* cri case ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL: case ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE: case ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2: + case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET: + case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2: break; default: sLog.outErrorDb( "Table `achievement_criteria_requirement` have data for not supported criteria type (Entry: %u Type: %u), ignore.", criteria->ID, criteria->requiredType); @@ -1033,10 +1035,21 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui } case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET: case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2: + { if (!miscvalue1 || miscvalue1 != achievementCriteria->be_spell_target.spellID) continue; + + // those requirements couldn't be found in the dbc + AchievementCriteriaRequirementSet const* data = sAchievementMgr.GetCriteriaRequirementSet(achievementCriteria); + if(!data) + continue; + + if(!data->Meets(GetPlayer(),unit)) + continue; + SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE); break; + } case ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL: case ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2: { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index f0bbb133143..54f39c0d7aa 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9118" + #define REVISION_NR "9119" #endif // __REVISION_NR_H__