diff options
author | megamage <none@none> | 2008-11-25 16:36:50 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-11-25 16:36:50 -0600 |
commit | f6ea784eda445794bf99ba2b9f97012ea4009f59 (patch) | |
tree | 97ed434b569dd1194854908cd3fe67a9129a5e8b /src/game/Player.cpp | |
parent | 52f2e35d65af17abfd9499232398bab338db78e1 (diff) |
*Update to Mangos 6848. Source: Mangos.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index c081d6cc8a4..6e51e368281 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -11936,7 +11936,7 @@ void Player::SendPreparedQuest( uint64 guid ) else if( status == DIALOG_STATUS_INCOMPLETE ) PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, false, true ); // Send completable on repeatable quest if player don't have quest - else if( pQuest->IsRepeatable() ) + else if( pQuest->IsRepeatable() && !pQuest->IsDaily() ) PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, CanCompleteRepeatableQuest(pQuest), true ); else PlayerTalkClass->SendQuestGiverQuestDetails( pQuest, guid, true ); @@ -12178,7 +12178,7 @@ bool Player::CanRewardQuest( Quest const *pQuest, bool msg ) if(!pQuest->IsAutoComplete() && GetQuestStatus(pQuest->GetQuestId()) != QUEST_STATUS_COMPLETE) return false; - // daily quest can't be rewarded (10 daily quest already completed) + // daily quest can't be rewarded (25 daily quest already completed) if(!SatisfyQuestDay(pQuest,true)) return false; @@ -12779,6 +12779,15 @@ bool Player::SatisfyQuestExclusiveGroup( Quest const* qInfo, bool msg ) if(exclude_Id == qInfo->GetQuestId()) continue; + // not allow have daily quest if daily quest from exclusive group already recently completed + Quest const* Nquest = objmgr.GetQuestTemplate(exclude_Id); + if( !SatisfyQuestDay(Nquest, false) ) + { + if( msg ) + SendCanTakeQuestResponse( INVALIDREASON_DONT_HAVE_REQ ); + return false; + } + QuestStatusMap::iterator i_exstatus = mQuestStatus.find( exclude_Id ); // alternative quest already started or completed @@ -14658,7 +14667,8 @@ void Player::_LoadQuestStatus(QueryResult *result) // add to quest log if( slot < MAX_QUEST_LOG_SIZE && ( questStatusData.m_status==QUEST_STATUS_INCOMPLETE || - questStatusData.m_status==QUEST_STATUS_COMPLETE && !questStatusData.m_rewarded ) ) + questStatusData.m_status==QUEST_STATUS_COMPLETE && + (!questStatusData.m_rewarded || pQuest->IsDaily()) ) ) { SetQuestSlot(slot,quest_id,quest_time); |