Core/Quests: Remove RewardMoney from quest_template as it is not a static value and depends on receiving player
Port From (https://github.com/TrinityCore/TrinityCore/commit/4c5f57d7129bb1e2adfd2d20779c984473421238)
This commit is contained in:
@@ -474,38 +474,13 @@ namespace Game.Misc
|
|||||||
|
|
||||||
public void SendQuestQueryResponse(Quest quest)
|
public void SendQuestQueryResponse(Quest quest)
|
||||||
{
|
{
|
||||||
if (!WorldConfig.GetBoolValue(WorldCfg.CacheDataQueries))
|
if (WorldConfig.GetBoolValue(WorldCfg.CacheDataQueries))
|
||||||
quest.InitializeQueryData();
|
_session.SendPacket(quest.response[(int)_session.GetSessionDbLocaleIndex()]);
|
||||||
|
else
|
||||||
QueryQuestInfoResponse queryQuestInfoResponse = quest.QueryData;
|
|
||||||
|
|
||||||
Locale loc = _session.GetSessionDbLocaleIndex();
|
|
||||||
if (loc != Locale.enUS)
|
|
||||||
{
|
{
|
||||||
QuestTemplateLocale questTemplateLocale = Global.ObjectMgr.GetQuestLocale(queryQuestInfoResponse.QuestID);
|
var queryPacket = quest.BuildQueryData(_session.GetSessionDbLocaleIndex(), _session.GetPlayer());
|
||||||
if (questTemplateLocale != null)
|
_session.SendPacket(queryPacket);
|
||||||
{
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.LogTitle, loc, ref queryQuestInfoResponse.Info.LogTitle);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.LogDescription, loc, ref queryQuestInfoResponse.Info.LogDescription);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.QuestDescription, loc, ref queryQuestInfoResponse.Info.QuestDescription);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.AreaDescription, loc, ref queryQuestInfoResponse.Info.AreaDescription);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.QuestCompletionLog, loc, ref queryQuestInfoResponse.Info.QuestCompletionLog);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.PortraitGiverText, loc, ref queryQuestInfoResponse.Info.PortraitGiverText);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.PortraitGiverName, loc, ref queryQuestInfoResponse.Info.PortraitGiverName);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.PortraitTurnInText, loc, ref queryQuestInfoResponse.Info.PortraitTurnInText);
|
|
||||||
ObjectManager.GetLocaleString(questTemplateLocale.PortraitTurnInName, loc, ref queryQuestInfoResponse.Info.PortraitTurnInName);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (QuestObjective questObjective in queryQuestInfoResponse.Info.Objectives)
|
|
||||||
{
|
|
||||||
QuestObjectivesLocale questObjectivesLocaleData = Global.ObjectMgr.GetQuestObjectivesLocale(questObjective.Id);
|
|
||||||
if (questObjectivesLocaleData != null)
|
|
||||||
ObjectManager.GetLocaleString(questObjectivesLocaleData.Description, loc, ref questObjective.Description);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_session.SendPacket(queryQuestInfoResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendQuestGiverOfferReward(Quest quest, ObjectGuid npcGUID, bool autoLaunched)
|
public void SendQuestGiverOfferReward(Quest quest, ObjectGuid npcGUID, bool autoLaunched)
|
||||||
|
|||||||
+185
-132
@@ -24,6 +24,7 @@ using Game.Networking.Packets;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace Game
|
namespace Game
|
||||||
{
|
{
|
||||||
@@ -41,27 +42,26 @@ namespace Game
|
|||||||
NextQuestInChain = fields.Read<uint>(7);
|
NextQuestInChain = fields.Read<uint>(7);
|
||||||
RewardXPDifficulty = fields.Read<uint>(8);
|
RewardXPDifficulty = fields.Read<uint>(8);
|
||||||
RewardXPMultiplier = fields.Read<float>(9);
|
RewardXPMultiplier = fields.Read<float>(9);
|
||||||
RewardMoney = fields.Read<int>(10);
|
RewardMoneyDifficulty = fields.Read<uint>(10);
|
||||||
RewardMoneyDifficulty = fields.Read<uint>(11);
|
RewardMoneyMultiplier = fields.Read<float>(11);
|
||||||
RewardMoneyMultiplier = fields.Read<float>(12);
|
RewardBonusMoney = fields.Read<uint>(12);
|
||||||
RewardBonusMoney = fields.Read<uint>(13);
|
RewardSpell = fields.Read<uint>(13);
|
||||||
RewardSpell = fields.Read<uint>(14);
|
RewardHonor = fields.Read<uint>(14);
|
||||||
RewardHonor = fields.Read<uint>(15);
|
RewardKillHonor = fields.Read<uint>(15);
|
||||||
RewardKillHonor = fields.Read<uint>(16);
|
SourceItemId = fields.Read<uint>(16);
|
||||||
SourceItemId = fields.Read<uint>(17);
|
RewardArtifactXPDifficulty = fields.Read<uint>(17);
|
||||||
RewardArtifactXPDifficulty = fields.Read<uint>(18);
|
RewardArtifactXPMultiplier = fields.Read<float>(18);
|
||||||
RewardArtifactXPMultiplier = fields.Read<float>(19);
|
RewardArtifactCategoryID = fields.Read<uint>(19);
|
||||||
RewardArtifactCategoryID = fields.Read<uint>(20);
|
Flags = (QuestFlags)fields.Read<uint>(20);
|
||||||
Flags = (QuestFlags)fields.Read<uint>(21);
|
FlagsEx = (QuestFlagsEx)fields.Read<uint>(21);
|
||||||
FlagsEx = (QuestFlagsEx)fields.Read<uint>(22);
|
FlagsEx2 = (QuestFlagsEx2)fields.Read<uint>(22);
|
||||||
FlagsEx2 = (QuestFlagsEx2)fields.Read<uint>(23);
|
|
||||||
|
|
||||||
for (int i = 0; i < SharedConst.QuestItemDropCount; ++i)
|
for (int i = 0; i < SharedConst.QuestItemDropCount; ++i)
|
||||||
{
|
{
|
||||||
RewardItemId[i] = fields.Read<uint>(24 + i * 4);
|
RewardItemId[i] = fields.Read<uint>(23 + i * 4);
|
||||||
RewardItemCount[i] = fields.Read<uint>(25 + i * 4);
|
RewardItemCount[i] = fields.Read<uint>(24 + i * 4);
|
||||||
ItemDrop[i] = fields.Read<uint>(26 + i * 4);
|
ItemDrop[i] = fields.Read<uint>(25 + i * 4);
|
||||||
ItemDropQuantity[i] = fields.Read<uint>(27 + i * 4);
|
ItemDropQuantity[i] = fields.Read<uint>(26 + i * 4);
|
||||||
|
|
||||||
if (RewardItemId[i] != 0)
|
if (RewardItemId[i] != 0)
|
||||||
++_rewItemsCount;
|
++_rewItemsCount;
|
||||||
@@ -69,67 +69,67 @@ namespace Game
|
|||||||
|
|
||||||
for (int i = 0; i < SharedConst.QuestRewardChoicesCount; ++i)
|
for (int i = 0; i < SharedConst.QuestRewardChoicesCount; ++i)
|
||||||
{
|
{
|
||||||
RewardChoiceItemId[i] = fields.Read<uint>(40 + i * 3);
|
RewardChoiceItemId[i] = fields.Read<uint>(39 + i * 3);
|
||||||
RewardChoiceItemCount[i] = fields.Read<uint>(41 + i * 3);
|
RewardChoiceItemCount[i] = fields.Read<uint>(40 + i * 3);
|
||||||
RewardChoiceItemDisplayId[i] = fields.Read<uint>(42 + i * 3);
|
RewardChoiceItemDisplayId[i] = fields.Read<uint>(41 + i * 3);
|
||||||
|
|
||||||
if (RewardChoiceItemId[i] != 0)
|
if (RewardChoiceItemId[i] != 0)
|
||||||
++_rewChoiceItemsCount;
|
++_rewChoiceItemsCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
POIContinent = fields.Read<uint>(58);
|
POIContinent = fields.Read<uint>(57);
|
||||||
POIx = fields.Read<float>(59);
|
POIx = fields.Read<float>(58);
|
||||||
POIy = fields.Read<float>(60);
|
POIy = fields.Read<float>(59);
|
||||||
POIPriority = fields.Read<uint>(61);
|
POIPriority = fields.Read<uint>(60);
|
||||||
|
|
||||||
RewardTitleId = fields.Read<uint>(62);
|
RewardTitleId = fields.Read<uint>(61);
|
||||||
RewardArenaPoints = fields.Read<int>(63);
|
RewardArenaPoints = fields.Read<int>(62);
|
||||||
RewardSkillId = fields.Read<uint>(64);
|
RewardSkillId = fields.Read<uint>(63);
|
||||||
RewardSkillPoints = fields.Read<uint>(65);
|
RewardSkillPoints = fields.Read<uint>(64);
|
||||||
|
|
||||||
QuestGiverPortrait = fields.Read<uint>(66);
|
QuestGiverPortrait = fields.Read<uint>(65);
|
||||||
QuestGiverPortraitMount = fields.Read<uint>(67);
|
QuestGiverPortraitMount = fields.Read<uint>(66);
|
||||||
QuestGiverPortraitModelSceneId = fields.Read<int>(68);
|
QuestGiverPortraitModelSceneId = fields.Read<int>(67);
|
||||||
QuestTurnInPortrait = fields.Read<uint>(69);
|
QuestTurnInPortrait = fields.Read<uint>(68);
|
||||||
|
|
||||||
for (int i = 0; i < SharedConst.QuestRewardReputationsCount; ++i)
|
for (int i = 0; i < SharedConst.QuestRewardReputationsCount; ++i)
|
||||||
{
|
{
|
||||||
RewardFactionId[i] = fields.Read<uint>(70 + i * 4);
|
RewardFactionId[i] = fields.Read<uint>(69 + i * 4);
|
||||||
RewardFactionValue[i] = fields.Read<int>(71 + i * 4);
|
RewardFactionValue[i] = fields.Read<int>(70 + i * 4);
|
||||||
RewardFactionOverride[i] = fields.Read<int>(72 + i * 4);
|
RewardFactionOverride[i] = fields.Read<int>(71 + i * 4);
|
||||||
RewardFactionCapIn[i] = fields.Read<int>(73 + i * 4);
|
RewardFactionCapIn[i] = fields.Read<int>(72 + i * 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
RewardReputationMask = fields.Read<uint>(90);
|
RewardReputationMask = fields.Read<uint>(89);
|
||||||
|
|
||||||
for (int i = 0; i < SharedConst.QuestRewardCurrencyCount; ++i)
|
for (int i = 0; i < SharedConst.QuestRewardCurrencyCount; ++i)
|
||||||
{
|
{
|
||||||
RewardCurrencyId[i] = fields.Read<uint>(91 + i * 2);
|
RewardCurrencyId[i] = fields.Read<uint>(90 + i * 2);
|
||||||
RewardCurrencyCount[i] = fields.Read<uint>(92 + i * 2);
|
RewardCurrencyCount[i] = fields.Read<uint>(91 + i * 2);
|
||||||
|
|
||||||
if (RewardCurrencyId[i] != 0)
|
if (RewardCurrencyId[i] != 0)
|
||||||
++_rewCurrencyCount;
|
++_rewCurrencyCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
SoundAccept = fields.Read<uint>(99);
|
SoundAccept = fields.Read<uint>(98);
|
||||||
SoundTurnIn = fields.Read<uint>(100);
|
SoundTurnIn = fields.Read<uint>(99);
|
||||||
AreaGroupID = fields.Read<uint>(101);
|
AreaGroupID = fields.Read<uint>(100);
|
||||||
LimitTime = fields.Read<uint>(102);
|
LimitTime = fields.Read<uint>(101);
|
||||||
AllowableRaces = (long)fields.Read<ulong>(103);
|
AllowableRaces = (long)fields.Read<ulong>(102);
|
||||||
TreasurePickerID = fields.Read<int>(104);
|
TreasurePickerID = fields.Read<int>(103);
|
||||||
Expansion = fields.Read<int>(105);
|
Expansion = fields.Read<int>(104);
|
||||||
ManagedWorldStateID = fields.Read<int>(106);
|
ManagedWorldStateID = fields.Read<int>(105);
|
||||||
QuestSessionBonus = fields.Read<int>(107);
|
QuestSessionBonus = fields.Read<int>(106);
|
||||||
|
|
||||||
LogTitle = fields.Read<string>(108);
|
LogTitle = fields.Read<string>(107);
|
||||||
LogDescription = fields.Read<string>(109);
|
LogDescription = fields.Read<string>(108);
|
||||||
QuestDescription = fields.Read<string>(110);
|
QuestDescription = fields.Read<string>(109);
|
||||||
AreaDescription = fields.Read<string>(111);
|
AreaDescription = fields.Read<string>(110);
|
||||||
PortraitGiverText = fields.Read<string>(112);
|
PortraitGiverText = fields.Read<string>(111);
|
||||||
PortraitGiverName = fields.Read<string>(113);
|
PortraitGiverName = fields.Read<string>(112);
|
||||||
PortraitTurnInText = fields.Read<string>(114);
|
PortraitTurnInText = fields.Read<string>(113);
|
||||||
PortraitTurnInName = fields.Read<string>(115);
|
PortraitTurnInName = fields.Read<string>(114);
|
||||||
QuestCompletionLog = fields.Read<string>(116);
|
QuestCompletionLog = fields.Read<string>(115);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadRewardDisplaySpell(SQLFields fields)
|
public void LoadRewardDisplaySpell(SQLFields fields)
|
||||||
@@ -329,6 +329,25 @@ namespace Game
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public uint MaxMoneyValue()
|
||||||
|
{
|
||||||
|
uint value = 0;
|
||||||
|
var questLevels = Global.DB2Mgr.GetContentTuningData(ContentTuningId, 0);
|
||||||
|
if (questLevels.HasValue)
|
||||||
|
{
|
||||||
|
var money = CliDB.QuestMoneyRewardStorage.LookupByKey(questLevels.Value.MaxLevel);
|
||||||
|
if (money != null)
|
||||||
|
value = (uint)(money.Difficulty[RewardMoneyDifficulty] * RewardMoneyMultiplier);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public uint GetMaxMoneyReward()
|
||||||
|
{
|
||||||
|
return (uint)(MaxMoneyValue() * WorldConfig.GetFloatValue(WorldCfg.RateMoneyQuest));
|
||||||
|
}
|
||||||
|
|
||||||
public QuestTagType? GetQuestTag()
|
public QuestTagType? GetQuestTag()
|
||||||
{
|
{
|
||||||
QuestInfoRecord questInfo = CliDB.QuestInfoStorage.LookupByKey(QuestInfoID);
|
QuestInfoRecord questInfo = CliDB.QuestInfoStorage.LookupByKey(QuestInfoID);
|
||||||
@@ -458,116 +477,151 @@ namespace Game
|
|||||||
|
|
||||||
public void InitializeQueryData()
|
public void InitializeQueryData()
|
||||||
{
|
{
|
||||||
QueryData = new QueryQuestInfoResponse();
|
for (var loc = Locale.enUS; loc < Locale.Total; ++loc)
|
||||||
|
response[(int)loc] = BuildQueryData(loc, null);
|
||||||
|
}
|
||||||
|
|
||||||
QueryData.Allow = true;
|
public QueryQuestInfoResponse BuildQueryData(Locale loc, Player player)
|
||||||
QueryData.QuestID = Id;
|
{
|
||||||
|
QueryQuestInfoResponse response = new();
|
||||||
|
|
||||||
QueryData.Info.LogTitle = LogTitle;
|
response.Allow = true;
|
||||||
QueryData.Info.LogDescription = LogDescription;
|
response.QuestID = Id;
|
||||||
QueryData.Info.QuestDescription = QuestDescription;
|
|
||||||
QueryData.Info.AreaDescription = AreaDescription;
|
|
||||||
QueryData.Info.QuestCompletionLog = QuestCompletionLog;
|
|
||||||
QueryData.Info.PortraitGiverText = PortraitGiverText;
|
|
||||||
QueryData.Info.PortraitGiverName = PortraitGiverName;
|
|
||||||
QueryData.Info.PortraitTurnInText = PortraitTurnInText;
|
|
||||||
QueryData.Info.PortraitTurnInName = PortraitTurnInName;
|
|
||||||
|
|
||||||
QueryData.Info.QuestID = Id;
|
response.Info.LogTitle = LogTitle;
|
||||||
QueryData.Info.QuestType = (int)Type;
|
response.Info.LogDescription = LogDescription;
|
||||||
QueryData.Info.ContentTuningID = ContentTuningId;
|
response.Info.QuestDescription = QuestDescription;
|
||||||
QueryData.Info.QuestPackageID = PackageID;
|
response.Info.AreaDescription = AreaDescription;
|
||||||
QueryData.Info.QuestSortID = QuestSortID;
|
response.Info.QuestCompletionLog = QuestCompletionLog;
|
||||||
QueryData.Info.QuestInfoID = QuestInfoID;
|
response.Info.PortraitGiverText = PortraitGiverText;
|
||||||
QueryData.Info.SuggestedGroupNum = SuggestedPlayers;
|
response.Info.PortraitGiverName = PortraitGiverName;
|
||||||
QueryData.Info.RewardNextQuest = NextQuestInChain;
|
response.Info.PortraitTurnInText = PortraitTurnInText;
|
||||||
QueryData.Info.RewardXPDifficulty = RewardXPDifficulty;
|
response.Info.PortraitTurnInName = PortraitTurnInName;
|
||||||
QueryData.Info.RewardXPMultiplier = RewardXPMultiplier;
|
|
||||||
|
if (loc != Locale.enUS)
|
||||||
|
{
|
||||||
|
var questTemplateLocale = Global.ObjectMgr.GetQuestLocale(Id);
|
||||||
|
if (questTemplateLocale != null)
|
||||||
|
{
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.LogTitle, loc, ref response.Info.LogTitle);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.LogDescription, loc, ref response.Info.LogDescription);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.QuestDescription, loc, ref response.Info.QuestDescription);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.AreaDescription, loc, ref response.Info.AreaDescription);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.QuestCompletionLog, loc, ref response.Info.QuestCompletionLog);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.PortraitGiverText, loc, ref response.Info.PortraitGiverText);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.PortraitGiverName, loc, ref response.Info.PortraitGiverName);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.PortraitTurnInText, loc, ref response.Info.PortraitTurnInText);
|
||||||
|
ObjectManager.GetLocaleString(questTemplateLocale.PortraitTurnInName, loc, ref response.Info.PortraitTurnInName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
response.Info.QuestID = Id;
|
||||||
|
response.Info.QuestType = (int)Type;
|
||||||
|
response.Info.ContentTuningID = ContentTuningId;
|
||||||
|
response.Info.QuestPackageID = PackageID;
|
||||||
|
response.Info.QuestSortID = QuestSortID;
|
||||||
|
response.Info.QuestInfoID = QuestInfoID;
|
||||||
|
response.Info.SuggestedGroupNum = SuggestedPlayers;
|
||||||
|
response.Info.RewardNextQuest = NextQuestInChain;
|
||||||
|
response.Info.RewardXPDifficulty = RewardXPDifficulty;
|
||||||
|
response.Info.RewardXPMultiplier = RewardXPMultiplier;
|
||||||
|
|
||||||
if (!HasFlag(QuestFlags.HiddenRewards))
|
if (!HasFlag(QuestFlags.HiddenRewards))
|
||||||
QueryData.Info.RewardMoney = RewardMoney;
|
response.Info.RewardMoney = (int)(player != null ? player.GetQuestMoneyReward(this) : GetMaxMoneyReward());
|
||||||
|
|
||||||
QueryData.Info.RewardMoneyDifficulty = RewardMoneyDifficulty;
|
response.Info.RewardMoneyDifficulty = RewardMoneyDifficulty;
|
||||||
QueryData.Info.RewardMoneyMultiplier = RewardMoneyMultiplier;
|
response.Info.RewardMoneyMultiplier = RewardMoneyMultiplier;
|
||||||
QueryData.Info.RewardBonusMoney = RewardBonusMoney;
|
response.Info.RewardBonusMoney = RewardBonusMoney;
|
||||||
foreach (QuestRewardDisplaySpell displaySpell in RewardDisplaySpell)
|
foreach (QuestRewardDisplaySpell displaySpell in RewardDisplaySpell)
|
||||||
QueryData.Info.RewardDisplaySpell.Add(new QuestCompleteDisplaySpell(displaySpell.SpellId, displaySpell.PlayerConditionId));
|
response.Info.RewardDisplaySpell.Add(new QuestCompleteDisplaySpell(displaySpell.SpellId, displaySpell.PlayerConditionId));
|
||||||
|
|
||||||
QueryData.Info.RewardSpell = RewardSpell;
|
response.Info.RewardSpell = RewardSpell;
|
||||||
|
|
||||||
QueryData.Info.RewardHonor = RewardHonor;
|
response.Info.RewardHonor = RewardHonor;
|
||||||
QueryData.Info.RewardKillHonor = RewardKillHonor;
|
response.Info.RewardKillHonor = RewardKillHonor;
|
||||||
|
|
||||||
QueryData.Info.RewardArtifactXPDifficulty = (int)RewardArtifactXPDifficulty;
|
response.Info.RewardArtifactXPDifficulty = (int)RewardArtifactXPDifficulty;
|
||||||
QueryData.Info.RewardArtifactXPMultiplier = RewardArtifactXPMultiplier;
|
response.Info.RewardArtifactXPMultiplier = RewardArtifactXPMultiplier;
|
||||||
QueryData.Info.RewardArtifactCategoryID = (int)RewardArtifactCategoryID;
|
response.Info.RewardArtifactCategoryID = (int)RewardArtifactCategoryID;
|
||||||
|
|
||||||
QueryData.Info.StartItem = SourceItemId;
|
response.Info.StartItem = SourceItemId;
|
||||||
QueryData.Info.Flags = (uint)Flags;
|
response.Info.Flags = (uint)Flags;
|
||||||
QueryData.Info.FlagsEx = (uint)FlagsEx;
|
response.Info.FlagsEx = (uint)FlagsEx;
|
||||||
QueryData.Info.FlagsEx2 = (uint)FlagsEx2;
|
response.Info.FlagsEx2 = (uint)FlagsEx2;
|
||||||
QueryData.Info.RewardTitle = RewardTitleId;
|
response.Info.RewardTitle = RewardTitleId;
|
||||||
QueryData.Info.RewardArenaPoints = RewardArenaPoints;
|
response.Info.RewardArenaPoints = RewardArenaPoints;
|
||||||
QueryData.Info.RewardSkillLineID = RewardSkillId;
|
response.Info.RewardSkillLineID = RewardSkillId;
|
||||||
QueryData.Info.RewardNumSkillUps = RewardSkillPoints;
|
response.Info.RewardNumSkillUps = RewardSkillPoints;
|
||||||
QueryData.Info.RewardFactionFlags = RewardReputationMask;
|
response.Info.RewardFactionFlags = RewardReputationMask;
|
||||||
QueryData.Info.PortraitGiver = QuestGiverPortrait;
|
response.Info.PortraitGiver = QuestGiverPortrait;
|
||||||
QueryData.Info.PortraitGiverMount = QuestGiverPortraitMount;
|
response.Info.PortraitGiverMount = QuestGiverPortraitMount;
|
||||||
QueryData.Info.PortraitGiverModelSceneID = QuestGiverPortraitModelSceneId;
|
response.Info.PortraitGiverModelSceneID = QuestGiverPortraitModelSceneId;
|
||||||
QueryData.Info.PortraitTurnIn = QuestTurnInPortrait;
|
response.Info.PortraitTurnIn = QuestTurnInPortrait;
|
||||||
|
|
||||||
for (byte i = 0; i < SharedConst.QuestItemDropCount; ++i)
|
for (byte i = 0; i < SharedConst.QuestItemDropCount; ++i)
|
||||||
{
|
{
|
||||||
QueryData.Info.ItemDrop[i] = (int)ItemDrop[i];
|
response.Info.ItemDrop[i] = (int)ItemDrop[i];
|
||||||
QueryData.Info.ItemDropQuantity[i] = (int)ItemDropQuantity[i];
|
response.Info.ItemDropQuantity[i] = (int)ItemDropQuantity[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!HasFlag(QuestFlags.HiddenRewards))
|
if (!HasFlag(QuestFlags.HiddenRewards))
|
||||||
{
|
{
|
||||||
for (byte i = 0; i < SharedConst.QuestRewardItemCount; ++i)
|
for (byte i = 0; i < SharedConst.QuestRewardItemCount; ++i)
|
||||||
{
|
{
|
||||||
QueryData.Info.RewardItems[i] = RewardItemId[i];
|
response.Info.RewardItems[i] = RewardItemId[i];
|
||||||
QueryData.Info.RewardAmount[i] = RewardItemCount[i];
|
response.Info.RewardAmount[i] = RewardItemCount[i];
|
||||||
}
|
}
|
||||||
for (byte i = 0; i < SharedConst.QuestRewardChoicesCount; ++i)
|
for (byte i = 0; i < SharedConst.QuestRewardChoicesCount; ++i)
|
||||||
{
|
{
|
||||||
QueryData.Info.UnfilteredChoiceItems[i].ItemID = RewardChoiceItemId[i];
|
response.Info.UnfilteredChoiceItems[i].ItemID = RewardChoiceItemId[i];
|
||||||
QueryData.Info.UnfilteredChoiceItems[i].Quantity = RewardChoiceItemCount[i];
|
response.Info.UnfilteredChoiceItems[i].Quantity = RewardChoiceItemCount[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (byte i = 0; i < SharedConst.QuestRewardReputationsCount; ++i)
|
for (byte i = 0; i < SharedConst.QuestRewardReputationsCount; ++i)
|
||||||
{
|
{
|
||||||
QueryData.Info.RewardFactionID[i] = RewardFactionId[i];
|
response.Info.RewardFactionID[i] = RewardFactionId[i];
|
||||||
QueryData.Info.RewardFactionValue[i] = RewardFactionValue[i];
|
response.Info.RewardFactionValue[i] = RewardFactionValue[i];
|
||||||
QueryData.Info.RewardFactionOverride[i] = RewardFactionOverride[i];
|
response.Info.RewardFactionOverride[i] = RewardFactionOverride[i];
|
||||||
QueryData.Info.RewardFactionCapIn[i] = RewardFactionCapIn[i];
|
response.Info.RewardFactionCapIn[i] = RewardFactionCapIn[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryData.Info.POIContinent = POIContinent;
|
response.Info.POIContinent = POIContinent;
|
||||||
QueryData.Info.POIx = POIx;
|
response.Info.POIx = POIx;
|
||||||
QueryData.Info.POIy = POIy;
|
response.Info.POIy = POIy;
|
||||||
QueryData.Info.POIPriority = POIPriority;
|
response.Info.POIPriority = POIPriority;
|
||||||
|
|
||||||
QueryData.Info.AllowableRaces = AllowableRaces;
|
response.Info.AllowableRaces = AllowableRaces;
|
||||||
QueryData.Info.TreasurePickerID = TreasurePickerID;
|
response.Info.TreasurePickerID = TreasurePickerID;
|
||||||
QueryData.Info.Expansion = Expansion;
|
response.Info.Expansion = Expansion;
|
||||||
QueryData.Info.ManagedWorldStateID = ManagedWorldStateID;
|
response.Info.ManagedWorldStateID = ManagedWorldStateID;
|
||||||
QueryData.Info.QuestSessionBonus = 0; //GetQuestSessionBonus(); // this is only sent while quest session is active
|
response.Info.QuestSessionBonus = 0; //GetQuestSessionBonus(); // this is only sent while quest session is active
|
||||||
|
|
||||||
foreach (QuestObjective questObjective in Objectives)
|
foreach (QuestObjective questObjective in Objectives)
|
||||||
QueryData.Info.Objectives.Add(questObjective);
|
{
|
||||||
|
response.Info.Objectives.Add(questObjective);
|
||||||
|
|
||||||
|
if (loc != Locale.enUS)
|
||||||
|
{
|
||||||
|
var questObjectivesLocale = Global.ObjectMgr.GetQuestObjectivesLocale(questObjective.Id);
|
||||||
|
if (questObjectivesLocale != null)
|
||||||
|
ObjectManager.GetLocaleString(questObjectivesLocale.Description, loc, ref response.Info.Objectives.Last().Description);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < SharedConst.QuestRewardCurrencyCount; ++i)
|
for (int i = 0; i < SharedConst.QuestRewardCurrencyCount; ++i)
|
||||||
{
|
{
|
||||||
QueryData.Info.RewardCurrencyID[i] = RewardCurrencyId[i];
|
response.Info.RewardCurrencyID[i] = RewardCurrencyId[i];
|
||||||
QueryData.Info.RewardCurrencyQty[i] = RewardCurrencyCount[i];
|
response.Info.RewardCurrencyQty[i] = RewardCurrencyCount[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryData.Info.AcceptedSoundKitID = SoundAccept;
|
response.Info.AcceptedSoundKitID = SoundAccept;
|
||||||
QueryData.Info.CompleteSoundKitID = SoundTurnIn;
|
response.Info.CompleteSoundKitID = SoundTurnIn;
|
||||||
QueryData.Info.AreaGroupID = AreaGroupID;
|
response.Info.AreaGroupID = AreaGroupID;
|
||||||
QueryData.Info.TimeAllowed = LimitTime;
|
response.Info.TimeAllowed = LimitTime;
|
||||||
|
|
||||||
|
response.Write();
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static uint RoundXPValue(uint xp)
|
public static uint RoundXPValue(uint xp)
|
||||||
@@ -629,7 +683,6 @@ namespace Game
|
|||||||
public uint NextQuestInChain { get; set; }
|
public uint NextQuestInChain { get; set; }
|
||||||
public uint RewardXPDifficulty;
|
public uint RewardXPDifficulty;
|
||||||
public float RewardXPMultiplier;
|
public float RewardXPMultiplier;
|
||||||
public int RewardMoney;
|
|
||||||
public uint RewardMoneyDifficulty;
|
public uint RewardMoneyDifficulty;
|
||||||
public float RewardMoneyMultiplier;
|
public float RewardMoneyMultiplier;
|
||||||
public uint RewardBonusMoney;
|
public uint RewardBonusMoney;
|
||||||
@@ -731,7 +784,7 @@ namespace Game
|
|||||||
|
|
||||||
public List<uint> DependentPreviousQuests = new();
|
public List<uint> DependentPreviousQuests = new();
|
||||||
public List<uint> DependentBreadcrumbQuests = new();
|
public List<uint> DependentBreadcrumbQuests = new();
|
||||||
public QueryQuestInfoResponse QueryData;
|
public QueryQuestInfoResponse[] response = new QueryQuestInfoResponse[(int)Locale.Total];
|
||||||
|
|
||||||
uint _rewChoiceItemsCount;
|
uint _rewChoiceItemsCount;
|
||||||
uint _rewItemsCount;
|
uint _rewItemsCount;
|
||||||
|
|||||||
Reference in New Issue
Block a user