aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2009-04-18 20:49:56 -0500
committermegamage <none@none>2009-04-18 20:49:56 -0500
commitbede29b223698a2769cd057d923bbcac67ff550c (patch)
treed3750b520a10627a9b4b712bb83c9196bcb8eba7
parent49bfc48f6e29b6bfd5de7f158ca1f4112ccc7014 (diff)
[7683] Fixed update ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST for daily quests. Author: Trazom
--HG-- branch : trunk
-rw-r--r--src/game/AchievementMgr.cpp18
-rw-r--r--src/game/Player.cpp2
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;