mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-18 09:44:34 +00:00
fix(Core/Achievement): Implement ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK (#17180)
* fix(Core): Implement ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK * fix(Core): LoadAchievementCriteriaData(): Add ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK - fixes minor oversight of ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK implementation - this enables DB achievement_criteria_data check for ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
-- ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (707, 708, 709, 710, 711, 712, 713, 714, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740);
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
|
||||
(707, 23, 14, 0, ''),
|
||||
(708, 23, 13, 0, ''),
|
||||
(709, 23, 12, 0, ''),
|
||||
(710, 23, 11, 0, ''),
|
||||
(711, 23, 10, 0, ''),
|
||||
(712, 23, 9, 0, ''),
|
||||
(713, 23, 8, 0, ''),
|
||||
(714, 23, 7, 0, ''),
|
||||
(721, 23, 6, 0, ''),
|
||||
(722, 23, 5, 0, ''),
|
||||
(723, 23, 4, 0, ''),
|
||||
(724, 23, 3, 0, ''),
|
||||
(725, 23, 2, 0, ''),
|
||||
(726, 23, 1, 0, ''),
|
||||
(727, 23, 28, 0, ''),
|
||||
(728, 23, 27, 0, ''),
|
||||
(729, 23, 26, 0, ''),
|
||||
(730, 23, 25, 0, ''),
|
||||
(731, 23, 24, 0, ''),
|
||||
(732, 23, 23, 0, ''),
|
||||
(733, 23, 22, 0, ''),
|
||||
(734, 23, 21, 0, ''),
|
||||
(735, 23, 20, 0, ''),
|
||||
(736, 23, 19, 0, ''),
|
||||
(737, 23, 18, 0, ''),
|
||||
(738, 23, 17, 0, ''),
|
||||
(739, 23, 16, 0, ''),
|
||||
(740, 23, 15, 0, '');
|
||||
@@ -82,6 +82,7 @@ bool AchievementCriteriaData::IsValid(AchievementCriteriaEntry const* criteria)
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK:
|
||||
break;
|
||||
default:
|
||||
if (dataType != ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT)
|
||||
@@ -1732,6 +1733,16 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
||||
SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE);
|
||||
break;
|
||||
}
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK:
|
||||
{
|
||||
// those requirements couldn't be found in the dbc
|
||||
AchievementCriteriaDataSet const* data = sAchievementMgr->GetCriteriaDataSet(achievementCriteria);
|
||||
if (!data || !data->Meets(GetPlayer(), nullptr))
|
||||
continue;
|
||||
|
||||
SetCriteriaProgress(achievementCriteria, 1);
|
||||
break;
|
||||
}
|
||||
// std case: not exist in DBC, not triggered in code as result
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER:
|
||||
@@ -1742,7 +1753,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
||||
break;
|
||||
// FIXME: not triggered in code as result, need to implement
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_TOTAL:
|
||||
break; // Not implemented yet :(
|
||||
}
|
||||
@@ -1907,6 +1917,8 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
|
||||
return true;
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA:
|
||||
return achievementCriteria->win_arena.count && progress->counter >= achievementCriteria->win_arena.count;
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK:
|
||||
return true;
|
||||
// handle all statistic-only criteria here
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP:
|
||||
@@ -2724,6 +2736,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData()
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
|
||||
case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
|
||||
|
||||
@@ -13272,6 +13272,8 @@ void Player::SetTitle(CharTitlesEntry const* title, bool lost)
|
||||
data << uint32(title->bit_index);
|
||||
data << uint32(lost ? 0 : 1); // 1 - earned, 0 - lost
|
||||
GetSession()->SendPacket(&data);
|
||||
|
||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK);
|
||||
}
|
||||
|
||||
uint32 Player::GetRuneBaseCooldown(uint8 index, bool skipGrace)
|
||||
|
||||
Reference in New Issue
Block a user