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:
hondacrx
2022-02-27 14:57:19 -05:00
parent fc33b8cd20
commit 5bf68e4370
2 changed files with 190 additions and 162 deletions
+5 -30
View File
@@ -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
View File
@@ -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;