From 58ef56d33500f827c174aa004bd45a4c2f4ebf65 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sat, 7 Jun 2025 16:20:35 +0200 Subject: [PATCH] Core/DataStores: ported NpcDamageByClass game tables from Cata Classic and use it to calculate creature damage values --- .../world/4.3.4/2025_06_07_01_world.sql | 475 ++++++++++++++++++ src/server/game/DataStores/GameTables.cpp | 1 + src/server/game/DataStores/GameTables.h | 16 + src/server/game/Globals/ObjectMgr.cpp | 78 ++- src/server/game/Globals/ObjectMgr.h | 1 + 5 files changed, 567 insertions(+), 4 deletions(-) create mode 100644 sql/updates/world/4.3.4/2025_06_07_01_world.sql diff --git a/sql/updates/world/4.3.4/2025_06_07_01_world.sql b/sql/updates/world/4.3.4/2025_06_07_01_world.sql new file mode 100644 index 0000000000..3b79a6fd35 --- /dev/null +++ b/sql/updates/world/4.3.4/2025_06_07_01_world.sql @@ -0,0 +1,475 @@ +DROP TABLE IF EXISTS `gt_npc_damage_by_class`; +CREATE TABLE `gt_npc_damage_by_class` ( + `Level` TINYINT UNSIGNED NOT NULL, + `Warrior` FLOAT NOT NULL, + `Paladin` FLOAT NOT NULL, + `Hunter` FLOAT NOT NULL, + `Rogue` FLOAT NOT NULL, + `Priest` FLOAT NOT NULL, + `DeathKnight` FLOAT NOT NULL, + `Shaman` FLOAT NOT NULL, + `Mage` FLOAT NOT NULL, + `Warlock` FLOAT NOT NULL, + `Monk` FLOAT NOT NULL, + `Druid` FLOAT NOT NULL, + PRIMARY KEY (`Level`) +) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +INSERT INTO `gt_npc_damage_by_class` (`Level`, `Warrior`, `Paladin`, `Hunter`, `Rogue`, `Priest`, `DeathKnight`, `Shaman`, `Mage`, `Warlock`, `Monk`, `Druid`) VALUES +(1, 0.486777, 0.486777, 0.000000, 0.486777, 0.000000, 0.000000, 0.000000, 0.450269, 0.000000, 0.000000, 0.000000), +(2, 1.036520, 1.036520, 0.000000, 1.036520, 0.000000, 0.000000, 0.000000, 0.958777, 0.000000, 0.000000, 0.000000), +(3, 1.620190, 1.620190, 0.000000, 1.620190, 0.000000, 0.000000, 0.000000, 1.498670, 0.000000, 0.000000, 0.000000), +(4, 2.358690, 2.358690, 0.000000, 2.358690, 0.000000, 0.000000, 0.000000, 2.181790, 0.000000, 0.000000, 0.000000), +(5, 3.180380, 3.180380, 0.000000, 3.180380, 0.000000, 0.000000, 0.000000, 2.941850, 0.000000, 0.000000, 0.000000), +(6, 4.244800, 4.244800, 0.000000, 4.244800, 0.000000, 0.000000, 0.000000, 3.926440, 0.000000, 0.000000, 0.000000), +(7, 5.403300, 5.403300, 0.000000, 5.403300, 0.000000, 0.000000, 0.000000, 4.998050, 0.000000, 0.000000, 0.000000), +(8, 5.891520, 5.891520, 0.000000, 5.891520, 0.000000, 0.000000, 0.000000, 5.449650, 0.000000, 0.000000, 0.000000), +(9, 6.350420, 6.350420, 0.000000, 6.350420, 0.000000, 0.000000, 0.000000, 5.874140, 0.000000, 0.000000, 0.000000), +(10, 6.524460, 6.524460, 0.000000, 6.524460, 0.000000, 0.000000, 0.000000, 6.035130, 0.000000, 0.000000, 0.000000), +(11, 6.974240, 6.974240, 0.000000, 6.974240, 0.000000, 0.000000, 0.000000, 6.451170, 0.000000, 0.000000, 0.000000), +(12, 7.643010, 7.643010, 0.000000, 7.643010, 0.000000, 0.000000, 0.000000, 7.069790, 0.000000, 0.000000, 0.000000), +(13, 7.847990, 7.847990, 0.000000, 7.847990, 0.000000, 0.000000, 0.000000, 7.259390, 0.000000, 0.000000, 0.000000), +(14, 8.236860, 8.236860, 0.000000, 8.236860, 0.000000, 0.000000, 0.000000, 7.619100, 0.000000, 0.000000, 0.000000), +(15, 8.997660, 8.997660, 0.000000, 8.997660, 0.000000, 0.000000, 0.000000, 8.322840, 0.000000, 0.000000, 0.000000), +(16, 9.587110, 9.587110, 0.000000, 9.587110, 0.000000, 0.000000, 0.000000, 8.868080, 0.000000, 0.000000, 0.000000), +(17, 10.278100, 10.278100, 0.000000, 10.278100, 0.000000, 0.000000, 0.000000, 9.507280, 0.000000, 0.000000, 0.000000), +(18, 10.681500, 10.681500, 0.000000, 10.681500, 0.000000, 0.000000, 0.000000, 9.880420, 0.000000, 0.000000, 0.000000), +(19, 11.325100, 11.325100, 0.000000, 11.325100, 0.000000, 0.000000, 0.000000, 10.475700, 0.000000, 0.000000, 0.000000), +(20, 12.102900, 12.102900, 0.000000, 12.102900, 0.000000, 0.000000, 0.000000, 11.195100, 0.000000, 0.000000, 0.000000), +(21, 12.459700, 12.459700, 0.000000, 12.459700, 0.000000, 0.000000, 0.000000, 11.525200, 0.000000, 0.000000, 0.000000), +(22, 13.027200, 13.027200, 0.000000, 13.027200, 0.000000, 0.000000, 0.000000, 12.050200, 0.000000, 0.000000, 0.000000), +(23, 13.512400, 13.512400, 0.000000, 13.512400, 0.000000, 0.000000, 0.000000, 12.498900, 0.000000, 0.000000, 0.000000), +(24, 14.052400, 14.052400, 0.000000, 14.052400, 0.000000, 0.000000, 0.000000, 12.998500, 0.000000, 0.000000, 0.000000), +(25, 14.685600, 14.685600, 0.000000, 14.685600, 0.000000, 0.000000, 0.000000, 13.584200, 0.000000, 0.000000, 0.000000), +(26, 15.056600, 15.056600, 0.000000, 15.056600, 0.000000, 0.000000, 0.000000, 13.927300, 0.000000, 0.000000, 0.000000), +(27, 15.776600, 15.776600, 0.000000, 15.776600, 0.000000, 0.000000, 0.000000, 14.593300, 0.000000, 0.000000, 0.000000), +(28, 16.139000, 16.139000, 0.000000, 16.139000, 0.000000, 0.000000, 0.000000, 14.928600, 0.000000, 0.000000, 0.000000), +(29, 16.679000, 16.679000, 0.000000, 16.679000, 0.000000, 0.000000, 0.000000, 15.428100, 0.000000, 0.000000, 0.000000), +(30, 17.408000, 17.408000, 0.000000, 17.408000, 0.000000, 0.000000, 0.000000, 16.102400, 0.000000, 0.000000, 0.000000), +(31, 18.631400, 18.631400, 0.000000, 18.631400, 0.000000, 0.000000, 0.000000, 17.234100, 0.000000, 0.000000, 0.000000), +(32, 19.288500, 19.288500, 0.000000, 19.288500, 0.000000, 0.000000, 0.000000, 17.841900, 0.000000, 0.000000, 0.000000), +(33, 19.676200, 19.676200, 0.000000, 19.676200, 0.000000, 0.000000, 0.000000, 18.200500, 0.000000, 0.000000, 0.000000), +(34, 20.336400, 20.336400, 0.000000, 20.336400, 0.000000, 0.000000, 0.000000, 18.811200, 0.000000, 0.000000, 0.000000), +(35, 20.818400, 20.818400, 0.000000, 20.818400, 0.000000, 0.000000, 0.000000, 19.257000, 0.000000, 0.000000, 0.000000), +(36, 22.410200, 22.410200, 0.000000, 22.410200, 0.000000, 0.000000, 0.000000, 20.729500, 0.000000, 0.000000, 0.000000), +(37, 23.094700, 23.094700, 0.000000, 23.094700, 0.000000, 0.000000, 0.000000, 21.362600, 0.000000, 0.000000, 0.000000), +(38, 23.631500, 23.631500, 0.000000, 23.631500, 0.000000, 0.000000, 0.000000, 21.859100, 0.000000, 0.000000, 0.000000), +(39, 24.376800, 24.376800, 0.000000, 24.376800, 0.000000, 0.000000, 0.000000, 22.548600, 0.000000, 0.000000, 0.000000), +(40, 25.158400, 25.158400, 0.000000, 25.158400, 0.000000, 0.000000, 0.000000, 23.271500, 0.000000, 0.000000, 0.000000), +(41, 27.599600, 27.599600, 0.000000, 27.599600, 0.000000, 0.000000, 0.000000, 25.529700, 0.000000, 0.000000, 0.000000), +(42, 29.243100, 29.243100, 0.000000, 29.243100, 0.000000, 0.000000, 0.000000, 27.049900, 0.000000, 0.000000, 0.000000), +(43, 31.206400, 31.206400, 0.000000, 31.206400, 0.000000, 0.000000, 0.000000, 28.866000, 0.000000, 0.000000, 0.000000), +(44, 33.907900, 33.907900, 0.000000, 33.907900, 0.000000, 0.000000, 0.000000, 31.364800, 0.000000, 0.000000, 0.000000), +(45, 35.477100, 35.477100, 0.000000, 35.477100, 0.000000, 0.000000, 0.000000, 32.816300, 0.000000, 0.000000, 0.000000), +(46, 37.760200, 37.760200, 0.000000, 37.760200, 0.000000, 0.000000, 0.000000, 34.928200, 0.000000, 0.000000, 0.000000), +(47, 38.768500, 38.768500, 0.000000, 38.768500, 0.000000, 0.000000, 0.000000, 35.860800, 0.000000, 0.000000, 0.000000), +(48, 39.515000, 39.515000, 0.000000, 39.515000, 0.000000, 0.000000, 0.000000, 36.551400, 0.000000, 0.000000, 0.000000), +(49, 40.492800, 40.492800, 0.000000, 40.492800, 0.000000, 0.000000, 0.000000, 37.455800, 0.000000, 0.000000, 0.000000), +(50, 41.384900, 41.384900, 0.000000, 41.384900, 0.000000, 0.000000, 0.000000, 38.281000, 0.000000, 0.000000, 0.000000), +(51, 43.950000, 43.950000, 0.000000, 43.950000, 0.000000, 0.000000, 0.000000, 40.653700, 0.000000, 0.000000, 0.000000), +(52, 45.124300, 45.124300, 0.000000, 45.124300, 0.000000, 0.000000, 0.000000, 41.740000, 0.000000, 0.000000, 0.000000), +(53, 45.997100, 45.997100, 0.000000, 45.997100, 0.000000, 0.000000, 0.000000, 42.547300, 0.000000, 0.000000, 0.000000), +(54, 46.953300, 46.953300, 0.000000, 46.953300, 0.000000, 0.000000, 0.000000, 43.431800, 0.000000, 0.000000, 0.000000), +(55, 47.996400, 47.996400, 0.000000, 47.996400, 0.000000, 0.000000, 0.000000, 44.396700, 0.000000, 0.000000, 0.000000), +(56, 50.763100, 50.763100, 0.000000, 50.763100, 0.000000, 0.000000, 0.000000, 46.955900, 0.000000, 0.000000, 0.000000), +(57, 51.921600, 51.921600, 0.000000, 51.921600, 0.000000, 0.000000, 0.000000, 48.027500, 0.000000, 0.000000, 0.000000), +(58, 52.969700, 52.969700, 0.000000, 52.969700, 0.000000, 0.000000, 0.000000, 48.996900, 0.000000, 0.000000, 0.000000), +(59, 53.951200, 53.951200, 0.000000, 53.951200, 0.000000, 0.000000, 0.000000, 49.904800, 0.000000, 0.000000, 0.000000), +(60, 55.188800, 55.188800, 0.000000, 55.188800, 0.000000, 0.000000, 0.000000, 51.049600, 0.000000, 0.000000, 0.000000), +(61, 56.032300, 56.032300, 0.000000, 56.032300, 0.000000, 0.000000, 0.000000, 51.829900, 0.000000, 0.000000, 0.000000), +(62, 57.249200, 57.249200, 0.000000, 57.249200, 0.000000, 0.000000, 0.000000, 52.955500, 0.000000, 0.000000, 0.000000), +(63, 58.134200, 58.134200, 0.000000, 58.134200, 0.000000, 0.000000, 0.000000, 53.774100, 0.000000, 0.000000, 0.000000), +(64, 59.343700, 59.343700, 0.000000, 59.343700, 0.000000, 0.000000, 0.000000, 54.892900, 0.000000, 0.000000, 0.000000), +(65, 60.422800, 60.422800, 0.000000, 60.422800, 0.000000, 0.000000, 0.000000, 55.891100, 0.000000, 0.000000, 0.000000), +(66, 61.472400, 61.472400, 0.000000, 61.472400, 0.000000, 0.000000, 0.000000, 56.862000, 0.000000, 0.000000, 0.000000), +(67, 62.595300, 62.595300, 0.000000, 62.595300, 0.000000, 0.000000, 0.000000, 57.900700, 0.000000, 0.000000, 0.000000), +(68, 63.740000, 63.740000, 0.000000, 63.740000, 0.000000, 0.000000, 0.000000, 58.959500, 0.000000, 0.000000, 0.000000), +(69, 64.917700, 64.917700, 0.000000, 64.917700, 0.000000, 0.000000, 0.000000, 60.048900, 0.000000, 0.000000, 0.000000), +(70, 65.988900, 65.988900, 0.000000, 65.988900, 0.000000, 0.000000, 0.000000, 61.039800, 0.000000, 0.000000, 0.000000), +(71, 67.144400, 67.144400, 0.000000, 67.144400, 0.000000, 0.000000, 0.000000, 62.108600, 0.000000, 0.000000, 0.000000), +(72, 68.349900, 68.349900, 0.000000, 68.349900, 0.000000, 0.000000, 0.000000, 63.223700, 0.000000, 0.000000, 0.000000), +(73, 69.386600, 69.386600, 0.000000, 69.386600, 0.000000, 0.000000, 0.000000, 64.182600, 0.000000, 0.000000, 0.000000), +(74, 70.745100, 70.745100, 0.000000, 70.745100, 0.000000, 0.000000, 0.000000, 65.439200, 0.000000, 0.000000, 0.000000), +(75, 71.873200, 71.873200, 0.000000, 71.873200, 0.000000, 0.000000, 0.000000, 66.482700, 0.000000, 0.000000, 0.000000), +(76, 73.003600, 73.003600, 0.000000, 73.003600, 0.000000, 0.000000, 0.000000, 67.528300, 0.000000, 0.000000, 0.000000), +(77, 74.300800, 74.300800, 0.000000, 74.300800, 0.000000, 0.000000, 0.000000, 68.728300, 0.000000, 0.000000, 0.000000), +(78, 75.507600, 75.507600, 0.000000, 75.507600, 0.000000, 0.000000, 0.000000, 69.844500, 0.000000, 0.000000, 0.000000), +(79, 76.757500, 76.757500, 0.000000, 76.757500, 0.000000, 0.000000, 0.000000, 71.000700, 0.000000, 0.000000, 0.000000), +(80, 78.091300, 78.091300, 0.000000, 78.091300, 0.000000, 0.000000, 0.000000, 72.234400, 0.000000, 0.000000, 0.000000), +(81, 79.368800, 79.368800, 0.000000, 79.368800, 0.000000, 0.000000, 0.000000, 73.416200, 0.000000, 0.000000, 0.000000), +(82, 80.654200, 80.654200, 0.000000, 80.654200, 0.000000, 0.000000, 0.000000, 74.605100, 0.000000, 0.000000, 0.000000), +(83, 81.868100, 81.868100, 0.000000, 81.868100, 0.000000, 0.000000, 0.000000, 75.728000, 0.000000, 0.000000, 0.000000), +(84, 83.212900, 83.212900, 0.000000, 83.212900, 0.000000, 0.000000, 0.000000, 76.971900, 0.000000, 0.000000, 0.000000), +(85, 84.517800, 84.517800, 0.000000, 84.517800, 0.000000, 0.000000, 0.000000, 78.178900, 0.000000, 0.000000, 0.000000), +(86, 85.934100, 85.934100, 0.000000, 85.934100, 0.000000, 0.000000, 0.000000, 79.489100, 0.000000, 0.000000, 0.000000), +(87, 87.297900, 87.297900, 0.000000, 87.297900, 0.000000, 0.000000, 0.000000, 80.750500, 0.000000, 0.000000, 0.000000), +(88, 88.535300, 88.535300, 0.000000, 88.535300, 0.000000, 0.000000, 0.000000, 81.895200, 0.000000, 0.000000, 0.000000), +(89, 89.959100, 89.959100, 0.000000, 89.959100, 0.000000, 0.000000, 0.000000, 83.212200, 0.000000, 0.000000, 0.000000), +(90, 91.517600, 91.517600, 0.000000, 91.517600, 0.000000, 0.000000, 0.000000, 84.653800, 0.000000, 0.000000, 0.000000), +(91, 92.829800, 92.829800, 0.000000, 92.829800, 0.000000, 0.000000, 0.000000, 85.867600, 0.000000, 0.000000, 0.000000), +(92, 94.259800, 94.259800, 0.000000, 94.259800, 0.000000, 0.000000, 0.000000, 87.190300, 0.000000, 0.000000, 0.000000), +(93, 95.632400, 95.632400, 0.000000, 95.632400, 0.000000, 0.000000, 0.000000, 88.460000, 0.000000, 0.000000, 0.000000), +(94, 97.085100, 97.085100, 0.000000, 97.085100, 0.000000, 0.000000, 0.000000, 89.803700, 0.000000, 0.000000, 0.000000), +(95, 98.658500, 98.658500, 0.000000, 98.658500, 0.000000, 0.000000, 0.000000, 91.259100, 0.000000, 0.000000, 0.000000), +(96, 100.053000, 100.053000, 0.000000, 100.053000, 0.000000, 0.000000, 0.000000, 92.548800, 0.000000, 0.000000, 0.000000), +(97, 101.742000, 101.742000, 0.000000, 101.742000, 0.000000, 0.000000, 0.000000, 94.111500, 0.000000, 0.000000, 0.000000), +(98, 103.084000, 103.084000, 0.000000, 103.084000, 0.000000, 0.000000, 0.000000, 95.353000, 0.000000, 0.000000, 0.000000), +(99, 104.549000, 104.549000, 0.000000, 104.549000, 0.000000, 0.000000, 0.000000, 96.707700, 0.000000, 0.000000, 0.000000), +(100, 106.621000, 106.621000, 0.000000, 106.621000, 0.000000, 0.000000, 0.000000, 98.624200, 0.000000, 0.000000, 0.000000); + +DROP TABLE IF EXISTS `gt_npc_damage_by_class_exp1`; +CREATE TABLE `gt_npc_damage_by_class_exp1` ( + `Level` TINYINT UNSIGNED NOT NULL, + `Warrior` FLOAT NOT NULL, + `Paladin` FLOAT NOT NULL, + `Hunter` FLOAT NOT NULL, + `Rogue` FLOAT NOT NULL, + `Priest` FLOAT NOT NULL, + `DeathKnight` FLOAT NOT NULL, + `Shaman` FLOAT NOT NULL, + `Mage` FLOAT NOT NULL, + `Warlock` FLOAT NOT NULL, + `Monk` FLOAT NOT NULL, + `Druid` FLOAT NOT NULL, + PRIMARY KEY (`Level`) +) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +INSERT INTO `gt_npc_damage_by_class_exp1` (`Level`, `Warrior`, `Paladin`, `Hunter`, `Rogue`, `Priest`, `DeathKnight`, `Shaman`, `Mage`, `Warlock`, `Monk`, `Druid`) VALUES +(1, 0.486777, 0.486777, 0.000000, 0.486777, 0.000000, 0.000000, 0.000000, 0.450269, 0.000000, 0.000000, 0.000000), +(2, 1.036520, 1.036520, 0.000000, 1.036520, 0.000000, 0.000000, 0.000000, 0.958777, 0.000000, 0.000000, 0.000000), +(3, 1.620190, 1.620190, 0.000000, 1.620190, 0.000000, 0.000000, 0.000000, 1.498670, 0.000000, 0.000000, 0.000000), +(4, 2.358690, 2.358690, 0.000000, 2.358690, 0.000000, 0.000000, 0.000000, 2.181790, 0.000000, 0.000000, 0.000000), +(5, 3.180380, 3.180380, 0.000000, 3.180380, 0.000000, 0.000000, 0.000000, 2.941850, 0.000000, 0.000000, 0.000000), +(6, 4.244800, 4.244800, 0.000000, 4.244800, 0.000000, 0.000000, 0.000000, 3.926440, 0.000000, 0.000000, 0.000000), +(7, 5.403300, 5.403300, 0.000000, 5.403300, 0.000000, 0.000000, 0.000000, 4.998050, 0.000000, 0.000000, 0.000000), +(8, 5.891520, 5.891520, 0.000000, 5.891520, 0.000000, 0.000000, 0.000000, 5.449650, 0.000000, 0.000000, 0.000000), +(9, 6.350420, 6.350420, 0.000000, 6.350420, 0.000000, 0.000000, 0.000000, 5.874140, 0.000000, 0.000000, 0.000000), +(10, 6.524460, 6.524460, 0.000000, 6.524460, 0.000000, 0.000000, 0.000000, 6.035130, 0.000000, 0.000000, 0.000000), +(11, 6.974240, 6.974240, 0.000000, 6.974240, 0.000000, 0.000000, 0.000000, 6.451170, 0.000000, 0.000000, 0.000000), +(12, 7.643010, 7.643010, 0.000000, 7.643010, 0.000000, 0.000000, 0.000000, 7.069790, 0.000000, 0.000000, 0.000000), +(13, 7.847990, 7.847990, 0.000000, 7.847990, 0.000000, 0.000000, 0.000000, 7.259390, 0.000000, 0.000000, 0.000000), +(14, 8.236860, 8.236860, 0.000000, 8.236860, 0.000000, 0.000000, 0.000000, 7.619100, 0.000000, 0.000000, 0.000000), +(15, 8.997660, 8.997660, 0.000000, 8.997660, 0.000000, 0.000000, 0.000000, 8.322840, 0.000000, 0.000000, 0.000000), +(16, 9.587110, 9.587110, 0.000000, 9.587110, 0.000000, 0.000000, 0.000000, 8.868080, 0.000000, 0.000000, 0.000000), +(17, 10.278100, 10.278100, 0.000000, 10.278100, 0.000000, 0.000000, 0.000000, 9.507280, 0.000000, 0.000000, 0.000000), +(18, 10.681500, 10.681500, 0.000000, 10.681500, 0.000000, 0.000000, 0.000000, 9.880420, 0.000000, 0.000000, 0.000000), +(19, 11.325100, 11.325100, 0.000000, 11.325100, 0.000000, 0.000000, 0.000000, 10.475700, 0.000000, 0.000000, 0.000000), +(20, 12.102900, 12.102900, 0.000000, 12.102900, 0.000000, 0.000000, 0.000000, 11.195100, 0.000000, 0.000000, 0.000000), +(21, 12.459700, 12.459700, 0.000000, 12.459700, 0.000000, 0.000000, 0.000000, 11.525200, 0.000000, 0.000000, 0.000000), +(22, 13.027200, 13.027200, 0.000000, 13.027200, 0.000000, 0.000000, 0.000000, 12.050200, 0.000000, 0.000000, 0.000000), +(23, 13.512400, 13.512400, 0.000000, 13.512400, 0.000000, 0.000000, 0.000000, 12.498900, 0.000000, 0.000000, 0.000000), +(24, 14.052400, 14.052400, 0.000000, 14.052400, 0.000000, 0.000000, 0.000000, 12.998500, 0.000000, 0.000000, 0.000000), +(25, 14.685600, 14.685600, 0.000000, 14.685600, 0.000000, 0.000000, 0.000000, 13.584200, 0.000000, 0.000000, 0.000000), +(26, 15.056600, 15.056600, 0.000000, 15.056600, 0.000000, 0.000000, 0.000000, 13.927300, 0.000000, 0.000000, 0.000000), +(27, 15.776600, 15.776600, 0.000000, 15.776600, 0.000000, 0.000000, 0.000000, 14.593300, 0.000000, 0.000000, 0.000000), +(28, 16.139000, 16.139000, 0.000000, 16.139000, 0.000000, 0.000000, 0.000000, 14.928600, 0.000000, 0.000000, 0.000000), +(29, 16.679000, 16.679000, 0.000000, 16.679000, 0.000000, 0.000000, 0.000000, 15.428100, 0.000000, 0.000000, 0.000000), +(30, 17.408000, 17.408000, 0.000000, 17.408000, 0.000000, 0.000000, 0.000000, 16.102400, 0.000000, 0.000000, 0.000000), +(31, 18.631400, 18.631400, 0.000000, 18.631400, 0.000000, 0.000000, 0.000000, 17.234100, 0.000000, 0.000000, 0.000000), +(32, 19.288500, 19.288500, 0.000000, 19.288500, 0.000000, 0.000000, 0.000000, 17.841900, 0.000000, 0.000000, 0.000000), +(33, 19.676200, 19.676200, 0.000000, 19.676200, 0.000000, 0.000000, 0.000000, 18.200500, 0.000000, 0.000000, 0.000000), +(34, 20.336400, 20.336400, 0.000000, 20.336400, 0.000000, 0.000000, 0.000000, 18.811200, 0.000000, 0.000000, 0.000000), +(35, 20.818400, 20.818400, 0.000000, 20.818400, 0.000000, 0.000000, 0.000000, 19.257000, 0.000000, 0.000000, 0.000000), +(36, 22.410200, 22.410200, 0.000000, 22.410200, 0.000000, 0.000000, 0.000000, 20.729500, 0.000000, 0.000000, 0.000000), +(37, 23.094700, 23.094700, 0.000000, 23.094700, 0.000000, 0.000000, 0.000000, 21.362600, 0.000000, 0.000000, 0.000000), +(38, 23.631500, 23.631500, 0.000000, 23.631500, 0.000000, 0.000000, 0.000000, 21.859100, 0.000000, 0.000000, 0.000000), +(39, 24.376800, 24.376800, 0.000000, 24.376800, 0.000000, 0.000000, 0.000000, 22.548600, 0.000000, 0.000000, 0.000000), +(40, 25.158400, 25.158400, 0.000000, 25.158400, 0.000000, 0.000000, 0.000000, 23.271500, 0.000000, 0.000000, 0.000000), +(41, 27.599600, 27.599600, 0.000000, 27.599600, 0.000000, 0.000000, 0.000000, 25.529700, 0.000000, 0.000000, 0.000000), +(42, 29.243100, 29.243100, 0.000000, 29.243100, 0.000000, 0.000000, 0.000000, 27.049900, 0.000000, 0.000000, 0.000000), +(43, 31.206400, 31.206400, 0.000000, 31.206400, 0.000000, 0.000000, 0.000000, 28.866000, 0.000000, 0.000000, 0.000000), +(44, 33.907900, 33.907900, 0.000000, 33.907900, 0.000000, 0.000000, 0.000000, 31.364800, 0.000000, 0.000000, 0.000000), +(45, 35.477100, 35.477100, 0.000000, 35.477100, 0.000000, 0.000000, 0.000000, 32.816300, 0.000000, 0.000000, 0.000000), +(46, 37.760200, 37.760200, 0.000000, 37.760200, 0.000000, 0.000000, 0.000000, 34.928200, 0.000000, 0.000000, 0.000000), +(47, 38.768500, 38.768500, 0.000000, 38.768500, 0.000000, 0.000000, 0.000000, 35.860800, 0.000000, 0.000000, 0.000000), +(48, 39.515000, 39.515000, 0.000000, 39.515000, 0.000000, 0.000000, 0.000000, 36.551400, 0.000000, 0.000000, 0.000000), +(49, 40.492800, 40.492800, 0.000000, 40.492800, 0.000000, 0.000000, 0.000000, 37.455800, 0.000000, 0.000000, 0.000000), +(50, 41.384900, 41.384900, 0.000000, 41.384900, 0.000000, 0.000000, 0.000000, 38.281000, 0.000000, 0.000000, 0.000000), +(51, 43.950000, 43.950000, 0.000000, 43.950000, 0.000000, 0.000000, 0.000000, 40.653700, 0.000000, 0.000000, 0.000000), +(52, 45.124300, 45.124300, 0.000000, 45.124300, 0.000000, 0.000000, 0.000000, 41.740000, 0.000000, 0.000000, 0.000000), +(53, 45.997100, 45.997100, 0.000000, 45.997100, 0.000000, 0.000000, 0.000000, 42.547300, 0.000000, 0.000000, 0.000000), +(54, 46.953300, 46.953300, 0.000000, 46.953300, 0.000000, 0.000000, 0.000000, 43.431800, 0.000000, 0.000000, 0.000000), +(55, 47.996400, 47.996400, 0.000000, 47.996400, 0.000000, 0.000000, 0.000000, 44.396700, 0.000000, 0.000000, 0.000000), +(56, 50.763100, 50.763100, 0.000000, 50.763100, 0.000000, 0.000000, 0.000000, 46.955900, 0.000000, 0.000000, 0.000000), +(57, 51.921600, 51.921600, 0.000000, 51.921600, 0.000000, 0.000000, 0.000000, 48.027500, 0.000000, 0.000000, 0.000000), +(58, 52.969700, 52.969700, 0.000000, 52.969700, 0.000000, 0.000000, 0.000000, 48.996900, 0.000000, 0.000000, 0.000000), +(59, 53.951200, 53.951200, 0.000000, 53.951200, 0.000000, 0.000000, 0.000000, 49.904800, 0.000000, 0.000000, 0.000000), +(60, 66.844400, 66.844400, 0.000000, 66.844400, 0.000000, 0.000000, 0.000000, 61.831100, 0.000000, 0.000000, 0.000000), +(61, 76.608200, 76.608200, 0.000000, 76.608200, 0.000000, 0.000000, 0.000000, 70.862600, 0.000000, 0.000000, 0.000000), +(62, 87.798200, 87.798200, 0.000000, 87.798200, 0.000000, 0.000000, 0.000000, 81.213300, 0.000000, 0.000000, 0.000000), +(63, 100.623000, 100.623000, 0.000000, 100.623000, 0.000000, 0.000000, 0.000000, 93.075900, 0.000000, 0.000000, 0.000000), +(64, 115.320000, 115.320000, 0.000000, 115.320000, 0.000000, 0.000000, 0.000000, 106.671000, 0.000000, 0.000000, 0.000000), +(65, 132.165000, 132.165000, 0.000000, 132.165000, 0.000000, 0.000000, 0.000000, 122.252000, 0.000000, 0.000000, 0.000000), +(66, 151.470000, 151.470000, 0.000000, 151.470000, 0.000000, 0.000000, 0.000000, 140.110000, 0.000000, 0.000000, 0.000000), +(67, 173.595000, 173.595000, 0.000000, 173.595000, 0.000000, 0.000000, 0.000000, 160.575000, 0.000000, 0.000000, 0.000000), +(68, 198.951000, 198.951000, 0.000000, 198.951000, 0.000000, 0.000000, 0.000000, 184.030000, 0.000000, 0.000000, 0.000000), +(69, 228.011000, 228.011000, 0.000000, 228.011000, 0.000000, 0.000000, 0.000000, 210.910000, 0.000000, 0.000000, 0.000000), +(70, 261.316000, 261.316000, 0.000000, 261.316000, 0.000000, 0.000000, 0.000000, 241.717000, 0.000000, 0.000000, 0.000000), +(71, 265.892000, 265.892000, 0.000000, 265.892000, 0.000000, 0.000000, 0.000000, 245.950000, 0.000000, 0.000000, 0.000000), +(72, 270.666000, 270.666000, 0.000000, 270.666000, 0.000000, 0.000000, 0.000000, 250.366000, 0.000000, 0.000000, 0.000000), +(73, 274.771000, 274.771000, 0.000000, 274.771000, 0.000000, 0.000000, 0.000000, 254.163000, 0.000000, 0.000000, 0.000000), +(74, 280.151000, 280.151000, 0.000000, 280.151000, 0.000000, 0.000000, 0.000000, 259.139000, 0.000000, 0.000000, 0.000000), +(75, 284.618000, 284.618000, 0.000000, 284.618000, 0.000000, 0.000000, 0.000000, 263.271000, 0.000000, 0.000000, 0.000000), +(76, 289.094000, 289.094000, 0.000000, 289.094000, 0.000000, 0.000000, 0.000000, 267.412000, 0.000000, 0.000000, 0.000000), +(77, 294.231000, 294.231000, 0.000000, 294.231000, 0.000000, 0.000000, 0.000000, 272.164000, 0.000000, 0.000000, 0.000000), +(78, 299.010000, 299.010000, 0.000000, 299.010000, 0.000000, 0.000000, 0.000000, 276.584000, 0.000000, 0.000000, 0.000000), +(79, 303.960000, 303.960000, 0.000000, 303.960000, 0.000000, 0.000000, 0.000000, 281.163000, 0.000000, 0.000000, 0.000000), +(80, 309.241000, 309.241000, 0.000000, 309.241000, 0.000000, 0.000000, 0.000000, 286.048000, 0.000000, 0.000000, 0.000000), +(81, 314.301000, 314.301000, 0.000000, 314.301000, 0.000000, 0.000000, 0.000000, 290.728000, 0.000000, 0.000000, 0.000000), +(82, 319.391000, 319.391000, 0.000000, 319.391000, 0.000000, 0.000000, 0.000000, 295.436000, 0.000000, 0.000000, 0.000000), +(83, 324.198000, 324.198000, 0.000000, 324.198000, 0.000000, 0.000000, 0.000000, 299.883000, 0.000000, 0.000000, 0.000000), +(84, 329.523000, 329.523000, 0.000000, 329.523000, 0.000000, 0.000000, 0.000000, 304.809000, 0.000000, 0.000000, 0.000000), +(85, 334.690000, 334.690000, 0.000000, 334.690000, 0.000000, 0.000000, 0.000000, 309.589000, 0.000000, 0.000000, 0.000000), +(86, 340.299000, 340.299000, 0.000000, 340.299000, 0.000000, 0.000000, 0.000000, 314.777000, 0.000000, 0.000000, 0.000000), +(87, 345.700000, 345.700000, 0.000000, 345.700000, 0.000000, 0.000000, 0.000000, 319.772000, 0.000000, 0.000000, 0.000000), +(88, 350.600000, 350.600000, 0.000000, 350.600000, 0.000000, 0.000000, 0.000000, 324.305000, 0.000000, 0.000000, 0.000000), +(89, 356.238000, 356.238000, 0.000000, 356.238000, 0.000000, 0.000000, 0.000000, 329.520000, 0.000000, 0.000000, 0.000000), +(90, 362.410000, 362.410000, 0.000000, 362.410000, 0.000000, 0.000000, 0.000000, 335.229000, 0.000000, 0.000000, 0.000000), +(91, 367.606000, 367.606000, 0.000000, 367.606000, 0.000000, 0.000000, 0.000000, 340.036000, 0.000000, 0.000000, 0.000000), +(92, 373.269000, 373.269000, 0.000000, 373.269000, 0.000000, 0.000000, 0.000000, 345.274000, 0.000000, 0.000000, 0.000000), +(93, 378.704000, 378.704000, 0.000000, 378.704000, 0.000000, 0.000000, 0.000000, 350.301000, 0.000000, 0.000000, 0.000000), +(94, 384.457000, 384.457000, 0.000000, 384.457000, 0.000000, 0.000000, 0.000000, 355.623000, 0.000000, 0.000000, 0.000000), +(95, 390.688000, 390.688000, 0.000000, 390.688000, 0.000000, 0.000000, 0.000000, 361.386000, 0.000000, 0.000000, 0.000000), +(96, 396.209000, 396.209000, 0.000000, 396.209000, 0.000000, 0.000000, 0.000000, 366.493000, 0.000000, 0.000000, 0.000000), +(97, 402.899000, 402.899000, 0.000000, 402.899000, 0.000000, 0.000000, 0.000000, 372.682000, 0.000000, 0.000000, 0.000000), +(98, 408.214000, 408.214000, 0.000000, 408.214000, 0.000000, 0.000000, 0.000000, 377.598000, 0.000000, 0.000000, 0.000000), +(99, 414.014000, 414.014000, 0.000000, 414.014000, 0.000000, 0.000000, 0.000000, 382.963000, 0.000000, 0.000000, 0.000000), +(100, 422.218000, 422.218000, 0.000000, 422.218000, 0.000000, 0.000000, 0.000000, 390.552000, 0.000000, 0.000000, 0.000000); + +DROP TABLE IF EXISTS `gt_npc_damage_by_class_exp2`; +CREATE TABLE `gt_npc_damage_by_class_exp2` ( + `Level` TINYINT UNSIGNED NOT NULL, + `Warrior` FLOAT NOT NULL, + `Paladin` FLOAT NOT NULL, + `Hunter` FLOAT NOT NULL, + `Rogue` FLOAT NOT NULL, + `Priest` FLOAT NOT NULL, + `DeathKnight` FLOAT NOT NULL, + `Shaman` FLOAT NOT NULL, + `Mage` FLOAT NOT NULL, + `Warlock` FLOAT NOT NULL, + `Monk` FLOAT NOT NULL, + `Druid` FLOAT NOT NULL, + PRIMARY KEY (`Level`) +) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +INSERT INTO `gt_npc_damage_by_class_exp2` (`Level`, `Warrior`, `Paladin`, `Hunter`, `Rogue`, `Priest`, `DeathKnight`, `Shaman`, `Mage`, `Warlock`, `Monk`, `Druid`) VALUES +(1, 0.486777, 0.486777, 0.000000, 0.486777, 0.000000, 0.000000, 0.000000, 0.450269, 0.000000, 0.000000, 0.000000), +(2, 1.036520, 1.036520, 0.000000, 1.036520, 0.000000, 0.000000, 0.000000, 0.958777, 0.000000, 0.000000, 0.000000), +(3, 1.620190, 1.620190, 0.000000, 1.620190, 0.000000, 0.000000, 0.000000, 1.498670, 0.000000, 0.000000, 0.000000), +(4, 2.358690, 2.358690, 0.000000, 2.358690, 0.000000, 0.000000, 0.000000, 2.181790, 0.000000, 0.000000, 0.000000), +(5, 3.180380, 3.180380, 0.000000, 3.180380, 0.000000, 0.000000, 0.000000, 2.941850, 0.000000, 0.000000, 0.000000), +(6, 4.244800, 4.244800, 0.000000, 4.244800, 0.000000, 0.000000, 0.000000, 3.926440, 0.000000, 0.000000, 0.000000), +(7, 5.403300, 5.403300, 0.000000, 5.403300, 0.000000, 0.000000, 0.000000, 4.998050, 0.000000, 0.000000, 0.000000), +(8, 5.891520, 5.891520, 0.000000, 5.891520, 0.000000, 0.000000, 0.000000, 5.449650, 0.000000, 0.000000, 0.000000), +(9, 6.350420, 6.350420, 0.000000, 6.350420, 0.000000, 0.000000, 0.000000, 5.874140, 0.000000, 0.000000, 0.000000), +(10, 6.524460, 6.524460, 0.000000, 6.524460, 0.000000, 0.000000, 0.000000, 6.035130, 0.000000, 0.000000, 0.000000), +(11, 6.974240, 6.974240, 0.000000, 6.974240, 0.000000, 0.000000, 0.000000, 6.451170, 0.000000, 0.000000, 0.000000), +(12, 7.643010, 7.643010, 0.000000, 7.643010, 0.000000, 0.000000, 0.000000, 7.069790, 0.000000, 0.000000, 0.000000), +(13, 7.847990, 7.847990, 0.000000, 7.847990, 0.000000, 0.000000, 0.000000, 7.259390, 0.000000, 0.000000, 0.000000), +(14, 8.236860, 8.236860, 0.000000, 8.236860, 0.000000, 0.000000, 0.000000, 7.619100, 0.000000, 0.000000, 0.000000), +(15, 8.997660, 8.997660, 0.000000, 8.997660, 0.000000, 0.000000, 0.000000, 8.322840, 0.000000, 0.000000, 0.000000), +(16, 9.587110, 9.587110, 0.000000, 9.587110, 0.000000, 0.000000, 0.000000, 8.868080, 0.000000, 0.000000, 0.000000), +(17, 10.278100, 10.278100, 0.000000, 10.278100, 0.000000, 0.000000, 0.000000, 9.507280, 0.000000, 0.000000, 0.000000), +(18, 10.681500, 10.681500, 0.000000, 10.681500, 0.000000, 0.000000, 0.000000, 9.880420, 0.000000, 0.000000, 0.000000), +(19, 11.325100, 11.325100, 0.000000, 11.325100, 0.000000, 0.000000, 0.000000, 10.475700, 0.000000, 0.000000, 0.000000), +(20, 12.102900, 12.102900, 0.000000, 12.102900, 0.000000, 0.000000, 0.000000, 11.195100, 0.000000, 0.000000, 0.000000), +(21, 12.459700, 12.459700, 0.000000, 12.459700, 0.000000, 0.000000, 0.000000, 11.525200, 0.000000, 0.000000, 0.000000), +(22, 13.027200, 13.027200, 0.000000, 13.027200, 0.000000, 0.000000, 0.000000, 12.050200, 0.000000, 0.000000, 0.000000), +(23, 13.512400, 13.512400, 0.000000, 13.512400, 0.000000, 0.000000, 0.000000, 12.498900, 0.000000, 0.000000, 0.000000), +(24, 14.052400, 14.052400, 0.000000, 14.052400, 0.000000, 0.000000, 0.000000, 12.998500, 0.000000, 0.000000, 0.000000), +(25, 14.685600, 14.685600, 0.000000, 14.685600, 0.000000, 0.000000, 0.000000, 13.584200, 0.000000, 0.000000, 0.000000), +(26, 15.056600, 15.056600, 0.000000, 15.056600, 0.000000, 0.000000, 0.000000, 13.927300, 0.000000, 0.000000, 0.000000), +(27, 15.776600, 15.776600, 0.000000, 15.776600, 0.000000, 0.000000, 0.000000, 14.593300, 0.000000, 0.000000, 0.000000), +(28, 16.139000, 16.139000, 0.000000, 16.139000, 0.000000, 0.000000, 0.000000, 14.928600, 0.000000, 0.000000, 0.000000), +(29, 16.679000, 16.679000, 0.000000, 16.679000, 0.000000, 0.000000, 0.000000, 15.428100, 0.000000, 0.000000, 0.000000), +(30, 17.408000, 17.408000, 0.000000, 17.408000, 0.000000, 0.000000, 0.000000, 16.102400, 0.000000, 0.000000, 0.000000), +(31, 18.631400, 18.631400, 0.000000, 18.631400, 0.000000, 0.000000, 0.000000, 17.234100, 0.000000, 0.000000, 0.000000), +(32, 19.288500, 19.288500, 0.000000, 19.288500, 0.000000, 0.000000, 0.000000, 17.841900, 0.000000, 0.000000, 0.000000), +(33, 19.676200, 19.676200, 0.000000, 19.676200, 0.000000, 0.000000, 0.000000, 18.200500, 0.000000, 0.000000, 0.000000), +(34, 20.336400, 20.336400, 0.000000, 20.336400, 0.000000, 0.000000, 0.000000, 18.811200, 0.000000, 0.000000, 0.000000), +(35, 20.818400, 20.818400, 0.000000, 20.818400, 0.000000, 0.000000, 0.000000, 19.257000, 0.000000, 0.000000, 0.000000), +(36, 22.410200, 22.410200, 0.000000, 22.410200, 0.000000, 0.000000, 0.000000, 20.729500, 0.000000, 0.000000, 0.000000), +(37, 23.094700, 23.094700, 0.000000, 23.094700, 0.000000, 0.000000, 0.000000, 21.362600, 0.000000, 0.000000, 0.000000), +(38, 23.631500, 23.631500, 0.000000, 23.631500, 0.000000, 0.000000, 0.000000, 21.859100, 0.000000, 0.000000, 0.000000), +(39, 24.376800, 24.376800, 0.000000, 24.376800, 0.000000, 0.000000, 0.000000, 22.548600, 0.000000, 0.000000, 0.000000), +(40, 25.158400, 25.158400, 0.000000, 25.158400, 0.000000, 0.000000, 0.000000, 23.271500, 0.000000, 0.000000, 0.000000), +(41, 27.599600, 27.599600, 0.000000, 27.599600, 0.000000, 0.000000, 0.000000, 25.529700, 0.000000, 0.000000, 0.000000), +(42, 29.243100, 29.243100, 0.000000, 29.243100, 0.000000, 0.000000, 0.000000, 27.049900, 0.000000, 0.000000, 0.000000), +(43, 31.206400, 31.206400, 0.000000, 31.206400, 0.000000, 0.000000, 0.000000, 28.866000, 0.000000, 0.000000, 0.000000), +(44, 33.907900, 33.907900, 0.000000, 33.907900, 0.000000, 0.000000, 0.000000, 31.364800, 0.000000, 0.000000, 0.000000), +(45, 35.477100, 35.477100, 0.000000, 35.477100, 0.000000, 0.000000, 0.000000, 32.816300, 0.000000, 0.000000, 0.000000), +(46, 37.760200, 37.760200, 0.000000, 37.760200, 0.000000, 0.000000, 0.000000, 34.928200, 0.000000, 0.000000, 0.000000), +(47, 38.768500, 38.768500, 0.000000, 38.768500, 0.000000, 0.000000, 0.000000, 35.860800, 0.000000, 0.000000, 0.000000), +(48, 39.515000, 39.515000, 0.000000, 39.515000, 0.000000, 0.000000, 0.000000, 36.551400, 0.000000, 0.000000, 0.000000), +(49, 40.492800, 40.492800, 0.000000, 40.492800, 0.000000, 0.000000, 0.000000, 37.455800, 0.000000, 0.000000, 0.000000), +(50, 41.384900, 41.384900, 0.000000, 41.384900, 0.000000, 0.000000, 0.000000, 38.281000, 0.000000, 0.000000, 0.000000), +(51, 43.950000, 43.950000, 0.000000, 43.950000, 0.000000, 0.000000, 0.000000, 40.653700, 0.000000, 0.000000, 0.000000), +(52, 45.124300, 45.124300, 0.000000, 45.124300, 0.000000, 0.000000, 0.000000, 41.740000, 0.000000, 0.000000, 0.000000), +(53, 45.997100, 45.997100, 0.000000, 45.997100, 0.000000, 0.000000, 0.000000, 42.547300, 0.000000, 0.000000, 0.000000), +(54, 46.953300, 46.953300, 0.000000, 46.953300, 0.000000, 0.000000, 0.000000, 43.431800, 0.000000, 0.000000, 0.000000), +(55, 47.996400, 47.996400, 0.000000, 47.996400, 0.000000, 0.000000, 0.000000, 44.396700, 0.000000, 0.000000, 0.000000), +(56, 50.763100, 50.763100, 0.000000, 50.763100, 0.000000, 0.000000, 0.000000, 46.955900, 0.000000, 0.000000, 0.000000), +(57, 51.921600, 51.921600, 0.000000, 51.921600, 0.000000, 0.000000, 0.000000, 48.027500, 0.000000, 0.000000, 0.000000), +(58, 52.969700, 52.969700, 0.000000, 52.969700, 0.000000, 0.000000, 0.000000, 48.996900, 0.000000, 0.000000, 0.000000), +(59, 53.951200, 53.951200, 0.000000, 53.951200, 0.000000, 0.000000, 0.000000, 49.904800, 0.000000, 0.000000, 0.000000), +(60, 66.844400, 66.844400, 0.000000, 66.844400, 0.000000, 0.000000, 0.000000, 61.831100, 0.000000, 0.000000, 0.000000), +(61, 76.608200, 76.608200, 0.000000, 76.608200, 0.000000, 0.000000, 0.000000, 70.862600, 0.000000, 0.000000, 0.000000), +(62, 87.798200, 87.798200, 0.000000, 87.798200, 0.000000, 0.000000, 0.000000, 81.213300, 0.000000, 0.000000, 0.000000), +(63, 100.623000, 100.623000, 0.000000, 100.623000, 0.000000, 0.000000, 0.000000, 93.075900, 0.000000, 0.000000, 0.000000), +(64, 115.320000, 115.320000, 0.000000, 115.320000, 0.000000, 0.000000, 0.000000, 106.671000, 0.000000, 0.000000, 0.000000), +(65, 132.165000, 132.165000, 0.000000, 132.165000, 0.000000, 0.000000, 0.000000, 122.252000, 0.000000, 0.000000, 0.000000), +(66, 151.470000, 151.470000, 0.000000, 151.470000, 0.000000, 0.000000, 0.000000, 140.110000, 0.000000, 0.000000, 0.000000), +(67, 173.595000, 173.595000, 0.000000, 173.595000, 0.000000, 0.000000, 0.000000, 160.575000, 0.000000, 0.000000, 0.000000), +(68, 261.316000, 261.316000, 0.000000, 261.316000, 0.000000, 0.000000, 0.000000, 241.717000, 0.000000, 0.000000, 0.000000), +(69, 285.382000, 285.382000, 0.000000, 285.382000, 0.000000, 0.000000, 0.000000, 263.978000, 0.000000, 0.000000, 0.000000), +(70, 309.447000, 309.447000, 0.000000, 309.447000, 0.000000, 0.000000, 0.000000, 286.239000, 0.000000, 0.000000, 0.000000), +(71, 318.457000, 318.457000, 0.000000, 318.457000, 0.000000, 0.000000, 0.000000, 294.573000, 0.000000, 0.000000, 0.000000), +(72, 327.728000, 327.728000, 0.000000, 327.728000, 0.000000, 0.000000, 0.000000, 303.149000, 0.000000, 0.000000, 0.000000), +(73, 337.270000, 337.270000, 0.000000, 337.270000, 0.000000, 0.000000, 0.000000, 311.975000, 0.000000, 0.000000, 0.000000), +(74, 347.090000, 347.090000, 0.000000, 347.090000, 0.000000, 0.000000, 0.000000, 321.058000, 0.000000, 0.000000, 0.000000), +(75, 357.195000, 357.195000, 0.000000, 357.195000, 0.000000, 0.000000, 0.000000, 330.405000, 0.000000, 0.000000, 0.000000), +(76, 367.595000, 367.595000, 0.000000, 367.595000, 0.000000, 0.000000, 0.000000, 340.025000, 0.000000, 0.000000, 0.000000), +(77, 378.297000, 378.297000, 0.000000, 378.297000, 0.000000, 0.000000, 0.000000, 349.925000, 0.000000, 0.000000, 0.000000), +(78, 389.311000, 389.311000, 0.000000, 389.311000, 0.000000, 0.000000, 0.000000, 360.113000, 0.000000, 0.000000, 0.000000), +(79, 400.645000, 400.645000, 0.000000, 400.645000, 0.000000, 0.000000, 0.000000, 370.597000, 0.000000, 0.000000, 0.000000), +(80, 412.310000, 412.310000, 0.000000, 412.310000, 0.000000, 0.000000, 0.000000, 381.387000, 0.000000, 0.000000, 0.000000), +(81, 424.314000, 424.314000, 0.000000, 424.314000, 0.000000, 0.000000, 0.000000, 392.491000, 0.000000, 0.000000, 0.000000), +(82, 436.668000, 436.668000, 0.000000, 436.668000, 0.000000, 0.000000, 0.000000, 403.918000, 0.000000, 0.000000, 0.000000), +(83, 449.381000, 449.381000, 0.000000, 449.381000, 0.000000, 0.000000, 0.000000, 415.678000, 0.000000, 0.000000, 0.000000), +(84, 456.197000, 456.197000, 0.000000, 456.197000, 0.000000, 0.000000, 0.000000, 421.982000, 0.000000, 0.000000, 0.000000), +(85, 463.116000, 463.116000, 0.000000, 463.116000, 0.000000, 0.000000, 0.000000, 428.383000, 0.000000, 0.000000, 0.000000), +(86, 470.140000, 470.140000, 0.000000, 470.140000, 0.000000, 0.000000, 0.000000, 434.880000, 0.000000, 0.000000, 0.000000), +(87, 477.271000, 477.271000, 0.000000, 477.271000, 0.000000, 0.000000, 0.000000, 441.476000, 0.000000, 0.000000, 0.000000), +(88, 484.510000, 484.510000, 0.000000, 484.510000, 0.000000, 0.000000, 0.000000, 448.172000, 0.000000, 0.000000, 0.000000), +(89, 491.858000, 491.858000, 0.000000, 491.858000, 0.000000, 0.000000, 0.000000, 454.969000, 0.000000, 0.000000, 0.000000), +(90, 499.318000, 499.318000, 0.000000, 499.318000, 0.000000, 0.000000, 0.000000, 461.870000, 0.000000, 0.000000, 0.000000), +(91, 506.892000, 506.892000, 0.000000, 506.892000, 0.000000, 0.000000, 0.000000, 468.875000, 0.000000, 0.000000, 0.000000), +(92, 514.580000, 514.580000, 0.000000, 514.580000, 0.000000, 0.000000, 0.000000, 475.986000, 0.000000, 0.000000, 0.000000), +(93, 522.384000, 522.384000, 0.000000, 522.384000, 0.000000, 0.000000, 0.000000, 483.205000, 0.000000, 0.000000, 0.000000), +(94, 530.307000, 530.307000, 0.000000, 530.307000, 0.000000, 0.000000, 0.000000, 490.534000, 0.000000, 0.000000, 0.000000), +(95, 538.350000, 538.350000, 0.000000, 538.350000, 0.000000, 0.000000, 0.000000, 497.974000, 0.000000, 0.000000, 0.000000), +(96, 546.516000, 546.516000, 0.000000, 546.516000, 0.000000, 0.000000, 0.000000, 505.527000, 0.000000, 0.000000, 0.000000), +(97, 554.805000, 554.805000, 0.000000, 554.805000, 0.000000, 0.000000, 0.000000, 513.194000, 0.000000, 0.000000, 0.000000), +(98, 563.219000, 563.219000, 0.000000, 563.219000, 0.000000, 0.000000, 0.000000, 520.978000, 0.000000, 0.000000, 0.000000), +(99, 571.762000, 571.762000, 0.000000, 571.762000, 0.000000, 0.000000, 0.000000, 528.879000, 0.000000, 0.000000, 0.000000), +(100, 580.433000, 580.433000, 0.000000, 580.433000, 0.000000, 0.000000, 0.000000, 536.901000, 0.000000, 0.000000, 0.000000); + +DROP TABLE IF EXISTS `gt_npc_damage_by_class_exp3`; +CREATE TABLE `gt_npc_damage_by_class_exp3` ( + `Level` TINYINT UNSIGNED NOT NULL, + `Warrior` FLOAT NOT NULL, + `Paladin` FLOAT NOT NULL, + `Hunter` FLOAT NOT NULL, + `Rogue` FLOAT NOT NULL, + `Priest` FLOAT NOT NULL, + `DeathKnight` FLOAT NOT NULL, + `Shaman` FLOAT NOT NULL, + `Mage` FLOAT NOT NULL, + `Warlock` FLOAT NOT NULL, + `Monk` FLOAT NOT NULL, + `Druid` FLOAT NOT NULL, + PRIMARY KEY (`Level`) +) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +INSERT INTO `gt_npc_damage_by_class_exp3` (`Level`, `Warrior`, `Paladin`, `Hunter`, `Rogue`, `Priest`, `DeathKnight`, `Shaman`, `Mage`, `Warlock`, `Monk`, `Druid`) VALUES +(1, 0.486777, 0.486777, 0.000000, 0.486777, 0.000000, 0.000000, 0.000000, 0.450269, 0.000000, 0.000000, 0.000000), +(2, 1.036516, 1.036516, 0.000000, 1.036516, 0.000000, 0.000000, 0.000000, 0.958777, 0.000000, 0.000000, 0.000000), +(3, 1.620187, 1.620187, 0.000000, 1.620187, 0.000000, 0.000000, 0.000000, 1.498673, 0.000000, 0.000000, 0.000000), +(4, 2.358691, 2.358691, 0.000000, 2.358691, 0.000000, 0.000000, 0.000000, 2.181790, 0.000000, 0.000000, 0.000000), +(5, 3.180376, 3.180376, 0.000000, 3.180376, 0.000000, 0.000000, 0.000000, 2.941848, 0.000000, 0.000000, 0.000000), +(6, 4.244802, 4.244802, 0.000000, 4.244802, 0.000000, 0.000000, 0.000000, 3.926442, 0.000000, 0.000000, 0.000000), +(7, 5.403297, 5.403297, 0.000000, 5.403297, 0.000000, 0.000000, 0.000000, 4.998050, 0.000000, 0.000000, 0.000000), +(8, 5.891516, 5.891516, 0.000000, 5.891516, 0.000000, 0.000000, 0.000000, 5.449652, 0.000000, 0.000000, 0.000000), +(9, 6.350419, 6.350419, 0.000000, 6.350419, 0.000000, 0.000000, 0.000000, 5.874137, 0.000000, 0.000000, 0.000000), +(10, 6.524465, 6.524465, 0.000000, 6.524465, 0.000000, 0.000000, 0.000000, 6.035130, 0.000000, 0.000000, 0.000000), +(11, 6.974240, 6.974240, 0.000000, 6.974240, 0.000000, 0.000000, 0.000000, 6.451172, 0.000000, 0.000000, 0.000000), +(12, 7.643014, 7.643014, 0.000000, 7.643014, 0.000000, 0.000000, 0.000000, 7.069788, 0.000000, 0.000000, 0.000000), +(13, 7.847993, 7.847993, 0.000000, 7.847993, 0.000000, 0.000000, 0.000000, 7.259393, 0.000000, 0.000000, 0.000000), +(14, 8.236863, 8.236863, 0.000000, 8.236863, 0.000000, 0.000000, 0.000000, 7.619099, 0.000000, 0.000000, 0.000000), +(15, 8.997662, 8.997662, 0.000000, 8.997662, 0.000000, 0.000000, 0.000000, 8.322837, 0.000000, 0.000000, 0.000000), +(16, 9.587112, 9.587112, 0.000000, 9.587112, 0.000000, 0.000000, 0.000000, 8.868078, 0.000000, 0.000000, 0.000000), +(17, 10.278144, 10.278144, 0.000000, 10.278144, 0.000000, 0.000000, 0.000000, 9.507283, 0.000000, 0.000000, 0.000000), +(18, 10.681531, 10.681531, 0.000000, 10.681531, 0.000000, 0.000000, 0.000000, 9.880417, 0.000000, 0.000000, 0.000000), +(19, 11.325056, 11.325056, 0.000000, 11.325056, 0.000000, 0.000000, 0.000000, 10.475677, 0.000000, 0.000000, 0.000000), +(20, 12.102863, 12.102863, 0.000000, 12.102863, 0.000000, 0.000000, 0.000000, 11.195148, 0.000000, 0.000000, 0.000000), +(21, 12.459698, 12.459698, 0.000000, 12.459698, 0.000000, 0.000000, 0.000000, 11.525220, 0.000000, 0.000000, 0.000000), +(22, 13.027221, 13.027221, 0.000000, 13.027221, 0.000000, 0.000000, 0.000000, 12.050179, 0.000000, 0.000000, 0.000000), +(23, 13.512356, 13.512356, 0.000000, 13.512356, 0.000000, 0.000000, 0.000000, 12.498929, 0.000000, 0.000000, 0.000000), +(24, 14.052447, 14.052447, 0.000000, 14.052447, 0.000000, 0.000000, 0.000000, 12.998514, 0.000000, 0.000000, 0.000000), +(25, 14.685610, 14.685610, 0.000000, 14.685610, 0.000000, 0.000000, 0.000000, 13.584188, 0.000000, 0.000000, 0.000000), +(26, 15.056579, 15.056579, 0.000000, 15.056579, 0.000000, 0.000000, 0.000000, 13.927336, 0.000000, 0.000000, 0.000000), +(27, 15.776561, 15.776561, 0.000000, 15.776561, 0.000000, 0.000000, 0.000000, 14.593319, 0.000000, 0.000000, 0.000000), +(28, 16.139008, 16.139008, 0.000000, 16.139008, 0.000000, 0.000000, 0.000000, 14.928582, 0.000000, 0.000000, 0.000000), +(29, 16.678986, 16.678986, 0.000000, 16.678986, 0.000000, 0.000000, 0.000000, 15.428061, 0.000000, 0.000000, 0.000000), +(30, 17.408037, 17.408037, 0.000000, 17.408037, 0.000000, 0.000000, 0.000000, 16.102434, 0.000000, 0.000000, 0.000000), +(31, 18.631418, 18.631418, 0.000000, 18.631418, 0.000000, 0.000000, 0.000000, 17.234062, 0.000000, 0.000000, 0.000000), +(32, 19.288488, 19.288488, 0.000000, 19.288488, 0.000000, 0.000000, 0.000000, 17.841852, 0.000000, 0.000000, 0.000000), +(33, 19.676189, 19.676189, 0.000000, 19.676189, 0.000000, 0.000000, 0.000000, 18.200474, 0.000000, 0.000000, 0.000000), +(34, 20.336409, 20.336409, 0.000000, 20.336409, 0.000000, 0.000000, 0.000000, 18.811178, 0.000000, 0.000000, 0.000000), +(35, 20.818426, 20.818426, 0.000000, 20.818426, 0.000000, 0.000000, 0.000000, 19.257044, 0.000000, 0.000000, 0.000000), +(36, 22.410234, 22.410234, 0.000000, 22.410234, 0.000000, 0.000000, 0.000000, 20.729467, 0.000000, 0.000000, 0.000000), +(37, 23.094738, 23.094738, 0.000000, 23.094738, 0.000000, 0.000000, 0.000000, 21.362633, 0.000000, 0.000000, 0.000000), +(38, 23.631479, 23.631479, 0.000000, 23.631479, 0.000000, 0.000000, 0.000000, 21.859118, 0.000000, 0.000000, 0.000000), +(39, 24.376846, 24.376846, 0.000000, 24.376846, 0.000000, 0.000000, 0.000000, 22.548582, 0.000000, 0.000000, 0.000000), +(40, 25.158426, 25.158426, 0.000000, 25.158426, 0.000000, 0.000000, 0.000000, 23.271545, 0.000000, 0.000000, 0.000000), +(41, 27.599640, 27.599640, 0.000000, 27.599640, 0.000000, 0.000000, 0.000000, 25.529667, 0.000000, 0.000000, 0.000000), +(42, 29.243126, 29.243126, 0.000000, 29.243126, 0.000000, 0.000000, 0.000000, 27.049891, 0.000000, 0.000000, 0.000000), +(43, 31.206450, 31.206450, 0.000000, 31.206450, 0.000000, 0.000000, 0.000000, 28.865967, 0.000000, 0.000000, 0.000000), +(44, 33.907940, 33.907940, 0.000000, 33.907940, 0.000000, 0.000000, 0.000000, 31.364843, 0.000000, 0.000000, 0.000000), +(45, 35.477093, 35.477093, 0.000000, 35.477093, 0.000000, 0.000000, 0.000000, 32.816311, 0.000000, 0.000000, 0.000000), +(46, 37.760216, 37.760216, 0.000000, 37.760216, 0.000000, 0.000000, 0.000000, 34.928200, 0.000000, 0.000000, 0.000000), +(47, 38.768475, 38.768475, 0.000000, 38.768475, 0.000000, 0.000000, 0.000000, 35.860840, 0.000000, 0.000000, 0.000000), +(48, 39.515018, 39.515018, 0.000000, 39.515018, 0.000000, 0.000000, 0.000000, 36.551392, 0.000000, 0.000000, 0.000000), +(49, 40.492764, 40.492764, 0.000000, 40.492764, 0.000000, 0.000000, 0.000000, 37.455807, 0.000000, 0.000000, 0.000000), +(50, 41.384903, 41.384903, 0.000000, 41.384903, 0.000000, 0.000000, 0.000000, 38.281036, 0.000000, 0.000000, 0.000000), +(51, 43.949966, 43.949966, 0.000000, 43.949966, 0.000000, 0.000000, 0.000000, 40.653721, 0.000000, 0.000000, 0.000000), +(52, 45.124279, 45.124279, 0.000000, 45.124279, 0.000000, 0.000000, 0.000000, 41.739960, 0.000000, 0.000000, 0.000000), +(53, 45.997063, 45.997063, 0.000000, 45.997063, 0.000000, 0.000000, 0.000000, 42.547283, 0.000000, 0.000000, 0.000000), +(54, 46.953251, 46.953251, 0.000000, 46.953251, 0.000000, 0.000000, 0.000000, 43.431759, 0.000000, 0.000000, 0.000000), +(55, 47.996441, 47.996441, 0.000000, 47.996441, 0.000000, 0.000000, 0.000000, 44.396709, 0.000000, 0.000000, 0.000000), +(56, 50.763088, 50.763088, 0.000000, 50.763088, 0.000000, 0.000000, 0.000000, 46.955856, 0.000000, 0.000000, 0.000000), +(57, 51.921646, 51.921646, 0.000000, 51.921646, 0.000000, 0.000000, 0.000000, 48.027523, 0.000000, 0.000000, 0.000000), +(58, 52.969658, 52.969658, 0.000000, 52.969658, 0.000000, 0.000000, 0.000000, 48.996933, 0.000000, 0.000000, 0.000000), +(59, 53.951160, 53.951160, 0.000000, 53.951160, 0.000000, 0.000000, 0.000000, 49.904823, 0.000000, 0.000000, 0.000000), +(60, 66.844437, 66.844437, 0.000000, 66.844437, 0.000000, 0.000000, 0.000000, 61.831108, 0.000000, 0.000000, 0.000000), +(61, 76.608223, 76.608223, 0.000000, 76.608223, 0.000000, 0.000000, 0.000000, 70.862610, 0.000000, 0.000000, 0.000000), +(62, 87.798180, 87.798180, 0.000000, 87.798180, 0.000000, 0.000000, 0.000000, 81.213310, 0.000000, 0.000000, 0.000000), +(63, 100.622610, 100.622610, 0.000000, 100.622610, 0.000000, 0.000000, 0.000000, 93.075920, 0.000000, 0.000000, 0.000000), +(64, 115.320280, 115.320280, 0.000000, 115.320280, 0.000000, 0.000000, 0.000000, 106.671260, 0.000000, 0.000000, 0.000000), +(65, 132.164790, 132.164790, 0.000000, 132.164790, 0.000000, 0.000000, 0.000000, 122.252440, 0.000000, 0.000000, 0.000000), +(66, 151.469760, 151.469760, 0.000000, 151.469760, 0.000000, 0.000000, 0.000000, 140.109510, 0.000000, 0.000000, 0.000000), +(67, 173.594530, 173.594530, 0.000000, 173.594530, 0.000000, 0.000000, 0.000000, 160.574940, 0.000000, 0.000000, 0.000000), +(68, 261.316190, 261.316190, 0.000000, 261.316190, 0.000000, 0.000000, 0.000000, 241.717480, 0.000000, 0.000000, 0.000000), +(69, 285.381770, 285.381770, 0.000000, 285.381770, 0.000000, 0.000000, 0.000000, 263.978150, 0.000000, 0.000000, 0.000000), +(70, 309.447360, 309.447360, 0.000000, 309.447360, 0.000000, 0.000000, 0.000000, 286.238800, 0.000000, 0.000000, 0.000000), +(71, 318.456790, 318.456790, 0.000000, 318.456790, 0.000000, 0.000000, 0.000000, 294.572510, 0.000000, 0.000000, 0.000000), +(72, 327.728490, 327.728490, 0.000000, 327.728490, 0.000000, 0.000000, 0.000000, 303.148860, 0.000000, 0.000000, 0.000000), +(73, 337.270170, 337.270170, 0.000000, 337.270170, 0.000000, 0.000000, 0.000000, 311.974910, 0.000000, 0.000000, 0.000000), +(74, 347.089630, 347.089630, 0.000000, 347.089630, 0.000000, 0.000000, 0.000000, 321.057920, 0.000000, 0.000000, 0.000000), +(75, 357.195010, 357.195010, 0.000000, 357.195010, 0.000000, 0.000000, 0.000000, 330.405360, 0.000000, 0.000000, 0.000000), +(76, 367.594570, 367.594570, 0.000000, 367.594570, 0.000000, 0.000000, 0.000000, 340.024960, 0.000000, 0.000000, 0.000000), +(77, 378.296910, 378.296910, 0.000000, 378.296910, 0.000000, 0.000000, 0.000000, 349.924650, 0.000000, 0.000000, 0.000000), +(78, 515.387570, 515.387570, 0.000000, 515.387570, 0.000000, 0.000000, 0.000000, 476.733520, 0.000000, 0.000000, 0.000000), +(79, 530.392880, 530.392880, 0.000000, 530.392880, 0.000000, 0.000000, 0.000000, 490.613400, 0.000000, 0.000000, 0.000000), +(80, 667.807130, 667.807130, 0.000000, 667.807130, 0.000000, 0.000000, 0.000000, 617.721560, 0.000000, 0.000000, 0.000000), +(81, 1076.252900, 1076.252900, 0.000000, 1076.252900, 0.000000, 0.000000, 0.000000, 995.534000, 0.000000, 0.000000, 0.000000), +(82, 1693.860800, 1693.860800, 0.000000, 1693.860800, 0.000000, 0.000000, 0.000000, 1566.821300, 0.000000, 0.000000, 0.000000), +(83, 1919.435800, 1919.435800, 0.000000, 1919.435800, 0.000000, 0.000000, 0.000000, 1775.478100, 0.000000, 0.000000, 0.000000), +(84, 2148.198700, 2148.198700, 0.000000, 2148.198700, 0.000000, 0.000000, 0.000000, 1987.083700, 0.000000, 0.000000, 0.000000), +(85, 2704.754200, 2704.754200, 0.000000, 2704.754200, 0.000000, 0.000000, 0.000000, 2501.897500, 0.000000, 0.000000, 0.000000), +(86, 2783.501700, 2783.501700, 0.000000, 2783.501700, 0.000000, 0.000000, 0.000000, 2574.739300, 0.000000, 0.000000, 0.000000), +(87, 2864.542200, 2864.542200, 0.000000, 2864.542200, 0.000000, 0.000000, 0.000000, 2649.701400, 0.000000, 0.000000, 0.000000), +(88, 2947.942100, 2947.942100, 0.000000, 2947.942100, 0.000000, 0.000000, 0.000000, 2726.846400, 0.000000, 0.000000, 0.000000), +(89, 3792.212600, 3792.212600, 0.000000, 3792.212600, 0.000000, 0.000000, 0.000000, 3507.796600, 0.000000, 0.000000, 0.000000), +(90, 3902.621100, 3902.621100, 0.000000, 3902.621100, 0.000000, 0.000000, 0.000000, 3609.924600, 0.000000, 0.000000, 0.000000), +(91, 4016.244100, 4016.244100, 0.000000, 4016.244100, 0.000000, 0.000000, 0.000000, 3715.025900, 0.000000, 0.000000, 0.000000), +(92, 4133.175300, 4133.175300, 0.000000, 4133.175300, 0.000000, 0.000000, 0.000000, 3823.187300, 0.000000, 0.000000, 0.000000), +(93, 4253.510700, 4253.510700, 0.000000, 4253.510700, 0.000000, 0.000000, 0.000000, 3934.497600, 0.000000, 0.000000, 0.000000), +(94, 4377.350100, 4377.350100, 0.000000, 4377.350100, 0.000000, 0.000000, 0.000000, 4049.048600, 0.000000, 0.000000, 0.000000), +(95, 4504.794400, 4504.794400, 0.000000, 4504.794400, 0.000000, 0.000000, 0.000000, 4166.935100, 0.000000, 0.000000, 0.000000), +(96, 4635.949700, 4635.949700, 0.000000, 4635.949700, 0.000000, 0.000000, 0.000000, 4288.253400, 0.000000, 0.000000, 0.000000), +(97, 4770.922900, 4770.922900, 0.000000, 4770.922900, 0.000000, 0.000000, 0.000000, 4413.104000, 0.000000, 0.000000, 0.000000), +(98, 4909.826200, 4909.826200, 0.000000, 4909.826200, 0.000000, 0.000000, 0.000000, 4541.589400, 0.000000, 0.000000, 0.000000), +(99, 5052.773900, 5052.773900, 0.000000, 5052.773900, 0.000000, 0.000000, 0.000000, 4673.815900, 0.000000, 0.000000, 0.000000), +(100, 5199.882800, 5199.882800, 0.000000, 5199.882800, 0.000000, 0.000000, 0.000000, 4809.891600, 0.000000, 0.000000, 0.000000); diff --git a/src/server/game/DataStores/GameTables.cpp b/src/server/game/DataStores/GameTables.cpp index 98bd289429..17600247bb 100644 --- a/src/server/game/DataStores/GameTables.cpp +++ b/src/server/game/DataStores/GameTables.cpp @@ -20,6 +20,7 @@ #include "DBCStructure.h" GameTable sNpcTotalHpGameTable[MAX_EXPANSIONS]; +GameTable sNpcDamageByClassGameTable[MAX_EXPANSIONS]; /*static*/ float GameTables::GetSpellScalingValue(uint8 level, UnitClass unitClass) { diff --git a/src/server/game/DataStores/GameTables.h b/src/server/game/DataStores/GameTables.h index 3b2c992a07..24470db68b 100644 --- a/src/server/game/DataStores/GameTables.h +++ b/src/server/game/DataStores/GameTables.h @@ -37,6 +37,21 @@ struct GtNpcTotalHpEntry float Druid = 0.0f; }; +struct GtNpcDamageByClassEntry +{ + float Warrior = 0.0f; + float Paladin = 0.0f; + float Hunter = 0.0f; + float Rogue = 0.0f; + float Priest = 0.0f; + float DeathKnight = 0.0f; + float Shaman = 0.0f; + float Mage = 0.0f; + float Warlock = 0.0f; + float Monk = 0.0f; + float Druid = 0.0f; +}; + template class GameTable { @@ -66,6 +81,7 @@ public: }; TC_GAME_API extern GameTable sNpcTotalHpGameTable[MAX_EXPANSIONS]; +TC_GAME_API extern GameTable sNpcDamageByClassGameTable[MAX_EXPANSIONS]; template inline float GetGameTableColumnForClass(T const* row, int32 class_) diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 4c7b406c0e..5be48bc6dd 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -9555,8 +9555,8 @@ CreatureBaseStats const* ObjectMgr::GetCreatureBaseStats(uint8 level, uint8 unit void ObjectMgr::LoadCreatureClassLevelStats() { uint32 oldMSTime = getMSTime(); - // 0 1 2 3 4 5 6 7 8 9 - QueryResult result = WorldDatabase.Query("SELECT level, class, basemana, basearmor, attackpower, rangedattackpower, damage_base, damage_exp1, damage_exp2, damage_exp3 FROM creature_classlevelstats"); + // 0 1 2 3 4 5 + QueryResult result = WorldDatabase.Query("SELECT level, class, basemana, basearmor, attackpower, rangedattackpower FROM creature_classlevelstats"); if (!result) { @@ -9580,8 +9580,7 @@ void ObjectMgr::LoadCreatureClassLevelStats() for (uint8 i = 0; i < MAX_EXPANSIONS; ++i) { stats.BaseHealth[i] = GetGameTableColumnForClass(sNpcTotalHpGameTable[i].GetRow(Level), Class); - - stats.BaseDamage[i] = fields[6 + i].GetFloat(); + stats.BaseDamage[i] = GetGameTableColumnForClass(sNpcDamageByClassGameTable[i].GetRow(Level), Class); if (stats.BaseDamage[i] < 0.0f) { TC_LOG_ERROR("sql.sql", "Creature base stats for class %u, level %u has invalid negative base damage[%u] - set to 0.0", Class, Level, i); @@ -10096,6 +10095,7 @@ CreatureStaticFlagsOverride const* ObjectMgr::GetCreatureStaticFlagsOverride(Obj void ObjectMgr::LoadDatabaseGameTables() { LoadNpcTotalHpGameTables(); + LoadNpcDamageByClassGameTables(); } void ObjectMgr::LoadNpcTotalHpGameTables() @@ -10168,6 +10168,76 @@ void ObjectMgr::LoadNpcTotalHpGameTables() TC_LOG_INFO("server.loading", ">> Loaded %u npc total health game table entries in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); } +void ObjectMgr::LoadNpcDamageByClassGameTables() +{ + uint32 oldMSTime = getMSTime(); + + QueryResult result = WorldDatabase.Query("SELECT exp0.Level, exp0.Warrior, exp1.Warrior, exp2.Warrior, exp3.Warrior, " + "exp0.Paladin, exp1.Paladin, exp2.Paladin, exp3.Paladin, " + "exp0.Hunter, exp1.Hunter, exp2.Hunter, exp3.Hunter, " + "exp0.Rogue, exp1.Rogue, exp2.Rogue, exp3.Rogue, " + "exp0.Priest, exp1.Priest, exp2.Priest, exp3.Priest, " + "exp0.DeathKnight, exp1.DeathKnight, exp2.DeathKnight, exp3.DeathKnight, " + "exp0.Shaman, exp1.Shaman, exp2.Shaman, exp3.Shaman, " + "exp0.Mage, exp1.Mage, exp2.Mage, exp3.Mage, " + "exp0.Warlock, exp1.Warlock, exp2.Warlock, exp3.Warlock, " + "exp0.Monk, exp1.Monk, exp2.Monk, exp3.Monk, " + "exp0.Druid, exp1.Druid, exp2.Druid, exp3.Druid " + "FROM gt_npc_damage_by_class AS exp0 " + "INNER JOIN gt_npc_damage_by_class_exp1 AS exp1 ON exp0.Level = exp1.Level " + "INNER JOIN gt_npc_damage_by_class_exp2 AS exp2 ON exp0.Level = exp2.Level " + "INNER JOIN gt_npc_damage_by_class_exp3 AS exp3 ON exp0.Level = exp3.Level " + "ORDER BY Level ASC"); + + if (!result) + { + TC_LOG_INFO("server.loading", ">> Loaded 0 npc damage by class game table entries. DB table `gt_npc_total_hp` is empty."); + return; + } + + uint32 count = 0; + + // Initialize the storages with one extra entry for level 0 + std::vector npcDamageByClassExp0(result->GetRowCount() + 1); + std::vector npcDamageByClassExp1(result->GetRowCount() + 1); + std::vector npcDamageByClassExp2(result->GetRowCount() + 1); + std::vector npcDamageByClassExp3(result->GetRowCount() + 1); + + do + { + Field* fields = result->Fetch(); + + uint8 level = fields[0].GetUInt8(); + uint8 expansion = 0; + for (std::vector* storage : { &npcDamageByClassExp0, &npcDamageByClassExp1, &npcDamageByClassExp2, &npcDamageByClassExp3 }) + { + std::vector& npcDamageByClass = *storage; + + npcDamageByClass[level].Warrior = fields[1 + expansion].GetFloat(); + npcDamageByClass[level].Paladin = fields[5 + expansion].GetFloat(); + npcDamageByClass[level].Hunter = fields[9 + expansion].GetFloat(); + npcDamageByClass[level].Rogue = fields[13 + expansion].GetFloat(); + npcDamageByClass[level].Priest = fields[17 + expansion].GetFloat(); + npcDamageByClass[level].DeathKnight = fields[21 + expansion].GetFloat(); + npcDamageByClass[level].Shaman = fields[25 + expansion].GetFloat(); + npcDamageByClass[level].Mage = fields[29 + expansion].GetFloat(); + npcDamageByClass[level].Warlock = fields[33 + expansion].GetFloat(); + npcDamageByClass[level].Monk = fields[37 + expansion].GetFloat(); + npcDamageByClass[level].Druid = fields[41 + expansion].GetFloat(); + + ++expansion; + } + } + while (result->NextRow()); + + sNpcDamageByClassGameTable[EXPANSION_CLASSIC].SetData(npcDamageByClassExp0); + sNpcDamageByClassGameTable[EXPANSION_THE_BURNING_CRUSADE].SetData(npcDamageByClassExp1); + sNpcDamageByClassGameTable[EXPANSION_WRATH_OF_THE_LICH_KING].SetData(npcDamageByClassExp2); + sNpcDamageByClassGameTable[EXPANSION_CATACLYSM].SetData(npcDamageByClassExp3); + + TC_LOG_INFO("server.loading", ">> Loaded %u npc damage by class game table entries in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); +} + void ObjectMgr::LoadGameObjectQuestItems() { uint32 oldMSTime = getMSTime(); diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 274496d170..7d1ae59d33 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1613,6 +1613,7 @@ class TC_GAME_API ObjectMgr void LoadDatabaseGameTables(); void LoadNpcTotalHpGameTables(); + void LoadNpcDamageByClassGameTables(); private: // first free id for selected id type