-started updating DBC formats for 14545
-added new dbc files for dev usage
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1965,7 +1965,7 @@ void AchievementMgr::StartTimedAchievement(AchievementCriteriaTimedTypes type, u
|
||||
AchievementCriteriaEntryList const& achievementCriteriaList = sAchievementMgr->GetTimedAchievementCriteriaByType(type);
|
||||
for (AchievementCriteriaEntryList::const_iterator i = achievementCriteriaList.begin(); i != achievementCriteriaList.end(); ++i)
|
||||
{
|
||||
if ((*i)->timerStartEvent != entry)
|
||||
if ((*i)->timedCriteriaMiscId != entry)
|
||||
continue;
|
||||
|
||||
AchievementEntry const* achievement = sAchievementStore.LookupEntry((*i)->referredAchievement);
|
||||
@@ -1988,7 +1988,7 @@ void AchievementMgr::RemoveTimedAchievement(AchievementCriteriaTimedTypes type,
|
||||
AchievementCriteriaEntryList const& achievementCriteriaList = sAchievementMgr->GetTimedAchievementCriteriaByType(type);
|
||||
for (AchievementCriteriaEntryList::const_iterator i = achievementCriteriaList.begin(); i!=achievementCriteriaList.end(); ++i)
|
||||
{
|
||||
if ((*i)->timerStartEvent != entry)
|
||||
if ((*i)->timedCriteriaMiscId != entry)
|
||||
continue;
|
||||
|
||||
TimedAchievementMap::iterator timedIter = m_timedAchievements.find((*i)->ID);
|
||||
@@ -2194,7 +2194,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaList()
|
||||
m_AchievementCriteriaListByAchievement[criteria->referredAchievement].push_back(criteria);
|
||||
|
||||
if (criteria->timeLimit)
|
||||
m_AchievementCriteriasByTimedType[criteria->timedType].push_back(criteria);
|
||||
m_AchievementCriteriasByTimedType[criteria->timedCriteriaStartType].push_back(criteria);
|
||||
}
|
||||
|
||||
sLog->outString(">> Loaded %lu achievement criteria in %u ms", (unsigned long)m_AchievementCriteriasByType->size(), GetMSTimeDiffToNow(oldMSTime));
|
||||
|
||||
@@ -765,7 +765,7 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
|
||||
|
||||
selectionWeight = fields[9].GetUInt8();
|
||||
data.scriptId = sObjectMgr->GetScriptId(fields[10].GetCString());
|
||||
data.BattlegroundName = bl->name[sWorld->GetDefaultDbcLocale()];
|
||||
//data.BattlegroundName = bl->name[sWorld->GetDefaultDbcLocale()];
|
||||
data.MapID = bl->mapid[0];
|
||||
|
||||
if (!CreateBattleground(data))
|
||||
|
||||
@@ -58,16 +58,24 @@ enum AchievementFaction
|
||||
|
||||
enum AchievementFlags
|
||||
{
|
||||
ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete)
|
||||
ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // Not sent to client - internal use only
|
||||
ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // Store only max value? used only in "Reach level xx"
|
||||
ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all reqirements (and calculate max value)
|
||||
ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max value ??)
|
||||
ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max value)
|
||||
ACHIEVEMENT_FLAG_AVERAGE = 0x00000040, // Show as average value (value / time_in_days) depend from other flag (by def use last criteria value)
|
||||
ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value)
|
||||
ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, //
|
||||
ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200, //
|
||||
ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete)
|
||||
ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // Not sent to client - internal use only
|
||||
ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // Store only max value? used only in "Reach level xx"
|
||||
ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all reqirements (and calculate max value)
|
||||
ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max value ??)
|
||||
ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max value)
|
||||
ACHIEVEMENT_FLAG_AVERAGE = 0x00000040, // Show as average value (value / time_in_days) depend from other flag (by def use last criteria value)
|
||||
ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value)
|
||||
ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, //
|
||||
ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200, //
|
||||
ACHIEVEMENT_FLAG_UNK3 = 0x00000400, // ACHIEVEMENT_FLAG_HIDE_NAME_IN_TIE
|
||||
ACHIEVEMENT_FLAG_REALM_FIRST_GUILD = 0x00000800, // first guild on realm done something
|
||||
ACHIEVEMENT_FLAG_UNK4 = 0x00001000, // as guild group?
|
||||
ACHIEVEMENT_FLAG_UNK5 = 0x00002000, // as guild group?
|
||||
ACHIEVEMENT_FLAG_GUILD = 0x00004000, //
|
||||
ACHIEVEMENT_FLAG_SHOW_GUILD_MEMBERS = 0x00008000, //
|
||||
ACHIEVEMENT_FLAG_SHOW_CRITERIA_MEMBERS = 0x00010000, //
|
||||
|
||||
};
|
||||
|
||||
#define MAX_CRITERIA_REQUIREMENTS 2
|
||||
@@ -102,6 +110,7 @@ enum AchievementCriteriaTimedTypes
|
||||
ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET = 6, // Timer is started by being target of spell with entry in timerStartEvent
|
||||
ACHIEVEMENT_TIMED_TYPE_CREATURE = 7, // Timer is started by killing creature with entry in timerStartEvent
|
||||
ACHIEVEMENT_TIMED_TYPE_ITEM = 9, // Timer is started by using item with entry in timerStartEvent
|
||||
ACHIEVEMENT_TIMED_TYPE_UNK = 10, // Unknown
|
||||
|
||||
ACHIEVEMENT_TIMED_TYPE_MAX,
|
||||
};
|
||||
@@ -215,17 +224,56 @@ enum AchievementCriteriaTypes
|
||||
ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE= 112,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114,
|
||||
// 0..115 => 116 criteria types total
|
||||
ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS = 115,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS = 119,
|
||||
// 120
|
||||
// 121
|
||||
// 122
|
||||
// 123
|
||||
// 0..123 => 124 criteria types total
|
||||
ACHIEVEMENT_CRITERIA_TYPE_TOTAL = 124,
|
||||
// 120 -
|
||||
// 121 -
|
||||
// 122 -
|
||||
// 123 -
|
||||
ACHIEVEMENT_CRITERIA_TYPE_SPENT_GOLD_GUILD_REPAIRS = 124,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_REACH_GUILD_LEVEL = 125,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_CRAFT_ITEMS_GUILD = 126,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_CATCH_FROM_POOL = 127,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_BUY_GUILD_BANK_SLOTS = 128,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_EARN_GUILD_ACHIEVEMENT_POINTS = 129,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_BATTLEGROUND = 130,
|
||||
// 131 -
|
||||
ACHIEVEMENT_CRITERIA_TYPE_REACH_BG_RATING = 132,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_BUY_GUILD_TABARD = 133,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_GUILD = 134,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILLS_GUILD = 135,
|
||||
ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE_GUILD = 136,
|
||||
// 0..136 => 137 criteria types total
|
||||
ACHIEVEMENT_CRITERIA_TYPE_TOTAL = 137,
|
||||
};
|
||||
|
||||
enum AchievementCriteriaMoreReqType
|
||||
{
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_ITEM_LEVEL = 3,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_CREATURE_ID = 4,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_SPELL = 8,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_SPELL_ON_TARGET = 10,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_ITEM_QUALITY_EQUIPPED = 14,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_ITEM_QUALITY_LOOTED = 15,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_AREA_ID = 17,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_AREA_ID2 = 18,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_RAID_DIFFICULTY = 20,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_ARENA_TYPE = 24,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_PLAYER_CLASS = 26,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_PLAYER_RACE = 27,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_PLAYER_CLASS2 = 28,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_CREATURE_TYPE = 30,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_MAP_ID = 32,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_TIMED_QUEST = 35,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_PLAYER_TITLE = 38,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_PLAYER_LEVEL = 39,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_PLAYER_LEVEL2 = 40,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_AREA_ID3 = 41,
|
||||
ACHIEVEMENT_CRITERIA_MORE_REQ_TYPE_GUILD_REP = 62,
|
||||
};
|
||||
|
||||
|
||||
|
||||
enum AchievementCategory
|
||||
{
|
||||
CATEGORY_CHILDRENS_WEEK = 163,
|
||||
@@ -233,7 +281,7 @@ enum AchievementCategory
|
||||
|
||||
enum AreaFlags
|
||||
{
|
||||
AREA_FLAG_UNK0 = 0x00000001, // Unknown
|
||||
AREA_FLAG_SNOW = 0x00000001, // snow (only Dun Morogh, Naxxramas, Razorfen Downs and Winterspring)
|
||||
AREA_FLAG_UNK1 = 0x00000002, // Razorfen Downs, Naxxramas and Acherus: The Ebon Hold (3.3.5a)
|
||||
AREA_FLAG_UNK2 = 0x00000004, // Only used for areas on map 571 (development before)
|
||||
AREA_FLAG_SLAVE_CAPITAL = 0x00000008, // city and city subsones
|
||||
|
||||
@@ -59,6 +59,7 @@ static WMOAreaInfoByTripple sWMOAreaInfoByTripple;
|
||||
DBCStorage <AchievementEntry> sAchievementStore(Achievementfmt);
|
||||
DBCStorage <AchievementCriteriaEntry> sAchievementCriteriaStore(AchievementCriteriafmt);
|
||||
DBCStorage <AreaTriggerEntry> sAreaTriggerStore(AreaTriggerEntryfmt);
|
||||
DBCStorage <ArmorLocationEntry> sArmorLocationStore(ArmorLocationfmt);
|
||||
DBCStorage <AuctionHouseEntry> sAuctionHouseStore(AuctionHouseEntryfmt);
|
||||
DBCStorage <BankBagSlotPricesEntry> sBankBagSlotPricesStore(BankBagSlotPricesEntryfmt);
|
||||
DBCStorage <BattlemasterListEntry> sBattlemasterListStore(BattlemasterListEntryfmt);
|
||||
@@ -275,20 +276,21 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
}
|
||||
}
|
||||
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAchievementStore, dbcPath, "Achievement.dbc", &CustomAchievementfmt, &CustomAchievementIndex);
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAchievementCriteriaStore, dbcPath, "Achievement_Criteria.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAreaTriggerStore, dbcPath, "AreaTrigger.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAreaGroupStore, dbcPath, "AreaGroup.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAreaPOIStore, dbcPath, "AreaPOI.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAuctionHouseStore, dbcPath, "AuctionHouse.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sBankBagSlotPricesStore, dbcPath, "BankBagSlotPrices.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sBattlemasterListStore, dbcPath, "BattlemasterList.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sBarberShopStyleStore, dbcPath, "BarberShopStyle.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sCharStartOutfitStore, dbcPath, "CharStartOutfit.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sCharTitlesStore, dbcPath, "CharTitles.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sChatChannelsStore, dbcPath, "ChatChannels.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sChrClassesStore, dbcPath, "ChrClasses.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sChrRacesStore, dbcPath, "ChrRaces.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAchievementStore, dbcPath, "Achievement.dbc"/*, &CustomAchievementfmt, &CustomAchievementIndex*/);//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAchievementCriteriaStore, dbcPath, "Achievement_Criteria.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAreaTriggerStore, dbcPath, "AreaTrigger.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAreaGroupStore, dbcPath, "AreaGroup.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAreaPOIStore, dbcPath, "AreaPOI.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sAuctionHouseStore, dbcPath, "AuctionHouse.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sArmorLocationStore, dbcPath, "ArmorLocation.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sBankBagSlotPricesStore, dbcPath, "BankBagSlotPrices.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sBattlemasterListStore, dbcPath, "BattlemasterList.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sBarberShopStyleStore, dbcPath, "BarberShopStyle.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sCharStartOutfitStore, dbcPath, "CharStartOutfit.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sCharTitlesStore, dbcPath, "CharTitles.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sChatChannelsStore, dbcPath, "ChatChannels.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sChrClassesStore, dbcPath, "ChrClasses.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sChrRacesStore, dbcPath, "ChrRaces.dbc");//14545
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sCinematicSequencesStore, dbcPath, "CinematicSequences.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sCreatureDisplayInfoStore, dbcPath, "CreatureDisplayInfo.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sCreatureFamilyStore, dbcPath, "CreatureFamily.dbc");
|
||||
|
||||
@@ -69,6 +69,7 @@ extern DBCStorage <AreaTableEntry> sAreaStore;// recommend access
|
||||
extern DBCStorage <AreaGroupEntry> sAreaGroupStore;
|
||||
extern DBCStorage <AreaPOIEntry> sAreaPOIStore;
|
||||
extern DBCStorage <AreaTriggerEntry> sAreaTriggerStore;
|
||||
extern DBCStorage <ArmorLocationEntry> sArmorLocationStore;
|
||||
extern DBCStorage <AuctionHouseEntry> sAuctionHouseStore;
|
||||
extern DBCStorage <BankBagSlotPricesEntry> sBankBagSlotPricesStore;
|
||||
extern DBCStorage <BarberShopStyleEntry> sBarberShopStyleStore;
|
||||
|
||||
@@ -44,28 +44,24 @@ struct AchievementEntry
|
||||
int32 requiredFaction; // 1 -1=all, 0=horde, 1=alliance
|
||||
int32 mapID; // 2 -1=none
|
||||
//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
|
||||
//uint32 desc_flags; // 37
|
||||
uint32 categoryId; // 38
|
||||
uint32 points; // 39 reward points
|
||||
//uint32 OrderInCategory; // 40
|
||||
uint32 flags; // 41
|
||||
//uint32 icon; // 42 icon (from SpellIcon.dbc)
|
||||
//char *titleReward[16]; // 43-58
|
||||
//uint32 titleReward_flags; // 59
|
||||
uint32 count; // 60 - need this count of completed criterias (own or referenced achievement criterias)
|
||||
uint32 refAchievement; // 61 - referenced achievement (counting of all completed criterias)
|
||||
DBCString name; // 4
|
||||
//DBCString description; // 5
|
||||
uint32 categoryId; // 6
|
||||
uint32 points; // 7 reward points
|
||||
//uint32 OrderInCategory; // 8
|
||||
uint32 flags; // 9
|
||||
//uint32 icon; // 10 icon (from SpellIcon.dbc)
|
||||
//DBCString reward; // 11
|
||||
uint32 count; // 12 - need this count of completed criterias (own or referenced achievement criterias)
|
||||
uint32 refAchievement; // 13 - referenced achievement (counting of all completed criterias)
|
||||
};
|
||||
|
||||
struct AchievementCategoryEntry
|
||||
{
|
||||
uint32 ID; // 0
|
||||
uint32 parentCategory; // 1 -1 for main category
|
||||
//char *name[16]; // 2-17
|
||||
//uint32 name_flags; // 18
|
||||
//uint32 sortOrder; // 19
|
||||
//DBCString name; // 2
|
||||
//uint32 sortOrder; // 3
|
||||
};
|
||||
|
||||
struct AchievementCriteriaEntry
|
||||
@@ -260,7 +256,14 @@ struct AchievementCriteriaEntry
|
||||
struct
|
||||
{
|
||||
uint32 teamtype; // 3 {2, 3, 5}
|
||||
uint32 PersonalRating; // 4
|
||||
uint32 teamrating; // 4
|
||||
} reach_team_rating;
|
||||
|
||||
// ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39
|
||||
struct
|
||||
{
|
||||
uint32 teamtype; // 3 {2, 3, 5}
|
||||
uint32 PersonalRating; // 4
|
||||
} highest_personal_rating;
|
||||
|
||||
// ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40
|
||||
@@ -370,6 +373,7 @@ struct AchievementCriteriaEntry
|
||||
} 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
|
||||
@@ -504,15 +508,19 @@ struct AchievementCriteriaEntry
|
||||
uint32 additionalRequirement_value;
|
||||
} additionalRequirements[MAX_CRITERIA_REQUIREMENTS];
|
||||
|
||||
//char* name[16]; // 9-24
|
||||
//uint32 name_flags; // 25
|
||||
uint32 flags; // 26
|
||||
uint32 timedType; // 27
|
||||
uint32 timerStartEvent; // 28 Alway appears with timed events
|
||||
// for timed spells it is spell id for
|
||||
// timed kills it is creature id
|
||||
uint32 timeLimit; // 29 time limit in seconds
|
||||
//uint32 showOrder; // 30 show order
|
||||
char* name; // 9 m_description_lang
|
||||
uint32 completionFlag; // 10 m_flags
|
||||
uint32 timedCriteriaStartType; // 11 m_timer_start_event Only appears with timed achievements, seems to be the type of starting a timed Achievement, only type 1 and some of type 6 need manual starting
|
||||
// 1: ByEventId(?) (serverside IDs), 2: ByQuestId, 5: ByCastSpellId(?)
|
||||
// 6: BySpellIdTarget(some of these are unknown spells, some not, some maybe spells)
|
||||
// 7: ByKillNpcId, 9: ByUseItemId
|
||||
uint32 timedCriteriaMiscId; // 12 m_timer_asset_id Alway appears with timed events, used internally to start the achievement, store
|
||||
uint32 timeLimit; // 13 m_timer_time time limit in seconds
|
||||
uint32 showOrder; // 14 m_ui_order also used in achievement shift-links as index in state bitmask
|
||||
//uint32 unk1; // 15 only one value, still unknown
|
||||
//uint32 unk2; // 16 all zeros
|
||||
//uint32 moreRequirement[3]; // 17-19
|
||||
//uint32 moreRequirementValue[3]; // 20-22
|
||||
};
|
||||
|
||||
struct AreaTableEntry
|
||||
@@ -524,9 +532,15 @@ struct AreaTableEntry
|
||||
uint32 flags; // 4, unknown value but 312 for all cities
|
||||
// 5-9 unused
|
||||
int32 area_level; // 10
|
||||
char* area_name[16]; // 11-26
|
||||
// 27, string flags, unused
|
||||
uint32 team; // 28
|
||||
DBCString area_name; // 11
|
||||
uint32 team; // 12
|
||||
// 13-19 unknown
|
||||
//uint32 unk20; // 20 4.0.0
|
||||
//uint32 unk21; // 21 4.0.0
|
||||
//uint32 unk22; // 22 4.0.0
|
||||
//uint32 unk23; // 23 4.0.0
|
||||
//uint32 unk24; // 24 - worldStateId
|
||||
//uint32 unk25 // 25
|
||||
|
||||
// helpers
|
||||
bool IsSanctuary() const
|
||||
@@ -552,16 +566,14 @@ struct AreaPOIEntry
|
||||
uint32 icon[11]; //1-11
|
||||
float x; //12
|
||||
float y; //13
|
||||
float z; //14
|
||||
uint32 mapId; //15
|
||||
//uint32 val1; //16
|
||||
uint32 zoneId; //17
|
||||
//char* name[16]; //18-33
|
||||
//uint32 name_flag; //34
|
||||
//char* name2[16]; //35-50
|
||||
//uint32 name_flag2; //51
|
||||
uint32 worldState; //52
|
||||
//uint32 val2; //53
|
||||
uint32 mapId; //14
|
||||
//uint32 val1; //15
|
||||
uint32 zoneId; //16
|
||||
//DBCString name; //17 - name
|
||||
//DBCString name2; //18 - name2
|
||||
uint32 worldState; //19
|
||||
//uint32 val2; //20
|
||||
//uint32 unk; //21
|
||||
};
|
||||
|
||||
struct AreaTriggerEntry
|
||||
@@ -571,11 +583,20 @@ struct AreaTriggerEntry
|
||||
float x; // 2 m_x
|
||||
float y; // 3 m_y
|
||||
float z; // 4 m_z
|
||||
float radius; // 5 m_radius
|
||||
float box_x; // 6 m_box_length
|
||||
float box_y; // 7 m_box_width
|
||||
float box_z; // 8 m_box_heigh
|
||||
float box_orientation; // 9 m_box_yaw
|
||||
//uint32 // 5
|
||||
//uint32 // 6
|
||||
//uint32 // 7
|
||||
float radius; // 8 m_radius
|
||||
float box_x; // 9 m_box_length
|
||||
float box_y; // 10 m_box_width
|
||||
float box_z; // 11 m_box_heigh
|
||||
float box_orientation; // 12 m_box_yaw
|
||||
};
|
||||
|
||||
struct ArmorLocationEntry
|
||||
{
|
||||
uint32 InventoryType; // 0
|
||||
float Value[5]; // 1-5 multiplier for armor types (cloth...plate, no armor?)
|
||||
};
|
||||
|
||||
struct AuctionHouseEntry
|
||||
@@ -584,8 +605,7 @@ struct AuctionHouseEntry
|
||||
uint32 faction; // 1 id of faction.dbc for player factions associated with city
|
||||
uint32 depositPercent; // 2 1/3 from real
|
||||
uint32 cutPercent; // 3
|
||||
//char* name[16]; // 4-19
|
||||
// 20 string flag, unused
|
||||
//DBCString name; // 4
|
||||
};
|
||||
|
||||
struct BankBagSlotPricesEntry
|
||||
@@ -598,14 +618,12 @@ struct BarberShopStyleEntry
|
||||
{
|
||||
uint32 Id; // 0
|
||||
uint32 type; // 1 value 0 -> hair, value 2 -> facialhair
|
||||
//char* name[16]; // 2-17 name of hair style
|
||||
//uint32 name_flags; // 18
|
||||
//uint32 unk_name[16]; // 19-34, all empty
|
||||
//uint32 unk_flags; // 35
|
||||
//float CostMultiplier; // 36 values 1 and 0.75
|
||||
uint32 race; // 37 race
|
||||
uint32 gender; // 38 0 -> male, 1 -> female
|
||||
uint32 hair_id; // 39 real ID to hair/facial hair
|
||||
//DBCString name; // 2 m_DisplayName_lang
|
||||
//uint32 unk_name; // 3 m_Description_lang
|
||||
//float CostMultiplier; // 4 m_Cost_Modifier
|
||||
uint32 race; // 5 m_race
|
||||
uint32 gender; // 6 m_sex
|
||||
uint32 hair_id; // 7 m_data (real ID to hair/facial hair)
|
||||
};
|
||||
|
||||
struct BattlemasterListEntry
|
||||
@@ -614,12 +632,15 @@ struct BattlemasterListEntry
|
||||
int32 mapid[8]; // 1-8 mapid
|
||||
uint32 type; // 9 (3 - BG, 4 - arena)
|
||||
//uint32 canJoinAsGroup; // 10 (0 or 1)
|
||||
char* name[16]; // 11-26
|
||||
//uint32 nameFlags // 27 string flag, unused
|
||||
uint32 maxGroupSize; // 28 maxGroupSize, used for checking if queue as group
|
||||
uint32 HolidayWorldStateId; // 29 new 3.1
|
||||
//uint32 MinLevel; // 30
|
||||
//uint32 SomeLevel; // 31, may be max level
|
||||
DBCString name; // 11
|
||||
uint32 maxGroupSize; // 12 maxGroupSize, used for checking if queue as group
|
||||
uint32 HolidayWorldStateId; // 13 new 3.1
|
||||
uint32 minLevel; // 14, min level (sync with PvPDifficulty.dbc content)
|
||||
uint32 maxLevel; // 15, max level (sync with PvPDifficulty.dbc content)
|
||||
//uint32 maxGroupSizeRated; // 16 4.0.1
|
||||
//uint32 unk; // 17 - 4.0.6.13596
|
||||
//uint32 maxPlayers; // 18 4.0.1
|
||||
//uint32 unk1; // 19 4.0.3, value 2 for Rated Battlegrounds
|
||||
};
|
||||
|
||||
#define MAX_OUTFIT_ITEMS 24
|
||||
@@ -634,46 +655,45 @@ struct CharStartOutfitEntry
|
||||
//uint32 Unknown1; // 38, unique values (index-like with gaps ordered in other way as ids)
|
||||
//uint32 Unknown2; // 39
|
||||
//uint32 Unknown3; // 40
|
||||
//uint32 Unknown4; // 41
|
||||
//uint32 Unknown5; // 42
|
||||
};
|
||||
|
||||
struct CharTitlesEntry
|
||||
{
|
||||
uint32 ID; // 0, title ids, for example in Quest::GetCharTitleId()
|
||||
//uint32 unk1; // 1 flags?
|
||||
char* name[16]; // 2-17
|
||||
// 18 string flag, unused
|
||||
//char* name2[16]; // 19-34, unused
|
||||
// 35 string flag, unused
|
||||
uint32 bit_index; // 36 used in PLAYER_CHOSEN_TITLE and 1<<index in PLAYER__FIELD_KNOWN_TITLES
|
||||
DBCString name; // 2 m_name_lang
|
||||
//char* name2; // 3 m_name1_lang
|
||||
uint32 bit_index; // 4 m_mask_ID used in PLAYER_CHOSEN_TITLE and 1<<index in PLAYER__FIELD_KNOWN_TITLES
|
||||
//uint32 // 5
|
||||
};
|
||||
|
||||
struct ChatChannelsEntry
|
||||
{
|
||||
uint32 ChannelID; // 0
|
||||
uint32 flags; // 1
|
||||
char* pattern[16]; // 3-18
|
||||
// 19 string flags, unused
|
||||
//char* name[16]; // 20-35 unused
|
||||
// 36 string flag, unused
|
||||
//uint32 // 2 m_factionGroup
|
||||
DBCString pattern; // 3 m_name_lang
|
||||
//DBCString name; // 4 m_shortcut_lang
|
||||
};
|
||||
|
||||
struct ChrClassesEntry
|
||||
{
|
||||
uint32 ClassID; // 0
|
||||
// 1, unused
|
||||
uint32 powerType; // 2
|
||||
// 3-4, unused
|
||||
//char* name[16]; // 5-20 unused
|
||||
// 21 string flag, unused
|
||||
//char* nameFemale[16]; // 21-36 unused, if different from base (male) case
|
||||
// 37 string flag, unused
|
||||
//char* nameNeutralGender[16]; // 38-53 unused, if different from base (male) case
|
||||
// 54 string flag, unused
|
||||
// 55, unused
|
||||
uint32 spellfamily; // 56
|
||||
// 57, unused
|
||||
uint32 CinematicSequence; // 58 id from CinematicSequences.dbc
|
||||
uint32 expansion; // 59 (0 - original race, 1 - tbc addon, ...)
|
||||
uint32 powerType; // 1 m_DisplayPower
|
||||
// 2 m_petNameToken
|
||||
DBCString name; // 3 m_name_lang
|
||||
//DBCString nameFemale; // 4 m_name_female_lang
|
||||
//DBCString nameNeutralGender; // 5 m_name_male_lang
|
||||
//DBCString capitalizedName // 6, m_filename
|
||||
uint32 spellfamily; // 7 m_spellClassSet
|
||||
//uint32 flags2; // 8 m_flags (0x08 HasRelicSlot)
|
||||
uint32 CinematicSequence; // 9 m_cinematicSequenceID
|
||||
uint32 expansion; // 10 m_required_expansion
|
||||
//uint32 // 11
|
||||
//uint32 // 12
|
||||
//uint32 // 13
|
||||
};
|
||||
|
||||
struct ChrRacesEntry
|
||||
@@ -688,15 +708,16 @@ struct ChrRacesEntry
|
||||
uint32 TeamID; // 7 (7-Alliance 1-Horde)
|
||||
// 8-11 unused
|
||||
uint32 CinematicSequence; // 12 id from CinematicSequences.dbc
|
||||
//uint32 unk_322; // 13 faction (0 alliance, 1 horde, 2 not available?)
|
||||
char* name[16]; // 14-29 used for DBC language detection/selection
|
||||
// 30 string flags, unused
|
||||
//char* nameFemale[16]; // 31-46, if different from base (male) case
|
||||
// 47 string flags, unused
|
||||
//char* nameNeutralGender[16]; // 48-63, if different from base (male) case
|
||||
// 64 string flags, unused
|
||||
// 65-67 unused
|
||||
uint32 expansion; // 68 (0 - original race, 1 - tbc addon, ...)
|
||||
//uint32 unk_322; // 13 m_alliance (0 alliance, 1 horde, 2 not available?)
|
||||
DBCString name; // 14 m_name_lang used for DBC language detection/selection
|
||||
//DBCString nameFemale; // 15 m_name_female_lang
|
||||
//DBCString nameNeutralGender; // 16 m_name_male_lang
|
||||
// 17-18 m_facialHairCustomization[2]
|
||||
// 19 m_hairCustomization
|
||||
uint32 expansion; // 20 m_required_expansion
|
||||
//uint32 // 21 (23 for worgens)
|
||||
//uint32 // 22 4.0.0
|
||||
//uint32 // 23 4.0.0
|
||||
};
|
||||
|
||||
/* not used
|
||||
|
||||
@@ -19,24 +19,26 @@
|
||||
#ifndef TRINITY_DBCSFRM_H
|
||||
#define TRINITY_DBCSFRM_H
|
||||
|
||||
const char Achievementfmt[]="niixssssssssssssssssxxxxxxxxxxxxxxxxxxiixixxxxxxxxxxxxxxxxxxii";
|
||||
const std::string CustomAchievementfmt="pppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapapaaaaaaaaaaaaaaaaaapp";
|
||||
const std::string CustomAchievementIndex = "ID";
|
||||
const char AchievementCriteriafmt[]="niiiiiiiixxxxxxxxxxxxxxxxxiiiix";
|
||||
const char AreaTableEntryfmt[]="iiinixxxxxissssssssssssssssxixxxxxxx";
|
||||
const char Achievementfmt[]="niixsxiixixxii";
|
||||
//const std::string CustomAchievementfmt="pppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapapaaaaaaaaaaaaaaaaaapp";
|
||||
//const std::string CustomAchievementIndex = "ID";
|
||||
const char AchievementCriteriafmt[]="niiiiiiiisiiiiixxxxxxxx";
|
||||
const char AreaTableEntryfmt[]="iiinixxxxxisixxxxxxxxxxxxx";
|
||||
const char AreaGroupEntryfmt[]="niiiiiii";
|
||||
const char AreaPOIEntryfmt[]="niiiiiiiiiiifffixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxix";
|
||||
const char AreaTriggerEntryfmt[]="niffffffff";
|
||||
const char AuctionHouseEntryfmt[]="niiixxxxxxxxxxxxxxxxx";
|
||||
const char AreaPOIEntryfmt[]="niiiiiiiiiiiffixixxixx";
|
||||
const char AreaTriggerEntryfmt[]="nifffxxxfffff";
|
||||
const char ArmorLocationfmt[]="nfffff";
|
||||
const char AuctionHouseEntryfmt[]="niiix";
|
||||
const char BankBagSlotPricesEntryfmt[]="ni";
|
||||
const char BarberShopStyleEntryfmt[]="nixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiii";
|
||||
const char BattlemasterListEntryfmt[]="niiiiiiiiixssssssssssssssssxiixx";
|
||||
const char CharStartOutfitEntryfmt[]="diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
const char CharTitlesEntryfmt[]="nxssssssssssssssssxxxxxxxxxxxxxxxxxxi";
|
||||
const char ChatChannelsEntryfmt[]="nixssssssssssssssssxxxxxxxxxxxxxxxxxx";
|
||||
// ChatChannelsEntryfmt, index not used (more compact store)
|
||||
const char ChrClassesEntryfmt[]="nxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii";
|
||||
const char ChrRacesEntryfmt[]="nxixiixixxxxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi";
|
||||
const char BarberShopStyleEntryfmt[]="nixxxiii";
|
||||
const char BattlemasterListEntryfmt[]="niiiiiiiiixsiiiixxxx";
|
||||
const char CharStartOutfitEntryfmt[]="diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
const char CharTitlesEntryfmt[]="nxsxix";
|
||||
const char ChatChannelsEntryfmt[]="nixsx";
|
||||
|
||||
const char ChrClassesEntryfmt[]="nixsxxxixiixxx";
|
||||
const char ChrRacesEntryfmt[]="nxixiixixxxxixsxxxxxixxx";
|
||||
|
||||
const char CinematicSequencesEntryfmt[]="nxxxxxxxxx";
|
||||
const char CreatureDisplayInfofmt[]="nxxxfxxxxxxxxxxx";
|
||||
const char CreatureFamilyfmt[]="nfifiiiiixssssssssssssssssxx";
|
||||
|
||||
@@ -2007,7 +2007,6 @@ bool Player::BuildEnumData(QueryResult result, ByteBuffer* data)
|
||||
if (enchant)
|
||||
break;
|
||||
}
|
||||
sLog->outError("entry %u aura %u invtype %u display %u", itemId, enchant ? enchant->aura_id : uint32(0), proto->InventoryType,db2Item->DisplayId);
|
||||
*data << uint32(enchant ? enchant->aura_id : 0);
|
||||
*data << uint8(proto->InventoryType);
|
||||
*data << uint32(db2Item->DisplayId);
|
||||
|
||||
@@ -1765,7 +1765,7 @@ void World::DetectDBCLang()
|
||||
std::string availableLocalsStr;
|
||||
|
||||
uint8 default_locale = TOTAL_LOCALES;
|
||||
for (uint8 i = default_locale-1; i < TOTAL_LOCALES; --i) // -1 will be 255 due to uint8
|
||||
/*for (uint8 i = default_locale-1; i < TOTAL_LOCALES; --i) // -1 will be 255 due to uint8
|
||||
{
|
||||
if (race->name[i][0] != '\0') // check by race names
|
||||
{
|
||||
@@ -1774,7 +1774,7 @@ void World::DetectDBCLang()
|
||||
availableLocalsStr += localeNames[i];
|
||||
availableLocalsStr += " ";
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
if (default_locale != m_lang_confid && m_lang_confid < TOTAL_LOCALES &&
|
||||
(m_availableDbcLocaleMask & (1 << m_lang_confid)))
|
||||
@@ -1785,7 +1785,7 @@ void World::DetectDBCLang()
|
||||
if (default_locale >= TOTAL_LOCALES)
|
||||
{
|
||||
sLog->outError("Unable to determine your DBC Locale! (corrupt DBC?)");
|
||||
exit(1);
|
||||
//exit(1); TODO: enable after updated all dbc structures
|
||||
}
|
||||
|
||||
m_defaultDbcLocale = LocaleConstant(default_locale);
|
||||
|
||||
Reference in New Issue
Block a user