aboutsummaryrefslogtreecommitdiff
path: root/src/game/Player.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2008-11-25 16:36:50 -0600
committermegamage <none@none>2008-11-25 16:36:50 -0600
commitf6ea784eda445794bf99ba2b9f97012ea4009f59 (patch)
tree97ed434b569dd1194854908cd3fe67a9129a5e8b /src/game/Player.cpp
parent52f2e35d65af17abfd9499232398bab338db78e1 (diff)
*Update to Mangos 6848. Source: Mangos.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r--src/game/Player.cpp16
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);