From 9f5ca0bf29f3dd123045af8761800730701888f1 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 3 Apr 2011 13:18:21 +0200 Subject: [PATCH] Core/DBC: Implemented achievement_dbc db table for filling in missing achievements and added sample data --- sql/base/world_database.sql | 32 +++++++++++++++++++ .../world/2011_04_03_07_achievement_dbc.sql | 31 ++++++++++++++++++ src/server/game/DataStores/DBCStores.cpp | 2 +- src/server/game/DataStores/DBCfmt.h | 2 ++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 sql/updates/world/2011_04_03_07_achievement_dbc.sql diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 2d17676e89..3fdec66100 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -75,6 +75,38 @@ LOCK TABLES `achievement_criteria_data` WRITE; /*!40000 ALTER TABLE `achievement_criteria_data` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `achievement_dbc` +-- + +DROP TABLE IF EXISTS `achievement_dbc`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `achievement_dbc` ( + `ID` int(10) unsigned NOT NULL, + `requiredFaction` int(11) NOT NULL DEFAULT '-1', + `mapID` int(11) NOT NULL DEFAULT '-1', + `points` int(10) unsigned NOT NULL DEFAULT '0', + `flags` int(10) unsigned NOT NULL DEFAULT '0', + `count` int(10) unsigned NOT NULL DEFAULT '0', + `refAchievement` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `achievement_dbc` +-- + +LOCK TABLES `achievement_dbc` WRITE; +/*!40000 ALTER TABLE `achievement_dbc` DISABLE KEYS */; +INSERT INTO `achievement_dbc` VALUES +(3696,-1,-1,0,2,1,0), -- Earned the right to represent a city in the Argent Tournament +(4788,-1,-1,0,2,1,0), -- Is exalted with The Aldor or has any of exalted rewards +(4789,-1,-1,0,2,1,0); -- Is exalted with The Scryers or has any of exalted rewards +/*!40000 ALTER TABLE `achievement_dbc` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `achievement_reward` -- diff --git a/sql/updates/world/2011_04_03_07_achievement_dbc.sql b/sql/updates/world/2011_04_03_07_achievement_dbc.sql new file mode 100644 index 0000000000..1f764a7545 --- /dev/null +++ b/sql/updates/world/2011_04_03_07_achievement_dbc.sql @@ -0,0 +1,31 @@ +-- +-- Table structure for table `achievement_dbc` +-- + +DROP TABLE IF EXISTS `achievement_dbc`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `achievement_dbc` ( + `ID` int(10) unsigned NOT NULL, + `requiredFaction` int(11) NOT NULL DEFAULT '-1', + `mapID` int(11) NOT NULL DEFAULT '-1', + `points` int(10) unsigned NOT NULL DEFAULT '0', + `flags` int(10) unsigned NOT NULL DEFAULT '0', + `count` int(10) unsigned NOT NULL DEFAULT '0', + `refAchievement` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `achievement_dbc` +-- + +LOCK TABLES `achievement_dbc` WRITE; +/*!40000 ALTER TABLE `achievement_dbc` DISABLE KEYS */; +INSERT INTO `achievement_dbc` VALUES +(3696,-1,-1,0,2,1,0), -- Earned the right to represent a city in the Argent Tournament +(4788,-1,-1,0,2,1,0), -- Is exalted with The Aldor or has any of exalted rewards +(4789,-1,-1,0,2,1,0); -- Is exalted with The Scryers or has any of exalted rewards +/*!40000 ALTER TABLE `achievement_dbc` ENABLE KEYS */; +UNLOCK TABLES; diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp index 07d0ec037e..00146a5606 100755 --- a/src/server/game/DataStores/DBCStores.cpp +++ b/src/server/game/DataStores/DBCStores.cpp @@ -268,7 +268,7 @@ void LoadDBCStores(const std::string& dataPath) } } - LoadDBC(availableDbcLocales,bad_dbc_files,sAchievementStore, dbcPath,"Achievement.dbc"); + LoadDBC(availableDbcLocales,bad_dbc_files,sAchievementStore, dbcPath,"Achievement.dbc", &CustomAchievementfmt, &CustomAchievementIndex); LoadDBC(availableDbcLocales,bad_dbc_files,sAchievementCriteriaStore, dbcPath,"Achievement_Criteria.dbc"); LoadDBC(availableDbcLocales,bad_dbc_files,sAreaTriggerStore, dbcPath,"AreaTrigger.dbc"); LoadDBC(availableDbcLocales,bad_dbc_files,sAreaGroupStore, dbcPath,"AreaGroup.dbc"); diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h index 89495b786d..335ad48bab 100755 --- a/src/server/game/DataStores/DBCfmt.h +++ b/src/server/game/DataStores/DBCfmt.h @@ -20,6 +20,8 @@ #define TRINITY_DBCSFRM_H const char Achievementfmt[]="niixssssssssssssssssxxxxxxxxxxxxxxxxxxiixixxxxxxxxxxxxxxxxxxii"; +const std::string CustomAchievementfmt="pppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapapaaaaaaaaaaaaaaaaaapp"; +const std::string CustomAchievementIndex = "ID"; const char AchievementCriteriafmt[]="niiiiiiiixxxxxxxxxxxxxxxxxiiiix"; const char AreaTableEntryfmt[]="iiinixxxxxissssssssssssssssxixxxxxxx"; const char AreaGroupEntryfmt[]="niiiiiii";