From 7237fe7f62cdd987eef7b89ad515502d87d7ef3f Mon Sep 17 00:00:00 2001 From: BThallid Date: Sun, 8 May 2011 01:54:38 +0400 Subject: [PATCH] [11436] Really save/load item 5/6 objectives counters in quest status. Signed-off-by: VladimirMangos --- sql/characters.sql | 4 +++- ...11436_01_characters_character_queststatus.sql | 6 ++++++ src/game/CharacterHandler.cpp | 2 +- src/game/Player.cpp | 16 +++++++++------- src/shared/revision_nr.h | 2 +- src/shared/revision_sql.h | 2 +- 6 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 sql/updates/11436_01_characters_character_queststatus.sql diff --git a/sql/characters.sql b/sql/characters.sql index d559b95da..df077652b 100644 --- a/sql/characters.sql +++ b/sql/characters.sql @@ -21,7 +21,7 @@ DROP TABLE IF EXISTS `character_db_version`; CREATE TABLE `character_db_version` ( - `required_11391_01_characters_auction` bit(1) default NULL + `required_11436_01_characters_character_queststatus` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Last applied sql update to DB'; -- @@ -692,6 +692,8 @@ CREATE TABLE `character_queststatus` ( `itemcount2` int(11) unsigned NOT NULL default '0', `itemcount3` int(11) unsigned NOT NULL default '0', `itemcount4` int(11) unsigned NOT NULL default '0', + `itemcount5` int(11) unsigned NOT NULL default '0', + `itemcount6` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`guid`,`quest`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System'; diff --git a/sql/updates/11436_01_characters_character_queststatus.sql b/sql/updates/11436_01_characters_character_queststatus.sql new file mode 100644 index 000000000..2c07f03f3 --- /dev/null +++ b/sql/updates/11436_01_characters_character_queststatus.sql @@ -0,0 +1,6 @@ +ALTER TABLE character_db_version CHANGE COLUMN required_11391_01_characters_auction required_11436_01_characters_character_queststatus bit; + +ALTER TABLE character_queststatus + ADD COLUMN itemcount5 int(11) unsigned NOT NULL default '0' AFTER itemcount4, + ADD COLUMN itemcount6 int(11) unsigned NOT NULL default '0' AFTER itemcount5; + diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp index 7875da3cb..37a03a671 100644 --- a/src/game/CharacterHandler.cpp +++ b/src/game/CharacterHandler.cpp @@ -77,7 +77,7 @@ bool LoginQueryHolder::Initialize() res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADBOUNDINSTANCES, "SELECT id, permanent, map, difficulty, resettime FROM character_instance LEFT JOIN instance ON instance = id WHERE guid = '%u'", m_guid.GetCounter()); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADAURAS, "SELECT caster_guid,item_guid,spell,stackcount,remaincharges,basepoints0,basepoints1,basepoints2,periodictime0,periodictime1,periodictime2,maxduration,remaintime,effIndexMask FROM character_aura WHERE guid = '%u'", m_guid.GetCounter()); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADSPELLS, "SELECT spell,active,disabled FROM character_spell WHERE guid = '%u'", m_guid.GetCounter()); - res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADQUESTSTATUS, "SELECT quest,status,rewarded,explored,timer,mobcount1,mobcount2,mobcount3,mobcount4,itemcount1,itemcount2,itemcount3,itemcount4 FROM character_queststatus WHERE guid = '%u'", m_guid.GetCounter()); + res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADQUESTSTATUS, "SELECT quest,status,rewarded,explored,timer,mobcount1,mobcount2,mobcount3,mobcount4,itemcount1,itemcount2,itemcount3,itemcount4,itemcount5,itemcount6 FROM character_queststatus WHERE guid = '%u'", m_guid.GetCounter()); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADDAILYQUESTSTATUS,"SELECT quest FROM character_queststatus_daily WHERE guid = '%u'", m_guid.GetCounter()); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADWEEKLYQUESTSTATUS,"SELECT quest FROM character_queststatus_weekly WHERE guid = '%u'", m_guid.GetCounter()); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADMONTHLYQUESTSTATUS,"SELECT quest FROM character_queststatus_monthly WHERE guid = '%u'", m_guid.GetCounter()); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index ebf0243e0..6fec6aa40 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -16393,8 +16393,8 @@ void Player::_LoadQuestStatus(QueryResult *result) uint32 slot = 0; - //// 0 1 2 3 4 5 6 7 8 9 10 11 12 - //QueryResult *result = CharacterDatabase.PQuery("SELECT quest, status, rewarded, explored, timer, mobcount1, mobcount2, mobcount3, mobcount4, itemcount1, itemcount2, itemcount3, itemcount4 FROM character_queststatus WHERE guid = '%u'", GetGUIDLow()); + //// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + //QueryResult *result = CharacterDatabase.PQuery("SELECT quest, status, rewarded, explored, timer, mobcount1, mobcount2, mobcount3, mobcount4, itemcount1, itemcount2, itemcount3, itemcount4, itemcount5, itemcount6 FROM character_queststatus WHERE guid = '%u'", GetGUIDLow()); if(result) { @@ -16444,6 +16444,8 @@ void Player::_LoadQuestStatus(QueryResult *result) questStatusData.m_itemcount[1] = fields[10].GetUInt32(); questStatusData.m_itemcount[2] = fields[11].GetUInt32(); questStatusData.m_itemcount[3] = fields[12].GetUInt32(); + questStatusData.m_itemcount[4] = fields[13].GetUInt32(); + questStatusData.m_itemcount[5] = fields[14].GetUInt32(); questStatusData.uState = QUEST_UNCHANGED; @@ -17640,8 +17642,8 @@ void Player::_SaveQuestStatus() { case QUEST_NEW : { - SqlStatement stmt = CharacterDatabase.CreateStatement(insertQuestStatus, "INSERT INTO character_queststatus (guid,quest,status,rewarded,explored,timer,mobcount1,mobcount2,mobcount3,mobcount4,itemcount1,itemcount2,itemcount3,itemcount4) " - "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); + SqlStatement stmt = CharacterDatabase.CreateStatement(insertQuestStatus, "INSERT INTO character_queststatus (guid,quest,status,rewarded,explored,timer,mobcount1,mobcount2,mobcount3,mobcount4,itemcount1,itemcount2,itemcount3,itemcount4,itemcount5,itemcount6) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); stmt.addUInt32(GetGUIDLow()); stmt.addUInt32(i->first); @@ -17651,7 +17653,7 @@ void Player::_SaveQuestStatus() stmt.addUInt64(uint64(i->second.m_timer / IN_MILLISECONDS+ sWorld.GetGameTime())); for (int k = 0; k < QUEST_OBJECTIVES_COUNT; ++k) stmt.addUInt32(i->second.m_creatureOrGOcount[k]); - for (int k = 0; k < QUEST_OBJECTIVES_COUNT; ++k) + for (int k = 0; k < QUEST_ITEM_OBJECTIVES_COUNT; ++k) stmt.addUInt32(i->second.m_itemcount[k]); stmt.Execute(); } @@ -17659,7 +17661,7 @@ void Player::_SaveQuestStatus() case QUEST_CHANGED : { SqlStatement stmt = CharacterDatabase.CreateStatement(updateQuestStatus, "UPDATE character_queststatus SET status = ?,rewarded = ?,explored = ?,timer = ?," - "mobcount1 = ?,mobcount2 = ?,mobcount3 = ?,mobcount4 = ?,itemcount1 = ?,itemcount2 = ?,itemcount3 = ?,itemcount4 = ? WHERE guid = ? AND quest = ?"); + "mobcount1 = ?,mobcount2 = ?,mobcount3 = ?,mobcount4 = ?,itemcount1 = ?,itemcount2 = ?,itemcount3 = ?,itemcount4 = ?,itemcount5 = ?,itemcount6 = ? WHERE guid = ? AND quest = ?"); stmt.addUInt8(i->second.m_status); stmt.addUInt8(i->second.m_rewarded); @@ -17667,7 +17669,7 @@ void Player::_SaveQuestStatus() stmt.addUInt64(uint64(i->second.m_timer / IN_MILLISECONDS + sWorld.GetGameTime())); for (int k = 0; k < QUEST_OBJECTIVES_COUNT; ++k) stmt.addUInt32(i->second.m_creatureOrGOcount[k]); - for (int k = 0; k < QUEST_OBJECTIVES_COUNT; ++k) + for (int k = 0; k < QUEST_ITEM_OBJECTIVES_COUNT; ++k) stmt.addUInt32(i->second.m_itemcount[k]); stmt.addUInt32(GetGUIDLow()); stmt.addUInt32(i->first); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 55adf2ebc..ccf80c1f0 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11435" + #define REVISION_NR "11436" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 91cda332d..6c3a4bfc3 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ - #define REVISION_DB_CHARACTERS "required_11391_01_characters_auction" + #define REVISION_DB_CHARACTERS "required_11436_01_characters_character_queststatus" #define REVISION_DB_MANGOS "required_11433_01_mangos_item_template" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__