From aad31f3f68eab343036906938a81a564e08676d1 Mon Sep 17 00:00:00 2001 From: KnowOne <Knowone134@gmail.com> Date: Mon, 27 Jan 2025 20:58:52 -0600 Subject: [PATCH] Correct use for on LSB --- scripts/globals/utils.lua | 3 + .../ahtUrhgan/Promotion_Lance_Corporal.lua | 94 +++++++++++-------- scripts/zones/Aht_Urhgan_Whitegate/IDs.lua | 2 +- scripts/zones/Bhaflau_Thickets/IDs.lua | 2 +- scripts/zones/Wajaom_Woodlands/IDs.lua | 2 +- 5 files changed, 60 insertions(+), 43 deletions(-) diff --git a/scripts/globals/utils.lua b/scripts/globals/utils.lua index c7e4afa88ae..def06abf580 100644 --- a/scripts/globals/utils.lua +++ b/scripts/globals/utils.lua @@ -731,10 +731,12 @@ utils.mask = splitBits = function(bits, size) local result = {} local mask = bit.lshift(1, size) - 1 + while bits > 0 do result[#result + 1] = bit.band(bits, mask) bits = bit.rshift(bits, size) end + return result end, @@ -745,6 +747,7 @@ utils.mask = varSplit = function(option, splitBit) splitBit = splitBit or 16 local mask = bit.lshift(1, splitBit) - 1 + return bit.band(option, mask), bit.rshift(option, splitBit) end, } diff --git a/scripts/quests/ahtUrhgan/Promotion_Lance_Corporal.lua b/scripts/quests/ahtUrhgan/Promotion_Lance_Corporal.lua index a4a860da9f1..3995a2557c9 100644 --- a/scripts/quests/ahtUrhgan/Promotion_Lance_Corporal.lua +++ b/scripts/quests/ahtUrhgan/Promotion_Lance_Corporal.lua @@ -1,6 +1,6 @@ ----------------------------------- -- Promotion: Lance Corporal --- Logid: 6 Quest: 92 +-- Logid: 6 Quest: 92 -- Abquhbah: !pos 35.5 -6.6 -58 50 -- Nafiwaa: !pos -74 -6 126 50 -- Mythralline Wellspring 1: !pos -92 -15 -339 51 @@ -11,8 +11,11 @@ -- Prog: running total of player's test tube contents -- Option: what mixture was turned in to the guild ----------------------------------- +local ahturhganID = zones[xi.zone.AHT_URHGAN_WHITEGATE] +local bhaflauID = zones[xi.zone.BHAFLAU_THICKETS] +local wajaomID = zones[xi.zone.WAJAOM_WOODLANDS] -local quest = Quest:new(xi.quest.log_id.AHT_URHGAN, xi.quest.id.ahtUrhgan.PROMOTION_LANCE_CORPORAL) +local quest = Quest:new(xi.questLog.AHT_URHGAN, xi.quest.id.ahtUrhgan.PROMOTION_LANCE_CORPORAL) local stage = { @@ -33,11 +36,11 @@ local tube = local tubeKeyItems = { - [tube.ONE] = {filledTube = xi.ki.TEST_TUBE_1, emptyTube = xi.ki.EMPTY_TEST_TUBE_1}, - [tube.TWO] = {filledTube = xi.ki.TEST_TUBE_2, emptyTube = xi.ki.EMPTY_TEST_TUBE_2}, - [tube.THREE] = {filledTube = xi.ki.TEST_TUBE_3, emptyTube = xi.ki.EMPTY_TEST_TUBE_3}, - [tube.FOUR] = {filledTube = xi.ki.TEST_TUBE_4, emptyTube = xi.ki.EMPTY_TEST_TUBE_4}, - [tube.FIVE] = {filledTube = xi.ki.TEST_TUBE_5, emptyTube = xi.ki.EMPTY_TEST_TUBE_5}, + [tube.ONE] = { filledTube = xi.ki.TEST_TUBE_1, emptyTube = xi.ki.EMPTY_TEST_TUBE_1 }, + [tube.TWO] = { filledTube = xi.ki.TEST_TUBE_2, emptyTube = xi.ki.EMPTY_TEST_TUBE_2 }, + [tube.THREE] = { filledTube = xi.ki.TEST_TUBE_3, emptyTube = xi.ki.EMPTY_TEST_TUBE_3 }, + [tube.FOUR] = { filledTube = xi.ki.TEST_TUBE_4, emptyTube = xi.ki.EMPTY_TEST_TUBE_4 }, + [tube.FIVE] = { filledTube = xi.ki.TEST_TUBE_5, emptyTube = xi.ki.EMPTY_TEST_TUBE_5 }, } local fillLevel = @@ -49,7 +52,7 @@ local fillLevel = } local function getFluidLevel(player, tubeNum, var) - local allTubes = utils.splitBits(quest:getVar(player, var), 2) + local allTubes = utils.mask.splitBits(quest:getVar(player, var), 2) return allTubes[tubeNum] or 0 end @@ -67,8 +70,8 @@ local function getFilledTubeCount(player) end local function canFillTube(player, tubeNum) - return player:hasKeyItem(tubeKeyItems[tubeNum].emptyTube) - or (quest:getVar(player, 'Stage') == stage.REMIX and getFluidLevel(player, tubeNum, 'Prog') ~= fillLevel.FULL) + return player:hasKeyItem(tubeKeyItems[tubeNum].emptyTube) or + (quest:getVar(player, 'Stage') == stage.REMIX and getFluidLevel(player, tubeNum, 'Prog') ~= fillLevel.FULL) end local function fillTestTube(player, tubeNum) @@ -122,11 +125,11 @@ local function getQuestReward(player) local reward local rewardTiers = { - luminium = { item = xi.items.IMPERIAL_GOLD_PIECE, amount = 2 }, + luminium = { item = xi.item.IMPERIAL_GOLD_PIECE, amount = 2 }, platinum = { - { item = xi.items.IMPERIAL_MYTHRIL_PIECE, amount = math.random(3, 4) }, - { item = xi.items.IMPERIAL_GOLD_PIECE, amount = 1 }, + { item = xi.item.IMPERIAL_MYTHRIL_PIECE, amount = math.random(3, 4) }, + { item = xi.item.IMPERIAL_GOLD_PIECE, amount = 1 }, }, } @@ -149,8 +152,9 @@ quest.sections = { { -- Start: Trigger Abquhbah check = function(player, status, vars) - return status == xi.quest.status.AVAILABLE and player:getVar("AssaultPromotion") >= 25 - and player:getQuestStatus(xi.quest.log_id.AHT_URHGAN, xi.quest.id.ahtUrhgan.PROMOTION_SUPERIOR_PRIVATE) == xi.quest.status.COMPLETED + return status == xi.questStatus.QUEST_AVAILABLE and + player:getCharVar('AssaultPromotion') >= 25 and + player:getQuestStatus(xi.questLog.AHT_URHGAN, xi.quest.id.ahtUrhgan.PROMOTION_SUPERIOR_PRIVATE) == xi.questStatus.QUEST_COMPLETED end, [xi.zone.AHT_URHGAN_WHITEGATE] = @@ -167,7 +171,8 @@ quest.sections = }, { -- 1st Stage: Trigger Nafiwaa and recieve 5 KI empty test tubes check = function(player, status, vars) - return status == xi.quest.status.ACCEPTED and vars.Stage == stage.START + return status == xi.questStatus.QUEST_ACCEPTED and + vars.Stage == stage.START end, [xi.zone.AHT_URHGAN_WHITEGATE] = @@ -188,7 +193,8 @@ quest.sections = }, { -- 2nd (and optional 3rd) Stage: Go to Mythralline Wellsprings and fill tubes; Trigger Nafiwaa to do mini game and mix mythralline check = function(player, status, vars) - return status == xi.quest.status.ACCEPTED and (vars.Stage == stage.FIRST_MIX or vars.Stage == stage.REMIX) + return status == xi.questStatus.QUEST_ACCEPTED and + (vars.Stage == stage.FIRST_MIX or vars.Stage == stage.REMIX) end, [xi.zone.AHT_URHGAN_WHITEGATE] = @@ -209,7 +215,7 @@ quest.sections = if filledTubeCount == 0 then return quest:event(5036) elseif filledTubeCount < 5 then -- must gather all 5 tubes on first mix - return quest:event(5037, {[1] = filledTubeCount}) + return quest:event(5037, { [1] = filledTubeCount }) end elseif currentStage == stage.REMIX then local totalThirds = 15 @@ -236,15 +242,15 @@ quest.sections = onEventFinish = { [5038] = function(player, csid, option, npc) - local remainingTubeContents, option = utils.varSplit(option, 16) + local remainingTubeContents, mask = utils.mask.varSplit(option, 16) - option = bit.rshift(option, 14) + local result = bit.rshift(mask, 14) - if option == 2 then -- accept the results, turn in to guild + if result == 2 then -- accept the results, turn in to guild local startingContents = quest:getVar(player, 'Prog') quest:setVar(player, 'Stage', stage.WAIT) - quest:setVar(player, 'Wait', vanaDay() + 1) + quest:setVar(player, 'Wait', VanadielUniqueDay() + 1) quest:setVar(player, 'Option', remainingTubeContents - startingContents) for keyItem = xi.ki.EMPTY_TEST_TUBE_1, xi.ki.TEST_TUBE_5 do @@ -253,12 +259,15 @@ quest.sections = end end - elseif option == 1 then -- threw it out + elseif result == 1 then -- threw it out quest:setVar(player, 'Stage', stage.REMIX) quest:setVar(player, 'Prog', remainingTubeContents) for tubeNum, tubeKeyItem in ipairs(tubeKeyItems) do - if getFluidLevel(player, tubeNum, 'Prog') == fillLevel.EMPTY and player:hasKeyItem(tubeKeyItem.filledTube) then + if + getFluidLevel(player, tubeNum, 'Prog') == fillLevel.EMPTY and + player:hasKeyItem(tubeKeyItem.filledTube) + then player:delKeyItem(tubeKeyItem.filledTube) player:addKeyItem(tubeKeyItem.emptyTube) end @@ -276,7 +285,7 @@ quest.sections = return quest:progressEvent(4) end - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 3) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 3) end, }, ['Mythralline_Wellspring_2'] = @@ -286,7 +295,7 @@ quest.sections = return quest:progressEvent(5) end - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 3) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 3) end, }, ['Mythralline_Wellspring_3'] = @@ -296,7 +305,7 @@ quest.sections = return quest:progressEvent(6) end - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 3) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 3) end, }, ['Mythralline_Wellspring_4'] = @@ -306,7 +315,7 @@ quest.sections = return quest:progressEvent(7) end - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 3) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 3) end, }, @@ -315,12 +324,15 @@ quest.sections = [4] = function(player, csid, option, npc) fillTestTube(player, tube.ONE) end, + [5] = function(player, csid, option, npc) fillTestTube(player, tube.TWO) end, + [6] = function(player, csid, option, npc) fillTestTube(player, tube.THREE) end, + [7] = function(player, csid, option, npc) fillTestTube(player, tube.FOUR) end, @@ -335,7 +347,7 @@ quest.sections = return quest:progressEvent(10) end - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 3) + return quest:messageSpecial(bhaflauID.text.WELLSPRING + 3) end, }, @@ -349,7 +361,9 @@ quest.sections = }, { -- Complete: after game day wait, enter region check = function(player, status, vars) - return status == xi.quest.status.ACCEPTED and vars.Stage == stage.WAIT and vars.Option > 0 + return status == xi.questStatus.QUEST_ACCEPTED and + vars.Stage == stage.WAIT and + vars.Option > 0 end, [xi.zone.AHT_URHGAN_WHITEGATE] = @@ -358,10 +372,10 @@ quest.sections = ['Abquhbah'] = quest:event(5034):importantOnce(), - onRegionEnter = + onTriggerAreaEnter = { [3] = function(player, triggerArea) - if quest:getVar(player, 'Wait') <= vanaDay() then + if quest:getVar(player, 'Wait') <= VanadielUniqueDay() then return quest:progressEvent(5031, { text_table = 0 }) end end, @@ -373,14 +387,14 @@ quest.sections = local reward = getQuestReward(player) if reward then - if not npcUtil.giveItem(player, {{reward.item, reward.amount}}) then + if not npcUtil.giveItem(player, { { reward.item, reward.amount } }) then return end end quest:complete(player) - quest:messageSpecial(zones[player:getZoneID()].text.LANCE_CORPORAL) - player:setVar("AssaultPromotion", 0) + quest:messageSpecial(ahturhganID.text.LANCE_CORPORAL) + player:setCharVar('AssaultPromotion', 0) player:delKeyItem(xi.ki.SP_WILDCAT_BADGE) end, }, @@ -390,25 +404,25 @@ quest.sections = ['Mythralline_Wellspring_1'] = { onTrigger = function(player, npc) - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 2) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 2) end, }, ['Mythralline_Wellspring_2'] = { onTrigger = function(player, npc) - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 2) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 2) end, }, ['Mythralline_Wellspring_3'] = { onTrigger = function(player, npc) - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 2) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 2) end, }, ['Mythralline_Wellspring_4'] = { onTrigger = function(player, npc) - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 2) + return quest:messageSpecial(wajaomID.text.WELLSPRING + 2) end, }, }, @@ -417,7 +431,7 @@ quest.sections = ['Mythralline_Wellspring_5'] = { onTrigger = function(player, npc) - return quest:messageSpecial(zones[player:getZoneID()].text.WELLSPRING + 2) + return quest:messageSpecial(bhaflauID.text.WELLSPRING + 2) end, }, }, diff --git a/scripts/zones/Aht_Urhgan_Whitegate/IDs.lua b/scripts/zones/Aht_Urhgan_Whitegate/IDs.lua index d15002528b7..1954fc1d5bb 100644 --- a/scripts/zones/Aht_Urhgan_Whitegate/IDs.lua +++ b/scripts/zones/Aht_Urhgan_Whitegate/IDs.lua @@ -46,7 +46,7 @@ zones[xi.zone.AHT_URHGAN_WHITEGATE] = AUTOMATON_RENAME = 5847, -- Your automaton has a new name. YOU_CAN_BECOME_PUP = 5850, -- You can now become a puppetmaster! NYZUL_FAIL = 6191, -- Your mission was not successful. I regret to inform you that the Imperial Army does not officially recognize your efforts within this Assault area. - LANCE_CORPORAL = 6664, -- ≺Player≻ has been promoted to Lance Corporal! + LANCE_CORPORAL = 6681, -- ≺Player≻ has been promoted to Lance Corporal! BESIEGED_OFFSET = 6832, -- Your Imperial Standing has increased! PAY_DIVINATION = 8784, -- ou pay 1000 gil for the divination. MEMBER_OF_SALAHEEMS_SENTINELS = 9262, -- You are now a member of Salaheem's Sentinels. diff --git a/scripts/zones/Bhaflau_Thickets/IDs.lua b/scripts/zones/Bhaflau_Thickets/IDs.lua index 3c6ad9ccc30..6151911810f 100644 --- a/scripts/zones/Bhaflau_Thickets/IDs.lua +++ b/scripts/zones/Bhaflau_Thickets/IDs.lua @@ -33,7 +33,7 @@ zones[xi.zone.BHAFLAU_THICKETS] = AREA_FULL = 7597, -- This area is fully occupied. You were unable to enter. MEMBER_NO_REQS = 7601, -- Not all of your party members meet the requirements for this objective. Unable to enter area. MEMBER_TOO_FAR = 7605, -- One or more party members are too far away from the entrance. Unable to enter area. - WELLSPRING = 7645, -- The water in the spring is an unusual color... + WELLSPRING = 7658, -- The water in the spring is an unusual color... SHED_LEAVES = 7667, -- The ground is strewn with shed leaves... BLOOD_STAINS = 7669, -- The ground is smeared with bloodstains... DRAWS_NEAR = 7694, -- Something draws near! diff --git a/scripts/zones/Wajaom_Woodlands/IDs.lua b/scripts/zones/Wajaom_Woodlands/IDs.lua index c4dca1a69a4..a1b977dce96 100644 --- a/scripts/zones/Wajaom_Woodlands/IDs.lua +++ b/scripts/zones/Wajaom_Woodlands/IDs.lua @@ -24,7 +24,7 @@ zones[xi.zone.WAJAOM_WOODLANDS] = ENIGMATIC_LIGHT = 7355, -- The <item> is giving off an enigmatic light. LEYPOINT = 7410, -- An eerie red glow emanates from this stone platform. The surrounding air feels alive with energy... HARVESTING_IS_POSSIBLE_HERE = 7418, -- Harvesting is possible here if you have <item>. - WELLSPRING = 7443, -- The water in the spring is an unusual color... + WELLSPRING = 7456, -- The water in the spring is an unusual color... GIWAHB_WATCHTOWER_LOCKED = 7993, -- The door is locked... INCREASED_STANDING = 7994, -- Your Imperial Standing has increased! HEADY_FRAGRANCE = 8498, -- The heady fragrance of wine pervades the air...