Core/Quests: Implemented quest popups

This commit is contained in:
hondacrx
2017-11-29 18:00:08 -05:00
parent 6b3533141e
commit 7d27eaad1a
5 changed files with 23 additions and 19 deletions
+1 -1
View File
@@ -319,7 +319,7 @@ namespace Game.AI
if (session)
{
PlayerMenu menu = new PlayerMenu(session);
menu.SendQuestGiverQuestDetails(q, me.GetGUID(), true);
menu.SendQuestGiverQuestDetails(q, me.GetGUID(), true, false);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction:: SMART_ACTION_OFFER_QUEST: Player {0} - offering quest {1}", pTarget.GetGUID().ToString(), e.Action.questOffer.questId);
}
}
+7 -6
View File
@@ -394,7 +394,7 @@ namespace Game.Misc
_session.SendPacket(packet);
}
public void SendQuestGiverQuestDetails(Quest quest, ObjectGuid npcGUID, bool activateAccept)
public void SendQuestGiverQuestDetails(Quest quest, ObjectGuid npcGUID, bool autoLaunched, bool displayPopup)
{
QuestGiverQuestDetails packet = new QuestGiverQuestDetails();
@@ -427,7 +427,8 @@ namespace Game.Misc
packet.QuestID = quest.Id;
packet.PortraitGiver = quest.QuestGiverPortrait;
packet.PortraitTurnIn = quest.QuestTurnInPortrait;
packet.AutoLaunched = activateAccept;
packet.AutoLaunched = autoLaunched;
packet.DisplayPopup = displayPopup;
packet.QuestFlags[0] = (uint)quest.Flags;
packet.QuestFlags[1] = (uint)quest.FlagsEx;
packet.SuggestedPartyMembers = quest.SuggestedPlayers;
@@ -596,7 +597,7 @@ namespace Game.Misc
_session.SendPacket(packet);
}
public void SendQuestGiverOfferReward(Quest quest, ObjectGuid npcGUID, bool enableNext)
public void SendQuestGiverOfferReward(Quest quest, ObjectGuid npcGUID, bool autoLaunched)
{
QuestGiverOfferRewardMessage packet = new QuestGiverOfferRewardMessage();
@@ -636,7 +637,7 @@ namespace Game.Misc
offer.QuestGiverCreatureID = creature.GetCreatureTemplate().Entry;
offer.QuestID = quest.Id;
offer.AutoLaunched = enableNext;
offer.AutoLaunched = autoLaunched;
offer.SuggestedPartyMembers = quest.SuggestedPlayers;
for (uint i = 0; i < SharedConst.QuestEmoteCount && quest.OfferRewardEmote[i] != 0; ++i)
@@ -654,7 +655,7 @@ namespace Game.Misc
_session.SendPacket(packet);
}
public void SendQuestGiverRequestItems(Quest quest, ObjectGuid npcGUID, bool canComplete, bool closeOnCancel)
public void SendQuestGiverRequestItems(Quest quest, ObjectGuid npcGUID, bool canComplete, bool autoLaunched)
{
// We can always call to RequestItems, but this packet only goes out if there are actually
// items. Otherwise, we'll skip straight to the OfferReward
@@ -729,7 +730,7 @@ namespace Game.Misc
}
}
packet.AutoLaunched = closeOnCancel;
packet.AutoLaunched = autoLaunched;
_session.SendPacket(packet);
}
+1 -1
View File
@@ -314,7 +314,7 @@ namespace Game.Entities
if (quest.IsAutoComplete() && quest.IsRepeatable() && !quest.IsDailyOrWeekly())
PlayerTalkClass.SendQuestGiverRequestItems(quest, guid, CanCompleteRepeatableQuest(quest), true);
else
PlayerTalkClass.SendQuestGiverQuestDetails(quest, guid, true);
PlayerTalkClass.SendQuestGiverQuestDetails(quest, guid, true, false);
return;
}
}
+4 -4
View File
@@ -217,7 +217,7 @@ namespace Game
if (quest.IsAutoComplete())
GetPlayer().PlayerTalkClass.SendQuestGiverRequestItems(quest, obj.GetGUID(), GetPlayer().CanCompleteQuest(quest.Id), true);
else
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(quest, obj.GetGUID(), true);
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(quest, obj.GetGUID(), true, false);
}
}
@@ -347,7 +347,7 @@ namespace Game
if (nextQuest.IsAutoAccept() && GetPlayer().CanAddQuest(nextQuest, true))
GetPlayer().AddQuestAndCheckCompletion(nextQuest, obj);
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true);
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
}
}
@@ -370,7 +370,7 @@ namespace Game
if (nextQuest.IsAutoAccept() && GetPlayer().CanAddQuest(nextQuest, true))
GetPlayer().AddQuestAndCheckCompletion(nextQuest, obj);
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true);
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
}
}
@@ -606,7 +606,7 @@ namespace Game
else
{
receiver.SetDivider(sender.GetGUID());
receiver.PlayerTalkClass.SendQuestGiverQuestDetails(quest, receiver.GetGUID(), true);
receiver.PlayerTalkClass.SendQuestGiverQuestDetails(quest, receiver.GetGUID(), true, false);
}
}
}
+10 -7
View File
@@ -4904,16 +4904,19 @@ namespace Game.Spells
if (!player)
return;
Quest qInfo = Global.ObjectMgr.GetQuestTemplate((uint)effectInfo.MiscValue);
if (qInfo != null)
Quest quest = Global.ObjectMgr.GetQuestTemplate((uint)effectInfo.MiscValue);
if (quest != null)
{
if (!player.CanTakeQuest(qInfo, false))
if (!player.CanTakeQuest(quest, false))
return;
if (qInfo.IsAutoAccept() && player.CanAddQuest(qInfo, false))
player.AddQuestAndCheckCompletion(qInfo, null);
player.PlayerTalkClass.SendQuestGiverQuestDetails(qInfo, player.GetGUID(), true);
if (quest.IsAutoAccept() && player.CanAddQuest(quest, false))
{
player.AddQuestAndCheckCompletion(quest, null);
player.PlayerTalkClass.SendQuestGiverQuestDetails(quest, player.GetGUID(), true, true);
}
else
player.PlayerTalkClass.SendQuestGiverQuestDetails(quest, player.GetGUID(), true, false);
}
}