diff options
| author | megamage <none@none> | 2009-04-18 20:49:56 -0500 | 
|---|---|---|
| committer | megamage <none@none> | 2009-04-18 20:49:56 -0500 | 
| commit | bede29b223698a2769cd057d923bbcac67ff550c (patch) | |
| tree | d3750b520a10627a9b4b712bb83c9196bcb8eba7 | |
| parent | 49bfc48f6e29b6bfd5de7f158ca1f4112ccc7014 (diff) | |
[7683] Fixed update ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST for daily quests. Author: Trazom
--HG--
branch : trunk
| -rw-r--r-- | src/game/AchievementMgr.cpp | 18 | ||||
| -rw-r--r-- | src/game/Player.cpp | 2 | 
2 files changed, 15 insertions, 5 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index ce2c46a64cb..b79af868754 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -789,8 +789,18 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui                  SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE);                  break;              case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST: -                if(GetPlayer()->GetQuestRewardStatus(achievementCriteria->complete_quest.questID)) -                    SetCriteriaProgress(achievementCriteria, 1); +                // if miscvalues != 0, it contains the questID. +                if (miscvalue1) +                { +                    if (miscvalue1 == achievementCriteria->complete_quest.questID) +                        SetCriteriaProgress(achievementCriteria, 1); +                } +                else +                { +                    // login case. +                    if(GetPlayer()->GetQuestRewardStatus(achievementCriteria->complete_quest.questID)) +                        SetCriteriaProgress(achievementCriteria, 1); +                }                  break;              case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET:              case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2: @@ -1175,12 +1185,12 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve              return progress->counter >= achievementCriteria->equip_item.count;          case ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD:              return progress->counter >= achievementCriteria->quest_reward_money.goldInCopper; -        case ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT: -            return progress->counter >= achievementCriteria->fish_in_gameobject.lootCount;          case ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY:              return progress->counter >= achievementCriteria->loot_money.goldInCopper;          case ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT:              return progress->counter >= achievementCriteria->use_gameobject.useCount; +        case ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT: +            return progress->counter >= achievementCriteria->fish_in_gameobject.lootCount;          case ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:              return progress->counter >= achievementCriteria->learn_skilline_spell.spellCount; diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 4fb75a9fdad..8a9e9637846 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -12684,7 +12684,7 @@ void Player::RewardQuest( Quest const *pQuest, uint32 reward, Object* questGiver      if (pQuest->GetZoneOrSort() > 0)          GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE, pQuest->GetZoneOrSort());      GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT); -    GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST); +    GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST, pQuest->GetQuestId());      uint32 zone = 0;      uint32 area = 0;  | 
