show DIALOG_STATUS_AVAILABLE instead of DIALOG_STATUS_REWARD for non-repeatable autocomplete quests.

This commit is contained in:
hondacrx
2017-10-04 12:31:02 -04:00
parent e8eecfedae
commit df2ff63283
+16 -13
View File
@@ -604,7 +604,9 @@ namespace Game.Entities
InventoryResult res = CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, quest.RewardChoiceItemId[i], quest.RewardChoiceItemCount[i]);
if (res != InventoryResult.Ok)
{
SendEquipError(res, null, null, quest.RewardChoiceItemId[i]);
if (msg)
SendQuestFailed(quest.Id, res);
return false;
}
}
@@ -620,7 +622,9 @@ namespace Game.Entities
InventoryResult res = CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, quest.RewardItemId[i], quest.RewardItemCount[i]);
if (res != InventoryResult.Ok)
{
SendEquipError(res, null, null, quest.RewardItemId[i]);
if (msg)
SendQuestFailed(quest.Id, res);
return false;
}
}
@@ -1109,6 +1113,10 @@ namespace Game.Entities
if (GetQuestStatus(questId) == QuestStatus.Complete && !quest.HasSpecialFlag(QuestSpecialFlags.Timed))
return;
// You can't fail a quest if you don't have it, or if it's already rewarded.
if (GetQuestStatus(questId) == QuestStatus.None || GetQuestStatus(questId) == QuestStatus.Rewarded)
return;
SetQuestStatus(questId, QuestStatus.Failed);
ushort log_slot = FindQuestSlot(questId);
@@ -1836,17 +1844,14 @@ namespace Game.Entities
continue;
QuestStatus status = GetQuestStatus(questId);
if ((status == QuestStatus.Complete && !GetQuestRewardStatus(questId)) ||
(quest.IsAutoComplete() && CanTakeQuest(quest, false)))
{
if (quest.IsAutoComplete() && quest.IsRepeatable() && !quest.IsDailyOrWeekly())
result2 = QuestGiverStatus.RewardRep;
else
result2 = QuestGiverStatus.Reward;
}
if (status == QuestStatus.Complete && !GetQuestRewardStatus(questId))
result2 = QuestGiverStatus.Reward;
else if (status == QuestStatus.Incomplete)
result2 = QuestGiverStatus.Incomplete;
if (quest.IsAutoComplete() && CanTakeQuest(quest, false) && quest.IsRepeatable() && !quest.IsDailyOrWeekly())
result2 = QuestGiverStatus.RewardRep;
if (result2 > result)
result = result2;
}
@@ -1868,9 +1873,7 @@ namespace Game.Entities
{
if (SatisfyQuestLevel(quest, false))
{
if (quest.IsAutoComplete())
result2 = QuestGiverStatus.RewardRep;
else if (getLevel() <= (GetQuestLevel(quest) + WorldConfig.GetIntValue(WorldCfg.QuestLowLevelHideDiff)))
if (getLevel() <= (GetQuestLevel(quest) + WorldConfig.GetIntValue(WorldCfg.QuestLowLevelHideDiff)))
{
if (quest.IsDaily())
result2 = QuestGiverStatus.AvailableRep;