Whack questgivers in the head with a bat to make them properly show ! or ? properly depending on the questtype they hand out
Patch by Liberate --HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE `quest_template` CHANGE COLUMN `QuestFlags` `QuestFlags` int(6) unsigned NOT NULL default '0';
|
||||||
+2
-2
@@ -13752,7 +13752,7 @@ bool Player::CanCompleteQuest(uint32 quest_id)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// auto complete quest
|
// auto complete quest
|
||||||
if (qInfo->IsAutoComplete() && CanTakeQuest(qInfo, false))
|
if ((qInfo->IsAutoComplete() || qInfo->GetFlags() & QUEST_FLAGS_AUTOCOMPLETE) && CanTakeQuest(qInfo, false))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (q_status.m_status == QUEST_STATUS_INCOMPLETE)
|
if (q_status.m_status == QUEST_STATUS_INCOMPLETE)
|
||||||
@@ -13827,7 +13827,7 @@ bool Player::CanCompleteRepeatableQuest(Quest const *pQuest)
|
|||||||
bool Player::CanRewardQuest(Quest const *pQuest, bool msg)
|
bool Player::CanRewardQuest(Quest const *pQuest, bool msg)
|
||||||
{
|
{
|
||||||
// not auto complete quest and not completed quest (only cheating case, then ignore without message)
|
// not auto complete quest and not completed quest (only cheating case, then ignore without message)
|
||||||
if (!pQuest->IsAutoComplete() && GetQuestStatus(pQuest->GetQuestId()) != QUEST_STATUS_COMPLETE)
|
if (!pQuest->IsAutoComplete() && !(pQuest->GetFlags() & QUEST_FLAGS_AUTOCOMPLETE) && GetQuestStatus(pQuest->GetQuestId()) != QUEST_STATUS_COMPLETE)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// daily quest can't be rewarded (25 daily quest already completed)
|
// daily quest can't be rewarded (25 daily quest already completed)
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ Quest::Quest(Field * questRecord)
|
|||||||
RequiredMaxRepValue = questRecord[17].GetInt32();
|
RequiredMaxRepValue = questRecord[17].GetInt32();
|
||||||
SuggestedPlayers = questRecord[18].GetUInt32();
|
SuggestedPlayers = questRecord[18].GetUInt32();
|
||||||
LimitTime = questRecord[19].GetUInt32();
|
LimitTime = questRecord[19].GetUInt32();
|
||||||
QuestFlags = questRecord[20].GetUInt16();
|
QuestFlags = questRecord[20].GetUInt32();
|
||||||
uint32 SpecialFlags = questRecord[21].GetUInt16();
|
uint32 SpecialFlags = questRecord[21].GetUInt16();
|
||||||
CharTitleId = questRecord[22].GetUInt32();
|
CharTitleId = questRecord[22].GetUInt32();
|
||||||
PlayersSlain = questRecord[23].GetUInt32();
|
PlayersSlain = questRecord[23].GetUInt32();
|
||||||
|
|||||||
@@ -246,7 +246,10 @@ void WorldSession::HandleQuestgiverQueryQuestOpcode(WorldPacket & recv_data)
|
|||||||
Quest const* pQuest = objmgr.GetQuestTemplate(quest);
|
Quest const* pQuest = objmgr.GetQuestTemplate(quest);
|
||||||
if (pQuest)
|
if (pQuest)
|
||||||
{
|
{
|
||||||
_player->PlayerTalkClass->SendQuestGiverQuestDetails(pQuest, pObject->GetGUID(), true);
|
if (pQuest->GetFlags() & QUEST_FLAGS_AUTOCOMPLETE)
|
||||||
|
_player->PlayerTalkClass->SendQuestGiverRequestItems(pQuest, pObject->GetGUID(), _player->CanCompleteQuest(pQuest->GetQuestId()), true);
|
||||||
|
else
|
||||||
|
_player->PlayerTalkClass->SendQuestGiverQuestDetails(pQuest, pObject->GetGUID(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user