mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[6844] Daily quest fixes.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
17c6182eca
commit
c978b80be2
2 changed files with 14 additions and 4 deletions
|
|
@ -11577,7 +11577,7 @@ void Player::SendPreparedQuest( uint64 guid )
|
||||||
else if( status == DIALOG_STATUS_INCOMPLETE )
|
else if( status == DIALOG_STATUS_INCOMPLETE )
|
||||||
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, false, true );
|
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, false, true );
|
||||||
// Send completable on repeatable quest if player don't have quest
|
// 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 );
|
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, CanCompleteRepeatableQuest(pQuest), true );
|
||||||
else
|
else
|
||||||
PlayerTalkClass->SendQuestGiverQuestDetails( pQuest, guid, true );
|
PlayerTalkClass->SendQuestGiverQuestDetails( pQuest, guid, true );
|
||||||
|
|
@ -11819,7 +11819,7 @@ bool Player::CanRewardQuest( Quest const *pQuest, bool msg )
|
||||||
if(!pQuest->IsAutoComplete() && GetQuestStatus(pQuest->GetQuestId()) != QUEST_STATUS_COMPLETE)
|
if(!pQuest->IsAutoComplete() && GetQuestStatus(pQuest->GetQuestId()) != QUEST_STATUS_COMPLETE)
|
||||||
return false;
|
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))
|
if(!SatisfyQuestDay(pQuest,true))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
@ -12420,6 +12420,15 @@ bool Player::SatisfyQuestExclusiveGroup( Quest const* qInfo, bool msg )
|
||||||
if(exclude_Id == qInfo->GetQuestId())
|
if(exclude_Id == qInfo->GetQuestId())
|
||||||
continue;
|
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 );
|
QuestStatusMap::iterator i_exstatus = mQuestStatus.find( exclude_Id );
|
||||||
|
|
||||||
// alternative quest already started or completed
|
// alternative quest already started or completed
|
||||||
|
|
@ -14266,7 +14275,8 @@ void Player::_LoadQuestStatus(QueryResult *result)
|
||||||
// add to quest log
|
// add to quest log
|
||||||
if( slot < MAX_QUEST_LOG_SIZE &&
|
if( slot < MAX_QUEST_LOG_SIZE &&
|
||||||
( questStatusData.m_status==QUEST_STATUS_INCOMPLETE ||
|
( 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);
|
SetQuestSlot(slot,quest_id,quest_time);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "6843"
|
#define REVISION_NR "6844"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue