Core/Quests: Ported quest greeting locales

Core/Misc: Misc fixes
This commit is contained in:
hondacrx
2018-04-27 15:09:38 -04:00
parent b6c8761d0a
commit 1106aa3659
10 changed files with 144 additions and 67 deletions
+8 -9
View File
@@ -280,7 +280,7 @@ namespace Game.Entities
}
}
public void SendPreparedQuest(ObjectGuid guid)
public void SendPreparedQuest(WorldObject source)
{
QuestMenu questMenu = PlayerTalkClass.GetQuestMenu();
if (questMenu.IsEmpty())
@@ -298,36 +298,35 @@ namespace Game.Entities
{
if (qmi0.QuestIcon == 4)
{
PlayerTalkClass.SendQuestGiverRequestItems(quest, guid, CanRewardQuest(quest, false), true);
PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanRewardQuest(quest, false), true);
return;
}
// Send completable on repeatable and autoCompletable quest if player don't have quest
// @todo verify if check for !quest.IsDaily() is really correct (possibly not)
else
{
WorldObject obj = Global.ObjAccessor.GetObjectByTypeMask(this, guid, TypeMask.Unit | TypeMask.GameObject | TypeMask.Item);
if (!obj || (!obj.hasQuest(questId) && !obj.hasInvolvedQuest(questId)))
if (!source.hasQuest(questId) && !source.hasInvolvedQuest(questId))
{
PlayerTalkClass.SendCloseGossip();
return;
}
if (!obj.IsTypeId(TypeId.Unit) || obj.HasFlag64(UnitFields.NpcFlags, NPCFlags.Gossip))
if (!source.IsTypeId(TypeId.Unit) || source.HasFlag64(UnitFields.NpcFlags, NPCFlags.Gossip))
{
if (quest.IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true))
AddQuestAndCheckCompletion(quest, obj);
AddQuestAndCheckCompletion(quest, source);
if (quest.IsAutoComplete() && quest.IsRepeatable() && !quest.IsDailyOrWeekly())
PlayerTalkClass.SendQuestGiverRequestItems(quest, guid, CanCompleteRepeatableQuest(quest), true);
PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanCompleteRepeatableQuest(quest), true);
else
PlayerTalkClass.SendQuestGiverQuestDetails(quest, guid, true, false);
PlayerTalkClass.SendQuestGiverQuestDetails(quest, source.GetGUID(), true, false);
return;
}
}
}
}
PlayerTalkClass.SendQuestGiverQuestListMessage(guid);
PlayerTalkClass.SendQuestGiverQuestListMessage(source);
}
public bool IsActiveQuest(uint quest_id)
+2 -2
View File
@@ -2443,7 +2443,7 @@ namespace Game.Entities
{
if (PlayerTalkClass.GetGossipMenu().IsEmpty() && !PlayerTalkClass.GetQuestMenu().IsEmpty())
{
SendPreparedQuest(source.GetGUID());
SendPreparedQuest(source);
return;
}
}
@@ -2518,7 +2518,7 @@ namespace Game.Entities
break;
case GossipOption.Questgiver:
PrepareQuestMenu(guid);
SendPreparedQuest(guid);
SendPreparedQuest(source);
break;
case GossipOption.Vendor:
case GossipOption.Armorer: