mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-26 03:42:37 +01:00
[8433] Implement proper store and use character specific account data.
* Base at TOM_RUS reseach save/load character specific account data in new table `character_account_data`
* Move its in sql update from `account_data` to new table.
* For client packets that can be send in loggined state or just after logout but assocualted
with recently logout character add new login status STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT
* Store low guid for loggedin player or recently logout into WorldSession.
Author: VladimirMangos, TOM_RUS
--HG--
branch : trunk
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
|
||||
DROP TABLE IF EXISTS `character_db_version`;
|
||||
CREATE TABLE `character_db_version` (
|
||||
`required_8409_01_characters_guild` bit(1) default NULL
|
||||
`required_8433_01_characters_character_account_data` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Last applied sql update to DB';
|
||||
|
||||
--
|
||||
@@ -347,6 +347,28 @@ LOCK TABLES `characters` WRITE;
|
||||
/*!40000 ALTER TABLE `characters` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `character_account_data`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `character_account_data`;
|
||||
CREATE TABLE `character_account_data` (
|
||||
`guid` int(11) unsigned NOT NULL default '0',
|
||||
`type` int(11) unsigned NOT NULL default '0',
|
||||
`time` bigint(11) unsigned NOT NULL default '0',
|
||||
`data` longtext NOT NULL,
|
||||
PRIMARY KEY (`guid`,`type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `character_account_data`
|
||||
--
|
||||
|
||||
LOCK TABLES `character_account_data` WRITE;
|
||||
/*!40000 ALTER TABLE `character_account_data` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `character_account_data` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `character_achievement`
|
||||
--
|
||||
|
||||
16
sql/updates/5532_8433_characters_character_account_data.sql
Normal file
16
sql/updates/5532_8433_characters_character_account_data.sql
Normal file
@@ -0,0 +1,16 @@
|
||||
-- ALTER TABLE character_db_version CHANGE COLUMN required_8409_01_characters_guild required_8433_01_characters_character_account_data bit;
|
||||
|
||||
DROP TABLE IF EXISTS `character_account_data`;
|
||||
CREATE TABLE `character_account_data` (
|
||||
`guid` int(11) unsigned NOT NULL default '0',
|
||||
`type` int(11) unsigned NOT NULL default '0',
|
||||
`time` bigint(11) unsigned NOT NULL default '0',
|
||||
`data` longtext NOT NULL,
|
||||
PRIMARY KEY (`guid`,`type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO character_account_data
|
||||
SELECT c.guid as guid, a.type as type, a.time as time, a.data as data
|
||||
FROM characters c LEFT JOIN account_data a ON c.account = a.account WHERE a.type IN (1, 3, 5, 6, 7);
|
||||
|
||||
DELETE FROM account_data WHERE type IN (1, 3, 5, 6, 7);
|
||||
Reference in New Issue
Block a user