From b890557f6038127ae553c30c7d2725bdd13cfed0 Mon Sep 17 00:00:00 2001 From: AconiteGodOfSWG <63141077+AconiteGodOfSWG@users.noreply.github.com> Date: Fri, 16 Oct 2020 21:03:26 -0400 Subject: [PATCH 1/2] Add getExclusiveItemRewardCount method --- .../game/script/library/groundquests.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sku.0/sys.server/compiled/game/script/library/groundquests.java b/sku.0/sys.server/compiled/game/script/library/groundquests.java index b7455cad1..94cdee5f6 100755 --- a/sku.0/sys.server/compiled/game/script/library/groundquests.java +++ b/sku.0/sys.server/compiled/game/script/library/groundquests.java @@ -1730,4 +1730,23 @@ public class groundquests extends script.base_script } return null; } + + // NOTE this method only works for getting the item count for a selected exclusive reward + // from a questLIST not a questTASK. This was added to accommodate a specific WOD expansion + // quest, but it can be expanded later if needed. + public static int getExclusiveItemRewardCount(String questName, String itemName) { + String datatable = "datatables/questlist/"+questName+".iff"; + dictionary questData = dataTableGetRow(datatable, 0); + String itemColName = "QUEST_REWARD_EXCLUSIVE_LOOT_NAME"; + String countColName = "QUEST_REWARD_EXCLUSIVE_LOOT_COUNT"; + for(int i = 1; i <= 10; i++) { + if(i == 1) { + if(itemName.equals(questData.getString(itemColName))) return questData.getInt(countColName); + } + else { + if(itemName.equals(questData.getString(itemColName + "_" + i))) return questData.getInt(countColName + "_" + i); + } + } + return 1; + } } From 601be3d3a354c5d5054a41ec0d18663f4546801f Mon Sep 17 00:00:00 2001 From: AconiteGodOfSWG <63141077+AconiteGodOfSWG@users.noreply.github.com> Date: Fri, 16 Oct 2020 21:07:21 -0400 Subject: [PATCH 2/2] Fix exclusiveLootChoiceCount in OnQuestCompleted --- .../compiled/game/script/player/base/base_player.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sku.0/sys.server/compiled/game/script/player/base/base_player.java b/sku.0/sys.server/compiled/game/script/player/base/base_player.java index 9585b829e..e6b83c6c5 100755 --- a/sku.0/sys.server/compiled/game/script/player/base/base_player.java +++ b/sku.0/sys.server/compiled/game/script/player/base/base_player.java @@ -10674,7 +10674,7 @@ public class base_player extends script.base_script exclusiveLootNames[9] = groundquests.getQuestStringDataEntry(questCrc, groundquests.dataTableColumnQuestRewardExclusiveLootName10); exclusiveLootCounts[9] = groundquests.getQuestIntDataEntry(questCrc, groundquests.dataTableColumnQuestRewardExclusiveLootCount10); String badge = groundquests.getQuestStringDataEntry(questCrc, groundquests.dataTableColumnBadge); - int exclusiveLootCountChoice = 1; + int exclusiveLootCountChoice = groundquests.getExclusiveItemRewardCount(questGetQuestName(questCrc), exclusiveItemChoice); groundquests.grantQuestReward(self, questCrc, questLevel, questTier, experienceType, experienceAmount, factionName, factionAmount, grantGcwReward, bankCredits, item, itemCount, weapon, weaponCount, weaponSpeed, weaponDamage, weaponEfficiency, weaponElementalValue, armor, armorCount, armorQuality, inclusiveLootNames, inclusiveLootCounts, exclusiveItemChoice, exclusiveLootCountChoice, badge, (questIsQuestForceAccept(questCrc) || !questDoesUseAcceptanceUI(questCrc)), grantGcwOverwriteAmt, grantGcwSFModifier, grantGcwRebReward, grantGcwRebRewardCount, grantGcwImpReward, grantGcwImpRewardCount, grantGcwSFRewardMultip); experienceAmount = groundquests.getQuestExperienceReward(self, questLevel, questTier, experienceAmount); metrics.doQuestMetrics(self, questCrc, questLevel, questTier, experienceType, experienceAmount);