Core/Quest: always send the specified RewardNextQuest regardless of eventual scripts
Port From (https://github.com/TrinityCore/TrinityCore/commit/2bd7c9aa40cefcfc401b81cfacd7dd832a3a736b)
This commit is contained in:
@@ -334,48 +334,46 @@ namespace Game
|
|||||||
{
|
{
|
||||||
//For AutoSubmition was added plr case there as it almost same exclute AI script cases.
|
//For AutoSubmition was added plr case there as it almost same exclute AI script cases.
|
||||||
Creature creatureQGiver = obj.ToCreature();
|
Creature creatureQGiver = obj.ToCreature();
|
||||||
if (!creatureQGiver || !Global.ScriptMgr.OnQuestReward(GetPlayer(), creatureQGiver, quest, packet.ItemChoiceID))
|
|
||||||
{
|
|
||||||
// Send next quest
|
|
||||||
Quest nextQuest = GetPlayer().GetNextQuest(packet.QuestGiverGUID, quest);
|
|
||||||
if (nextQuest != null)
|
|
||||||
{
|
|
||||||
// Only send the quest to the player if the conditions are met
|
|
||||||
if (GetPlayer().CanTakeQuest(nextQuest, false))
|
|
||||||
{
|
|
||||||
if (nextQuest.IsAutoAccept() && GetPlayer().CanAddQuest(nextQuest, true))
|
|
||||||
GetPlayer().AddQuestAndCheckCompletion(nextQuest, obj);
|
|
||||||
|
|
||||||
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (creatureQGiver)
|
|
||||||
creatureQGiver.GetAI().QuestReward(GetPlayer(), quest, packet.ItemChoiceID);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case TypeId.GameObject:
|
|
||||||
GameObject questGiver = obj.ToGameObject();
|
|
||||||
if (!Global.ScriptMgr.OnQuestReward(GetPlayer(), questGiver, quest, packet.ItemChoiceID))
|
|
||||||
{
|
|
||||||
// Send next quest
|
// Send next quest
|
||||||
Quest nextQuest = GetPlayer().GetNextQuest(packet.QuestGiverGUID, quest);
|
Quest nextQuest = _player.GetNextQuest(packet.QuestGiverGUID, quest);
|
||||||
if (nextQuest != null)
|
if (nextQuest != null)
|
||||||
{
|
{
|
||||||
// Only send the quest to the player if the conditions are met
|
// Only send the quest to the player if the conditions are met
|
||||||
if (GetPlayer().CanTakeQuest(nextQuest, false))
|
if (_player.CanTakeQuest(nextQuest, false))
|
||||||
{
|
{
|
||||||
if (nextQuest.IsAutoAccept() && GetPlayer().CanAddQuest(nextQuest, true))
|
if (nextQuest.IsAutoAccept() && _player.CanAddQuest(nextQuest, true))
|
||||||
GetPlayer().AddQuestAndCheckCompletion(nextQuest, obj);
|
_player.AddQuestAndCheckCompletion(nextQuest, obj);
|
||||||
|
|
||||||
GetPlayer().PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
|
_player.PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
questGiver.GetAI().QuestReward(GetPlayer(), quest, packet.ItemChoiceID);
|
if (creatureQGiver && !Global.ScriptMgr.OnQuestReward(_player, creatureQGiver, quest, packet.ItemChoiceID))
|
||||||
|
creatureQGiver.GetAI().QuestReward(_player, quest, packet.ItemChoiceID);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TypeId.GameObject:
|
||||||
|
{
|
||||||
|
GameObject questGiver = obj.ToGameObject();
|
||||||
|
// Send next quest
|
||||||
|
Quest nextQuest = _player.GetNextQuest(packet.QuestGiverGUID, quest);
|
||||||
|
if (nextQuest != null)
|
||||||
|
{
|
||||||
|
// Only send the quest to the player if the conditions are met
|
||||||
|
if (_player.CanTakeQuest(nextQuest, false))
|
||||||
|
{
|
||||||
|
if (nextQuest.IsAutoAccept() && _player.CanAddQuest(nextQuest, true))
|
||||||
|
_player.AddQuestAndCheckCompletion(nextQuest, obj);
|
||||||
|
|
||||||
|
_player.PlayerTalkClass.SendQuestGiverQuestDetails(nextQuest, packet.QuestGiverGUID, true, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Global.ScriptMgr.OnQuestReward(_player, questGiver, quest, packet.ItemChoiceID))
|
||||||
|
questGiver.GetAI().QuestReward(_player, quest, packet.ItemChoiceID);
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user