diff --git a/src/shared/Database/DBCEnums.h b/src/shared/Database/DBCEnums.h index 3f57c7297..8f9d70cb7 100644 --- a/src/shared/Database/DBCEnums.h +++ b/src/shared/Database/DBCEnums.h @@ -76,6 +76,7 @@ enum AchievementCriteriaTypes // you have to complete a daily quest x times in a row ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY = 10, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE = 11, + ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE = 13, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST = 14, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND= 15, ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP= 16, @@ -86,6 +87,7 @@ enum AchievementCriteriaTypes ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE = 20, ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER = 23, ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING = 24, + ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM = 26, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST = 27, ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET = 28, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL= 29, @@ -114,13 +116,18 @@ enum AchievementCriteriaTypes ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49, // TODO: itemlevel is mentioned in text but not present in dbc ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50, + ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT= 51, ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52, ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53, ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54, ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55, + // TODO: in some cases map not present, and in some cases need do without die + ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57, + ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS = 59, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60, ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS = 61, + ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD = 62, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING = 63, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER = 65, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL = 66, diff --git a/src/shared/Database/DBCStructure.h b/src/shared/Database/DBCStructure.h index 8cc274bb1..78f83671e 100644 --- a/src/shared/Database/DBCStructure.h +++ b/src/shared/Database/DBCStructure.h @@ -40,7 +40,7 @@ struct AchievementEntry uint32 ID; // 0 uint32 factionFlag; // 1 -1=all, 0=horde, 1=alliance uint32 mapID; // 2 -1=none - //uint32 unk; // 3 parent achievement (previous, required) + //uint32 parentAchievement; // 3 its Achievement parent (can`t start while parent uncomplete, use its Criteria if don`t have own, use its progress on begin) //char *name[16]; // 4-19 //uint32 name_flags; // 20 //char *description[16]; // 21-36 @@ -49,11 +49,11 @@ struct AchievementEntry uint32 points; // 39 reward points //uint32 OrderInCategory; // 40 uint32 flags; // 41 - //uint32 icon; // 42 icon - //char *unk1[16]; // 43-58 - //uint32 unk_flags; // 59 - //uint32 count; // 60 - uint32 refAchievement; // 61 related achievement? + //uint32 icon; // 42 icon (from SpellIcon.dbc) + //char *titleReward[16]; // 43-58 + //uint32 titleReward_flags; // 59 + //uint32 count; // 60 - need this count Criteria for complete + uint32 refAchievement; // 61 - related achievement? }; struct AchievementCategoryEntry @@ -62,7 +62,7 @@ struct AchievementCategoryEntry uint32 parentCategory; // 1 -1 for main category //char *name[16]; // 2-17 //uint32 name_flags; // 18 - uint32 sortOrder; // 19 + //uint32 sortOrder; // 19 }; struct AchievementCriteriaEntry @@ -167,6 +167,12 @@ struct AchievementCriteriaEntry uint32 fallHeight; // 4 } fall_without_dying; + // ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM = 26 + struct + { + uint32 type; // 0 - fatigue, 1 - drowning, 2 - falling, 3 - ??, 5 - fire and lava + } deaths; + // ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST = 27 struct { @@ -340,8 +346,9 @@ struct AchievementCriteriaEntry { uint32 emoteID; // 3 } do_emote; - + // ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE = 13 // ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55 + // ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56 struct { uint32 unused; // 3 @@ -461,7 +468,7 @@ struct AchievementCriteriaEntry uint32 groupFlag; // 27 //uint32 unk1; // 28 uint32 timeLimit; // 29 time limit in seconds - //uint32 order; // 30 order + //uint32 showOrder; // 30 show order }; struct AreaTableEntry