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
+15 -12
View File
@@ -604,7 +604,9 @@ namespace Game.Entities
InventoryResult res = CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, quest.RewardChoiceItemId[i], quest.RewardChoiceItemCount[i]); InventoryResult res = CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, quest.RewardChoiceItemId[i], quest.RewardChoiceItemCount[i]);
if (res != InventoryResult.Ok) if (res != InventoryResult.Ok)
{ {
SendEquipError(res, null, null, quest.RewardChoiceItemId[i]); if (msg)
SendQuestFailed(quest.Id, res);
return false; return false;
} }
} }
@@ -620,7 +622,9 @@ namespace Game.Entities
InventoryResult res = CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, quest.RewardItemId[i], quest.RewardItemCount[i]); InventoryResult res = CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, quest.RewardItemId[i], quest.RewardItemCount[i]);
if (res != InventoryResult.Ok) if (res != InventoryResult.Ok)
{ {
SendEquipError(res, null, null, quest.RewardItemId[i]); if (msg)
SendQuestFailed(quest.Id, res);
return false; return false;
} }
} }
@@ -1109,6 +1113,10 @@ namespace Game.Entities
if (GetQuestStatus(questId) == QuestStatus.Complete && !quest.HasSpecialFlag(QuestSpecialFlags.Timed)) if (GetQuestStatus(questId) == QuestStatus.Complete && !quest.HasSpecialFlag(QuestSpecialFlags.Timed))
return; 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); SetQuestStatus(questId, QuestStatus.Failed);
ushort log_slot = FindQuestSlot(questId); ushort log_slot = FindQuestSlot(questId);
@@ -1836,17 +1844,14 @@ namespace Game.Entities
continue; continue;
QuestStatus status = GetQuestStatus(questId); QuestStatus status = GetQuestStatus(questId);
if ((status == QuestStatus.Complete && !GetQuestRewardStatus(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; result2 = QuestGiverStatus.Reward;
}
else if (status == QuestStatus.Incomplete) else if (status == QuestStatus.Incomplete)
result2 = QuestGiverStatus.Incomplete; result2 = QuestGiverStatus.Incomplete;
if (quest.IsAutoComplete() && CanTakeQuest(quest, false) && quest.IsRepeatable() && !quest.IsDailyOrWeekly())
result2 = QuestGiverStatus.RewardRep;
if (result2 > result) if (result2 > result)
result = result2; result = result2;
} }
@@ -1868,9 +1873,7 @@ namespace Game.Entities
{ {
if (SatisfyQuestLevel(quest, false)) if (SatisfyQuestLevel(quest, false))
{ {
if (quest.IsAutoComplete()) if (getLevel() <= (GetQuestLevel(quest) + WorldConfig.GetIntValue(WorldCfg.QuestLowLevelHideDiff)))
result2 = QuestGiverStatus.RewardRep;
else if (getLevel() <= (GetQuestLevel(quest) + WorldConfig.GetIntValue(WorldCfg.QuestLowLevelHideDiff)))
{ {
if (quest.IsDaily()) if (quest.IsDaily())
result2 = QuestGiverStatus.AvailableRep; result2 = QuestGiverStatus.AvailableRep;