mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Items: Item bonus generation improvements
* Pass ItemContext to item creation wherever possible * Support scaling item levels with m+ keystone levels (not used currently) * Fixed item link validation when client sends it as default uninitialized bonus list with context only * Support scaling items depending on current active season (seasons not implemented) * Implemented content tuning redirection
This commit is contained in:
@@ -293,6 +293,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CFG_REGIONS, "SELECT MAX(ID) + 1 FROM cfg_regions", CONNECTION_SYNCH);
|
||||
|
||||
// ChallengeModeItemBonusOverride.db2
|
||||
PrepareStatement(HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE, "SELECT ID, ItemBonusTreeGroupID, DstItemBonusTreeID, Type, Value, "
|
||||
"MythicPlusSeasonID, PvPSeasonID, SrcItemBonusTreeID FROM challenge_mode_item_bonus_override WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE, "SELECT MAX(ID) + 1 FROM challenge_mode_item_bonus_override", CONNECTION_SYNCH);
|
||||
|
||||
// CharTitles.db2
|
||||
PrepareStatement(HOTFIX_SEL_CHAR_TITLES, "SELECT ID, Name, Name1, MaskID, Flags FROM char_titles WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHAR_TITLES, "SELECT MAX(ID) + 1 FROM char_titles", CONNECTION_SYNCH);
|
||||
@@ -427,6 +432,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
" FROM cinematic_sequences WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CINEMATIC_SEQUENCES, "SELECT MAX(ID) + 1 FROM cinematic_sequences", CONNECTION_SYNCH);
|
||||
|
||||
// ConditionalContentTuning.db2
|
||||
PrepareStatement(HOTFIX_SEL_CONDITIONAL_CONTENT_TUNING, "SELECT ID, OrderIndex, RedirectContentTuningID, RedirectFlag, ParentContentTuningID"
|
||||
" FROM conditional_content_tuning WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONDITIONAL_CONTENT_TUNING, "SELECT MAX(ID) + 1 FROM conditional_content_tuning", CONNECTION_SYNCH);
|
||||
|
||||
// ContentTuning.db2
|
||||
PrepareStatement(HOTFIX_SEL_CONTENT_TUNING, "SELECT ID, Flags, ExpansionID, MinLevel, MaxLevel, MinLevelType, MaxLevelType, TargetLevelDelta, "
|
||||
"TargetLevelMaxDelta, TargetLevelMin, TargetLevelMax, MinItemLevel, QuestXpMultiplier FROM content_tuning WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
@@ -437,6 +447,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
"ContentTuningID FROM content_tuning_x_expected WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED, "SELECT MAX(ID) + 1 FROM content_tuning_x_expected", CONNECTION_SYNCH);
|
||||
|
||||
// ContentTuningXLabel.db2
|
||||
PrepareStatement(HOTFIX_SEL_CONTENT_TUNING_X_LABEL, "SELECT ID, LabelID, ContentTuningID FROM content_tuning_x_label"
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONTENT_TUNING_X_LABEL, "SELECT MAX(ID) + 1 FROM content_tuning_x_label", CONNECTION_SYNCH);
|
||||
|
||||
// ConversationLine.db2
|
||||
PrepareStatement(HOTFIX_SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, SpellVisualKitID, AdditionalDuration, NextConversationLineID, "
|
||||
"AnimKitID, SpeechType, StartAnimation, EndAnimation FROM conversation_line WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
@@ -821,14 +836,23 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS, "SELECT MAX(ID) + 1 FROM item_bonus", CONNECTION_SYNCH);
|
||||
|
||||
// ItemBonusListGroupEntry.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY, "SELECT ID, ItemBonusListGroupID, ItemBonusListID, ItemLevelSelectorID, SequenceValue, "
|
||||
"ItemExtendedCostID, PlayerConditionID, Flags, ItemLogicalCostGroupID FROM item_bonus_list_group_entry WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY, "SELECT MAX(ID) + 1 FROM item_bonus_list_group_entry", CONNECTION_SYNCH);
|
||||
|
||||
// ItemBonusListLevelDelta.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA, "SELECT ItemLevelDelta, ID FROM item_bonus_list_level_delta"
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA, "SELECT MAX(ID) + 1 FROM item_bonus_list_level_delta", CONNECTION_SYNCH);
|
||||
|
||||
// ItemBonusTree.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_BONUS_TREE, "SELECT ID, Flags, InventoryTypeSlotMask FROM item_bonus_tree WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_TREE, "SELECT MAX(ID) + 1 FROM item_bonus_tree", CONNECTION_SYNCH);
|
||||
|
||||
// ItemBonusTreeNode.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_BONUS_TREE_NODE, "SELECT ID, ItemContext, ChildItemBonusTreeID, ChildItemBonusListID, ChildItemLevelSelectorID, "
|
||||
"ChildItemBonusListGroupID, IblGroupPointsModSetID, Unknown1010_1, Unknown1010_2, ParentItemBonusTreeID FROM item_bonus_tree_node"
|
||||
"ChildItemBonusListGroupID, IblGroupPointsModSetID, MinMythicPlusLevel, MaxMythicPlusLevel, ParentItemBonusTreeID FROM item_bonus_tree_node"
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_TREE_NODE, "SELECT MAX(ID) + 1 FROM item_bonus_tree_node", CONNECTION_SYNCH);
|
||||
|
||||
@@ -842,6 +866,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_CLASS, "SELECT MAX(ID) + 1 FROM item_class", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_CLASS, "SELECT ID, ClassName_lang FROM item_class_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// ItemContextPickerEntry.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY, "SELECT ID, ItemCreationContext, OrderIndex, PVal, LabelID, Flags, PlayerConditionID, "
|
||||
"ItemContextPickerID FROM item_context_picker_entry WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY, "SELECT MAX(ID) + 1 FROM item_context_picker_entry", CONNECTION_SYNCH);
|
||||
|
||||
// ItemCurrencyCost.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_CURRENCY_COST, "SELECT ID, ItemID FROM item_currency_cost WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_CURRENCY_COST, "SELECT MAX(ID) + 1 FROM item_currency_cost", CONNECTION_SYNCH);
|
||||
@@ -1140,6 +1169,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MOVIE, "SELECT MAX(ID) + 1 FROM movie", CONNECTION_SYNCH);
|
||||
|
||||
// MythicPlusSeason.db2
|
||||
PrepareStatement(HOTFIX_SEL_MYTHIC_PLUS_SEASON, "SELECT ID, MilestoneSeason, ExpansionLevel, HeroicLFGDungeonMinGear FROM mythic_plus_season"
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MYTHIC_PLUS_SEASON, "SELECT MAX(ID) + 1 FROM mythic_plus_season", CONNECTION_SYNCH);
|
||||
|
||||
// NameGen.db2
|
||||
PrepareStatement(HOTFIX_SEL_NAME_GEN, "SELECT ID, Name, RaceID, Sex FROM name_gen WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_NAME_GEN, "SELECT MAX(ID) + 1 FROM name_gen", CONNECTION_SYNCH);
|
||||
@@ -1228,6 +1262,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(HOTFIX_SEL_PVP_ITEM, "SELECT ID, ItemID, ItemLevelDelta FROM pvp_item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_ITEM, "SELECT MAX(ID) + 1 FROM pvp_item", CONNECTION_SYNCH);
|
||||
|
||||
// PvpSeason.db2
|
||||
PrepareStatement(HOTFIX_SEL_PVP_SEASON, "SELECT ID, MilestoneSeason, AllianceAchievementID, HordeAchievementID FROM pvp_season"
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_SEASON, "SELECT MAX(ID) + 1 FROM pvp_season", CONNECTION_SYNCH);
|
||||
|
||||
// PvpTalent.db2
|
||||
PrepareStatement(HOTFIX_SEL_PVP_TALENT, "SELECT Description, ID, SpecID, SpellID, OverridesSpellID, Flags, ActionBarSpellID, PvpTalentCategoryID, "
|
||||
"LevelRequired, PlayerConditionID FROM pvp_talent WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
|
||||
@@ -185,6 +185,9 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_CFG_REGIONS,
|
||||
HOTFIX_SEL_CFG_REGIONS_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE,
|
||||
HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_CHAR_TITLES,
|
||||
HOTFIX_SEL_CHAR_TITLES_MAX_ID,
|
||||
HOTFIX_SEL_CHAR_TITLES_LOCALE,
|
||||
@@ -250,12 +253,18 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_CINEMATIC_SEQUENCES,
|
||||
HOTFIX_SEL_CINEMATIC_SEQUENCES_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_CONDITIONAL_CONTENT_TUNING,
|
||||
HOTFIX_SEL_CONDITIONAL_CONTENT_TUNING_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_CONTENT_TUNING,
|
||||
HOTFIX_SEL_CONTENT_TUNING_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED,
|
||||
HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_CONTENT_TUNING_X_LABEL,
|
||||
HOTFIX_SEL_CONTENT_TUNING_X_LABEL_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_CONVERSATION_LINE,
|
||||
HOTFIX_SEL_CONVERSATION_LINE_MAX_ID,
|
||||
|
||||
@@ -473,9 +482,15 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_ITEM_BONUS,
|
||||
HOTFIX_SEL_ITEM_BONUS_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY,
|
||||
HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA,
|
||||
HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_ITEM_BONUS_TREE,
|
||||
HOTFIX_SEL_ITEM_BONUS_TREE_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_ITEM_BONUS_TREE_NODE,
|
||||
HOTFIX_SEL_ITEM_BONUS_TREE_NODE_MAX_ID,
|
||||
|
||||
@@ -486,6 +501,9 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_ITEM_CLASS_MAX_ID,
|
||||
HOTFIX_SEL_ITEM_CLASS_LOCALE,
|
||||
|
||||
HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY,
|
||||
HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_ITEM_CURRENCY_COST,
|
||||
HOTFIX_SEL_ITEM_CURRENCY_COST_MAX_ID,
|
||||
|
||||
@@ -654,6 +672,9 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_MOVIE,
|
||||
HOTFIX_SEL_MOVIE_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_MYTHIC_PLUS_SEASON,
|
||||
HOTFIX_SEL_MYTHIC_PLUS_SEASON_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_NAME_GEN,
|
||||
HOTFIX_SEL_NAME_GEN_MAX_ID,
|
||||
|
||||
@@ -701,6 +722,9 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_PVP_ITEM,
|
||||
HOTFIX_SEL_PVP_ITEM_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_PVP_SEASON,
|
||||
HOTFIX_SEL_PVP_SEASON_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_PVP_TALENT,
|
||||
HOTFIX_SEL_PVP_TALENT_MAX_ID,
|
||||
HOTFIX_SEL_PVP_TALENT_LOCALE,
|
||||
|
||||
Reference in New Issue
Block a user