aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/base/characters_database.sql4
-rw-r--r--sql/updates/characters/master/2018_10_10_00_characters.sql32
2 files changed, 34 insertions, 2 deletions
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql
index 3e07e87a99c..17bf37bc811 100644
--- a/sql/base/characters_database.sql
+++ b/sql/base/characters_database.sql
@@ -1734,7 +1734,6 @@ CREATE TABLE `characters` (
`deleteDate` int(10) unsigned DEFAULT NULL,
`honor` int(10) unsigned NOT NULL DEFAULT '0',
`honorLevel` int(10) unsigned NOT NULL DEFAULT '1',
- `prestigeLevel` int(10) unsigned NOT NULL DEFAULT '0',
`honorRestState` tinyint(3) unsigned NOT NULL DEFAULT '2',
`honorRestBonus` float NOT NULL DEFAULT '0',
`lastLoginBuild` int(10) unsigned NOT NULL DEFAULT '0',
@@ -3570,7 +3569,8 @@ INSERT INTO `updates` VALUES
('2018_04_28_00_characters.sql','CBD0FDC0F32DE3F456F7CE3D9CAD6933CD6A50F5','RELEASED','2018-04-28 12:44:09',0),
('2018_07_28_00_characters.sql','31F66AE7831251A8915625EC7F10FA138AB8B654','RELEASED','2018-07-28 18:30:19',0),
('2018_07_31_00_characters.sql','7DA8D4A4534520B23E6F5BBD5B8EE205B799C798','RELEASED','2018-07-31 20:54:39',0),
-('2018_09_18_00_characters.sql','7FE9641C93ED762597C08F1E9B6649C9EC2F0E47','RELEASED','2018-09-18 23:34:29',0);
+('2018_09_18_00_characters.sql','7FE9641C93ED762597C08F1E9B6649C9EC2F0E47','RELEASED','2018-09-18 23:34:29',0),
+('2018_10_10_00_characters.sql','C80B936AAD94C58A0F33382CED08CFB4E0B6AC34','RELEASED','2018-10-10 22:05:28',0);
/*!40000 ALTER TABLE `updates` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/sql/updates/characters/master/2018_10_10_00_characters.sql b/sql/updates/characters/master/2018_10_10_00_characters.sql
new file mode 100644
index 00000000000..6ccb47f47e3
--- /dev/null
+++ b/sql/updates/characters/master/2018_10_10_00_characters.sql
@@ -0,0 +1,32 @@
+DROP TABLE IF EXISTS `total_honor_at_honor_level`;
+CREATE TABLE `total_honor_at_honor_level` (
+ `HonorLevel` int(10) UNSIGNED NOT NULL,
+ `Prestige0` int(10) UNSIGNED NOT NULL,
+ `Prestige1` int(10) UNSIGNED NOT NULL,
+ PRIMARY KEY (`HonorLevel`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+INSERT INTO `total_honor_at_honor_level` VALUES
+(0,0,0),(1,350,800),(2,700,1600),(3,1050,2400),(4,1400,3200),
+(5,1750,4000),(6,2100,4800),(7,2450,5600),(8,2800,6400),(9,3150,7200),
+(10,3500,8000),(11,3900,8850),(12,4300,9700),(13,4700,10550),(14,5100,11400),
+(15,5500,12250),(16,5900,13100),(17,6300,13950),(18,6700,14800),(19,7100,15650),
+(20,7500,16500),(21,7950,17400),(22,8400,18300),(23,8850,19200),(24,9300,20100),
+(25,9750,21000),(26,10200,21900),(27,10650,22800),(28,11100,23700),(29,11550,24600),
+(30,12000,25500),(31,12500,26450),(32,13000,27400),(33,13500,28350),(34,14000,29300),
+(35,14500,30250),(36,15000,31200),(37,15500,32150),(38,16000,33100),(39,16500,34050),
+(40,17000,35000),(41,17550,36000),(42,18100,37000),(43,18650,38000),(44,19200,39000),
+(45,19750,40000),(46,20300,41000),(47,20850,42000),(48,21400,43000),(49,21950,44000);
+
+-- first compensate for prestige levels above first
+UPDATE `characters` SET `honor`=`honor`+44000*(`prestigeLevel`-1) WHERE `prestigeLevel`>0;
+-- compensate for honor levels in prestige for characters above first prestige
+UPDATE `characters` SET `honor`=`honor`+(SELECT th.`Prestige1` FROM `total_honor_at_honor_level` th WHERE th.`HonorLevel`=(`characters`.`honorLevel`-1)) WHERE `prestigeLevel`>0;
+-- compensate for honor levels in first prestige level
+UPDATE `characters` SET `honor`=`honor`+(SELECT th.`Prestige0` FROM `total_honor_at_honor_level` th WHERE th.`HonorLevel`=(`characters`.`honorLevel`-1)) WHERE `prestigeLevel`=0;
+
+-- reset honor levels, will be recalculated from refunded honor at first login (and grant achievements)
+UPDATE `characters` SET `honorLevel`=1;
+
+ALTER TABLE `characters` DROP `prestigeLevel`;
+DROP TABLE IF EXISTS `total_honor_at_honor_level`;