mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 02:25:38 +01:00
Core/DataStores: load ScalingStatDistribution.db2 and ScalingStatValues.db2
This commit is contained in:
128
sql/updates/hotfixes/cata_classic/2025_04_11_00_hotfixes.sql
Normal file
128
sql/updates/hotfixes/cata_classic/2025_04_11_00_hotfixes.sql
Normal file
@@ -0,0 +1,128 @@
|
||||
--
|
||||
-- Table structure for table `scaling_stat_distribution`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `scaling_stat_distribution`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!50503 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `scaling_stat_distribution` (
|
||||
`ID` int unsigned NOT NULL DEFAULT '0',
|
||||
`StatID1` int NOT NULL DEFAULT '0',
|
||||
`StatID2` int NOT NULL DEFAULT '0',
|
||||
`StatID3` int NOT NULL DEFAULT '0',
|
||||
`StatID4` int NOT NULL DEFAULT '0',
|
||||
`StatID5` int NOT NULL DEFAULT '0',
|
||||
`StatID6` int NOT NULL DEFAULT '0',
|
||||
`StatID7` int NOT NULL DEFAULT '0',
|
||||
`StatID8` int NOT NULL DEFAULT '0',
|
||||
`StatID9` int NOT NULL DEFAULT '0',
|
||||
`StatID10` int NOT NULL DEFAULT '0',
|
||||
`Bonus1` int NOT NULL DEFAULT '0',
|
||||
`Bonus2` int NOT NULL DEFAULT '0',
|
||||
`Bonus3` int NOT NULL DEFAULT '0',
|
||||
`Bonus4` int NOT NULL DEFAULT '0',
|
||||
`Bonus5` int NOT NULL DEFAULT '0',
|
||||
`Bonus6` int NOT NULL DEFAULT '0',
|
||||
`Bonus7` int NOT NULL DEFAULT '0',
|
||||
`Bonus8` int NOT NULL DEFAULT '0',
|
||||
`Bonus9` int NOT NULL DEFAULT '0',
|
||||
`Bonus10` int NOT NULL DEFAULT '0',
|
||||
`Maxlevel` int NOT NULL DEFAULT '0',
|
||||
`VerifiedBuild` int NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ID`,`VerifiedBuild`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `scaling_stat_distribution`
|
||||
--
|
||||
|
||||
LOCK TABLES `scaling_stat_distribution` WRITE;
|
||||
/*!40000 ALTER TABLE `scaling_stat_distribution` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `scaling_stat_distribution` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `scaling_stat_values`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `scaling_stat_values`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!50503 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `scaling_stat_values` (
|
||||
`ID` int unsigned NOT NULL DEFAULT '0',
|
||||
`Charlevel` int NOT NULL DEFAULT '0',
|
||||
`WeaponDPS1H` int NOT NULL DEFAULT '0',
|
||||
`WeaponDPS2H` int NOT NULL DEFAULT '0',
|
||||
`SpellcasterDPS1H` int NOT NULL DEFAULT '0',
|
||||
`SpellcasterDPS2H` int NOT NULL DEFAULT '0',
|
||||
`RangedDPS` int NOT NULL DEFAULT '0',
|
||||
`WandDPS` int NOT NULL DEFAULT '0',
|
||||
`SpellPower` int NOT NULL DEFAULT '0',
|
||||
`BudgetPrimary` int NOT NULL DEFAULT '0',
|
||||
`BudgetSecondary` int NOT NULL DEFAULT '0',
|
||||
`BudgetTertiary` int NOT NULL DEFAULT '0',
|
||||
`BudgetSub` int NOT NULL DEFAULT '0',
|
||||
`BudgetTrivial` int NOT NULL DEFAULT '0',
|
||||
`ClothCloakArmor` int NOT NULL DEFAULT '0',
|
||||
`Unk440_0` int NOT NULL DEFAULT '0',
|
||||
`Unk440_1` int NOT NULL DEFAULT '0',
|
||||
`Unk440_2` int NOT NULL DEFAULT '0',
|
||||
`Unk440_3` int NOT NULL DEFAULT '0',
|
||||
`Unk440_4` int NOT NULL DEFAULT '0',
|
||||
`Unk440_5` int NOT NULL DEFAULT '0',
|
||||
`Unk440_6` int NOT NULL DEFAULT '0',
|
||||
`Unk440_7` int NOT NULL DEFAULT '0',
|
||||
`Unk440_8` int NOT NULL DEFAULT '0',
|
||||
`Unk440_9` int NOT NULL DEFAULT '0',
|
||||
`Unk440_10` int NOT NULL DEFAULT '0',
|
||||
`Unk440_11` int NOT NULL DEFAULT '0',
|
||||
`Unk440_12` int NOT NULL DEFAULT '0',
|
||||
`Unk440_13` int NOT NULL DEFAULT '0',
|
||||
`Unk440_14` int NOT NULL DEFAULT '0',
|
||||
`Unk440_15` int NOT NULL DEFAULT '0',
|
||||
`ShoulderArmor1` int NOT NULL DEFAULT '0',
|
||||
`ShoulderArmor2` int NOT NULL DEFAULT '0',
|
||||
`ShoulderArmor3` int NOT NULL DEFAULT '0',
|
||||
`ShoulderArmor4` int NOT NULL DEFAULT '0',
|
||||
`ChestArmor1` int NOT NULL DEFAULT '0',
|
||||
`ChestArmor2` int NOT NULL DEFAULT '0',
|
||||
`ChestArmor3` int NOT NULL DEFAULT '0',
|
||||
`ChestArmor4` int NOT NULL DEFAULT '0',
|
||||
`HeadArmor1` int NOT NULL DEFAULT '0',
|
||||
`HeadArmor2` int NOT NULL DEFAULT '0',
|
||||
`HeadArmor3` int NOT NULL DEFAULT '0',
|
||||
`HeadArmor4` int NOT NULL DEFAULT '0',
|
||||
`LegsArmor1` int NOT NULL DEFAULT '0',
|
||||
`LegsArmor2` int NOT NULL DEFAULT '0',
|
||||
`LegsArmor3` int NOT NULL DEFAULT '0',
|
||||
`LegsArmor4` int NOT NULL DEFAULT '0',
|
||||
`FeetArmor1` int NOT NULL DEFAULT '0',
|
||||
`FeetArmor2` int NOT NULL DEFAULT '0',
|
||||
`FeetArmor3` int NOT NULL DEFAULT '0',
|
||||
`FeetArmor4` int NOT NULL DEFAULT '0',
|
||||
`WaistArmor1` int NOT NULL DEFAULT '0',
|
||||
`WaistArmor2` int NOT NULL DEFAULT '0',
|
||||
`WaistArmor3` int NOT NULL DEFAULT '0',
|
||||
`WaistArmor4` int NOT NULL DEFAULT '0',
|
||||
`HandsArmor1` int NOT NULL DEFAULT '0',
|
||||
`HandsArmor2` int NOT NULL DEFAULT '0',
|
||||
`HandsArmor3` int NOT NULL DEFAULT '0',
|
||||
`HandsArmor4` int NOT NULL DEFAULT '0',
|
||||
`WristsArmor1` int NOT NULL DEFAULT '0',
|
||||
`WristsArmor2` int NOT NULL DEFAULT '0',
|
||||
`WristsArmor3` int NOT NULL DEFAULT '0',
|
||||
`WristsArmor4` int NOT NULL DEFAULT '0',
|
||||
`VerifiedBuild` int NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ID`,`VerifiedBuild`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `scaling_stat_values`
|
||||
--
|
||||
|
||||
LOCK TABLES `scaling_stat_values` WRITE;
|
||||
/*!40000 ALTER TABLE `scaling_stat_values` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `scaling_stat_values` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
@@ -1099,6 +1099,22 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_REWARD_PACK_X_ITEM, "SELECT MAX(ID) + 1 FROM reward_pack_x_item", CONNECTION_SYNCH);
|
||||
|
||||
// ScalingStatDistribution.db2
|
||||
PrepareStatement(HOTFIX_SEL_SCALING_STAT_DISTRIBUTION, "SELECT ID, StatID1, StatID2, StatID3, StatID4, StatID5, StatID6, StatID7, StatID8, "
|
||||
"StatID9, StatID10, Bonus1, Bonus2, Bonus3, Bonus4, Bonus5, Bonus6, Bonus7, Bonus8, Bonus9, Bonus10, Maxlevel FROM scaling_stat_distribution"
|
||||
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCALING_STAT_DISTRIBUTION, "SELECT MAX(ID) + 1 FROM scaling_stat_distribution", CONNECTION_SYNCH);
|
||||
|
||||
// ScalingStatValues.db2
|
||||
PrepareStatement(HOTFIX_SEL_SCALING_STAT_VALUES, "SELECT ID, Charlevel, WeaponDPS1H, WeaponDPS2H, SpellcasterDPS1H, SpellcasterDPS2H, RangedDPS, "
|
||||
"WandDPS, SpellPower, BudgetPrimary, BudgetSecondary, BudgetTertiary, BudgetSub, BudgetTrivial, ClothCloakArmor, Unk440_0, Unk440_1, "
|
||||
"Unk440_2, Unk440_3, Unk440_4, Unk440_5, Unk440_6, Unk440_7, Unk440_8, Unk440_9, Unk440_10, Unk440_11, Unk440_12, Unk440_13, Unk440_14, "
|
||||
"Unk440_15, ShoulderArmor1, ShoulderArmor2, ShoulderArmor3, ShoulderArmor4, ChestArmor1, ChestArmor2, ChestArmor3, ChestArmor4, HeadArmor1, "
|
||||
"HeadArmor2, HeadArmor3, HeadArmor4, LegsArmor1, LegsArmor2, LegsArmor3, LegsArmor4, FeetArmor1, FeetArmor2, FeetArmor3, FeetArmor4, "
|
||||
"WaistArmor1, WaistArmor2, WaistArmor3, WaistArmor4, HandsArmor1, HandsArmor2, HandsArmor3, HandsArmor4, WristsArmor1, WristsArmor2, "
|
||||
"WristsArmor3, WristsArmor4 FROM scaling_stat_values WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCALING_STAT_VALUES, "SELECT MAX(ID) + 1 FROM scaling_stat_values", CONNECTION_SYNCH);
|
||||
|
||||
// Scenario.db2
|
||||
PrepareStatement(HOTFIX_SEL_SCENARIO, "SELECT ID, Name, AreaTableID, Type, Flags, UiTextureKitID FROM scenario WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
|
||||
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCENARIO, "SELECT MAX(ID) + 1 FROM scenario", CONNECTION_SYNCH);
|
||||
|
||||
@@ -632,6 +632,12 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_REWARD_PACK_X_ITEM,
|
||||
HOTFIX_SEL_REWARD_PACK_X_ITEM_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_SCALING_STAT_DISTRIBUTION,
|
||||
HOTFIX_SEL_SCALING_STAT_DISTRIBUTION_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_SCALING_STAT_VALUES,
|
||||
HOTFIX_SEL_SCALING_STAT_VALUES_MAX_ID,
|
||||
|
||||
HOTFIX_SEL_SCENARIO,
|
||||
HOTFIX_SEL_SCENARIO_MAX_ID,
|
||||
HOTFIX_SEL_SCENARIO_LOCALE,
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
#include "DB2DatabaseLoader.h"
|
||||
#include "DB2Metadata.h"
|
||||
#include "HotfixDatabase.h"
|
||||
|
||||
struct AchievementLoadInfo
|
||||
{
|
||||
@@ -3712,6 +3711,109 @@ struct RewardPackXItemLoadInfo
|
||||
static constexpr DB2LoadInfo Instance{ Fields, 4, &RewardPackXItemMeta::Instance, HOTFIX_SEL_REWARD_PACK_X_ITEM };
|
||||
};
|
||||
|
||||
struct ScalingStatDistributionLoadInfo
|
||||
{
|
||||
static constexpr DB2FieldMeta Fields[22] =
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ true, FT_INT, "StatID1" },
|
||||
{ true, FT_INT, "StatID2" },
|
||||
{ true, FT_INT, "StatID3" },
|
||||
{ true, FT_INT, "StatID4" },
|
||||
{ true, FT_INT, "StatID5" },
|
||||
{ true, FT_INT, "StatID6" },
|
||||
{ true, FT_INT, "StatID7" },
|
||||
{ true, FT_INT, "StatID8" },
|
||||
{ true, FT_INT, "StatID9" },
|
||||
{ true, FT_INT, "StatID10" },
|
||||
{ true, FT_INT, "Bonus1" },
|
||||
{ true, FT_INT, "Bonus2" },
|
||||
{ true, FT_INT, "Bonus3" },
|
||||
{ true, FT_INT, "Bonus4" },
|
||||
{ true, FT_INT, "Bonus5" },
|
||||
{ true, FT_INT, "Bonus6" },
|
||||
{ true, FT_INT, "Bonus7" },
|
||||
{ true, FT_INT, "Bonus8" },
|
||||
{ true, FT_INT, "Bonus9" },
|
||||
{ true, FT_INT, "Bonus10" },
|
||||
{ true, FT_INT, "Maxlevel" },
|
||||
};
|
||||
|
||||
static constexpr DB2LoadInfo Instance{ Fields, 22, &ScalingStatDistributionMeta::Instance, HOTFIX_SEL_SCALING_STAT_DISTRIBUTION };
|
||||
};
|
||||
|
||||
struct ScalingStatValuesLoadInfo
|
||||
{
|
||||
static constexpr DB2FieldMeta Fields[63] =
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ true, FT_INT, "Charlevel" },
|
||||
{ true, FT_INT, "WeaponDPS1H" },
|
||||
{ true, FT_INT, "WeaponDPS2H" },
|
||||
{ true, FT_INT, "SpellcasterDPS1H" },
|
||||
{ true, FT_INT, "SpellcasterDPS2H" },
|
||||
{ true, FT_INT, "RangedDPS" },
|
||||
{ true, FT_INT, "WandDPS" },
|
||||
{ true, FT_INT, "SpellPower" },
|
||||
{ true, FT_INT, "BudgetPrimary" },
|
||||
{ true, FT_INT, "BudgetSecondary" },
|
||||
{ true, FT_INT, "BudgetTertiary" },
|
||||
{ true, FT_INT, "BudgetSub" },
|
||||
{ true, FT_INT, "BudgetTrivial" },
|
||||
{ true, FT_INT, "ClothCloakArmor" },
|
||||
{ true, FT_INT, "Unk440_0" },
|
||||
{ true, FT_INT, "Unk440_1" },
|
||||
{ true, FT_INT, "Unk440_2" },
|
||||
{ true, FT_INT, "Unk440_3" },
|
||||
{ true, FT_INT, "Unk440_4" },
|
||||
{ true, FT_INT, "Unk440_5" },
|
||||
{ true, FT_INT, "Unk440_6" },
|
||||
{ true, FT_INT, "Unk440_7" },
|
||||
{ true, FT_INT, "Unk440_8" },
|
||||
{ true, FT_INT, "Unk440_9" },
|
||||
{ true, FT_INT, "Unk440_10" },
|
||||
{ true, FT_INT, "Unk440_11" },
|
||||
{ true, FT_INT, "Unk440_12" },
|
||||
{ true, FT_INT, "Unk440_13" },
|
||||
{ true, FT_INT, "Unk440_14" },
|
||||
{ true, FT_INT, "Unk440_15" },
|
||||
{ true, FT_INT, "ShoulderArmor1" },
|
||||
{ true, FT_INT, "ShoulderArmor2" },
|
||||
{ true, FT_INT, "ShoulderArmor3" },
|
||||
{ true, FT_INT, "ShoulderArmor4" },
|
||||
{ true, FT_INT, "ChestArmor1" },
|
||||
{ true, FT_INT, "ChestArmor2" },
|
||||
{ true, FT_INT, "ChestArmor3" },
|
||||
{ true, FT_INT, "ChestArmor4" },
|
||||
{ true, FT_INT, "HeadArmor1" },
|
||||
{ true, FT_INT, "HeadArmor2" },
|
||||
{ true, FT_INT, "HeadArmor3" },
|
||||
{ true, FT_INT, "HeadArmor4" },
|
||||
{ true, FT_INT, "LegsArmor1" },
|
||||
{ true, FT_INT, "LegsArmor2" },
|
||||
{ true, FT_INT, "LegsArmor3" },
|
||||
{ true, FT_INT, "LegsArmor4" },
|
||||
{ true, FT_INT, "FeetArmor1" },
|
||||
{ true, FT_INT, "FeetArmor2" },
|
||||
{ true, FT_INT, "FeetArmor3" },
|
||||
{ true, FT_INT, "FeetArmor4" },
|
||||
{ true, FT_INT, "WaistArmor1" },
|
||||
{ true, FT_INT, "WaistArmor2" },
|
||||
{ true, FT_INT, "WaistArmor3" },
|
||||
{ true, FT_INT, "WaistArmor4" },
|
||||
{ true, FT_INT, "HandsArmor1" },
|
||||
{ true, FT_INT, "HandsArmor2" },
|
||||
{ true, FT_INT, "HandsArmor3" },
|
||||
{ true, FT_INT, "HandsArmor4" },
|
||||
{ true, FT_INT, "WristsArmor1" },
|
||||
{ true, FT_INT, "WristsArmor2" },
|
||||
{ true, FT_INT, "WristsArmor3" },
|
||||
{ true, FT_INT, "WristsArmor4" },
|
||||
};
|
||||
|
||||
static constexpr DB2LoadInfo Instance{ Fields, 63, &ScalingStatValuesMeta::Instance, HOTFIX_SEL_SCALING_STAT_VALUES };
|
||||
};
|
||||
|
||||
struct ScenarioLoadInfo
|
||||
{
|
||||
static constexpr DB2FieldMeta Fields[6] =
|
||||
|
||||
@@ -2884,6 +2884,59 @@ struct RewardPackXItemEntry
|
||||
uint32 RewardPackID;
|
||||
};
|
||||
|
||||
// structure for ScalingStatDistribution.db2
|
||||
struct ScalingStatDistributionEntry
|
||||
{
|
||||
uint32 ID;
|
||||
std::array<int32, 10> StatID;
|
||||
std::array<int32, 10> Bonus;
|
||||
int32 Maxlevel;
|
||||
};
|
||||
|
||||
// structure for ScalingStatValues.db2
|
||||
struct ScalingStatValuesEntry
|
||||
{
|
||||
uint32 ID;
|
||||
int32 Charlevel;
|
||||
int32 WeaponDPS1H;
|
||||
int32 WeaponDPS2H;
|
||||
int32 SpellcasterDPS1H;
|
||||
int32 SpellcasterDPS2H;
|
||||
int32 RangedDPS;
|
||||
int32 WandDPS;
|
||||
int32 SpellPower;
|
||||
int32 BudgetPrimary;
|
||||
int32 BudgetSecondary;
|
||||
int32 BudgetTertiary;
|
||||
int32 BudgetSub;
|
||||
int32 BudgetTrivial;
|
||||
int32 ClothCloakArmor;
|
||||
int32 Unk440_0;
|
||||
int32 Unk440_1;
|
||||
int32 Unk440_2;
|
||||
int32 Unk440_3;
|
||||
int32 Unk440_4;
|
||||
int32 Unk440_5;
|
||||
int32 Unk440_6;
|
||||
int32 Unk440_7;
|
||||
int32 Unk440_8;
|
||||
int32 Unk440_9;
|
||||
int32 Unk440_10;
|
||||
int32 Unk440_11;
|
||||
int32 Unk440_12;
|
||||
int32 Unk440_13;
|
||||
int32 Unk440_14;
|
||||
int32 Unk440_15;
|
||||
std::array<int32, 4> ShoulderArmor;
|
||||
std::array<int32, 4> ChestArmor;
|
||||
std::array<int32, 4> HeadArmor;
|
||||
std::array<int32, 4> LegsArmor;
|
||||
std::array<int32, 4> FeetArmor;
|
||||
std::array<int32, 4> WaistArmor;
|
||||
std::array<int32, 4> HandsArmor;
|
||||
std::array<int32, 4> WristsArmor;
|
||||
};
|
||||
|
||||
// structure for Scenario.db2
|
||||
struct ScenarioEntry
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user