From e0893a3f4e1a082110a631cfdc9485b948e7f5a4 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Sun, 8 Jun 2025 02:20:25 +0200 Subject: [PATCH] Add missing event in LB5 and edit battlefield entry requirement --- .../Balgas_Dais/shattering_stars_mnk.lua | 9 ++++-- .../Balgas_Dais/shattering_stars_smn.lua | 9 ++++-- .../Balgas_Dais/shattering_stars_whm.lua | 9 ++++-- .../shattering_stars_drg.lua | 9 ++++-- .../shattering_stars_nin.lua | 9 ++++-- .../shattering_stars_sam.lua | 9 ++++-- .../Horlais_Peak/shattering_stars_blm.lua | 9 ++++-- .../Horlais_Peak/shattering_stars_rng.lua | 9 ++++-- .../Horlais_Peak/shattering_stars_war.lua | 9 ++++-- .../QuBia_Arena/shattering_stars_brd.lua | 9 ++++-- .../QuBia_Arena/shattering_stars_drk.lua | 9 ++++-- .../QuBia_Arena/shattering_stars_pld.lua | 9 ++++-- .../Waughroon_Shrine/shattering_stars_bst.lua | 9 ++++-- .../Waughroon_Shrine/shattering_stars_rdm.lua | 9 ++++-- .../Waughroon_Shrine/shattering_stars_thf.lua | 9 ++++-- .../quests/jeuno/LB05_1_Shattering_Stars.lua | 32 ++++++++++++------- 16 files changed, 110 insertions(+), 57 deletions(-) diff --git a/scripts/battlefields/Balgas_Dais/shattering_stars_mnk.lua b/scripts/battlefields/Balgas_Dais/shattering_stars_mnk.lua index 6f8cfc1d17d..41f1d07b38d 100644 --- a/scripts/battlefields/Balgas_Dais/shattering_stars_mnk.lua +++ b/scripts/battlefields/Balgas_Dais/shattering_stars_mnk.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.MNK and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.MNK + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Balgas_Dais/shattering_stars_smn.lua b/scripts/battlefields/Balgas_Dais/shattering_stars_smn.lua index a76415ce01b..5e8018f7eb7 100644 --- a/scripts/battlefields/Balgas_Dais/shattering_stars_smn.lua +++ b/scripts/battlefields/Balgas_Dais/shattering_stars_smn.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.SMN and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.SMN + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Balgas_Dais/shattering_stars_whm.lua b/scripts/battlefields/Balgas_Dais/shattering_stars_whm.lua index 4c030d09074..9540462cca5 100644 --- a/scripts/battlefields/Balgas_Dais/shattering_stars_whm.lua +++ b/scripts/battlefields/Balgas_Dais/shattering_stars_whm.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.WHM and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.WHM + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Chamber_of_Oracles/shattering_stars_drg.lua b/scripts/battlefields/Chamber_of_Oracles/shattering_stars_drg.lua index 57f95a45d56..29e0c7823ec 100644 --- a/scripts/battlefields/Chamber_of_Oracles/shattering_stars_drg.lua +++ b/scripts/battlefields/Chamber_of_Oracles/shattering_stars_drg.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.DRG and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.DRG + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Chamber_of_Oracles/shattering_stars_nin.lua b/scripts/battlefields/Chamber_of_Oracles/shattering_stars_nin.lua index 13f06726907..3819390629c 100644 --- a/scripts/battlefields/Chamber_of_Oracles/shattering_stars_nin.lua +++ b/scripts/battlefields/Chamber_of_Oracles/shattering_stars_nin.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.NIN and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.NIN + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Chamber_of_Oracles/shattering_stars_sam.lua b/scripts/battlefields/Chamber_of_Oracles/shattering_stars_sam.lua index 7217edaf03f..5b62abcd216 100644 --- a/scripts/battlefields/Chamber_of_Oracles/shattering_stars_sam.lua +++ b/scripts/battlefields/Chamber_of_Oracles/shattering_stars_sam.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.SAM and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.SAM + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Horlais_Peak/shattering_stars_blm.lua b/scripts/battlefields/Horlais_Peak/shattering_stars_blm.lua index 98bbc553b12..d6d7305c41f 100644 --- a/scripts/battlefields/Horlais_Peak/shattering_stars_blm.lua +++ b/scripts/battlefields/Horlais_Peak/shattering_stars_blm.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.BLM and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.BLM + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Horlais_Peak/shattering_stars_rng.lua b/scripts/battlefields/Horlais_Peak/shattering_stars_rng.lua index ee2540ed368..45d9838816c 100644 --- a/scripts/battlefields/Horlais_Peak/shattering_stars_rng.lua +++ b/scripts/battlefields/Horlais_Peak/shattering_stars_rng.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.RNG and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.RNG + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Horlais_Peak/shattering_stars_war.lua b/scripts/battlefields/Horlais_Peak/shattering_stars_war.lua index ae8bb3157f7..28b33053022 100644 --- a/scripts/battlefields/Horlais_Peak/shattering_stars_war.lua +++ b/scripts/battlefields/Horlais_Peak/shattering_stars_war.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.WAR and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.WAR + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/QuBia_Arena/shattering_stars_brd.lua b/scripts/battlefields/QuBia_Arena/shattering_stars_brd.lua index 35c9a876e7c..b2c017c3f1b 100644 --- a/scripts/battlefields/QuBia_Arena/shattering_stars_brd.lua +++ b/scripts/battlefields/QuBia_Arena/shattering_stars_brd.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.BRD and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.BRD + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/QuBia_Arena/shattering_stars_drk.lua b/scripts/battlefields/QuBia_Arena/shattering_stars_drk.lua index 2bf57e57945..f65ce49a568 100644 --- a/scripts/battlefields/QuBia_Arena/shattering_stars_drk.lua +++ b/scripts/battlefields/QuBia_Arena/shattering_stars_drk.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.DRK and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.DRK + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/QuBia_Arena/shattering_stars_pld.lua b/scripts/battlefields/QuBia_Arena/shattering_stars_pld.lua index 1ea89e6e55f..44aa2761d87 100644 --- a/scripts/battlefields/QuBia_Arena/shattering_stars_pld.lua +++ b/scripts/battlefields/QuBia_Arena/shattering_stars_pld.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.PLD and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.PLD + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Waughroon_Shrine/shattering_stars_bst.lua b/scripts/battlefields/Waughroon_Shrine/shattering_stars_bst.lua index 3b75b356d1d..476c89a3095 100644 --- a/scripts/battlefields/Waughroon_Shrine/shattering_stars_bst.lua +++ b/scripts/battlefields/Waughroon_Shrine/shattering_stars_bst.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.BST and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.BST + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Waughroon_Shrine/shattering_stars_rdm.lua b/scripts/battlefields/Waughroon_Shrine/shattering_stars_rdm.lua index 20966f14a11..b8d9634b304 100644 --- a/scripts/battlefields/Waughroon_Shrine/shattering_stars_rdm.lua +++ b/scripts/battlefields/Waughroon_Shrine/shattering_stars_rdm.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.RDM and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.RDM + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/battlefields/Waughroon_Shrine/shattering_stars_thf.lua b/scripts/battlefields/Waughroon_Shrine/shattering_stars_thf.lua index cce7b46fe09..95a1c778c4b 100644 --- a/scripts/battlefields/Waughroon_Shrine/shattering_stars_thf.lua +++ b/scripts/battlefields/Waughroon_Shrine/shattering_stars_thf.lua @@ -19,9 +19,12 @@ local content = Battlefield:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) >= xi.questStatus.QUEST_ACCEPTED and - player:getMainJob() == xi.job.THF and - player:getMainLvl() >= 66 + local jobRequirement = player:getMainJob() == xi.job.THF + local levelRequirement = player:getMainLvl() >= 66 + local questStatus = player:getQuestStatus(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) + local questRequirement = questStatus == xi.questStatus.QUEST_COMPLETED or (questStatus == xi.questStatus.QUEST_ACCEPTED and player:getCharVar('Quest[3][132]tradedTestimony') == 1) + + return jobRequirement and levelRequirement and questRequirement end content.groups = diff --git a/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua b/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua index 657d42e0f86..d8bb40efdc1 100644 --- a/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua +++ b/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua @@ -11,9 +11,9 @@ local quest = Quest:new(xi.questLog.JEUNO, xi.quest.id.jeuno.SHATTERING_STARS) quest.reward = { - fame = 80, + fame = 80, fameArea = xi.fameArea.JEUNO, - title = xi.title.STAR_BREAKER, + title = xi.title.STAR_BREAKER, } local maatBattlefieldIds = @@ -95,22 +95,27 @@ quest.sections = { ['Maat'] = { - onTrigger = function(player, npc) - if quest:getVar(player, 'Prog') >= 1 then - return quest:progressEvent(93) -- Complete quest. - elseif quest:getVar(player, 'Prog') == 0 then - return quest:event(91, player:getMainJob()) - end - end, - onTrade = function(player, npc, trade) - local properTestimony = xi.item.WARRIORS_TESTIMONY + player:getMainJob() - 1 + local playerJob = player:getMainJob() + local properTestimony = xi.item.WARRIORS_TESTIMONY + playerJob - 1 if npcUtil.tradeHasExactly(trade, properTestimony) and quest:getVar(player, 'Prog') == 0 then - return quest:progressEvent(64, player:getMainJob()) + return quest:progressEvent(64, playerJob) + end + end, + + onTrigger = function(player, npc) + local playerJob = player:getMainJob() + + if quest:getVar(player, 'Prog') >= 1 then + return quest:progressEvent(93) -- Complete quest. + elseif quest:getVar(player, 'tradedTestimony') == 0 then + return quest:event(91, playerJob) -- Testimony never traded. + else + return quest:event(63, playerJob) -- Testimony traded at least once. end end, }, @@ -118,6 +123,9 @@ quest.sections = onEventFinish = { [64] = function(player, csid, option, npc) + quest:setVar(player, 'tradedTestimony', 1) + + -- Accept teleport. if option == 1 then local mJob = player:getMainJob() if mJob == xi.job.MNK or mJob == xi.job.WHM or mJob == xi.job.SMN then