Core/DataStores: 9.1.0 db2 structures
Port From (https://github.com/TrinityCore/TrinityCore/commit/ce1046a8fd0f04aad6c414786949269fffea88f3)
This commit is contained in:
@@ -701,7 +701,7 @@ namespace Framework.Constants
|
||||
// 227 - 0 Criterias
|
||||
ApplyConduit = 228,
|
||||
ConvertItemsToCurrency = 229,
|
||||
TotalTypes = 230
|
||||
TotalTypes = 232
|
||||
}
|
||||
|
||||
public enum CriteriaDataType
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace Framework.Constants
|
||||
public const uint infinityCooldownDelayCheck = Time.Month / 2;
|
||||
public const int MaxPlayerSummonDelay = 2 * Time.Minute;
|
||||
|
||||
public const int TaxiMaskSize = 337;
|
||||
public const int TaxiMaskSize = 338;
|
||||
|
||||
// corpse reclaim times
|
||||
public const int DeathExpireStep = (5 * Time.Minute);
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace Framework.Constants
|
||||
/// <summary>
|
||||
/// BattlePets Const
|
||||
/// </summary>
|
||||
public const int MaxBattlePetSpeciesId = 3084;
|
||||
public const int MaxBattlePetSpeciesId = 3159;
|
||||
public const int MaxPetBattleSlots = 3;
|
||||
public const int MaxBattlePetsPerSpecies = 3;
|
||||
public const int BattlePetCageItemId = 82800;
|
||||
|
||||
@@ -525,6 +525,8 @@ namespace Framework.Constants
|
||||
ModCriticalDamageTakenFromCaster = 501,
|
||||
ModVersatilityDamageDoneBenefit = 502, // NYI
|
||||
ModVersatilityHealingDoneBenefit = 503, // NYI
|
||||
ModHealingTakenFromCaster = 504,
|
||||
ModPlayerChoiceRerolls = 505, // NYI
|
||||
Total
|
||||
}
|
||||
|
||||
|
||||
@@ -2369,6 +2369,8 @@ namespace Framework.Constants
|
||||
LearnSoulbindConduit = 281,
|
||||
ConvertItemsToCurrency = 282,
|
||||
CompleteCampaign = 283, // Flags all quests as completed that are assigned to campaign (MiscValueA)
|
||||
SendChatMessage = 284, // MiscValue[0] = BroadcastTextID, MiscValue[1] = ChatType
|
||||
ModifyKeystone2 = 285,
|
||||
TotalSpellEffects
|
||||
}
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_AZERITE_EMPOWERED_ITEM, "SELECT ID, ItemID, AzeriteTierUnlockSetID, AzeritePowerSetID FROM azerite_empowered_item");
|
||||
|
||||
// AzeriteEssence.db2
|
||||
PrepareStatement(HotfixStatements.SEL_AZERITE_ESSENCE, "SELECT Name, Description, ID, SpecSetID FROM azerite_essence");
|
||||
PrepareStatement(HotfixStatements.SEL_AZERITE_ESSENCE, "SELECT ID, Name, Description, SpecSetID FROM azerite_essence");
|
||||
PrepareStatement(HotfixStatements.SEL_AZERITE_ESSENCE_LOCALE, "SELECT ID, Name_lang, Description_lang FROM azerite_essence_locale WHERE locale = ?");
|
||||
|
||||
// AzeriteEssencePower.db2
|
||||
@@ -161,7 +161,7 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_BANNED_ADDONS, "SELECT ID, Name, Version, Flags FROM banned_addons");
|
||||
|
||||
// BarberShopStyle.db2
|
||||
PrepareStatement(HotfixStatements.SEL_BARBER_SHOP_STYLE, "SELECT DisplayName, Description, ID, Type, CostModifier, Race, Sex, Data FROM barber_shop_style");
|
||||
PrepareStatement(HotfixStatements.SEL_BARBER_SHOP_STYLE, "SELECT ID, DisplayName, Description, Type, CostModifier, Race, Sex, Data FROM barber_shop_style");
|
||||
PrepareStatement(HotfixStatements.SEL_BARBER_SHOP_STYLE_LOCALE, "SELECT ID, DisplayName_lang, Description_lang FROM barber_shop_style_locale WHERE locale = ?");
|
||||
|
||||
// BattlePetBreedQuality.db2
|
||||
@@ -199,13 +199,13 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_CHAR_TITLES_LOCALE, "SELECT ID, Name_lang, Name1_lang FROM char_titles_locale WHERE locale = ?");
|
||||
|
||||
// CharacterLoadout.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CHARACTER_LOADOUT, "SELECT RaceMask, ID, ChrClassID, Purpose FROM character_loadout");
|
||||
PrepareStatement(HotfixStatements.SEL_CHARACTER_LOADOUT, "SELECT ID, RaceMask, ChrClassID, Purpose FROM character_loadout");
|
||||
|
||||
// CharacterLoadoutItem.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CHARACTER_LOADOUT_ITEM, "SELECT ID, CharacterLoadoutID, ItemID FROM character_loadout_item");
|
||||
|
||||
// ChatChannels.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CHAT_CHANNELS, "SELECT Name, Shortcut, ID, Flags, FactionGroup, Ruleset FROM chat_channels");
|
||||
PrepareStatement(HotfixStatements.SEL_CHAT_CHANNELS, "SELECT ID, Name, Shortcut, Flags, FactionGroup, Ruleset FROM chat_channels");
|
||||
PrepareStatement(HotfixStatements.SEL_CHAT_CHANNELS_LOCALE, "SELECT ID, Name_lang, Shortcut_lang FROM chat_channels_locale WHERE locale = ?");
|
||||
|
||||
// ChrClassUiDisplay.db2
|
||||
@@ -226,8 +226,8 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_CLASSES_X_POWER_TYPES, "SELECT ID, PowerType, ClassID FROM chr_classes_x_power_types");
|
||||
|
||||
// ChrCustomizationChoice.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_CUSTOMIZATION_CHOICE, "SELECT Name, ID, ChrCustomizationOptionID, ChrCustomizationReqID, SortOrder, SwatchColor1, " +
|
||||
"SwatchColor2, UiOrderIndex, Flags FROM chr_customization_choice");
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_CUSTOMIZATION_CHOICE, "SELECT Name, ID, ChrCustomizationOptionID, ChrCustomizationReqID, SortOrder, UiOrderIndex, " +
|
||||
"Flags, SwatchColor1, SwatchColor2 FROM chr_customization_choice");
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_CUSTOMIZATION_CHOICE_LOCALE, "SELECT ID, Name_lang FROM chr_customization_choice_locale WHERE locale = ?");
|
||||
|
||||
// ChrCustomizationDisplayInfo.db2
|
||||
@@ -254,22 +254,23 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_MODEL, "SELECT FaceCustomizationOffset1, FaceCustomizationOffset2, FaceCustomizationOffset3, CustomizeOffset1, " +
|
||||
"CustomizeOffset2, CustomizeOffset3, ID, Sex, DisplayID, CharComponentTextureLayoutID, Flags, SkeletonFileDataID, ModelFallbackChrModelID, " +
|
||||
"TextureFallbackChrModelID, HelmVisFallbackChrModelID, CustomizeScale, CustomizeFacing, CameraDistanceOffset, BarberShopCameraOffsetScale, " +
|
||||
"BarberShopCameraRotationOffset FROM chr_model");
|
||||
"BarberShopCameraHeightOffsetScale, BarberShopCameraRotationOffset FROM chr_model");
|
||||
|
||||
// ChrRaceXChrModel.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_RACE_X_CHR_MODEL, "SELECT ID, ChrRacesID, ChrModelID FROM chr_race_x_chr_model");
|
||||
|
||||
// ChrRaces.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_RACES, "SELECT ClientPrefix, ClientFileString, Name, NameFemale, NameLowercase, NameFemaleLowercase, NameS, " +
|
||||
"NameFemaleS, NameLowercaseS, NameFemaleLowercaseS, RaceFantasyDescription, NameL, NameFemaleL, NameLowercaseL, NameFemaleLowercaseL, ID, " +
|
||||
"Flags, BaseLanguage, ResSicknessSpellID, SplashSoundID, CreateScreenFileDataID, SelectScreenFileDataID, LowResScreenFileDataID, " +
|
||||
"AlteredFormStartVisualKitID1, AlteredFormStartVisualKitID2, AlteredFormStartVisualKitID3, AlteredFormFinishVisualKitID1, " +
|
||||
"AlteredFormFinishVisualKitID2, AlteredFormFinishVisualKitID3, HeritageArmorAchievementID, StartingLevel, UiDisplayOrder, PlayableRaceBit, " +
|
||||
"HelmetAnimScalingRaceID, TransmogrifyDisabledSlotMask, AlteredFormCustomizeOffsetFallback1, AlteredFormCustomizeOffsetFallback2, " +
|
||||
"AlteredFormCustomizeOffsetFallback3, AlteredFormCustomizeRotationFallback, FactionID, CinematicSequenceID, CreatureType, Alliance, " +
|
||||
"RaceRelated, UnalteredVisualRaceID, DefaultClassID, NeutralRaceID, MaleModelFallbackRaceID, MaleModelFallbackSex, FemaleModelFallbackRaceID, " +
|
||||
"FemaleModelFallbackSex, MaleTextureFallbackRaceID, MaleTextureFallbackSex, FemaleTextureFallbackRaceID, FemaleTextureFallbackSex, " +
|
||||
"UnalteredVisualCustomizationRaceID FROM chr_races");
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_RACES, "SELECT ID, ClientPrefix, ClientFileString, Name, NameFemale, NameLowercase, NameFemaleLowercase, NameS, " +
|
||||
"NameFemaleS, NameLowercaseS, NameFemaleLowercaseS, RaceFantasyDescription, NameL, NameFemaleL, NameLowercaseL, NameFemaleLowercaseL, Flags, " +
|
||||
"FactionID, CinematicSequenceID, ResSicknessSpellID, SplashSoundID, Alliance, RaceRelated, UnalteredVisualRaceID, DefaultClassID, " +
|
||||
"CreateScreenFileDataID, SelectScreenFileDataID, NeutralRaceID, LowResScreenFileDataID, AlteredFormStartVisualKitID1, " +
|
||||
"AlteredFormStartVisualKitID2, AlteredFormStartVisualKitID3, AlteredFormFinishVisualKitID1, AlteredFormFinishVisualKitID2, " +
|
||||
"AlteredFormFinishVisualKitID3, HeritageArmorAchievementID, StartingLevel, UiDisplayOrder, MaleModelFallbackRaceID, " +
|
||||
"FemaleModelFallbackRaceID, MaleTextureFallbackRaceID, FemaleTextureFallbackRaceID, PlayableRaceBit, HelmetAnimScalingRaceID, " +
|
||||
"TransmogrifyDisabledSlotMask, UnalteredVisualCustomizationRaceID, AlteredFormCustomizeOffsetFallback1, AlteredFormCustomizeOffsetFallback2, " +
|
||||
"AlteredFormCustomizeOffsetFallback3, AlteredFormCustomizeRotationFallback, Unknown910_11, Unknown910_12, Unknown910_13, Unknown910_21, " +
|
||||
"Unknown910_22, Unknown910_23, BaseLanguage, CreatureType, MaleModelFallbackSex, FemaleModelFallbackSex, MaleTextureFallbackSex, " +
|
||||
"FemaleTextureFallbackSex FROM chr_races");
|
||||
PrepareStatement(HotfixStatements.SEL_CHR_RACES_LOCALE, "SELECT ID, Name_lang, NameFemale_lang, NameLowercase_lang, NameFemaleLowercase_lang, NameS_lang, " +
|
||||
"NameFemaleS_lang, NameLowercaseS_lang, NameFemaleLowercaseS_lang, RaceFantasyDescription_lang, NameL_lang, NameFemaleL_lang, " +
|
||||
"NameLowercaseL_lang, NameFemaleLowercaseL_lang FROM chr_races_locale WHERE locale = ?");
|
||||
@@ -291,8 +292,8 @@ namespace Framework.Database
|
||||
"TargetLevelMaxDelta, TargetLevelMin, TargetLevelMax, MinItemLevel FROM content_tuning");
|
||||
|
||||
// ContentTuningXExpected.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING_X_EXPECTED, "SELECT ID, ExpectedStatModID, MythicPlusSeasonID, ContentTuningID" +
|
||||
" FROM content_tuning_x_expected");
|
||||
PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING_X_EXPECTED, "SELECT ID, ExpectedStatModID, MinMythicPlusSeasonID, MaxMythicPlusSeasonID, " +
|
||||
"ContentTuningID FROM content_tuning_x_expected");
|
||||
|
||||
// ConversationLine.db2
|
||||
PrepareStatement(HotfixStatements.SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, SpellVisualKitID, AdditionalDuration, NextConversationLineID, " +
|
||||
@@ -394,8 +395,8 @@ namespace Framework.Database
|
||||
"PlayerManaMod, PlayerPrimaryStatMod, PlayerSecondaryStatMod, ArmorConstantMod, CreatureSpellDamageMod FROM expected_stat_mod");
|
||||
|
||||
// Faction.db2
|
||||
PrepareStatement(HotfixStatements.SEL_FACTION, "SELECT ReputationRaceMask1, ReputationRaceMask2, ReputationRaceMask3, ReputationRaceMask4, Name, " +
|
||||
"Description, ID, ReputationIndex, ParentFactionID, Expansion, FriendshipRepID, Flags, ParagonFactionID, ReputationClassMask1, " +
|
||||
PrepareStatement(HotfixStatements.SEL_FACTION, "SELECT ID, ReputationRaceMask1, ReputationRaceMask2, ReputationRaceMask3, ReputationRaceMask4, Name, " +
|
||||
"Description, ReputationIndex, ParentFactionID, Expansion, FriendshipRepID, Flags, ParagonFactionID, ReputationClassMask1, " +
|
||||
"ReputationClassMask2, ReputationClassMask3, ReputationClassMask4, ReputationFlags1, ReputationFlags2, ReputationFlags3, ReputationFlags4, " +
|
||||
"ReputationBase1, ReputationBase2, ReputationBase3, ReputationBase4, ReputationMax1, ReputationMax2, ReputationMax3, ReputationMax4, " +
|
||||
"ParentFactionMod1, ParentFactionMod2, ParentFactionCap1, ParentFactionCap2 FROM faction");
|
||||
@@ -425,7 +426,7 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_GAMEOBJECTS_LOCALE, "SELECT ID, Name_lang FROM gameobjects_locale WHERE locale = ?");
|
||||
|
||||
// GarrAbility.db2
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_ABILITY, "SELECT Name, Description, ID, GarrAbilityCategoryID, GarrFollowerTypeID, IconFileDataID, " +
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_ABILITY, "SELECT ID, Name, Description, GarrAbilityCategoryID, GarrFollowerTypeID, IconFileDataID, " +
|
||||
"FactionChangeGarrAbilityID, Flags FROM garr_ability");
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_ABILITY_LOCALE, "SELECT ID, Name_lang, Description_lang FROM garr_ability_locale WHERE locale = ?");
|
||||
|
||||
@@ -442,13 +443,13 @@ namespace Framework.Database
|
||||
"UiTextureAtlasMemberID FROM garr_building_plot_inst");
|
||||
|
||||
// GarrClassSpec.db2
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_CLASS_SPEC, "SELECT ClassSpec, ClassSpecMale, ClassSpecFemale, ID, UiTextureAtlasMemberID, GarrFollItemSetID, " +
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_CLASS_SPEC, "SELECT ID, ClassSpec, ClassSpecMale, ClassSpecFemale, UiTextureAtlasMemberID, GarrFollItemSetID, " +
|
||||
"FollowerClassLimit, Flags FROM garr_class_spec");
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_CLASS_SPEC_LOCALE, "SELECT ID, ClassSpec_lang, ClassSpecMale_lang, ClassSpecFemale_lang FROM garr_class_spec_locale" +
|
||||
" WHERE locale = ?");
|
||||
|
||||
// GarrFollower.db2
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER, "SELECT HordeSourceText, AllianceSourceText, TitleName, ID, GarrTypeID, GarrFollowerTypeID, " +
|
||||
PrepareStatement(HotfixStatements.SEL_GARR_FOLLOWER, "SELECT ID, HordeSourceText, AllianceSourceText, TitleName, GarrTypeID, GarrFollowerTypeID, " +
|
||||
"HordeCreatureID, AllianceCreatureID, HordeGarrFollRaceID, AllianceGarrFollRaceID, HordeGarrClassSpecID, AllianceGarrClassSpecID, Quality, " +
|
||||
"FollowerLevel, ItemLevelWeapon, ItemLevelArmor, HordeSourceTypeEnum, AllianceSourceTypeEnum, HordeIconFileDataID, AllianceIconFileDataID, " +
|
||||
"HordeGarrFollItemSetID, AllianceGarrFollItemSetID, HordeUITextureKitID, AllianceUITextureKitID, Vitality, HordeFlavorGarrStringID, " +
|
||||
@@ -598,7 +599,7 @@ namespace Framework.Database
|
||||
|
||||
// ItemEffect.db2
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_EFFECT, "SELECT ID, LegacySlotIndex, TriggerType, Charges, CoolDownMSec, CategoryCoolDownMSec, SpellCategoryID, " +
|
||||
"SpellID, ChrSpecializationID, ParentItemID FROM item_effect");
|
||||
"SpellID, ChrSpecializationID FROM item_effect");
|
||||
|
||||
// ItemExtendedCost.db2
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_EXTENDED_COST, "SELECT ID, RequiredArenaRating, ArenaBracket, Flags, MinFactionID, MinReputation, " +
|
||||
@@ -641,7 +642,7 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_PRICE_BASE, "SELECT ID, ItemLevel, Armor, Weapon FROM item_price_base");
|
||||
|
||||
// ItemSearchName.db2
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME, "SELECT AllowableRace, Display, ID, OverallQualityID, ExpansionID, MinFactionID, MinReputation, " +
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME, "SELECT ID, AllowableRace, Display, OverallQualityID, ExpansionID, MinFactionID, MinReputation, " +
|
||||
"AllowableClass, RequiredLevel, RequiredSkill, RequiredSkillRank, RequiredAbility, ItemLevel, Flags1, Flags2, Flags3, Flags4" +
|
||||
" FROM item_search_name");
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME_LOCALE, "SELECT ID, Display_lang FROM item_search_name_locale WHERE locale = ?");
|
||||
@@ -655,20 +656,19 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_SET_SPELL, "SELECT ID, ChrSpecID, SpellID, Threshold, ItemSetID FROM item_set_spell");
|
||||
|
||||
// ItemSparse.db2
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Description, Display3, Display2, Display1, Display, DmgVariance, " +
|
||||
"DurationInInventory, QualityModifier, BagFamily, ItemRange, StatPercentageOfSocket1, StatPercentageOfSocket2, StatPercentageOfSocket3, " +
|
||||
"StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, StatPercentageOfSocket7, StatPercentageOfSocket8, " +
|
||||
"StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, StatPercentEditor3, StatPercentEditor4, " +
|
||||
"StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, StatPercentEditor10, Stackable, " +
|
||||
"MaxCount, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, Flags2, Flags3, Flags4, " +
|
||||
"FactionRelated, ModifiedCraftingReagentItemID, ContentTuningID, PlayerLevelToItemLevelCurveID, ItemNameDescriptionID, " +
|
||||
"RequiredTransmogHoliday, RequiredHoliday, LimitCategory, GemProperties, SocketMatchEnchantmentId, TotemCategoryID, InstanceBound, " +
|
||||
"ZoneBound1, ZoneBound2, ItemSet, LockID, StartQuestID, PageID, ItemDelay, MinFactionID, RequiredSkillRank, RequiredSkill, ItemLevel, " +
|
||||
"AllowableClass, ExpansionID, ArtifactID, SpellWeight, SpellWeightCategory, SocketType1, SocketType2, SocketType3, SheatheType, Material, " +
|
||||
"PageMaterialID, LanguageID, Bonding, DamageDamageType, StatModifierBonusStat1, StatModifierBonusStat2, StatModifierBonusStat3, " +
|
||||
"StatModifierBonusStat4, StatModifierBonusStat5, StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, " +
|
||||
"StatModifierBonusStat9, StatModifierBonusStat10, ContainerSlots, MinReputation, RequiredPVPMedal, RequiredPVPRank, RequiredLevel, " +
|
||||
"InventoryType, OverallQualityID FROM item_sparse");
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Description, Display3, Display2, Display1, Display, ExpansionID, DmgVariance, " +
|
||||
"InstanceBound, DurationInInventory, QualityModifier, BagFamily, ItemRange, StatPercentageOfSocket1, StatPercentageOfSocket2, " +
|
||||
"StatPercentageOfSocket3, StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, StatPercentageOfSocket7, " +
|
||||
"StatPercentageOfSocket8, StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, StatPercentEditor3, " +
|
||||
"StatPercentEditor4, StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, StatPercentEditor10, " +
|
||||
"Stackable, MaxCount, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, Flags2, Flags3, " +
|
||||
"Flags4, FactionRelated, ModifiedCraftingReagentItemID, ContentTuningID, PlayerLevelToItemLevelCurveID, ItemNameDescriptionID, " +
|
||||
"RequiredTransmogHoliday, RequiredHoliday, LimitCategory, GemProperties, SocketMatchEnchantmentId, TotemCategoryID, ZoneBound1, ZoneBound2, " +
|
||||
"ItemSet, LockID, StartQuestID, PageID, ItemDelay, MinFactionID, RequiredSkillRank, RequiredSkill, ItemLevel, AllowableClass, ArtifactID, " +
|
||||
"SpellWeight, SpellWeightCategory, SocketType1, SocketType2, SocketType3, SheatheType, Material, PageMaterialID, LanguageID, Bonding, " +
|
||||
"DamageDamageType, StatModifierBonusStat1, StatModifierBonusStat2, StatModifierBonusStat3, StatModifierBonusStat4, StatModifierBonusStat5, " +
|
||||
"StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, StatModifierBonusStat9, StatModifierBonusStat10, ContainerSlots, " +
|
||||
"MinReputation, RequiredPVPMedal, RequiredPVPRank, RequiredLevel, InventoryType, OverallQualityID FROM item_sparse");
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE_LOCALE, "SELECT ID, Description_lang, Display3_lang, Display2_lang, Display1_lang, Display_lang" +
|
||||
" FROM item_sparse_locale WHERE locale = ?");
|
||||
|
||||
@@ -681,6 +681,9 @@ namespace Framework.Database
|
||||
// ItemXBonusTree.db2
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_X_BONUS_TREE, "SELECT ID, ItemBonusTreeID, ItemID FROM item_x_bonus_tree");
|
||||
|
||||
// ItemXItemEffect.db2
|
||||
PrepareStatement(HotfixStatements.SEL_ITEM_X_ITEM_EFFECT, "SELECT ID, ItemEffectID, ItemID FROM item_x_item_effect");
|
||||
|
||||
// Keychain.db2
|
||||
PrepareStatement(HotfixStatements.SEL_KEYCHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, " +
|
||||
"Key16, Key17, Key18, Key19, Key20, Key21, Key22, Key23, Key24, Key25, Key26, Key27, Key28, Key29, Key30, Key31, Key32 FROM keychain");
|
||||
@@ -689,7 +692,7 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_LANGUAGE_WORDS, "SELECT ID, Word, LanguageID FROM language_words");
|
||||
|
||||
// Languages.db2
|
||||
PrepareStatement(HotfixStatements.SEL_LANGUAGES, "SELECT Name, ID FROM languages");
|
||||
PrepareStatement(HotfixStatements.SEL_LANGUAGES, "SELECT ID, Name FROM languages");
|
||||
PrepareStatement(HotfixStatements.SEL_LANGUAGES_LOCALE, "SELECT ID, Name_lang FROM languages_locale WHERE locale = ?");
|
||||
|
||||
// LfgDungeons.db2
|
||||
@@ -721,9 +724,9 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_MAIL_TEMPLATE_LOCALE, "SELECT ID, Body_lang FROM mail_template_locale WHERE locale = ?");
|
||||
|
||||
// Map.db2
|
||||
PrepareStatement(HotfixStatements.SEL_MAP, "SELECT ID, Directory, MapName, InternalName, MapDescription0, MapDescription1, PvpShortDescription, " +
|
||||
"PvpLongDescription, CorpseX, CorpseY, MapType, InstanceType, ExpansionID, AreaTableID, LoadingScreenID, TimeOfDayOverride, ParentMapID, " +
|
||||
"CosmeticParentMapID, TimeOffset, MinimapIconScale, CorpseMapID, MaxPlayers, WindSettingsID, ZmpFileDataID, WdtFileDataID, Flags1, Flags2 FROM map");
|
||||
PrepareStatement(HotfixStatements.SEL_MAP, "SELECT ID, Directory, MapName, MapDescription0, MapDescription1, PvpShortDescription, PvpLongDescription, " +
|
||||
"CorpseX, CorpseY, MapType, InstanceType, ExpansionID, AreaTableID, LoadingScreenID, TimeOfDayOverride, ParentMapID, CosmeticParentMapID, " +
|
||||
"TimeOffset, MinimapIconScale, CorpseMapID, MaxPlayers, WindSettingsID, ZmpFileDataID, WdtFileDataID, Flags1, Flags2 FROM map");
|
||||
PrepareStatement(HotfixStatements.SEL_MAP_LOCALE, "SELECT ID, MapName_lang, MapDescription0_lang, MapDescription1_lang, PvpShortDescription_lang, " +
|
||||
"PvpLongDescription_lang FROM map_locale WHERE locale = ?");
|
||||
|
||||
@@ -787,7 +790,7 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_PHASE_X_PHASE_GROUP, "SELECT ID, PhaseID, PhaseGroupID FROM phase_x_phase_group");
|
||||
|
||||
// PlayerCondition.db2
|
||||
PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT RaceMask, FailureDescription, ID, ClassMask, SkillLogic, LanguageID, MinLanguage, " +
|
||||
PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, FailureDescription, ClassMask, SkillLogic, LanguageID, MinLanguage, " +
|
||||
"MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, PvpMedal, PrevQuestLogic, CurrQuestLogic, " +
|
||||
"CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, WorldStateExpressionID, WeatherID, PartyStatus, " +
|
||||
"LifetimeMaxPVPRank, AchievementLogic, Gender, NativeGender, AreaLogic, LfgLogic, CurrencyLogic, QuestKillID, QuestKillLogic, " +
|
||||
@@ -971,8 +974,8 @@ namespace Framework.Database
|
||||
// SpellEffect.db2
|
||||
PrepareStatement(HotfixStatements.SEL_SPELL_EFFECT, "SELECT ID, EffectAura, DifficultyID, EffectIndex, Effect, EffectAmplitude, EffectAttributes, " +
|
||||
"EffectAuraPeriod, EffectBonusCoefficient, EffectChainAmplitude, EffectChainTargets, EffectItemType, EffectMechanic, EffectPointsPerResource, " +
|
||||
"EffectPosFacing, EffectRealPointsPerLevel, EffectTriggerSpell, BonusCoefficientFromAP, PvpMultiplier, Coefficient, Variance, " +
|
||||
"ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectBasePoints, EffectMiscValue1, EffectMiscValue2, EffectRadiusIndex1, " +
|
||||
"EffectPosFacing, EffectRealPointsPerLevel, EffectTriggerSpell, BonusCoefficientFromAP, PvpMultiplier, Coefficient, Variance, " +
|
||||
"ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectBasePoints, ScalingClass, EffectMiscValue1, EffectMiscValue2, EffectRadiusIndex1, " +
|
||||
"EffectRadiusIndex2, EffectSpellClassMask1, EffectSpellClassMask2, EffectSpellClassMask3, EffectSpellClassMask4, ImplicitTarget1, " +
|
||||
"ImplicitTarget2, SpellID FROM spell_effect");
|
||||
|
||||
@@ -989,7 +992,7 @@ namespace Framework.Database
|
||||
"ChannelInterruptFlags1, ChannelInterruptFlags2, SpellID FROM spell_interrupts");
|
||||
|
||||
// SpellItemEnchantment.db2
|
||||
PrepareStatement(HotfixStatements.SEL_SPELL_ITEM_ENCHANTMENT, "SELECT Name, HordeName, ID, EffectArg1, EffectArg2, EffectArg3, EffectScalingPoints1, " +
|
||||
PrepareStatement(HotfixStatements.SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name, HordeName, EffectArg1, EffectArg2, EffectArg3, EffectScalingPoints1, " +
|
||||
"EffectScalingPoints2, EffectScalingPoints3, IconFileDataID, MinItemLevel, MaxItemLevel, TransmogUseConditionID, TransmogCost, " +
|
||||
"EffectPointsMin1, EffectPointsMin2, EffectPointsMin3, ItemVisual, Flags, RequiredSkillID, RequiredSkillRank, ItemLevel, Charges, Effect1, " +
|
||||
"Effect2, Effect3, ScalingClass, ScalingClassRestricted, ConditionID, MinLevel, MaxLevel FROM spell_item_enchantment");
|
||||
@@ -1046,7 +1049,7 @@ namespace Framework.Database
|
||||
"ReagentCount1, ReagentCount2, ReagentCount3, ReagentCount4, ReagentCount5, ReagentCount6, ReagentCount7, ReagentCount8 FROM spell_reagents");
|
||||
|
||||
// SpellScaling.db2
|
||||
PrepareStatement(HotfixStatements.SEL_SPELL_SCALING, "SELECT ID, SpellID, Class, MinScalingLevel, MaxScalingLevel, ScalesFromItemLevel FROM spell_scaling");
|
||||
PrepareStatement(HotfixStatements.SEL_SPELL_SCALING, "SELECT ID, SpellID, MinScalingLevel, MaxScalingLevel, ScalesFromItemLevel FROM spell_scaling");
|
||||
|
||||
// SpellShapeshift.db2
|
||||
PrepareStatement(HotfixStatements.SEL_SPELL_SHAPESHIFT, "SELECT ID, SpellID, StanceBarOrder, ShapeshiftExclude1, ShapeshiftExclude2, ShapeshiftMask1, " +
|
||||
@@ -1120,7 +1123,7 @@ namespace Framework.Database
|
||||
PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET_LOCALE, "SELECT ID, Name_lang FROM transmog_set_locale WHERE locale = ?");
|
||||
|
||||
// TransmogSetGroup.db2
|
||||
PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET_GROUP, "SELECT Name, ID FROM transmog_set_group");
|
||||
PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET_GROUP, "SELECT ID, Name FROM transmog_set_group");
|
||||
PrepareStatement(HotfixStatements.SEL_TRANSMOG_SET_GROUP_LOCALE, "SELECT ID, Name_lang FROM transmog_set_group_locale WHERE locale = ?");
|
||||
|
||||
// TransmogSetItem.db2
|
||||
@@ -1548,6 +1551,8 @@ namespace Framework.Database
|
||||
|
||||
SEL_ITEM_X_BONUS_TREE,
|
||||
|
||||
SEL_ITEM_X_ITEM_EFFECT,
|
||||
|
||||
SEL_KEYCHAIN,
|
||||
|
||||
SEL_LANGUAGE_WORDS,
|
||||
|
||||
@@ -205,6 +205,7 @@ namespace Game.DataStorage
|
||||
ItemSpecStorage = ReadDB2<ItemSpecRecord>("ItemSpec.db2", HotfixStatements.SEL_ITEM_SPEC);
|
||||
ItemSpecOverrideStorage = ReadDB2<ItemSpecOverrideRecord>("ItemSpecOverride.db2", HotfixStatements.SEL_ITEM_SPEC_OVERRIDE);
|
||||
ItemXBonusTreeStorage = ReadDB2<ItemXBonusTreeRecord>("ItemXBonusTree.db2", HotfixStatements.SEL_ITEM_X_BONUS_TREE);
|
||||
ItemXItemEffectStorage = ReadDB2<ItemXItemEffectRecord>("ItemXItemEffect.db2", HotfixStatements.SEL_ITEM_X_ITEM_EFFECT);
|
||||
//KeyChainStorage = ReadDB2<KeyChainRecord>("KeyChain.db2", HotfixStatements.SEL_KEYCHAIN);
|
||||
LanguageWordsStorage = ReadDB2<LanguageWordsRecord>("LanguageWords.db2", HotfixStatements.SEL_LANGUAGE_WORDS);
|
||||
LanguagesStorage = ReadDB2<LanguagesRecord>("Languages.db2", HotfixStatements.SEL_LANGUAGES, HotfixStatements.SEL_LANGUAGES_LOCALE);
|
||||
@@ -576,6 +577,7 @@ namespace Game.DataStorage
|
||||
public static DB6Storage<ItemSpecRecord> ItemSpecStorage;
|
||||
public static DB6Storage<ItemSpecOverrideRecord> ItemSpecOverrideStorage;
|
||||
public static DB6Storage<ItemXBonusTreeRecord> ItemXBonusTreeStorage;
|
||||
public static DB6Storage<ItemXItemEffectRecord> ItemXItemEffectStorage;
|
||||
//public static DB6Storage<KeyChainRecord> KeyChainStorage;
|
||||
public static DB6Storage<LanguageWordsRecord> LanguageWordsStorage;
|
||||
public static DB6Storage<LanguagesRecord> LanguagesStorage;
|
||||
|
||||
@@ -241,9 +241,8 @@ namespace Game.DataStorage
|
||||
|
||||
foreach (ContentTuningXExpectedRecord contentTuningXExpectedStat in ContentTuningXExpectedStorage.Values)
|
||||
{
|
||||
ExpectedStatModRecord expectedStatMod = ExpectedStatModStorage.LookupByKey(contentTuningXExpectedStat.ExpectedStatModID);
|
||||
if (expectedStatMod != null)
|
||||
_expectedStatModsByContentTuning.Add(contentTuningXExpectedStat.ContentTuningID, expectedStatMod);
|
||||
if (ExpectedStatModStorage.ContainsKey(contentTuningXExpectedStat.ExpectedStatModID))
|
||||
_expectedStatModsByContentTuning.Add(contentTuningXExpectedStat.ContentTuningID, contentTuningXExpectedStat);
|
||||
}
|
||||
|
||||
foreach (CurvePointRecord curvePoint in CurvePointStorage.Values)
|
||||
@@ -1214,6 +1213,49 @@ namespace Game.DataStorage
|
||||
return null;
|
||||
}
|
||||
|
||||
float ExpectedStatModReducer(float mod, ContentTuningXExpectedRecord contentTuningXExpected, ExpectedStatType stat)
|
||||
{
|
||||
if (contentTuningXExpected == null)
|
||||
return mod;
|
||||
|
||||
//if (contentTuningXExpected->MinMythicPlusSeasonID)
|
||||
// if (MythicPlusSeasonEntry const* mythicPlusSeason = sMythicPlusSeasonStore.LookupEntry(contentTuningXExpected->MinMythicPlusSeasonID))
|
||||
// if (MythicPlusSubSeason < mythicPlusSeason->SubSeason)
|
||||
// return mod;
|
||||
|
||||
//if (contentTuningXExpected->MaxMythicPlusSeasonID)
|
||||
// if (MythicPlusSeasonEntry const* mythicPlusSeason = sMythicPlusSeasonStore.LookupEntry(contentTuningXExpected->MaxMythicPlusSeasonID))
|
||||
// if (MythicPlusSubSeason >= mythicPlusSeason->SubSeason)
|
||||
// return mod;
|
||||
|
||||
var expectedStatMod = ExpectedStatModStorage.LookupByKey(contentTuningXExpected.ExpectedStatModID);
|
||||
switch (stat)
|
||||
{
|
||||
case ExpectedStatType.CreatureHealth:
|
||||
return mod * expectedStatMod.CreatureHealthMod;
|
||||
case ExpectedStatType.PlayerHealth:
|
||||
return mod * expectedStatMod.PlayerHealthMod;
|
||||
case ExpectedStatType.CreatureAutoAttackDps:
|
||||
return mod * expectedStatMod.CreatureAutoAttackDPSMod;
|
||||
case ExpectedStatType.CreatureArmor:
|
||||
return mod * expectedStatMod.CreatureArmorMod;
|
||||
case ExpectedStatType.PlayerMana:
|
||||
return mod * expectedStatMod.PlayerManaMod;
|
||||
case ExpectedStatType.PlayerPrimaryStat:
|
||||
return mod * expectedStatMod.PlayerPrimaryStatMod;
|
||||
case ExpectedStatType.PlayerSecondaryStat:
|
||||
return mod * expectedStatMod.PlayerSecondaryStatMod;
|
||||
case ExpectedStatType.ArmorConstant:
|
||||
return mod * expectedStatMod.ArmorConstantMod;
|
||||
case ExpectedStatType.CreatureSpellDamage:
|
||||
return mod * expectedStatMod.CreatureSpellDamageMod;
|
||||
}
|
||||
|
||||
return mod;
|
||||
|
||||
// int32 MythicPlusSubSeason = 0;
|
||||
}
|
||||
|
||||
public float EvaluateExpectedStat(ExpectedStatType stat, uint level, int expansion, uint contentTuningId, Class unitClass)
|
||||
{
|
||||
var expectedStatRecord = _expectedStatsByLevel.LookupByKey(Tuple.Create(level, expansion));
|
||||
@@ -1241,63 +1283,63 @@ namespace Game.DataStorage
|
||||
break;
|
||||
}
|
||||
|
||||
List<ExpectedStatModRecord> contentTuningMods = _expectedStatModsByContentTuning.LookupByKey(contentTuningId);
|
||||
List<ContentTuningXExpectedRecord> contentTuningMods = _expectedStatModsByContentTuning.LookupByKey(contentTuningId);
|
||||
float value = 0.0f;
|
||||
switch (stat)
|
||||
{
|
||||
case ExpectedStatType.CreatureHealth:
|
||||
value = expectedStatRecord.CreatureHealth;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureHealthMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.CreatureHealthMod;
|
||||
break;
|
||||
case ExpectedStatType.PlayerHealth:
|
||||
value = expectedStatRecord.PlayerHealth;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerHealthMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.PlayerHealthMod;
|
||||
break;
|
||||
case ExpectedStatType.CreatureAutoAttackDps:
|
||||
value = expectedStatRecord.CreatureAutoAttackDps;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureAutoAttackDPSMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.CreatureAutoAttackDPSMod;
|
||||
break;
|
||||
case ExpectedStatType.CreatureArmor:
|
||||
value = expectedStatRecord.CreatureArmor;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureArmorMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.CreatureArmorMod;
|
||||
break;
|
||||
case ExpectedStatType.PlayerMana:
|
||||
value = expectedStatRecord.PlayerMana;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerManaMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.PlayerManaMod;
|
||||
break;
|
||||
case ExpectedStatType.PlayerPrimaryStat:
|
||||
value = expectedStatRecord.PlayerPrimaryStat;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerPrimaryStatMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.PlayerPrimaryStatMod;
|
||||
break;
|
||||
case ExpectedStatType.PlayerSecondaryStat:
|
||||
value = expectedStatRecord.PlayerSecondaryStat;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.PlayerSecondaryStatMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.PlayerSecondaryStatMod;
|
||||
break;
|
||||
case ExpectedStatType.ArmorConstant:
|
||||
value = expectedStatRecord.ArmorConstant;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.ArmorConstantMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.ArmorConstantMod;
|
||||
break;
|
||||
@@ -1306,7 +1348,7 @@ namespace Game.DataStorage
|
||||
case ExpectedStatType.CreatureSpellDamage:
|
||||
value = expectedStatRecord.CreatureSpellDamage;
|
||||
if (!contentTuningMods.Empty())
|
||||
value *= contentTuningMods.Sum(expectedStatMod => expectedStatMod != null ? expectedStatMod.CreatureSpellDamageMod : 1.0f);
|
||||
value *= contentTuningMods.Sum(expectedStatMod => ExpectedStatModReducer(1.0f, expectedStatMod, stat));
|
||||
if (classMod != null)
|
||||
value *= classMod.CreatureSpellDamageMod;
|
||||
break;
|
||||
@@ -2275,7 +2317,7 @@ namespace Game.DataStorage
|
||||
MultiMap<uint, CurvePointRecord> _curvePoints = new();
|
||||
Dictionary<Tuple<uint, byte, byte, byte>, EmotesTextSoundRecord> _emoteTextSounds = new();
|
||||
Dictionary<Tuple<uint, int>, ExpectedStatRecord> _expectedStatsByLevel = new();
|
||||
MultiMap<uint, ExpectedStatModRecord> _expectedStatModsByContentTuning = new();
|
||||
MultiMap<uint, ContentTuningXExpectedRecord> _expectedStatModsByContentTuning = new();
|
||||
MultiMap<uint, uint> _factionTeams = new();
|
||||
MultiMap<uint, FriendshipRepReactionRecord> _friendshipRepReactions = new();
|
||||
Dictionary<uint, HeirloomRecord> _heirlooms = new();
|
||||
|
||||
@@ -329,9 +329,9 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class AzeriteEssenceRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
public string Description;
|
||||
public uint Id;
|
||||
public int SpecSetID;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,9 +34,9 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class BarberShopStyleRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string DisplayName;
|
||||
public string Description;
|
||||
public uint Id;
|
||||
public byte Type; // value 0 . hair, value 2 . facialhair
|
||||
public float CostModifier;
|
||||
public byte Race;
|
||||
@@ -48,7 +48,7 @@ namespace Game.DataStorage
|
||||
{
|
||||
public uint Id;
|
||||
public float StateMultiplier;
|
||||
public byte QualityEnum;
|
||||
public sbyte QualityEnum;
|
||||
}
|
||||
|
||||
public sealed class BattlePetBreedStateRecord
|
||||
@@ -67,7 +67,7 @@ namespace Game.DataStorage
|
||||
public uint CreatureID;
|
||||
public uint SummonSpellID;
|
||||
public int IconFileDataID;
|
||||
public byte PetTypeEnum;
|
||||
public sbyte PetTypeEnum;
|
||||
public ushort Flags;
|
||||
public sbyte SourceTypeEnum;
|
||||
public int CardUIModelSceneID;
|
||||
|
||||
@@ -41,10 +41,11 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class CharacterLoadoutRecord
|
||||
{
|
||||
public long RaceMask;
|
||||
public uint Id;
|
||||
public long RaceMask;
|
||||
public sbyte ChrClassID;
|
||||
public sbyte Purpose;
|
||||
public sbyte Unused910;
|
||||
|
||||
public bool IsForNewCharacter() { return Purpose == 9; }
|
||||
}
|
||||
@@ -58,9 +59,9 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class ChatChannelsRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public string Shortcut;
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public string Shortcut;
|
||||
public ChannelDBCFlags Flags;
|
||||
public sbyte FactionGroup;
|
||||
public int Ruleset;
|
||||
@@ -131,10 +132,9 @@ namespace Game.DataStorage
|
||||
public uint ChrCustomizationOptionID;
|
||||
public uint ChrCustomizationReqID;
|
||||
public ushort SortOrder;
|
||||
public int SwatchColor1;
|
||||
public int SwatchColor2;
|
||||
public ushort UiOrderIndex;
|
||||
public int Flags;
|
||||
public int[] SwatchColor = new int[2];
|
||||
}
|
||||
|
||||
public sealed class ChrCustomizationDisplayInfoRecord
|
||||
@@ -212,6 +212,7 @@ namespace Game.DataStorage
|
||||
public float CustomizeFacing;
|
||||
public float CameraDistanceOffset;
|
||||
public float BarberShopCameraOffsetScale;
|
||||
public float BarberShopCameraHeightOffsetScale; // applied after BarberShopCameraOffsetScale
|
||||
public float BarberShopCameraRotationOffset;
|
||||
}
|
||||
|
||||
@@ -221,9 +222,10 @@ namespace Game.DataStorage
|
||||
public int ChrRacesID;
|
||||
public int ChrModelID;
|
||||
}
|
||||
|
||||
|
||||
public sealed class ChrRacesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string ClientPrefix;
|
||||
public string ClientFileString;
|
||||
public LocalizedString Name;
|
||||
@@ -239,44 +241,45 @@ namespace Game.DataStorage
|
||||
public string NameFemaleL;
|
||||
public string NameLowercaseL;
|
||||
public string NameFemaleLowercaseL;
|
||||
public uint Id;
|
||||
public int Flags;
|
||||
public int BaseLanguage;
|
||||
public int FactionID;
|
||||
public uint CinematicSequenceID;
|
||||
public int ResSicknessSpellID;
|
||||
public int SplashSoundID;
|
||||
public int Alliance;
|
||||
public int RaceRelated;
|
||||
public int UnalteredVisualRaceID;
|
||||
public int DefaultClassID;
|
||||
public int CreateScreenFileDataID;
|
||||
public int SelectScreenFileDataID;
|
||||
public int NeutralRaceID;
|
||||
public int LowResScreenFileDataID;
|
||||
public uint[] AlteredFormStartVisualKitID = new uint[3];
|
||||
public uint[] AlteredFormFinishVisualKitID = new uint[3];
|
||||
public int[] AlteredFormStartVisualKitID = new int[3];
|
||||
public int[] AlteredFormFinishVisualKitID = new int[3];
|
||||
public int HeritageArmorAchievementID;
|
||||
public int StartingLevel;
|
||||
public int UiDisplayOrder;
|
||||
public int MaleModelFallbackRaceID;
|
||||
public int FemaleModelFallbackRaceID;
|
||||
public int MaleTextureFallbackRaceID;
|
||||
public int FemaleTextureFallbackRaceID;
|
||||
public int PlayableRaceBit;
|
||||
public int HelmetAnimScalingRaceID;
|
||||
public int TransmogrifyDisabledSlotMask;
|
||||
public int UnalteredVisualCustomizationRaceID;
|
||||
public float[] AlteredFormCustomizeOffsetFallback = new float[3];
|
||||
public float AlteredFormCustomizeRotationFallback;
|
||||
public ushort FactionID;
|
||||
public ushort CinematicSequenceID;
|
||||
public float[] Unknown910_1 = new float[3];
|
||||
public float[] Unknown910_2 = new float[3];
|
||||
public sbyte BaseLanguage;
|
||||
public sbyte CreatureType;
|
||||
public sbyte Alliance;
|
||||
public sbyte RaceRelated;
|
||||
public sbyte UnalteredVisualRaceID;
|
||||
public sbyte DefaultClassID;
|
||||
public sbyte NeutralRaceID;
|
||||
public sbyte MaleModelFallbackRaceID;
|
||||
public sbyte MaleModelFallbackSex;
|
||||
public sbyte FemaleModelFallbackRaceID;
|
||||
public sbyte FemaleModelFallbackSex;
|
||||
public sbyte MaleTextureFallbackRaceID;
|
||||
public sbyte MaleTextureFallbackSex;
|
||||
public sbyte FemaleTextureFallbackRaceID;
|
||||
public sbyte FemaleTextureFallbackSex;
|
||||
public sbyte UnalteredVisualCustomizationRaceID;
|
||||
|
||||
public ChrRacesFlag GetFlags() { return (ChrRacesFlag)Flags; }
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ChrSpecializationRecord
|
||||
{
|
||||
@@ -350,7 +353,8 @@ namespace Game.DataStorage
|
||||
{
|
||||
public uint Id;
|
||||
public int ExpectedStatModID;
|
||||
public int MythicPlusSeasonID;
|
||||
public int MinMythicPlusSeasonID;
|
||||
public int MaxMythicPlusSeasonID;
|
||||
public uint ContentTuningID;
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace Game.DataStorage
|
||||
public int CompleteWorldStateID;
|
||||
public sbyte Bit;
|
||||
public int CreatureDisplayID;
|
||||
public byte Flags;
|
||||
public int Flags;
|
||||
public int SpellIconFileID;
|
||||
public int Faction;
|
||||
}
|
||||
|
||||
@@ -21,10 +21,10 @@ namespace Game.DataStorage
|
||||
{
|
||||
public sealed class FactionRecord
|
||||
{
|
||||
public uint Id;
|
||||
public long[] ReputationRaceMask = new long[4];
|
||||
public LocalizedString Name;
|
||||
public string Description;
|
||||
public uint Id;
|
||||
public short ReputationIndex;
|
||||
public ushort ParentFactionID;
|
||||
public byte Expansion;
|
||||
|
||||
@@ -59,9 +59,9 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class GarrAbilityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
public string Description;
|
||||
public uint Id;
|
||||
public byte GarrAbilityCategoryID;
|
||||
public byte GarrFollowerTypeID;
|
||||
public int IconFileDataID;
|
||||
@@ -109,10 +109,10 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class GarrClassSpecRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string ClassSpec;
|
||||
public string ClassSpecMale;
|
||||
public string ClassSpecFemale;
|
||||
public uint Id;
|
||||
public ushort UiTextureAtlasMemberID;
|
||||
public ushort GarrFollItemSetID;
|
||||
public byte FollowerClassLimit;
|
||||
@@ -121,10 +121,10 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class GarrFollowerRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string HordeSourceText;
|
||||
public string AllianceSourceText;
|
||||
public string TitleName;
|
||||
public uint Id;
|
||||
public byte GarrTypeID;
|
||||
public byte GarrFollowerTypeID;
|
||||
public int HordeCreatureID;
|
||||
|
||||
@@ -205,7 +205,6 @@ namespace Game.DataStorage
|
||||
public ushort SpellCategoryID;
|
||||
public int SpellID;
|
||||
public ushort ChrSpecializationID;
|
||||
public uint ParentItemID;
|
||||
}
|
||||
|
||||
public sealed class ItemExtendedCostRecord
|
||||
@@ -299,11 +298,11 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class ItemSearchNameRecord
|
||||
{
|
||||
public uint Id;
|
||||
public long AllowableRace;
|
||||
public string Display;
|
||||
public uint Id;
|
||||
public byte OverallQualityID;
|
||||
public byte ExpansionID;
|
||||
public int ExpansionID;
|
||||
public ushort MinFactionID;
|
||||
public byte MinReputation;
|
||||
public int AllowableClass;
|
||||
@@ -343,7 +342,9 @@ namespace Game.DataStorage
|
||||
public string Display2;
|
||||
public string Display1;
|
||||
public LocalizedString Display;
|
||||
public int ExpansionID;
|
||||
public float DmgVariance;
|
||||
public uint InstanceBound;
|
||||
public uint DurationInInventory;
|
||||
public float QualityModifier;
|
||||
public uint BagFamily;
|
||||
@@ -370,7 +371,6 @@ namespace Game.DataStorage
|
||||
public ushort GemProperties;
|
||||
public ushort SocketMatchEnchantmentId;
|
||||
public ushort TotemCategoryID;
|
||||
public ushort InstanceBound;
|
||||
public ushort[] ZoneBound = new ushort[2];
|
||||
public ushort ItemSet;
|
||||
public ushort LockID;
|
||||
@@ -382,7 +382,6 @@ namespace Game.DataStorage
|
||||
public ushort RequiredSkill;
|
||||
public ushort ItemLevel;
|
||||
public short AllowableClass;
|
||||
public byte ExpansionID;
|
||||
public byte ArtifactID;
|
||||
public byte SpellWeight;
|
||||
public byte SpellWeightCategory;
|
||||
@@ -427,4 +426,11 @@ namespace Game.DataStorage
|
||||
public ushort ItemBonusTreeID;
|
||||
public uint ItemID;
|
||||
}
|
||||
|
||||
public sealed class ItemXItemEffectRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int ItemEffectID;
|
||||
public uint ItemID;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class LanguagesRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
}
|
||||
|
||||
public sealed class LFGDungeonsRecord
|
||||
|
||||
@@ -30,7 +30,6 @@ namespace Game.DataStorage
|
||||
public uint Id;
|
||||
public string Directory;
|
||||
public LocalizedString MapName;
|
||||
public string InternalName;
|
||||
public string MapDescription0; // Horde
|
||||
public string MapDescription1; // Alliance
|
||||
public string PvpShortDescription;
|
||||
@@ -134,7 +133,7 @@ namespace Game.DataStorage
|
||||
public uint Type;
|
||||
public uint Asset;
|
||||
public int SecondaryAsset;
|
||||
public sbyte TertiaryAsset;
|
||||
public int TertiaryAsset;
|
||||
}
|
||||
|
||||
public sealed class MountRecord
|
||||
|
||||
@@ -42,9 +42,9 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class PlayerConditionRecord
|
||||
{
|
||||
public uint Id;
|
||||
public long RaceMask;
|
||||
public string FailureDescription;
|
||||
public uint Id;
|
||||
public int ClassMask;
|
||||
public uint SkillLogic;
|
||||
public int LanguageID;
|
||||
|
||||
@@ -289,6 +289,7 @@ namespace Game.DataStorage
|
||||
public float ResourceCoefficient;
|
||||
public float GroupSizeBasePointsCoefficient;
|
||||
public float EffectBasePoints;
|
||||
public int ScalingClass;
|
||||
public int[] EffectMiscValue = new int[2];
|
||||
public uint[] EffectRadiusIndex = new uint[2];
|
||||
public FlagArray128 EffectSpellClassMask;
|
||||
@@ -323,9 +324,9 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class SpellItemEnchantmentRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
public string HordeName;
|
||||
public uint Id;
|
||||
public uint[] EffectArg = new uint[ItemConst.MaxItemEnchantmentEffects];
|
||||
public float[] EffectScalingPoints = new float[ItemConst.MaxItemEnchantmentEffects];
|
||||
public uint IconFileDataID;
|
||||
@@ -485,7 +486,6 @@ namespace Game.DataStorage
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public int Class;
|
||||
public uint MinScalingLevel;
|
||||
public uint MaxScalingLevel;
|
||||
public ushort ScalesFromItemLevel;
|
||||
@@ -552,7 +552,7 @@ namespace Game.DataStorage
|
||||
public byte DifficultyID;
|
||||
public uint SpellVisualID;
|
||||
public float Probability;
|
||||
public byte Priority;
|
||||
public int Priority;
|
||||
public int SpellIconFileID;
|
||||
public int ActiveIconFileID;
|
||||
public ushort ViewerUnitConditionID;
|
||||
|
||||
@@ -131,8 +131,8 @@ namespace Game.DataStorage
|
||||
|
||||
public sealed class TransmogSetGroupRecord
|
||||
{
|
||||
public string Name;
|
||||
public uint Id;
|
||||
public string Name;
|
||||
}
|
||||
|
||||
public sealed class TransmogSetItemRecord
|
||||
|
||||
@@ -307,7 +307,7 @@ namespace Game.Entities
|
||||
public HolidayIds GetHolidayID() { return (HolidayIds)ExtendedData.RequiredHoliday; }
|
||||
public float GetDmgVariance() { return ExtendedData.DmgVariance; }
|
||||
public byte GetArtifactID() { return ExtendedData.ArtifactID; }
|
||||
public byte GetRequiredExpansion() { return ExtendedData.ExpansionID; }
|
||||
public byte GetRequiredExpansion() { return (byte)ExtendedData.ExpansionID; }
|
||||
|
||||
public bool IsCurrencyToken() { return (GetBagFamily() & BagFamilyMask.CurrencyTokens) != 0; }
|
||||
|
||||
|
||||
@@ -593,6 +593,11 @@ namespace Game.Entities
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
TakenTotalMod *= GetTotalAuraMultiplier(AuraType.ModHealingTakenFromCaster, aurEff =>
|
||||
{
|
||||
return aurEff.GetCasterGUID() == caster.GetGUID();
|
||||
});
|
||||
}
|
||||
|
||||
float heal = healamount * TakenTotalMod;
|
||||
|
||||
@@ -4549,13 +4549,15 @@ namespace Game
|
||||
}
|
||||
|
||||
// Load item effects (spells)
|
||||
foreach (var effectEntry in CliDB.ItemEffectStorage.Values)
|
||||
foreach (var effectEntry in CliDB.ItemXItemEffectStorage.Values)
|
||||
{
|
||||
var itemTemplate = ItemTemplateStorage.LookupByKey(effectEntry.ParentItemID);
|
||||
if (itemTemplate == null)
|
||||
continue;
|
||||
|
||||
itemTemplate.Effects.Add(effectEntry);
|
||||
var item = ItemTemplateStorage.LookupByKey(effectEntry.ItemID);
|
||||
if (item != null)
|
||||
{
|
||||
var effect = CliDB.ItemEffectStorage.LookupByKey(effectEntry.ItemEffectID);
|
||||
if (effect != null)
|
||||
item.Effects.Add(effect);
|
||||
}
|
||||
}
|
||||
|
||||
Log.outInfo(LogFilter.ServerLoading, "Loaded {0} item templates in {1} ms", sparseCount, Time.GetMSTimeDiffToNow(oldMSTime));
|
||||
|
||||
@@ -5689,6 +5689,20 @@ namespace Game.Spells
|
||||
|
||||
Conversation.CreateConversation((uint)effectInfo.MiscValue, GetCaster(), unitTarget.GetPosition(), new List<ObjectGuid>() { unitTarget.GetGUID() }, GetSpellInfo());
|
||||
}
|
||||
|
||||
[SpellEffectHandler(SpellEffectName.SendChatMessage)]
|
||||
void EffectSendChatMessage(uint effIndex)
|
||||
{
|
||||
if (effectHandleMode != SpellEffectHandleMode.Hit)
|
||||
return;
|
||||
|
||||
uint broadcastTextId = (uint)effectInfo.MiscValue;
|
||||
if (!CliDB.BroadcastTextStorage.ContainsKey(broadcastTextId))
|
||||
return;
|
||||
|
||||
ChatMsg chatType = (ChatMsg)effectInfo.MiscValueB;
|
||||
unitTarget.Talk(broadcastTextId, chatType, Global.CreatureTextMgr.GetRangeForChatType(chatType), unitTarget);
|
||||
}
|
||||
}
|
||||
|
||||
public class DispelableAura
|
||||
|
||||
@@ -83,7 +83,6 @@ namespace Game.Spells
|
||||
SpellScalingRecord _scaling = data.Scaling;
|
||||
if (_scaling != null)
|
||||
{
|
||||
Scaling._Class = _scaling.Class;
|
||||
Scaling.MinScalingLevel = _scaling.MinScalingLevel;
|
||||
Scaling.MaxScalingLevel = _scaling.MaxScalingLevel;
|
||||
Scaling.ScalesFromItemLevel = _scaling.ScalesFromItemLevel;
|
||||
@@ -3750,7 +3749,6 @@ namespace Game.Spells
|
||||
|
||||
public struct ScalingInfo
|
||||
{
|
||||
public int _Class { get; set; }
|
||||
public uint MinScalingLevel;
|
||||
public uint MaxScalingLevel;
|
||||
public uint ScalesFromItemLevel;
|
||||
@@ -3785,6 +3783,7 @@ namespace Game.Spells
|
||||
TriggerSpell = effect.EffectTriggerSpell;
|
||||
SpellClassMask = effect.EffectSpellClassMask;
|
||||
BonusCoefficientFromAP = effect.BonusCoefficientFromAP;
|
||||
Scaling.Class = effect.ScalingClass;
|
||||
Scaling.Coefficient = effect.Coefficient;
|
||||
Scaling.Variance = effect.Variance;
|
||||
Scaling.ResourceCoefficient = effect.ResourceCoefficient;
|
||||
@@ -3933,7 +3932,7 @@ namespace Game.Spells
|
||||
float tempValue = 0.0f;
|
||||
if (level > 0)
|
||||
{
|
||||
if (_spellInfo.Scaling._Class == 0)
|
||||
if (Scaling.Class == 0)
|
||||
return 0;
|
||||
|
||||
uint effectiveItemLevel = itemLevel != -1 ? (uint)itemLevel : 1u;
|
||||
@@ -3942,21 +3941,21 @@ namespace Game.Spells
|
||||
if (_spellInfo.Scaling.ScalesFromItemLevel != 0)
|
||||
effectiveItemLevel = _spellInfo.Scaling.ScalesFromItemLevel;
|
||||
|
||||
if (_spellInfo.Scaling._Class == -8 || _spellInfo.Scaling._Class == -9)
|
||||
if (Scaling.Class == -8 || Scaling.Class == -9)
|
||||
{
|
||||
RandPropPointsRecord randPropPoints = CliDB.RandPropPointsStorage.LookupByKey(effectiveItemLevel);
|
||||
if (randPropPoints == null)
|
||||
randPropPoints = CliDB.RandPropPointsStorage.LookupByKey(CliDB.RandPropPointsStorage.Count - 1);
|
||||
|
||||
tempValue = _spellInfo.Scaling._Class == -8 ? randPropPoints.DamageReplaceStatF : randPropPoints.DamageSecondaryF;
|
||||
tempValue = Scaling.Class == -8 ? randPropPoints.DamageReplaceStatF : randPropPoints.DamageSecondaryF;
|
||||
}
|
||||
else
|
||||
tempValue = ItemEnchantmentManager.GetRandomPropertyPoints(effectiveItemLevel, ItemQuality.Rare, InventoryType.Chest, 0);
|
||||
}
|
||||
else
|
||||
tempValue = CliDB.GetSpellScalingColumnForClass(CliDB.SpellScalingGameTable.GetRow(level), _spellInfo.Scaling._Class);
|
||||
tempValue = CliDB.GetSpellScalingColumnForClass(CliDB.SpellScalingGameTable.GetRow(level), Scaling.Class);
|
||||
|
||||
if (_spellInfo.Scaling._Class == -7)
|
||||
if (Scaling.Class == -7)
|
||||
{
|
||||
GtGenericMultByILvlRecord ratingMult = CliDB.CombatRatingsMultByILvlGameTable.GetRow(effectiveItemLevel);
|
||||
if (ratingMult != null)
|
||||
@@ -4503,6 +4502,8 @@ namespace Game.Spells
|
||||
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 281 SPELL_EFFECT_LEARN_SOULBIND_CONDUIT
|
||||
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 282 SPELL_EFFECT_CONVERT_ITEMS_TO_CURRENCY
|
||||
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 283 SPELL_EFFECT_COMPLETE_CAMPAIGN
|
||||
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 284 SPELL_EFFECT_SEND_CHAT_MESSAGE
|
||||
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 285 SPELL_EFFECT_MODIFY_KEYSTONE_2
|
||||
};
|
||||
|
||||
#region Fields
|
||||
@@ -4540,6 +4541,7 @@ namespace Game.Spells
|
||||
|
||||
public struct ScalingInfo
|
||||
{
|
||||
public int Class;
|
||||
public float Coefficient;
|
||||
public float Variance;
|
||||
public float ResourceCoefficient;
|
||||
|
||||
@@ -237,7 +237,7 @@ namespace Game
|
||||
return textEntry.duration;
|
||||
}
|
||||
|
||||
float GetRangeForChatType(ChatMsg msgType)
|
||||
public float GetRangeForChatType(ChatMsg msgType)
|
||||
{
|
||||
float dist = WorldConfig.GetFloatValue(WorldCfg.ListenRangeSay);
|
||||
switch (msgType)
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
ALTER TABLE `azerite_essence` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `barber_shop_style` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `battle_pet_breed_quality` MODIFY `QualityEnum` tinyint(11) NOT NULL DEFAULT '0' AFTER `StateMultiplier`;
|
||||
|
||||
ALTER TABLE `battle_pet_species` MODIFY `PetTypeEnum` tinyint(11) NOT NULL DEFAULT '0' AFTER `IconFileDataID`;
|
||||
|
||||
ALTER TABLE `character_loadout` ADD `Unused910` tinyint(11) NOT NULL DEFAULT '0' AFTER `Purpose`;
|
||||
ALTER TABLE `character_loadout` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `chat_channels` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `chr_customization_choice` MODIFY `SwatchColor1` int(11) NOT NULL DEFAULT '0' AFTER `Flags`;
|
||||
ALTER TABLE `chr_customization_choice` MODIFY `SwatchColor2` int(11) NOT NULL DEFAULT '0' AFTER `SwatchColor1`;
|
||||
|
||||
ALTER TABLE `chr_model` ADD `BarberShopCameraHeightOffsetScale` float NOT NULL DEFAULT '0' AFTER `BarberShopCameraOffsetScale`;
|
||||
|
||||
ALTER TABLE `chr_races` ADD `Unknown910_11` float NOT NULL DEFAULT '0' AFTER `AlteredFormCustomizeRotationFallback`;
|
||||
ALTER TABLE `chr_races` ADD `Unknown910_12` float NOT NULL DEFAULT '0' AFTER `Unknown910_11`;
|
||||
ALTER TABLE `chr_races` ADD `Unknown910_13` float NOT NULL DEFAULT '0' AFTER `Unknown910_12`;
|
||||
ALTER TABLE `chr_races` ADD `Unknown910_21` float NOT NULL DEFAULT '0' AFTER `Unknown910_13`;
|
||||
ALTER TABLE `chr_races` ADD `Unknown910_22` float NOT NULL DEFAULT '0' AFTER `Unknown910_21`;
|
||||
ALTER TABLE `chr_races` ADD `Unknown910_23` float NOT NULL DEFAULT '0' AFTER `Unknown910_22`;
|
||||
ALTER TABLE `chr_races` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
ALTER TABLE `chr_races` MODIFY `FactionID` int(11) NOT NULL DEFAULT '0' AFTER `Flags`;
|
||||
ALTER TABLE `chr_races` MODIFY `CinematicSequenceID` int(11) NOT NULL DEFAULT '0' AFTER `FactionID`;
|
||||
ALTER TABLE `chr_races` MODIFY `Alliance` int(11) NOT NULL DEFAULT '0' AFTER `SplashSoundID`;
|
||||
ALTER TABLE `chr_races` MODIFY `RaceRelated` int(11) NOT NULL DEFAULT '0' AFTER `Alliance`;
|
||||
ALTER TABLE `chr_races` MODIFY `UnalteredVisualRaceID` int(11) NOT NULL DEFAULT '0' AFTER `RaceRelated`;
|
||||
ALTER TABLE `chr_races` MODIFY `DefaultClassID` int(11) NOT NULL DEFAULT '0' AFTER `UnalteredVisualRaceID`;
|
||||
ALTER TABLE `chr_races` MODIFY `NeutralRaceID` int(11) NOT NULL DEFAULT '0' AFTER `SelectScreenFileDataID`;
|
||||
ALTER TABLE `chr_races` MODIFY `AlteredFormStartVisualKitID1` int(11) NOT NULL DEFAULT '0' AFTER `LowResScreenFileDataID`;
|
||||
ALTER TABLE `chr_races` MODIFY `AlteredFormStartVisualKitID2` int(11) NOT NULL DEFAULT '0' AFTER `AlteredFormStartVisualKitID1`;
|
||||
ALTER TABLE `chr_races` MODIFY `AlteredFormStartVisualKitID3` int(11) NOT NULL DEFAULT '0' AFTER `AlteredFormStartVisualKitID2`;
|
||||
ALTER TABLE `chr_races` MODIFY `AlteredFormFinishVisualKitID1` int(11) NOT NULL DEFAULT '0' AFTER `AlteredFormStartVisualKitID3`;
|
||||
ALTER TABLE `chr_races` MODIFY `AlteredFormFinishVisualKitID2` int(11) NOT NULL DEFAULT '0' AFTER `AlteredFormFinishVisualKitID1`;
|
||||
ALTER TABLE `chr_races` MODIFY `AlteredFormFinishVisualKitID3` int(11) NOT NULL DEFAULT '0' AFTER `AlteredFormFinishVisualKitID2`;
|
||||
ALTER TABLE `chr_races` MODIFY `MaleModelFallbackRaceID` int(11) NOT NULL DEFAULT '0' AFTER `UiDisplayOrder`;
|
||||
ALTER TABLE `chr_races` MODIFY `FemaleModelFallbackRaceID` int(11) NOT NULL DEFAULT '0' AFTER `MaleModelFallbackRaceID`;
|
||||
ALTER TABLE `chr_races` MODIFY `MaleTextureFallbackRaceID` int(11) NOT NULL DEFAULT '0' AFTER `FemaleModelFallbackRaceID`;
|
||||
ALTER TABLE `chr_races` MODIFY `FemaleTextureFallbackRaceID` int(11) NOT NULL DEFAULT '0' AFTER `MaleTextureFallbackRaceID`;
|
||||
ALTER TABLE `chr_races` MODIFY `PlayableRaceBit` int(11) NOT NULL DEFAULT '0' AFTER `FemaleTextureFallbackRaceID`;
|
||||
ALTER TABLE `chr_races` MODIFY `UnalteredVisualCustomizationRaceID` int(11) NOT NULL DEFAULT '0' AFTER `TransmogrifyDisabledSlotMask`;
|
||||
ALTER TABLE `chr_races` MODIFY `BaseLanguage` tinyint(11) NOT NULL DEFAULT '0' AFTER `Unknown910_23`;
|
||||
|
||||
ALTER TABLE `content_tuning_x_expected` ADD `MinMythicPlusSeasonID` int(11) NOT NULL DEFAULT '0' AFTER `ExpectedStatModID`;
|
||||
ALTER TABLE `content_tuning_x_expected` ADD `MaxMythicPlusSeasonID` int(11) NOT NULL DEFAULT '0' AFTER `MinMythicPlusSeasonID`;
|
||||
ALTER TABLE `content_tuning_x_expected` DROP `MythicPlusSeasonID`;
|
||||
|
||||
ALTER TABLE `dungeon_encounter` MODIFY `Flags` int(11) NOT NULL DEFAULT '0' AFTER `CreatureDisplayID`;
|
||||
|
||||
ALTER TABLE `faction` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `garr_ability` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `garr_class_spec` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `garr_follower` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `item_effect` DROP `ParentItemID`;
|
||||
|
||||
ALTER TABLE `item_search_name` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
ALTER TABLE `item_search_name` MODIFY `ExpansionID` int(11) NOT NULL DEFAULT '0' AFTER `OverallQualityID`;
|
||||
|
||||
ALTER TABLE `item_sparse` MODIFY `ExpansionID` int(11) NOT NULL DEFAULT '0' AFTER `Display`;
|
||||
ALTER TABLE `item_sparse` MODIFY `InstanceBound` int(11) NOT NULL DEFAULT '0' AFTER `DmgVariance`;
|
||||
|
||||
CREATE TABLE `item_x_item_effect` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`ItemEffectID` int(11) NOT NULL DEFAULT '0',
|
||||
`ItemID` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`VerifiedBuild` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ID`, `VerifiedBuild`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
ALTER TABLE `languages` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `map` DROP `InternalName`;
|
||||
|
||||
ALTER TABLE `modifier_tree` MODIFY `TertiaryAsset` int(11) NOT NULL DEFAULT '0' AFTER `SecondaryAsset`;
|
||||
|
||||
ALTER TABLE `paragon_reputation` MODIFY `FactionID` int(11) NOT NULL DEFAULT '0' AFTER `ID`;
|
||||
|
||||
ALTER TABLE `player_condition` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
|
||||
ALTER TABLE `rand_prop_points` MODIFY `GoodF4` float NOT NULL DEFAULT '0' AFTER `GoodF3`;
|
||||
ALTER TABLE `rand_prop_points` MODIFY `GoodF5` float NOT NULL DEFAULT '0' AFTER `GoodF4`;
|
||||
ALTER TABLE `rand_prop_points` MODIFY `Epic1` int(10) unsigned NOT NULL DEFAULT '0' AFTER `GoodF5`;
|
||||
ALTER TABLE `rand_prop_points` MODIFY `Epic2` int(10) unsigned NOT NULL DEFAULT '0' AFTER `Epic1`;
|
||||
ALTER TABLE `rand_prop_points` MODIFY `Epic3` int(10) unsigned NOT NULL DEFAULT '0' AFTER `Epic2`;
|
||||
ALTER TABLE `rand_prop_points` MODIFY `Epic4` int(10) unsigned NOT NULL DEFAULT '0' AFTER `Epic3`;
|
||||
ALTER TABLE `rand_prop_points` MODIFY `Epic5` int(10) unsigned NOT NULL DEFAULT '0' AFTER `Epic4`;
|
||||
|
||||
ALTER TABLE `spell_effect` ADD `ScalingClass` int(11) NOT NULL DEFAULT '0' AFTER `EffectBasePoints`;
|
||||
|
||||
ALTER TABLE `spell_item_enchantment` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
ALTER TABLE `spell_item_enchantment` MODIFY `TransmogCost` int(10) unsigned NOT NULL DEFAULT '0' AFTER `TransmogUseConditionID`;
|
||||
|
||||
ALTER TABLE `spell_scaling` DROP `Class`;
|
||||
|
||||
ALTER TABLE `spell_x_spell_visual` MODIFY `Priority` int(11) NOT NULL DEFAULT '0' AFTER `Probability`;
|
||||
|
||||
ALTER TABLE `transmog_set_group` MODIFY `ID` int(10) unsigned NOT NULL DEFAULT '0' FIRST;
|
||||
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE `creature_template` ADD `CreatureDifficultyID` int(11) NOT NULL DEFAULT '0' AFTER `movementId`;
|
||||
ALTER TABLE `creature_template_scaling` DROP `LevelScalingMin`, DROP `LevelScalingMax`;
|
||||
ALTER TABLE `points_of_interest` ADD `PositionZ` float NOT NULL DEFAULT '0' AFTER `PositionY`;
|
||||
ALTER TABLE `quest_template` ADD `PortraitGiverModelSceneID` int(11) NOT NULL DEFAULT '0' AFTER `PortraitGiverMount`;
|
||||
|
||||
DELETE FROM `creature_template_scaling` WHERE `ContentTuningID`=0;
|
||||
Reference in New Issue
Block a user