diff options
| author | Shauren <shauren.trinity@gmail.com> | 2012-01-05 13:27:17 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2012-01-05 13:27:17 +0100 |
| commit | 01900b5829af7970eee2bea2efe6e74a7830a84d (patch) | |
| tree | a0110b7e81df404d8f06c2aac821c4a4e92282c9 /src/server/game/Entities/Player | |
| parent | fc987e9a2f948c7a68e352fe9a3024730e3ed839 (diff) | |
Core/Events
* Changed how quests are linked to events (no longer in Quest class)
* Added quest validation when loading game_event_seasonal_questrelation
* Renamed fields in new table to be consistent with game_event* tables
* Corrected db data (some entries had -1 as event id)
Diffstat (limited to 'src/server/game/Entities/Player')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d6a33c1c4e8..f2e7e60a3e3 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15449,9 +15449,13 @@ bool Player::SatisfyQuestSeasonal(Quest const* qInfo, bool /*msg*/) { if (!qInfo->IsSeasonal() || m_seasonalquests.empty()) return true; - if (m_seasonalquests.find(qInfo->GetSeasonalQuestEvent()) == m_seasonalquests.end()) return false; + + uint16 eventId = sGameEventMgr->GetEventIdForQuest(qInfo); + if (m_seasonalquests.find(eventId) == m_seasonalquests.end()) + return false; + // if not found in cooldown list - return m_seasonalquests[qInfo->GetSeasonalQuestEvent()].find(qInfo->GetQuestId()) == m_seasonalquests[qInfo->GetSeasonalQuestEvent()].end(); + return m_seasonalquests[eventId].find(qInfo->GetQuestId()) == m_seasonalquests[eventId].end(); } bool Player::GiveQuestSourceItem(Quest const* quest) @@ -19004,7 +19008,7 @@ void Player::_SaveSeasonalQuestStatus(SQLTransaction& trans) PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_SEASONAL_CHAR); stmt->setUInt32(0, GetGUIDLow()); trans->Append(stmt); - + for (SeasonalEventQuestMap::const_iterator iter = m_seasonalquests.begin(); iter != m_seasonalquests.end(); ++iter) { uint16 event_id = iter->first; @@ -22117,11 +22121,11 @@ void Player::SetWeeklyQuestStatus(uint32 quest_id) void Player::SetSeasonalQuestStatus(uint32 quest_id) { - Quest const* q = sObjectMgr->GetQuestTemplate(quest_id); - if (!q) + Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id); + if (!quest) return; - - m_seasonalquests[q->GetSeasonalQuestEvent()].insert(quest_id); + + m_seasonalquests[sGameEventMgr->GetEventIdForQuest(quest)].insert(quest_id); m_SeasonalQuestChanged = true; } |
