aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfunjoker <torti-esser@web.de>2018-12-02 03:00:51 +0100
committerShauren <shauren.trinity@gmail.com>2020-05-02 22:37:32 +0200
commitf5e20e80124f95a5d889f194d4acfab1a3afa192 (patch)
treeb647de81e68362b11eec5daba4fc36a477efd0f5
parent314a35f0cd912daed7c0663f4f13552b6747fd98 (diff)
Core/Players: Store race base stat modifiers separately
-rw-r--r--sql/updates/world/master/2020_05_02_02_world.sql1484
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp69
2 files changed, 1531 insertions, 22 deletions
diff --git a/sql/updates/world/master/2020_05_02_02_world.sql b/sql/updates/world/master/2020_05_02_02_world.sql
new file mode 100644
index 00000000000..530762970c7
--- /dev/null
+++ b/sql/updates/world/master/2020_05_02_02_world.sql
@@ -0,0 +1,1484 @@
+TRUNCATE `player_levelstats`;
+ALTER TABLE `player_levelstats` DROP COLUMN `race`;
+RENAME TABLE `player_levelstats` TO `player_classlevelstats`;
+
+INSERT INTO `player_classlevelstats` (`class`, `level`, `str`, `agi`, `sta`, `inte`) VALUES
+(1, 1, 17, 10, 11, 8),
+(1, 2, 19, 12, 12, 9),
+(1, 3, 20, 12, 12, 10),
+(1, 4, 21, 13, 13, 10),
+(1, 5, 21, 13, 13, 10),
+(1, 6, 21, 13, 13, 10),
+(1, 7, 23, 14, 14, 11),
+(1, 8, 24, 15, 15, 12),
+(1, 9, 26, 16, 16, 12),
+(1, 10, 27, 17, 17, 13),
+(1, 11, 30, 18, 18, 14),
+(1, 12, 33, 20, 20, 16),
+(1, 13, 35, 21, 22, 17),
+(1, 14, 38, 24, 24, 18),
+(1, 15, 41, 25, 25, 20),
+(1, 16, 44, 27, 27, 21),
+(1, 17, 47, 28, 29, 23),
+(1, 18, 51, 31, 31, 25),
+(1, 19, 54, 33, 33, 26),
+(1, 20, 56, 35, 35, 27),
+(1, 21, 59, 36, 36, 29),
+(1, 22, 63, 39, 39, 31),
+(1, 23, 66, 40, 41, 32),
+(1, 24, 70, 43, 43, 34),
+(1, 25, 73, 45, 45, 35),
+(1, 26, 76, 46, 47, 37),
+(1, 27, 79, 48, 48, 38),
+(1, 28, 83, 51, 51, 40),
+(1, 29, 86, 53, 53, 42),
+(1, 30, 88, 54, 54, 43),
+(1, 31, 91, 56, 56, 44),
+(1, 32, 94, 57, 58, 46),
+(1, 33, 97, 60, 59, 47),
+(1, 34, 102, 62, 63, 50),
+(1, 35, 105, 64, 64, 51),
+(1, 36, 108, 66, 66, 53),
+(1, 37, 111, 68, 68, 54),
+(1, 38, 114, 69, 70, 55),
+(1, 39, 116, 71, 71, 57),
+(1, 40, 121, 73, 74, 59),
+(1, 41, 123, 75, 76, 60),
+(1, 42, 126, 77, 77, 61),
+(1, 43, 129, 79, 79, 63),
+(1, 44, 132, 80, 81, 64),
+(1, 45, 136, 83, 83, 66),
+(1, 46, 140, 86, 86, 68),
+(1, 47, 143, 87, 88, 70),
+(1, 48, 146, 89, 89, 71),
+(1, 49, 148, 91, 91, 72),
+(1, 50, 151, 93, 93, 74),
+(1, 51, 154, 94, 94, 75),
+(1, 52, 158, 97, 97, 77),
+(1, 53, 161, 98, 99, 78),
+(1, 54, 164, 100, 100, 80),
+(1, 55, 167, 102, 102, 81),
+(1, 56, 171, 105, 105, 83),
+(1, 57, 174, 106, 106, 85),
+(1, 58, 176, 108, 108, 86),
+(1, 59, 179, 109, 110, 87),
+(1, 60, 183, 112, 112, 89),
+(1, 61, 196, 120, 120, 96),
+(1, 62, 208, 127, 128, 102),
+(1, 63, 221, 135, 135, 108),
+(1, 64, 224, 137, 137, 109),
+(1, 65, 228, 139, 140, 111),
+(1, 66, 231, 141, 141, 113),
+(1, 67, 234, 143, 143, 114),
+(1, 68, 236, 145, 145, 115),
+(1, 69, 239, 146, 146, 117),
+(1, 70, 252, 154, 154, 123),
+(1, 71, 259, 158, 158, 126),
+(1, 72, 271, 166, 166, 132),
+(1, 73, 284, 174, 174, 139),
+(1, 74, 287, 175, 175, 140),
+(1, 75, 289, 177, 177, 141),
+(1, 76, 292, 179, 179, 143),
+(1, 77, 296, 181, 181, 145),
+(1, 78, 299, 183, 183, 146),
+(1, 79, 303, 186, 186, 148),
+(1, 80, 309, 189, 189, 151),
+(1, 81, 322, 197, 197, 157),
+(1, 82, 334, 204, 204, 163),
+(1, 83, 341, 208, 209, 167),
+(1, 84, 344, 211, 210, 168),
+(1, 85, 347, 212, 212, 169),
+(1, 86, 359, 220, 220, 175),
+(1, 87, 363, 227, 227, 182),
+(1, 88, 363, 235, 235, 188),
+(1, 89, 363, 242, 243, 194),
+(1, 90, 363, 250, 250, 200),
+(1, 91, 363, 343, 300, 274),
+(1, 92, 363, 363, 300, 324),
+(1, 93, 363, 363, 300, 363),
+(1, 94, 363, 363, 300, 363),
+(1, 95, 363, 363, 300, 363),
+(1, 96, 363, 363, 300, 363),
+(1, 97, 363, 363, 300, 363),
+(1, 98, 363, 363, 300, 363),
+(1, 99, 363, 363, 300, 363),
+(1, 100, 363, 363, 300, 363),
+(1, 101, 363, 363, 300, 363),
+(1, 102, 363, 363, 300, 363),
+(1, 103, 363, 363, 300, 363),
+(1, 104, 363, 363, 300, 363),
+(1, 105, 363, 363, 300, 363),
+(1, 106, 363, 363, 300, 363),
+(1, 107, 363, 363, 300, 363),
+(1, 108, 363, 363, 300, 363),
+(1, 109, 363, 363, 300, 363),
+(1, 110, 363, 363, 300, 363),
+(1, 111, 536, 536, 464, 536),
+(1, 112, 623, 623, 552, 623),
+(1, 113, 709, 709, 631, 709),
+(1, 114, 793, 793, 692, 793),
+(1, 115, 871, 871, 727, 871),
+(1, 116, 956, 956, 749, 956),
+(1, 117, 1020, 1012, 755, 998),
+(1, 118, 1089, 1012, 756, 998),
+(1, 119, 1173, 1012, 763, 998),
+(1, 120, 1467, 1012, 1001, 998),
+(2, 1, 17, 5, 11, 12),
+(2, 2, 19, 6, 12, 13),
+(2, 3, 20, 6, 12, 14),
+(2, 4, 21, 7, 13, 15),
+(2, 5, 21, 7, 13, 15),
+(2, 6, 21, 7, 13, 15),
+(2, 7, 23, 7, 14, 16),
+(2, 8, 24, 7, 15, 17),
+(2, 9, 26, 8, 16, 18),
+(2, 10, 27, 9, 17, 19),
+(2, 11, 30, 9, 18, 21),
+(2, 12, 33, 10, 20, 23),
+(2, 13, 35, 11, 22, 25),
+(2, 14, 38, 12, 24, 27),
+(2, 15, 41, 13, 25, 29),
+(2, 16, 44, 14, 27, 31),
+(2, 17, 47, 15, 29, 33),
+(2, 18, 51, 16, 31, 36),
+(2, 19, 54, 17, 33, 38),
+(2, 20, 56, 18, 35, 40),
+(2, 21, 59, 18, 36, 42),
+(2, 22, 63, 20, 39, 45),
+(2, 23, 66, 21, 41, 47),
+(2, 24, 70, 22, 43, 50),
+(2, 25, 73, 23, 45, 52),
+(2, 26, 76, 24, 47, 54),
+(2, 27, 79, 24, 48, 56),
+(2, 28, 83, 26, 51, 59),
+(2, 29, 86, 27, 53, 61),
+(2, 30, 88, 28, 54, 63),
+(2, 31, 91, 29, 56, 65),
+(2, 32, 94, 29, 58, 67),
+(2, 33, 97, 30, 59, 69),
+(2, 34, 102, 32, 63, 73),
+(2, 35, 105, 33, 64, 75),
+(2, 36, 108, 34, 66, 77),
+(2, 37, 111, 35, 68, 79),
+(2, 38, 114, 35, 70, 81),
+(2, 39, 116, 37, 71, 83),
+(2, 40, 121, 38, 74, 86),
+(2, 41, 123, 39, 76, 88),
+(2, 42, 126, 39, 77, 90),
+(2, 43, 129, 40, 79, 92),
+(2, 44, 132, 41, 81, 94),
+(2, 45, 136, 43, 83, 97),
+(2, 46, 140, 44, 86, 100),
+(2, 47, 143, 45, 88, 102),
+(2, 48, 146, 46, 89, 104),
+(2, 49, 148, 46, 91, 106),
+(2, 50, 151, 48, 93, 108),
+(2, 51, 154, 48, 94, 110),
+(2, 52, 158, 50, 97, 113),
+(2, 53, 161, 50, 99, 115),
+(2, 54, 164, 51, 100, 117),
+(2, 55, 167, 52, 102, 119),
+(2, 56, 171, 54, 105, 122),
+(2, 57, 174, 54, 106, 124),
+(2, 58, 176, 55, 108, 126),
+(2, 59, 179, 56, 110, 128),
+(2, 60, 183, 57, 112, 131),
+(2, 61, 196, 61, 120, 140),
+(2, 62, 208, 65, 128, 149),
+(2, 63, 221, 69, 135, 158),
+(2, 64, 224, 70, 137, 160),
+(2, 65, 228, 71, 140, 163),
+(2, 66, 231, 72, 141, 165),
+(2, 67, 234, 73, 143, 167),
+(2, 68, 236, 74, 145, 169),
+(2, 69, 239, 75, 146, 171),
+(2, 70, 252, 79, 154, 180),
+(2, 71, 259, 81, 158, 185),
+(2, 72, 271, 85, 166, 194),
+(2, 73, 284, 89, 174, 203),
+(2, 74, 287, 90, 175, 205),
+(2, 75, 289, 91, 177, 207),
+(2, 76, 292, 91, 179, 209),
+(2, 77, 296, 93, 181, 212),
+(2, 78, 299, 94, 183, 214),
+(2, 79, 303, 95, 186, 217),
+(2, 80, 309, 97, 189, 221),
+(2, 81, 322, 101, 197, 230),
+(2, 82, 334, 105, 204, 239),
+(2, 83, 341, 107, 209, 244),
+(2, 84, 344, 108, 210, 246),
+(2, 85, 347, 108, 212, 248),
+(2, 86, 359, 112, 220, 257),
+(2, 87, 363, 116, 227, 266),
+(2, 88, 363, 120, 235, 275),
+(2, 89, 363, 124, 243, 284),
+(2, 90, 363, 128, 250, 293),
+(2, 91, 363, 176, 300, 363),
+(2, 92, 363, 207, 300, 363),
+(2, 93, 363, 243, 300, 363),
+(2, 94, 363, 284, 300, 363),
+(2, 95, 363, 334, 300, 363),
+(2, 96, 363, 363, 300, 363),
+(2, 97, 363, 363, 300, 363),
+(2, 98, 363, 363, 300, 363),
+(2, 99, 363, 363, 300, 363),
+(2, 100, 363, 363, 300, 363),
+(2, 101, 363, 363, 300, 363),
+(2, 102, 363, 363, 300, 363),
+(2, 103, 363, 363, 300, 363),
+(2, 104, 363, 363, 300, 363),
+(2, 105, 363, 363, 300, 363),
+(2, 106, 363, 363, 300, 363),
+(2, 107, 363, 363, 300, 363),
+(2, 108, 363, 363, 300, 363),
+(2, 109, 363, 363, 300, 363),
+(2, 110, 363, 363, 300, 363),
+(2, 111, 536, 513, 464, 536),
+(2, 112, 623, 513, 552, 623),
+(2, 113, 709, 513, 631, 709),
+(2, 114, 793, 513, 692, 793),
+(2, 115, 871, 513, 727, 871),
+(2, 116, 956, 513, 749, 956),
+(2, 117, 1020, 513, 755, 1020),
+(2, 118, 1089, 513, 756, 1089),
+(2, 119, 1173, 513, 763, 1173),
+(2, 120, 1467, 513, 1001, 1467),
+(3, 1, 10, 15, 11, 10),
+(3, 2, 12, 17, 12, 11),
+(3, 3, 12, 18, 12, 11),
+(3, 4, 13, 19, 13, 12),
+(3, 5, 13, 19, 13, 12),
+(3, 6, 13, 19, 13, 12),
+(3, 7, 14, 20, 14, 13),
+(3, 8, 15, 21, 15, 14),
+(3, 9, 16, 23, 16, 15),
+(3, 10, 16, 24, 17, 16),
+(3, 11, 18, 26, 18, 17),
+(3, 12, 20, 29, 20, 19),
+(3, 13, 21, 31, 22, 20),
+(3, 14, 23, 34, 24, 22),
+(3, 15, 25, 36, 25, 24),
+(3, 16, 27, 39, 27, 25),
+(3, 17, 29, 41, 29, 27),
+(3, 18, 31, 45, 31, 29),
+(3, 19, 33, 47, 33, 31),
+(3, 20, 34, 50, 35, 33),
+(3, 21, 36, 52, 36, 34),
+(3, 22, 38, 56, 39, 37),
+(3, 23, 40, 58, 41, 38),
+(3, 24, 43, 62, 43, 41),
+(3, 25, 44, 65, 45, 43),
+(3, 26, 46, 67, 47, 44),
+(3, 27, 48, 69, 48, 46),
+(3, 28, 51, 73, 51, 48),
+(3, 29, 52, 76, 53, 50),
+(3, 30, 54, 78, 54, 52),
+(3, 31, 55, 81, 56, 53),
+(3, 32, 57, 83, 58, 55),
+(3, 33, 59, 86, 59, 57),
+(3, 34, 62, 90, 63, 60),
+(3, 35, 62, 90, 63, 60),
+(3, 36, 66, 95, 66, 63),
+(3, 37, 68, 98, 68, 65),
+(3, 38, 69, 100, 70, 66),
+(3, 39, 71, 103, 71, 68),
+(3, 40, 74, 106, 74, 70),
+(3, 41, 75, 109, 76, 72),
+(3, 42, 77, 111, 77, 74),
+(3, 43, 79, 114, 79, 75),
+(3, 44, 80, 116, 81, 77),
+(3, 45, 83, 120, 83, 79),
+(3, 46, 85, 124, 86, 82),
+(3, 47, 87, 126, 88, 84),
+(3, 48, 89, 129, 89, 85),
+(3, 49, 90, 131, 91, 87),
+(3, 50, 92, 134, 93, 88),
+(3, 51, 94, 136, 94, 90),
+(3, 52, 96, 140, 97, 93),
+(3, 53, 98, 142, 99, 94),
+(3, 54, 100, 145, 100, 96),
+(3, 55, 102, 147, 102, 97),
+(3, 56, 104, 151, 105, 100),
+(3, 57, 106, 153, 106, 102),
+(3, 58, 107, 156, 108, 103),
+(3, 59, 109, 158, 110, 105),
+(3, 60, 111, 162, 112, 107),
+(3, 61, 119, 173, 120, 115),
+(3, 62, 127, 184, 128, 122),
+(3, 63, 135, 195, 135, 129),
+(3, 64, 136, 198, 137, 131),
+(3, 65, 139, 201, 140, 134),
+(3, 66, 141, 204, 141, 135),
+(3, 67, 142, 206, 143, 137),
+(3, 68, 144, 209, 145, 138),
+(3, 69, 146, 211, 146, 140),
+(3, 70, 153, 222, 154, 147),
+(3, 71, 158, 228, 158, 152),
+(3, 72, 165, 240, 166, 159),
+(3, 73, 173, 251, 174, 166),
+(3, 74, 175, 253, 175, 168),
+(3, 75, 176, 256, 177, 170),
+(3, 76, 178, 258, 179, 171),
+(3, 77, 180, 262, 181, 174),
+(3, 78, 182, 264, 183, 175),
+(3, 79, 184, 268, 186, 178),
+(3, 80, 188, 273, 189, 181),
+(3, 81, 196, 284, 197, 188),
+(3, 82, 203, 295, 204, 196),
+(3, 83, 208, 301, 209, 200),
+(3, 84, 209, 304, 210, 202),
+(3, 85, 211, 306, 212, 203),
+(3, 86, 219, 317, 220, 211),
+(3, 87, 226, 328, 227, 218),
+(3, 88, 234, 339, 235, 225),
+(3, 89, 242, 350, 243, 233),
+(3, 90, 249, 361, 250, 240),
+(3, 91, 341, 363, 300, 328),
+(3, 92, 363, 363, 300, 363),
+(3, 93, 363, 363, 300, 363),
+(3, 94, 363, 363, 300, 363),
+(3, 95, 363, 363, 300, 363),
+(3, 96, 363, 363, 300, 363),
+(3, 97, 363, 363, 300, 363),
+(3, 98, 363, 363, 300, 363),
+(3, 99, 363, 363, 300, 363),
+(3, 100, 363, 363, 300, 363),
+(3, 101, 363, 363, 300, 363),
+(3, 102, 363, 363, 300, 363),
+(3, 103, 363, 363, 300, 363),
+(3, 104, 363, 363, 300, 363),
+(3, 105, 363, 363, 300, 363),
+(3, 106, 363, 363, 300, 363),
+(3, 107, 363, 363, 300, 363),
+(3, 108, 363, 363, 300, 363),
+(3, 109, 363, 363, 300, 363),
+(3, 110, 363, 363, 300, 363),
+(3, 111, 536, 536, 464, 536),
+(3, 112, 623, 623, 552, 623),
+(3, 113, 709, 709, 631, 709),
+(3, 114, 793, 793, 692, 793),
+(3, 115, 871, 871, 727, 871),
+(3, 116, 895, 956, 749, 956),
+(3, 117, 895, 1020, 755, 1020),
+(3, 118, 895, 1089, 756, 1089),
+(3, 119, 895, 1173, 763, 1173),
+(3, 120, 895, 1467, 1001, 1203),
+(4, 1, 14, 15, 11, 8),
+(4, 2, 16, 17, 12, 9),
+(4, 3, 17, 18, 12, 10),
+(4, 4, 17, 19, 13, 10),
+(4, 5, 17, 19, 13, 10),
+(4, 6, 17, 19, 13, 10),
+(4, 7, 19, 20, 14, 11),
+(4, 8, 20, 21, 15, 12),
+(4, 9, 22, 23, 16, 12),
+(4, 10, 22, 24, 17, 13),
+(4, 11, 25, 26, 18, 14),
+(4, 12, 27, 29, 20, 16),
+(4, 13, 29, 31, 22, 17),
+(4, 14, 31, 34, 24, 18),
+(4, 15, 34, 36, 25, 20),
+(4, 16, 36, 39, 27, 21),
+(4, 17, 39, 41, 29, 23),
+(4, 18, 42, 45, 31, 25),
+(4, 19, 45, 47, 33, 26),
+(4, 20, 46, 50, 35, 27),
+(4, 21, 49, 52, 36, 29),
+(4, 22, 52, 56, 39, 31),
+(4, 23, 55, 58, 41, 32),
+(4, 24, 58, 62, 43, 34),
+(4, 25, 61, 65, 45, 35),
+(4, 26, 63, 67, 47, 37),
+(4, 27, 65, 69, 48, 38),
+(4, 28, 69, 73, 51, 40),
+(4, 29, 71, 76, 53, 42),
+(4, 30, 73, 78, 54, 43),
+(4, 31, 75, 81, 56, 44),
+(4, 32, 78, 83, 58, 46),
+(4, 33, 80, 86, 59, 47),
+(4, 34, 85, 90, 63, 50),
+(4, 35, 87, 93, 64, 51),
+(4, 36, 90, 95, 66, 53),
+(4, 37, 92, 98, 68, 54),
+(4, 38, 94, 100, 70, 55),
+(4, 39, 96, 103, 71, 57),
+(4, 40, 100, 106, 74, 59),
+(4, 41, 102, 109, 76, 60),
+(4, 42, 104, 111, 77, 61),
+(4, 43, 107, 114, 79, 63),
+(4, 44, 109, 116, 81, 64),
+(4, 45, 113, 120, 83, 66),
+(4, 46, 116, 124, 86, 68),
+(4, 47, 119, 126, 88, 70),
+(4, 48, 121, 129, 89, 71),
+(4, 49, 123, 131, 91, 72),
+(4, 50, 125, 134, 93, 74),
+(4, 51, 128, 136, 94, 75),
+(4, 52, 131, 140, 97, 77),
+(4, 53, 133, 142, 99, 78),
+(4, 54, 136, 145, 100, 80),
+(4, 55, 138, 147, 102, 81),
+(4, 56, 142, 151, 105, 83),
+(4, 57, 144, 153, 106, 85),
+(4, 58, 146, 156, 108, 86),
+(4, 59, 148, 158, 110, 87),
+(4, 60, 152, 162, 112, 89),
+(4, 61, 162, 173, 120, 96),
+(4, 62, 172, 184, 128, 102),
+(4, 63, 183, 195, 135, 108),
+(4, 64, 186, 198, 137, 109),
+(4, 65, 189, 201, 140, 111),
+(4, 66, 191, 204, 141, 113),
+(4, 67, 194, 206, 143, 114),
+(4, 68, 196, 209, 145, 115),
+(4, 69, 198, 211, 146, 117),
+(4, 70, 209, 222, 154, 123),
+(4, 71, 215, 228, 158, 126),
+(4, 72, 225, 240, 166, 132),
+(4, 73, 235, 251, 174, 139),
+(4, 74, 238, 253, 175, 140),
+(4, 75, 240, 256, 177, 141),
+(4, 76, 242, 258, 179, 143),
+(4, 77, 245, 262, 181, 145),
+(4, 78, 248, 264, 183, 146),
+(4, 79, 251, 268, 186, 148),
+(4, 80, 256, 273, 189, 151),
+(4, 81, 267, 284, 197, 157),
+(4, 82, 277, 295, 204, 163),
+(4, 83, 277, 295, 204, 163),
+(4, 84, 285, 304, 210, 168),
+(4, 85, 288, 306, 212, 169),
+(4, 86, 298, 317, 220, 175),
+(4, 87, 308, 328, 227, 182),
+(4, 88, 318, 339, 235, 188),
+(4, 89, 329, 350, 243, 194),
+(4, 90, 339, 361, 250, 200),
+(4, 91, 363, 363, 300, 274),
+(4, 92, 363, 363, 300, 324),
+(4, 93, 363, 363, 300, 363),
+(4, 94, 363, 363, 300, 363),
+(4, 95, 363, 363, 300, 363),
+(4, 96, 363, 363, 300, 363),
+(4, 97, 363, 363, 300, 363),
+(4, 98, 363, 363, 300, 363),
+(4, 99, 363, 363, 300, 363),
+(4, 100, 363, 363, 300, 363),
+(4, 101, 363, 363, 300, 363),
+(4, 102, 363, 363, 300, 363),
+(4, 103, 363, 363, 300, 363),
+(4, 104, 363, 363, 300, 363),
+(4, 105, 363, 363, 300, 363),
+(4, 106, 363, 363, 300, 363),
+(4, 107, 363, 363, 300, 363),
+(4, 108, 363, 363, 300, 363),
+(4, 109, 363, 363, 300, 363),
+(4, 110, 363, 363, 300, 363),
+(4, 111, 536, 536, 464, 536),
+(4, 112, 623, 623, 552, 623),
+(4, 113, 709, 709, 631, 709),
+(4, 114, 793, 793, 692, 793),
+(4, 115, 871, 871, 727, 871),
+(4, 116, 956, 956, 749, 956),
+(4, 117, 1020, 1020, 755, 998),
+(4, 118, 1089, 1089, 756, 998),
+(4, 119, 1173, 1173, 763, 998),
+(4, 120, 1218, 1467, 1001, 998),
+(5, 1, 10, 12, 11, 12),
+(5, 2, 11, 14, 12, 13),
+(5, 3, 12, 15, 12, 14),
+(5, 4, 12, 16, 13, 15),
+(5, 5, 12, 16, 13, 15),
+(5, 6, 12, 16, 13, 15),
+(5, 7, 13, 17, 14, 16),
+(5, 8, 14, 17, 15, 17),
+(5, 9, 15, 19, 16, 18),
+(5, 10, 16, 20, 17, 19),
+(5, 11, 17, 22, 18, 21),
+(5, 12, 19, 24, 20, 23),
+(5, 13, 20, 26, 22, 25),
+(5, 14, 22, 28, 24, 27),
+(5, 15, 24, 30, 25, 29),
+(5, 16, 25, 32, 27, 31),
+(5, 17, 27, 34, 29, 33),
+(5, 18, 30, 37, 31, 36),
+(5, 19, 31, 39, 33, 38),
+(5, 20, 32, 42, 35, 40),
+(5, 21, 34, 43, 36, 42),
+(5, 22, 37, 47, 39, 45),
+(5, 23, 38, 48, 41, 47),
+(5, 24, 41, 52, 43, 50),
+(5, 25, 42, 54, 45, 52),
+(5, 26, 44, 56, 47, 54),
+(5, 27, 46, 57, 48, 56),
+(5, 28, 48, 61, 51, 59),
+(5, 29, 50, 63, 53, 61),
+(5, 30, 51, 65, 54, 63),
+(5, 31, 53, 67, 56, 65),
+(5, 32, 54, 69, 58, 67),
+(5, 33, 56, 71, 59, 69),
+(5, 34, 59, 75, 63, 73),
+(5, 35, 61, 77, 64, 75),
+(5, 36, 63, 79, 66, 77),
+(5, 37, 64, 81, 68, 79),
+(5, 38, 66, 83, 70, 81),
+(5, 39, 67, 86, 71, 83),
+(5, 40, 70, 88, 74, 86),
+(5, 41, 71, 91, 76, 88),
+(5, 42, 73, 92, 77, 90),
+(5, 43, 75, 95, 79, 92),
+(5, 44, 76, 96, 81, 94),
+(5, 45, 79, 100, 83, 97),
+(5, 46, 81, 103, 86, 100),
+(5, 47, 83, 105, 88, 102),
+(5, 48, 85, 107, 89, 104),
+(5, 49, 86, 109, 91, 106),
+(5, 50, 87, 111, 93, 108),
+(5, 51, 89, 113, 94, 110),
+(5, 52, 92, 116, 97, 113),
+(5, 53, 93, 118, 99, 115),
+(5, 54, 95, 120, 100, 117),
+(5, 55, 97, 122, 102, 119),
+(5, 56, 99, 125, 105, 122),
+(5, 57, 101, 127, 106, 124),
+(5, 58, 102, 130, 108, 126),
+(5, 59, 104, 131, 110, 128),
+(5, 60, 106, 135, 112, 131),
+(5, 61, 114, 144, 120, 140),
+(5, 62, 121, 153, 128, 149),
+(5, 63, 128, 162, 135, 158),
+(5, 64, 130, 165, 137, 160),
+(5, 65, 132, 167, 140, 163),
+(5, 66, 134, 170, 141, 165),
+(5, 67, 136, 171, 143, 167),
+(5, 68, 137, 174, 145, 169),
+(5, 69, 138, 175, 146, 171),
+(5, 70, 146, 184, 154, 180),
+(5, 71, 150, 189, 158, 185),
+(5, 72, 157, 199, 166, 194),
+(5, 73, 165, 209, 174, 203),
+(5, 74, 166, 210, 175, 205),
+(5, 75, 167, 213, 177, 207),
+(5, 76, 169, 214, 179, 209),
+(5, 77, 172, 218, 181, 212),
+(5, 78, 173, 219, 183, 214),
+(5, 79, 176, 223, 186, 217),
+(5, 80, 179, 227, 189, 221),
+(5, 81, 187, 236, 197, 230),
+(5, 82, 194, 245, 204, 239),
+(5, 83, 198, 250, 209, 244),
+(5, 84, 199, 253, 210, 246),
+(5, 85, 201, 254, 212, 248),
+(5, 86, 208, 263, 220, 257),
+(5, 87, 216, 273, 227, 266),
+(5, 88, 223, 282, 235, 275),
+(5, 89, 230, 291, 243, 284),
+(5, 90, 237, 300, 250, 293),
+(5, 91, 324, 363, 300, 363),
+(5, 92, 363, 363, 300, 363),
+(5, 93, 363, 363, 300, 363),
+(5, 94, 363, 363, 300, 363),
+(5, 95, 363, 363, 300, 363),
+(5, 96, 363, 363, 300, 363),
+(5, 97, 363, 363, 300, 363),
+(5, 98, 363, 363, 300, 363),
+(5, 99, 363, 363, 300, 363),
+(5, 100, 363, 363, 300, 363),
+(5, 101, 363, 363, 300, 363),
+(5, 102, 363, 363, 300, 363),
+(5, 103, 363, 363, 300, 363),
+(5, 104, 363, 363, 300, 363),
+(5, 105, 363, 363, 300, 363),
+(5, 106, 363, 363, 300, 363),
+(5, 107, 363, 363, 300, 363),
+(5, 108, 363, 363, 300, 363),
+(5, 109, 363, 363, 300, 363),
+(5, 110, 363, 363, 300, 363),
+(5, 111, 536, 536, 464, 536),
+(5, 112, 623, 623, 552, 623),
+(5, 113, 709, 709, 631, 709),
+(5, 114, 793, 793, 692, 793),
+(5, 115, 851, 871, 727, 871),
+(5, 116, 851, 956, 749, 956),
+(5, 117, 851, 1020, 755, 1020),
+(5, 118, 851, 1089, 756, 1089),
+(5, 119, 851, 1173, 763, 1173),
+(5, 120, 851, 1218, 1001, 1467),
+(6, 1, 17, 13, 11, 7),
+(6, 2, 19, 14, 12, 7),
+(6, 3, 20, 15, 12, 8),
+(6, 4, 21, 16, 13, 8),
+(6, 5, 21, 16, 13, 8),
+(6, 6, 21, 16, 13, 8),
+(6, 7, 23, 17, 14, 9),
+(6, 8, 24, 18, 15, 9),
+(6, 9, 26, 19, 16, 10),
+(6, 10, 27, 20, 17, 10),
+(6, 11, 30, 22, 18, 11),
+(6, 12, 33, 24, 20, 13),
+(6, 13, 35, 26, 22, 14),
+(6, 14, 38, 28, 24, 15),
+(6, 15, 41, 30, 25, 16),
+(6, 16, 44, 33, 27, 17),
+(6, 17, 47, 34, 29, 18),
+(6, 18, 51, 38, 31, 20),
+(6, 19, 54, 39, 33, 21),
+(6, 20, 56, 42, 35, 22),
+(6, 21, 59, 43, 36, 23),
+(6, 22, 63, 47, 39, 25),
+(6, 23, 66, 48, 41, 26),
+(6, 24, 70, 52, 43, 27),
+(6, 25, 73, 54, 45, 28),
+(6, 26, 76, 56, 47, 29),
+(6, 27, 79, 58, 48, 31),
+(6, 28, 83, 61, 51, 32),
+(6, 29, 86, 63, 53, 33),
+(6, 30, 88, 65, 54, 34),
+(6, 31, 91, 68, 56, 35),
+(6, 32, 94, 69, 58, 37),
+(6, 33, 97, 72, 59, 38),
+(6, 34, 102, 75, 63, 40),
+(6, 35, 105, 78, 64, 41),
+(6, 36, 108, 79, 66, 42),
+(6, 37, 111, 82, 68, 43),
+(6, 38, 114, 83, 70, 44),
+(6, 39, 116, 86, 71, 45),
+(6, 40, 121, 88, 74, 47),
+(6, 41, 123, 91, 76, 48),
+(6, 42, 126, 93, 77, 49),
+(6, 43, 129, 95, 79, 50),
+(6, 44, 132, 97, 81, 51),
+(6, 45, 136, 100, 83, 53),
+(6, 46, 140, 103, 86, 55),
+(6, 47, 143, 105, 88, 56),
+(6, 48, 146, 108, 89, 57),
+(6, 49, 148, 109, 91, 58),
+(6, 50, 151, 112, 93, 59),
+(6, 51, 154, 113, 94, 60),
+(6, 52, 158, 117, 97, 62),
+(6, 53, 161, 118, 99, 63),
+(6, 54, 164, 121, 100, 64),
+(6, 55, 167, 123, 102, 65),
+(6, 56, 171, 126, 105, 67),
+(6, 57, 174, 128, 106, 68),
+(6, 58, 176, 130, 108, 69),
+(6, 59, 179, 132, 110, 70),
+(6, 60, 183, 135, 112, 72),
+(6, 61, 196, 144, 120, 76),
+(6, 62, 208, 153, 128, 81),
+(6, 63, 221, 163, 135, 86),
+(6, 64, 224, 165, 137, 87),
+(6, 65, 228, 168, 140, 89),
+(6, 66, 231, 170, 141, 90),
+(6, 67, 234, 172, 143, 91),
+(6, 68, 236, 174, 145, 92),
+(6, 69, 239, 176, 146, 93),
+(6, 70, 252, 185, 154, 98),
+(6, 71, 259, 190, 158, 101),
+(6, 72, 271, 200, 166, 106),
+(6, 73, 284, 209, 174, 111),
+(6, 74, 287, 211, 175, 112),
+(6, 75, 289, 213, 177, 113),
+(6, 76, 292, 215, 179, 114),
+(6, 77, 296, 218, 181, 116),
+(6, 78, 299, 220, 183, 117),
+(6, 79, 303, 223, 186, 118),
+(6, 80, 309, 228, 189, 121),
+(6, 81, 322, 237, 197, 126),
+(6, 82, 334, 246, 204, 131),
+(6, 83, 341, 251, 209, 133),
+(6, 84, 344, 253, 210, 134),
+(6, 85, 347, 255, 212, 135),
+(6, 86, 359, 264, 220, 140),
+(6, 87, 363, 273, 227, 145),
+(6, 88, 363, 283, 235, 150),
+(6, 89, 363, 292, 243, 155),
+(6, 90, 363, 301, 250, 160),
+(6, 91, 363, 363, 300, 219),
+(6, 92, 363, 363, 300, 259),
+(6, 93, 363, 363, 300, 303),
+(6, 94, 363, 363, 300, 355),
+(6, 95, 363, 363, 300, 363),
+(6, 96, 363, 363, 300, 363),
+(6, 97, 363, 363, 300, 363),
+(6, 98, 363, 363, 300, 363),
+(6, 99, 363, 363, 300, 363),
+(6, 100, 363, 363, 300, 363),
+(6, 101, 363, 363, 300, 363),
+(6, 102, 363, 363, 300, 363),
+(6, 103, 363, 363, 300, 363),
+(6, 104, 363, 363, 300, 363),
+(6, 105, 363, 363, 300, 363),
+(6, 106, 363, 363, 300, 363),
+(6, 107, 363, 363, 300, 363),
+(6, 108, 363, 363, 300, 363),
+(6, 109, 363, 363, 300, 363),
+(6, 110, 363, 363, 300, 363),
+(6, 111, 536, 536, 464, 536),
+(6, 112, 623, 623, 552, 623),
+(6, 113, 709, 709, 631, 709),
+(6, 114, 793, 793, 692, 792),
+(6, 115, 871, 871, 727, 792),
+(6, 116, 956, 956, 749, 792),
+(6, 117, 1020, 1020, 755, 792),
+(6, 118, 1089, 1089, 756, 792),
+(6, 119, 1173, 1173, 763, 792),
+(6, 120, 1467, 1218, 1001, 792),
+(7, 1, 7, 15, 11, 12),
+(7, 2, 8, 17, 12, 13),
+(7, 3, 9, 18, 12, 14),
+(7, 4, 9, 19, 13, 15),
+(7, 5, 9, 19, 13, 15),
+(7, 6, 9, 19, 13, 15),
+(7, 7, 10, 20, 14, 16),
+(7, 8, 10, 21, 15, 17),
+(7, 9, 11, 23, 16, 18),
+(7, 10, 12, 24, 17, 19),
+(7, 11, 13, 26, 18, 21),
+(7, 12, 14, 29, 20, 23),
+(7, 13, 15, 31, 22, 25),
+(7, 14, 16, 34, 24, 27),
+(7, 15, 18, 36, 25, 29),
+(7, 16, 19, 39, 27, 31),
+(7, 17, 20, 41, 29, 33),
+(7, 18, 22, 45, 31, 36),
+(7, 19, 23, 47, 33, 38),
+(7, 20, 24, 50, 35, 40),
+(7, 21, 25, 52, 36, 42),
+(7, 22, 27, 56, 39, 45),
+(7, 23, 28, 58, 41, 47),
+(7, 24, 30, 62, 43, 50),
+(7, 25, 31, 65, 45, 52),
+(7, 26, 33, 67, 47, 54),
+(7, 27, 34, 69, 48, 56),
+(7, 28, 36, 73, 51, 59),
+(7, 29, 37, 76, 53, 61),
+(7, 30, 38, 78, 54, 63),
+(7, 31, 39, 81, 56, 65),
+(7, 32, 40, 83, 58, 67),
+(7, 33, 42, 86, 59, 69),
+(7, 34, 44, 90, 63, 73),
+(7, 35, 45, 93, 64, 75),
+(7, 36, 46, 95, 66, 77),
+(7, 37, 48, 98, 68, 79),
+(7, 38, 49, 100, 70, 81),
+(7, 39, 50, 103, 71, 83),
+(7, 40, 52, 106, 74, 86),
+(7, 41, 53, 109, 76, 88),
+(7, 42, 54, 111, 77, 90),
+(7, 43, 56, 114, 79, 92),
+(7, 44, 57, 116, 81, 94),
+(7, 45, 59, 120, 83, 97),
+(7, 46, 60, 124, 86, 100),
+(7, 47, 62, 126, 88, 102),
+(7, 48, 63, 129, 89, 104),
+(7, 49, 64, 131, 91, 106),
+(7, 50, 65, 134, 93, 108),
+(7, 51, 66, 136, 94, 110),
+(7, 52, 68, 140, 97, 113),
+(7, 53, 69, 142, 99, 115),
+(7, 54, 71, 145, 100, 117),
+(7, 55, 72, 147, 102, 119),
+(7, 56, 74, 151, 105, 122),
+(7, 57, 75, 153, 106, 124),
+(7, 58, 76, 156, 108, 126),
+(7, 59, 77, 158, 110, 128),
+(7, 60, 79, 162, 112, 131),
+(7, 61, 84, 173, 120, 140),
+(7, 62, 90, 184, 128, 149),
+(7, 63, 95, 195, 135, 158),
+(7, 64, 96, 198, 137, 160),
+(7, 65, 98, 201, 140, 163),
+(7, 66, 99, 204, 141, 165),
+(7, 67, 101, 206, 143, 167),
+(7, 68, 102, 209, 145, 169),
+(7, 69, 103, 211, 146, 171),
+(7, 70, 108, 222, 154, 180),
+(7, 71, 111, 228, 158, 185),
+(7, 72, 117, 240, 166, 194),
+(7, 73, 122, 251, 174, 203),
+(7, 74, 124, 253, 175, 205),
+(7, 75, 124, 256, 177, 207),
+(7, 76, 126, 258, 179, 209),
+(7, 77, 127, 262, 181, 212),
+(7, 78, 129, 264, 183, 214),
+(7, 79, 130, 268, 186, 217),
+(7, 80, 133, 273, 189, 221),
+(7, 81, 139, 284, 197, 230),
+(7, 82, 144, 295, 204, 239),
+(7, 83, 147, 301, 209, 244),
+(7, 84, 148, 304, 210, 246),
+(7, 85, 149, 306, 212, 248),
+(7, 86, 154, 317, 220, 257),
+(7, 87, 160, 328, 227, 266),
+(7, 88, 165, 339, 235, 275),
+(7, 89, 171, 350, 243, 284),
+(7, 90, 176, 361, 250, 293),
+(7, 91, 241, 363, 300, 363),
+(7, 92, 285, 363, 300, 363),
+(7, 93, 333, 363, 300, 363),
+(7, 94, 363, 363, 300, 363),
+(7, 95, 363, 363, 300, 363),
+(7, 96, 363, 363, 300, 363),
+(7, 97, 363, 363, 300, 363),
+(7, 98, 363, 363, 300, 363),
+(7, 99, 363, 363, 300, 363),
+(7, 100, 363, 363, 300, 363),
+(7, 101, 363, 363, 300, 363),
+(7, 102, 363, 363, 300, 363),
+(7, 103, 363, 363, 300, 363),
+(7, 104, 363, 363, 300, 363),
+(7, 105, 363, 363, 300, 363),
+(7, 106, 363, 363, 300, 363),
+(7, 107, 363, 363, 300, 363),
+(7, 108, 363, 363, 300, 363),
+(7, 109, 363, 363, 300, 363),
+(7, 110, 363, 363, 300, 363),
+(7, 111, 536, 536, 464, 536),
+(7, 112, 623, 623, 552, 623),
+(7, 113, 631, 709, 631, 709),
+(7, 114, 631, 793, 692, 793),
+(7, 115, 631, 871, 727, 871),
+(7, 116, 631, 956, 749, 956),
+(7, 117, 631, 1020, 755, 1020),
+(7, 118, 631, 1089, 756, 1089),
+(7, 119, 631, 1173, 763, 1173),
+(7, 120, 631, 1467, 1001, 1467),
+(8, 1, 8, 10, 11, 12),
+(8, 2, 8, 12, 12, 13),
+(8, 3, 9, 12, 12, 14),
+(8, 4, 9, 13, 13, 15),
+(8, 5, 9, 13, 13, 15),
+(8, 6, 9, 13, 13, 15),
+(8, 7, 10, 14, 14, 16),
+(8, 8, 11, 15, 15, 17),
+(8, 9, 12, 16, 16, 18),
+(8, 10, 12, 17, 17, 19),
+(8, 11, 13, 18, 18, 21),
+(8, 12, 15, 20, 20, 23),
+(8, 13, 16, 21, 22, 25),
+(8, 14, 17, 24, 24, 27),
+(8, 15, 18, 25, 25, 29),
+(8, 16, 20, 27, 27, 31),
+(8, 17, 21, 28, 29, 33),
+(8, 18, 23, 31, 31, 36),
+(8, 19, 24, 33, 33, 38),
+(8, 20, 25, 35, 35, 40),
+(8, 21, 26, 36, 36, 42),
+(8, 22, 28, 39, 39, 45),
+(8, 23, 29, 40, 41, 47),
+(8, 24, 31, 43, 43, 50),
+(8, 25, 32, 45, 45, 52),
+(8, 26, 34, 46, 47, 54),
+(8, 27, 35, 48, 48, 56),
+(8, 28, 37, 51, 51, 59),
+(8, 29, 38, 53, 53, 61),
+(8, 30, 39, 54, 54, 63),
+(8, 31, 40, 56, 56, 65),
+(8, 32, 42, 57, 58, 67),
+(8, 33, 43, 60, 59, 69),
+(8, 34, 45, 62, 63, 73),
+(8, 35, 47, 64, 64, 75),
+(8, 36, 48, 66, 66, 77),
+(8, 37, 49, 68, 68, 79),
+(8, 38, 51, 69, 70, 81),
+(8, 39, 52, 71, 71, 83),
+(8, 40, 54, 73, 74, 86),
+(8, 41, 55, 75, 76, 88),
+(8, 42, 56, 77, 77, 90),
+(8, 43, 57, 79, 79, 92),
+(8, 44, 59, 80, 81, 94),
+(8, 45, 61, 83, 83, 97),
+(8, 46, 62, 86, 86, 100),
+(8, 47, 64, 87, 88, 102),
+(8, 48, 65, 89, 89, 104),
+(8, 49, 66, 91, 91, 106),
+(8, 50, 67, 93, 93, 108),
+(8, 51, 69, 94, 94, 110),
+(8, 52, 70, 97, 97, 113),
+(8, 53, 72, 98, 99, 115),
+(8, 54, 73, 100, 100, 117),
+(8, 55, 74, 102, 102, 119),
+(8, 56, 76, 105, 105, 122),
+(8, 57, 77, 106, 106, 124),
+(8, 58, 78, 108, 108, 126),
+(8, 59, 80, 109, 110, 128),
+(8, 60, 81, 112, 112, 131),
+(8, 61, 87, 120, 120, 140),
+(8, 62, 93, 127, 128, 149),
+(8, 63, 98, 135, 135, 158),
+(8, 64, 100, 137, 137, 160),
+(8, 65, 101, 139, 140, 163),
+(8, 66, 103, 141, 141, 165),
+(8, 67, 104, 143, 143, 167),
+(8, 68, 105, 145, 145, 169),
+(8, 69, 106, 146, 146, 171),
+(8, 70, 112, 154, 154, 180),
+(8, 71, 115, 158, 158, 185),
+(8, 72, 121, 166, 166, 194),
+(8, 73, 126, 174, 174, 203),
+(8, 74, 128, 175, 175, 205),
+(8, 75, 129, 177, 177, 207),
+(8, 76, 130, 179, 179, 209),
+(8, 77, 132, 181, 181, 212),
+(8, 78, 133, 183, 183, 214),
+(8, 79, 135, 186, 186, 217),
+(8, 80, 138, 189, 189, 221),
+(8, 81, 143, 197, 197, 230),
+(8, 82, 149, 204, 204, 239),
+(8, 83, 152, 208, 209, 244),
+(8, 84, 153, 211, 210, 246),
+(8, 85, 154, 212, 212, 248),
+(8, 86, 160, 220, 220, 257),
+(8, 87, 166, 227, 227, 266),
+(8, 88, 171, 235, 235, 275),
+(8, 89, 177, 242, 243, 284),
+(8, 90, 182, 250, 250, 293),
+(8, 91, 249, 343, 300, 363),
+(8, 92, 295, 363, 300, 363),
+(8, 93, 345, 363, 300, 363),
+(8, 94, 363, 363, 300, 363),
+(8, 95, 363, 363, 300, 363),
+(8, 96, 363, 363, 300, 363),
+(8, 97, 363, 363, 300, 363),
+(8, 98, 363, 363, 300, 363),
+(8, 99, 363, 363, 300, 363),
+(8, 100, 363, 363, 300, 363),
+(8, 101, 363, 363, 300, 363),
+(8, 102, 363, 363, 300, 363),
+(8, 103, 363, 363, 300, 363),
+(8, 104, 363, 363, 300, 363),
+(8, 105, 363, 363, 300, 363),
+(8, 106, 363, 363, 300, 363),
+(8, 107, 363, 363, 300, 363),
+(8, 108, 363, 363, 300, 363),
+(8, 109, 363, 363, 300, 363),
+(8, 110, 363, 363, 300, 363),
+(8, 111, 536, 536, 464, 536),
+(8, 112, 623, 623, 552, 623),
+(8, 113, 646, 709, 631, 709),
+(8, 114, 646, 793, 692, 793),
+(8, 115, 646, 871, 727, 871),
+(8, 116, 646, 956, 749, 956),
+(8, 117, 646, 998, 755, 1020),
+(8, 118, 646, 998, 756, 1089),
+(8, 119, 646, 998, 763, 1173),
+(8, 120, 646, 998, 1001, 1467),
+(9, 1, 6, 12, 11, 12),
+(9, 2, 7, 13, 12, 13),
+(9, 3, 8, 14, 12, 14),
+(9, 4, 8, 15, 13, 15),
+(9, 5, 8, 15, 13, 15),
+(9, 6, 8, 15, 13, 15),
+(9, 7, 9, 15, 14, 16),
+(9, 8, 9, 16, 15, 17),
+(9, 9, 10, 18, 16, 18),
+(9, 10, 10, 18, 17, 19),
+(9, 11, 11, 20, 18, 21),
+(9, 12, 13, 22, 20, 23),
+(9, 13, 13, 24, 22, 25),
+(9, 14, 14, 26, 24, 27),
+(9, 15, 16, 28, 25, 29),
+(9, 16, 17, 30, 27, 31),
+(9, 17, 18, 31, 29, 33),
+(9, 18, 19, 35, 31, 36),
+(9, 19, 20, 36, 33, 38),
+(9, 20, 21, 38, 35, 40),
+(9, 21, 22, 40, 36, 42),
+(9, 22, 24, 43, 39, 45),
+(9, 23, 25, 45, 41, 47),
+(9, 24, 27, 48, 43, 50),
+(9, 25, 28, 50, 45, 52),
+(9, 26, 29, 51, 47, 54),
+(9, 27, 30, 53, 48, 56),
+(9, 28, 31, 56, 51, 59),
+(9, 29, 33, 58, 53, 61),
+(9, 30, 33, 60, 54, 63),
+(9, 31, 34, 62, 56, 65),
+(9, 32, 36, 64, 58, 67),
+(9, 33, 37, 66, 59, 69),
+(9, 34, 39, 69, 63, 73),
+(9, 35, 40, 71, 64, 75),
+(9, 36, 41, 73, 66, 77),
+(9, 37, 42, 75, 68, 79),
+(9, 38, 43, 77, 70, 81),
+(9, 39, 44, 79, 71, 83),
+(9, 40, 46, 81, 74, 86),
+(9, 41, 47, 84, 76, 88),
+(9, 42, 48, 85, 77, 90),
+(9, 43, 49, 87, 79, 92),
+(9, 44, 50, 89, 81, 94),
+(9, 45, 52, 92, 83, 97),
+(9, 46, 53, 95, 86, 100),
+(9, 47, 54, 97, 88, 102),
+(9, 48, 55, 99, 89, 104),
+(9, 49, 56, 101, 91, 106),
+(9, 50, 57, 103, 93, 108),
+(9, 51, 58, 104, 94, 110),
+(9, 52, 60, 107, 97, 113),
+(9, 53, 61, 109, 99, 115),
+(9, 54, 62, 111, 100, 117),
+(9, 55, 63, 113, 102, 119),
+(9, 56, 65, 116, 105, 122),
+(9, 57, 66, 117, 106, 124),
+(9, 58, 67, 120, 108, 126),
+(9, 59, 68, 121, 110, 128),
+(9, 60, 69, 124, 112, 131),
+(9, 61, 74, 133, 120, 140),
+(9, 62, 79, 141, 128, 149),
+(9, 63, 84, 150, 135, 158),
+(9, 64, 85, 152, 137, 160),
+(9, 65, 86, 154, 140, 163),
+(9, 66, 88, 157, 141, 165),
+(9, 67, 89, 158, 143, 167),
+(9, 68, 89, 160, 145, 169),
+(9, 69, 91, 162, 146, 171),
+(9, 70, 96, 170, 154, 180),
+(9, 71, 98, 175, 158, 185),
+(9, 72, 103, 184, 166, 194),
+(9, 73, 108, 193, 174, 203),
+(9, 74, 109, 194, 175, 205),
+(9, 75, 110, 196, 177, 207),
+(9, 76, 111, 198, 179, 209),
+(9, 77, 112, 201, 181, 212),
+(9, 78, 113, 203, 183, 214),
+(9, 79, 115, 206, 186, 217),
+(9, 80, 117, 209, 189, 221),
+(9, 81, 122, 218, 197, 230),
+(9, 82, 127, 226, 204, 239),
+(9, 83, 129, 231, 209, 244),
+(9, 84, 130, 233, 210, 246),
+(9, 85, 132, 235, 212, 248),
+(9, 86, 136, 243, 220, 257),
+(9, 87, 141, 252, 227, 266),
+(9, 88, 146, 260, 235, 275),
+(9, 89, 150, 269, 243, 284),
+(9, 90, 155, 277, 250, 293),
+(9, 91, 212, 363, 300, 363),
+(9, 92, 251, 363, 300, 363),
+(9, 93, 294, 363, 300, 363),
+(9, 94, 344, 363, 300, 363),
+(9, 95, 363, 363, 300, 363),
+(9, 96, 363, 363, 300, 363),
+(9, 97, 363, 363, 300, 363),
+(9, 98, 363, 363, 300, 363),
+(9, 99, 363, 363, 300, 363),
+(9, 100, 363, 363, 300, 363),
+(9, 101, 363, 363, 300, 363),
+(9, 102, 363, 363, 300, 363),
+(9, 103, 363, 363, 300, 363),
+(9, 104, 363, 363, 300, 363),
+(9, 105, 363, 363, 300, 363),
+(9, 106, 363, 363, 300, 363),
+(9, 107, 363, 363, 300, 363),
+(9, 108, 363, 363, 300, 363),
+(9, 109, 363, 363, 300, 363),
+(9, 110, 363, 363, 300, 363),
+(9, 111, 536, 536, 464, 536),
+(9, 112, 557, 623, 552, 623),
+(9, 113, 557, 709, 631, 709),
+(9, 114, 557, 793, 692, 793),
+(9, 115, 557, 871, 727, 871),
+(9, 116, 557, 956, 749, 956),
+(9, 117, 557, 1020, 755, 1020),
+(9, 118, 557, 1089, 756, 1089),
+(9, 119, 557, 1130, 763, 1173),
+(9, 120, 557, 1130, 1001, 1467),
+(10, 1, 17, 17, 6, 17),
+(10, 2, 19, 19, 18, 19),
+(10, 3, 21, 21, 20, 21),
+(10, 4, 22, 22, 21, 22),
+(10, 5, 24, 24, 23, 24),
+(10, 6, 25, 25, 25, 25),
+(10, 7, 26, 26, 26, 26),
+(10, 8, 27, 27, 28, 27),
+(10, 9, 28, 28, 30, 28),
+(10, 10, 29, 29, 31, 38),
+(10, 11, 32, 32, 33, 40),
+(10, 12, 36, 36, 35, 42),
+(10, 13, 40, 40, 36, 44),
+(10, 14, 44, 44, 38, 46),
+(10, 15, 49, 49, 40, 48),
+(10, 16, 51, 51, 41, 50),
+(10, 17, 53, 53, 43, 52),
+(10, 18, 55, 55, 45, 54),
+(10, 19, 57, 57, 46, 56),
+(10, 20, 59, 59, 48, 58),
+(10, 21, 59, 60, 50, 60),
+(10, 22, 59, 62, 51, 62),
+(10, 23, 59, 64, 53, 64),
+(10, 24, 59, 66, 55, 66),
+(10, 25, 59, 68, 56, 68),
+(10, 26, 59, 70, 58, 70),
+(10, 27, 59, 72, 59, 72),
+(10, 28, 59, 74, 61, 74),
+(10, 29, 59, 76, 63, 76),
+(10, 30, 59, 78, 64, 78),
+(10, 31, 59, 80, 66, 80),
+(10, 32, 59, 82, 67, 82),
+(10, 33, 59, 84, 69, 84),
+(10, 34, 59, 86, 71, 86),
+(10, 35, 59, 88, 73, 88),
+(10, 36, 59, 90, 74, 90),
+(10, 37, 59, 92, 76, 92),
+(10, 38, 59, 94, 78, 94),
+(10, 39, 59, 96, 79, 96),
+(10, 40, 59, 98, 81, 97),
+(10, 41, 59, 100, 83, 97),
+(10, 42, 59, 102, 83, 97),
+(10, 43, 59, 104, 83, 97),
+(10, 44, 59, 106, 83, 97),
+(10, 45, 59, 120, 83, 97),
+(10, 46, 60, 124, 86, 100),
+(10, 47, 62, 126, 88, 102),
+(10, 48, 63, 129, 89, 104),
+(10, 49, 64, 131, 91, 106),
+(10, 50, 65, 134, 93, 108),
+(10, 51, 66, 136, 94, 110),
+(10, 52, 68, 140, 97, 113),
+(10, 53, 69, 142, 99, 115),
+(10, 54, 71, 145, 100, 117),
+(10, 55, 72, 147, 102, 119),
+(10, 56, 74, 151, 105, 122),
+(10, 57, 75, 153, 106, 124),
+(10, 58, 76, 156, 108, 126),
+(10, 59, 77, 158, 110, 128),
+(10, 60, 79, 162, 112, 131),
+(10, 61, 84, 173, 120, 140),
+(10, 62, 90, 184, 128, 149),
+(10, 63, 95, 195, 135, 158),
+(10, 64, 96, 198, 137, 160),
+(10, 65, 98, 201, 140, 163),
+(10, 66, 99, 204, 141, 165),
+(10, 67, 101, 206, 143, 167),
+(10, 68, 102, 209, 145, 169),
+(10, 69, 103, 211, 146, 171),
+(10, 70, 108, 222, 154, 180),
+(10, 71, 111, 228, 158, 185),
+(10, 72, 117, 240, 166, 194),
+(10, 73, 122, 251, 174, 203),
+(10, 74, 124, 253, 175, 205),
+(10, 75, 124, 256, 177, 207),
+(10, 76, 126, 258, 179, 209),
+(10, 77, 127, 262, 181, 212),
+(10, 78, 129, 264, 183, 214),
+(10, 79, 130, 268, 186, 217),
+(10, 80, 133, 273, 189, 221),
+(10, 81, 139, 284, 197, 230),
+(10, 82, 144, 295, 204, 239),
+(10, 83, 147, 301, 209, 244),
+(10, 84, 148, 304, 210, 246),
+(10, 85, 149, 306, 212, 248),
+(10, 86, 154, 317, 220, 257),
+(10, 87, 160, 328, 227, 266),
+(10, 88, 165, 339, 235, 275),
+(10, 89, 171, 350, 243, 284),
+(10, 90, 176, 361, 250, 293),
+(10, 91, 241, 363, 300, 363),
+(10, 92, 285, 363, 300, 363),
+(10, 93, 333, 363, 300, 363),
+(10, 94, 363, 363, 300, 363),
+(10, 95, 363, 363, 300, 363),
+(10, 96, 363, 363, 300, 363),
+(10, 97, 363, 363, 300, 363),
+(10, 98, 363, 363, 300, 363),
+(10, 99, 363, 363, 300, 363),
+(10, 100, 363, 363, 300, 363),
+(10, 101, 363, 363, 300, 363),
+(10, 102, 363, 363, 300, 363),
+(10, 103, 363, 363, 300, 363),
+(10, 104, 363, 363, 300, 363),
+(10, 105, 363, 363, 300, 363),
+(10, 106, 363, 363, 300, 363),
+(10, 107, 363, 363, 300, 363),
+(10, 108, 363, 363, 300, 363),
+(10, 109, 363, 363, 300, 363),
+(10, 110, 363, 363, 300, 363),
+(10, 111, 536, 536, 464, 536),
+(10, 112, 623, 623, 552, 623),
+(10, 113, 631, 709, 631, 709),
+(10, 114, 631, 793, 692, 793),
+(10, 115, 631, 871, 727, 871),
+(10, 116, 631, 956, 749, 956),
+(10, 117, 631, 1020, 755, 1020),
+(10, 118, 631, 1089, 756, 1089),
+(10, 119, 631, 1173, 763, 1173),
+(10, 120, 631, 1467, 1001, 1467),
+(11, 1, 7, 15, 11, 12),
+(11, 2, 8, 17, 12, 13),
+(11, 3, 9, 18, 12, 14),
+(11, 4, 9, 19, 13, 15),
+(11, 5, 9, 19, 13, 15),
+(11, 6, 9, 19, 13, 15),
+(11, 7, 10, 20, 14, 16),
+(11, 8, 10, 21, 15, 17),
+(11, 9, 11, 23, 16, 18),
+(11, 10, 12, 24, 17, 19),
+(11, 11, 13, 26, 18, 21),
+(11, 12, 14, 29, 20, 23),
+(11, 13, 15, 31, 22, 25),
+(11, 14, 16, 34, 24, 27),
+(11, 15, 18, 36, 25, 29),
+(11, 16, 19, 39, 27, 31),
+(11, 17, 20, 41, 29, 33),
+(11, 18, 22, 45, 31, 36),
+(11, 19, 23, 47, 33, 38),
+(11, 20, 24, 50, 35, 40),
+(11, 21, 25, 52, 36, 42),
+(11, 22, 27, 56, 39, 45),
+(11, 23, 28, 58, 41, 47),
+(11, 24, 30, 62, 43, 50),
+(11, 25, 31, 65, 45, 52),
+(11, 26, 33, 67, 47, 54),
+(11, 27, 34, 69, 48, 56),
+(11, 28, 36, 73, 51, 59),
+(11, 29, 37, 76, 53, 61),
+(11, 30, 38, 78, 54, 63),
+(11, 31, 39, 81, 56, 65),
+(11, 32, 40, 83, 58, 67),
+(11, 33, 42, 86, 59, 69),
+(11, 34, 44, 90, 63, 73),
+(11, 35, 45, 93, 64, 75),
+(11, 36, 46, 95, 66, 77),
+(11, 37, 48, 98, 68, 79),
+(11, 38, 49, 100, 70, 81),
+(11, 39, 50, 103, 71, 83),
+(11, 40, 52, 106, 74, 86),
+(11, 41, 53, 109, 76, 88),
+(11, 42, 54, 111, 77, 90),
+(11, 43, 56, 114, 79, 92),
+(11, 44, 57, 116, 81, 94),
+(11, 45, 59, 120, 83, 97),
+(11, 46, 60, 124, 86, 100),
+(11, 47, 62, 126, 88, 102),
+(11, 48, 63, 129, 89, 104),
+(11, 49, 64, 131, 91, 106),
+(11, 50, 65, 134, 93, 108),
+(11, 51, 66, 136, 94, 110),
+(11, 52, 68, 140, 97, 113),
+(11, 53, 69, 142, 99, 115),
+(11, 54, 71, 145, 100, 117),
+(11, 55, 72, 147, 102, 119),
+(11, 56, 74, 151, 105, 122),
+(11, 57, 75, 153, 106, 124),
+(11, 58, 76, 156, 108, 126),
+(11, 59, 77, 158, 110, 128),
+(11, 60, 79, 162, 112, 131),
+(11, 61, 84, 173, 120, 140),
+(11, 62, 90, 184, 128, 149),
+(11, 63, 95, 195, 135, 158),
+(11, 64, 96, 198, 137, 160),
+(11, 65, 98, 201, 140, 163),
+(11, 66, 99, 204, 141, 165),
+(11, 67, 101, 206, 143, 167),
+(11, 68, 102, 209, 145, 169),
+(11, 69, 103, 211, 146, 171),
+(11, 70, 108, 222, 154, 180),
+(11, 71, 111, 228, 158, 185),
+(11, 72, 117, 240, 166, 194),
+(11, 73, 122, 251, 174, 203),
+(11, 74, 124, 253, 175, 205),
+(11, 75, 124, 256, 177, 207),
+(11, 76, 126, 258, 179, 209),
+(11, 77, 127, 262, 181, 212),
+(11, 78, 129, 264, 183, 214),
+(11, 79, 130, 268, 186, 217),
+(11, 80, 133, 273, 189, 221),
+(11, 81, 139, 284, 197, 230),
+(11, 82, 144, 295, 204, 239),
+(11, 83, 147, 301, 209, 244),
+(11, 84, 148, 304, 210, 246),
+(11, 85, 149, 306, 212, 248),
+(11, 86, 154, 317, 220, 257),
+(11, 87, 160, 328, 227, 266),
+(11, 88, 165, 339, 235, 275),
+(11, 89, 171, 350, 243, 284),
+(11, 90, 176, 361, 250, 293),
+(11, 91, 241, 363, 300, 363),
+(11, 92, 285, 363, 300, 363),
+(11, 93, 333, 363, 300, 363),
+(11, 94, 363, 363, 300, 363),
+(11, 95, 363, 363, 300, 363),
+(11, 96, 363, 363, 300, 363),
+(11, 97, 363, 363, 300, 363),
+(11, 98, 363, 363, 300, 363),
+(11, 99, 363, 363, 300, 363),
+(11, 100, 363, 363, 300, 363),
+(11, 101, 363, 363, 300, 363),
+(11, 102, 363, 363, 300, 363),
+(11, 103, 363, 363, 300, 363),
+(11, 104, 363, 363, 300, 363),
+(11, 105, 363, 363, 300, 363),
+(11, 106, 363, 363, 300, 363),
+(11, 107, 363, 363, 300, 363),
+(11, 108, 363, 363, 300, 363),
+(11, 109, 363, 363, 300, 363),
+(11, 110, 363, 363, 300, 363),
+(11, 111, 536, 536, 464, 536),
+(11, 112, 623, 623, 552, 623),
+(11, 113, 631, 709, 631, 709),
+(11, 114, 631, 793, 692, 793),
+(11, 115, 631, 871, 727, 871),
+(11, 116, 631, 956, 749, 956),
+(11, 117, 631, 1020, 755, 1020),
+(11, 118, 631, 1089, 756, 1089),
+(11, 119, 631, 1173, 763, 1173),
+(11, 120, 631, 1467, 1001, 1467),
+(12, 1, 14, 15, 11, 8),
+(12, 2, 16, 17, 12, 9),
+(12, 3, 17, 18, 12, 10),
+(12, 4, 17, 19, 13, 10),
+(12, 5, 17, 19, 13, 10),
+(12, 6, 17, 19, 13, 10),
+(12, 7, 19, 20, 14, 11),
+(12, 8, 20, 21, 15, 12),
+(12, 9, 22, 23, 16, 12),
+(12, 10, 22, 24, 17, 13),
+(12, 11, 25, 26, 18, 14),
+(12, 12, 27, 29, 20, 16),
+(12, 13, 29, 31, 22, 17),
+(12, 14, 31, 34, 24, 18),
+(12, 15, 34, 36, 25, 20),
+(12, 16, 36, 39, 27, 21),
+(12, 17, 39, 41, 29, 23),
+(12, 18, 42, 45, 31, 25),
+(12, 19, 45, 47, 33, 26),
+(12, 20, 46, 50, 35, 27),
+(12, 21, 49, 52, 36, 29),
+(12, 22, 52, 56, 39, 31),
+(12, 23, 55, 58, 41, 32),
+(12, 24, 58, 62, 43, 34),
+(12, 25, 61, 65, 45, 35),
+(12, 26, 63, 67, 47, 37),
+(12, 27, 65, 69, 48, 38),
+(12, 28, 69, 73, 51, 40),
+(12, 29, 71, 76, 53, 42),
+(12, 30, 73, 78, 54, 43),
+(12, 31, 75, 81, 56, 44),
+(12, 32, 78, 83, 58, 46),
+(12, 33, 80, 86, 59, 47),
+(12, 34, 85, 90, 63, 50),
+(12, 35, 87, 93, 64, 51),
+(12, 36, 90, 95, 66, 53),
+(12, 37, 92, 98, 68, 54),
+(12, 38, 94, 100, 70, 55),
+(12, 39, 96, 103, 71, 57),
+(12, 40, 100, 106, 74, 59),
+(12, 41, 102, 109, 76, 60),
+(12, 42, 104, 111, 77, 61),
+(12, 43, 107, 114, 79, 63),
+(12, 44, 109, 116, 81, 64),
+(12, 45, 113, 120, 83, 66),
+(12, 46, 116, 124, 86, 68),
+(12, 47, 119, 126, 88, 70),
+(12, 48, 121, 129, 89, 71),
+(12, 49, 123, 131, 91, 72),
+(12, 50, 125, 134, 93, 74),
+(12, 51, 128, 136, 94, 75),
+(12, 52, 131, 140, 97, 77),
+(12, 53, 133, 142, 99, 78),
+(12, 54, 136, 145, 100, 80),
+(12, 55, 138, 147, 102, 81),
+(12, 56, 142, 151, 105, 83),
+(12, 57, 144, 153, 106, 85),
+(12, 58, 146, 156, 108, 86),
+(12, 59, 148, 158, 110, 87),
+(12, 60, 152, 162, 112, 89),
+(12, 61, 162, 173, 120, 96),
+(12, 62, 172, 184, 128, 102),
+(12, 63, 183, 195, 135, 108),
+(12, 64, 186, 198, 137, 109),
+(12, 65, 189, 201, 140, 111),
+(12, 66, 191, 204, 141, 113),
+(12, 67, 194, 206, 143, 114),
+(12, 68, 196, 209, 145, 115),
+(12, 69, 198, 211, 146, 117),
+(12, 70, 209, 222, 154, 123),
+(12, 71, 215, 228, 158, 126),
+(12, 72, 225, 240, 166, 132),
+(12, 73, 235, 251, 174, 139),
+(12, 74, 238, 253, 175, 140),
+(12, 75, 240, 256, 177, 141),
+(12, 76, 242, 258, 179, 143),
+(12, 77, 245, 262, 181, 145),
+(12, 78, 248, 264, 183, 146),
+(12, 79, 251, 268, 186, 148),
+(12, 80, 256, 273, 189, 151),
+(12, 81, 267, 284, 197, 157),
+(12, 82, 277, 295, 204, 163),
+(12, 83, 283, 301, 209, 167),
+(12, 84, 285, 304, 210, 168),
+(12, 85, 288, 306, 212, 169),
+(12, 86, 298, 317, 220, 175),
+(12, 87, 308, 328, 227, 182),
+(12, 88, 318, 339, 235, 188),
+(12, 89, 329, 350, 243, 194),
+(12, 90, 339, 361, 250, 200),
+(12, 91, 363, 363, 264, 274),
+(12, 92, 363, 363, 264, 324),
+(12, 93, 363, 363, 264, 363),
+(12, 94, 363, 363, 264, 363),
+(12, 95, 363, 363, 264, 363),
+(12, 96, 363, 363, 264, 363),
+(12, 97, 363, 363, 264, 363),
+(12, 98, 363, 363, 264, 363),
+(12, 99, 363, 363, 264, 363),
+(12, 100, 363, 363, 264, 363),
+(12, 101, 363, 363, 264, 363),
+(12, 102, 363, 363, 264, 363),
+(12, 103, 363, 363, 264, 363),
+(12, 104, 363, 363, 264, 363),
+(12, 105, 363, 363, 264, 363),
+(12, 106, 363, 363, 264, 363),
+(12, 107, 363, 363, 264, 363),
+(12, 108, 363, 363, 264, 363),
+(12, 109, 363, 363, 264, 363),
+(12, 110, 363, 363, 264, 363),
+(12, 111, 536, 536, 464, 536),
+(12, 112, 623, 623, 552, 623),
+(12, 113, 709, 709, 631, 709),
+(12, 114, 793, 793, 692, 793),
+(12, 115, 871, 871, 727, 871),
+(12, 116, 956, 956, 749, 956),
+(12, 117, 1020, 1020, 755, 998),
+(12, 118, 1089, 1089, 756, 998),
+(12, 119, 1173, 1173, 763, 998),
+(12, 120, 1218, 1467, 1001, 998);
+
+
+CREATE TABLE `player_racestats` (
+ `race` TINYINT(3) UNSIGNED NOT NULL,
+ `str` SMALLINT(6) SIGNED NOT NULL COMMENT 'strength',
+ `agi` SMALLINT(6) SIGNED NOT NULL COMMENT 'agility',
+ `sta` SMALLINT(6) SIGNED NOT NULL COMMENT 'stamina',
+ `inte` SMALLINT(6) SIGNED NOT NULL COMMENT 'intellect',
+ PRIMARY KEY (`race`)
+)
+COMMENT='Stores race stats.'
+COLLATE='utf8_general_ci'
+ENGINE=MyISAM
+;
+
+INSERT INTO `player_racestats` (`race`, `str`, `agi`, `sta`, `inte`) VALUES
+(1, 0, 0, 0, 0),
+(2, 3, -3, 1, -1),
+(3, 2, -2, 1, -1),
+(4, -2, 2, 0, 0),
+(5, 2, -1, 1, -2),
+(6, 2, -2, 2, -2),
+(7, -3, 1, -1, 3),
+(8, 1, 2, 0, -3),
+(9, -3, 1, -1, 3),
+(10, -3, 1, 0, 2),
+(11, 1, -3, 2, 0),
+(22, 2, 1, 0, -3),
+(24, 0, -2, 2, 0),
+(25, 0, -2, 2, 0),
+(26, 0, -2, 2, 0),
+(27, 0, -1, 1, 0),
+(28, 1, -2, 2, -1),
+(29, -3, 1, 0, 2),
+(30, -2, 1, -1, 2),
+(34, 0, 0, 0, 0),
+(36, 0, 0, 0, 0);
+
+
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index e26fe6308ee..bbe04f8c383 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3598,58 +3598,83 @@ void ObjectMgr::LoadPlayerInfo()
// Loading levels data (class/race dependent)
TC_LOG_INFO("server.loading", "Loading Player Create Level Stats Data...");
{
+ struct RaceStats
+ {
+ int16 StatModifier[MAX_STATS];
+ };
+
+ std::array<RaceStats, MAX_RACES> raceStatModifiers;
+
uint32 oldMSTime = getMSTime();
- // 0 1 2 3 4 5 6
- QueryResult result = WorldDatabase.Query("SELECT race, class, level, str, agi, sta, inte FROM player_levelstats");
+ QueryResult raceStatsResult = WorldDatabase.Query("SELECT race, str, agi, sta, inte FROM player_racestats");
- if (!result)
+ if (!raceStatsResult)
{
- TC_LOG_ERROR("server.loading", ">> Loaded 0 level stats definitions. DB table `player_levelstats` is empty.");
+ TC_LOG_ERROR("server.loading", ">> Loaded 0 race stats definitions. DB table `player_racestats` is empty.");
exit(1);
}
- uint32 count = 0;
-
do
{
- Field* fields = result->Fetch();
+ Field* fields = raceStatsResult->Fetch();
uint32 current_race = fields[0].GetUInt8();
if (current_race >= MAX_RACES)
{
- TC_LOG_ERROR("sql.sql", "Wrong race %u in `player_levelstats` table, ignoring.", current_race);
+ TC_LOG_ERROR("sql.sql", "Wrong race %u in `player_racestats` table, ignoring.", current_race);
continue;
}
- uint32 current_class = fields[1].GetUInt8();
+ for (uint32 i = 0; i < MAX_STATS; ++i)
+ raceStatModifiers[current_race].StatModifier[i] = fields[i + 1].GetInt16();
+
+ } while (raceStatsResult->NextRow());
+
+ // 0 1 2 3 4 5
+ QueryResult result = WorldDatabase.Query("SELECT class, level, str, agi, sta, inte FROM player_classlevelstats");
+
+ if (!result)
+ {
+ TC_LOG_ERROR("server.loading", ">> Loaded 0 level stats definitions. DB table `player_classlevelstats` is empty.");
+ exit(1);
+ }
+
+ uint32 count = 0;
+
+ do
+ {
+ Field* fields = result->Fetch();
+
+ uint32 current_class = fields[0].GetUInt8();
if (current_class >= MAX_CLASSES)
{
- TC_LOG_ERROR("sql.sql", "Wrong class %u in `player_levelstats` table, ignoring.", current_class);
+ TC_LOG_ERROR("sql.sql", "Wrong class %u in `player_classlevelstats` table, ignoring.", current_class);
continue;
}
- uint32 current_level = fields[2].GetUInt8();
+ uint32 current_level = fields[1].GetUInt8();
if (current_level > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
if (current_level > STRONG_MAX_LEVEL) // hardcoded level maximum
- TC_LOG_ERROR("sql.sql", "Wrong (> %u) level %u in `player_levelstats` table, ignoring.", STRONG_MAX_LEVEL, current_level);
+ TC_LOG_ERROR("sql.sql", "Wrong (> %u) level %u in `player_classlevelstats` table, ignoring.", STRONG_MAX_LEVEL, current_level);
else
- {
- TC_LOG_INFO("misc", "Unused (> MaxPlayerLevel in worldserver.conf) level %u in `player_levelstats` table, ignoring.", current_level);
- ++count; // make result loading percent "expected" correct in case disabled detail mode for example.
- }
+ TC_LOG_INFO("misc", "Unused (> MaxPlayerLevel in worldserver.conf) level %u in `player_classlevelstats` table, ignoring.", current_level);
+
continue;
}
- if (PlayerInfo* info = _playerInfo[current_race][current_class])
+ for (std::size_t race = 0; race < raceStatModifiers.size(); ++race)
{
- if (!info->levelInfo)
- info->levelInfo = new PlayerLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)];
+ if (PlayerInfo* info = _playerInfo[race][current_class])
+ {
+ if (!info->levelInfo)
+ info->levelInfo = new PlayerLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)];
- PlayerLevelInfo& levelInfo = info->levelInfo[current_level - 1];
- for (int i = 0; i < MAX_STATS; i++)
- levelInfo.stats[i] = fields[i + 3].GetUInt16();
+ PlayerLevelInfo& levelInfo = info->levelInfo[current_level - 1];
+ for (int i = 0; i < MAX_STATS; ++i)
+ levelInfo.stats[i] = fields[i + 2].GetUInt16() + raceStatModifiers[race].StatModifier[i];
+ }
}
++count;