diff --git a/Community Scripts/Dungeons/Alex Burden of Father [A4N] Farm.lua b/Community Scripts/Dungeons/Alex Burden of Father [A4N] Farm.lua index b1f7cd295..63f8ccc8b 100644 --- a/Community Scripts/Dungeons/Alex Burden of Father [A4N] Farm.lua +++ b/Community Scripts/Dungeons/Alex Burden of Father [A4N] Farm.lua @@ -7,9 +7,11 @@ *********** * Version * - * 3.3.5 * + * 3.3.6 * *********** + -> 3.3.6: Went through and tweaks some of the base settings. Made it kick in on finding the right duty A LOT quicker. (Like. We fast af boyz) + As well as, generally tweaked some under the hood things. -> 3.3.5: Visland is fixed! (Hopefully) and also have support for Navmesh as well, just select which one you would like in the settings. (Default is Visland) Will say (Hopefully) becuase ran it for ~7 hours last night while I was asleep and SEEMS like it's not crashing the FPS. SO. *-claps-* -> 3.3.4: Switched over to PURELY Navmesh on this, visland is causing some memory leak or SOMETHING atm. So... to avoid further issues/make it to where it works properly, implimenting it (pretty much as seemless, I get peeps don't like change but) @@ -62,13 +64,14 @@ -- Select which one you would like, Visland is the one that we've used in this script for a LONG time -- VNavmesh however works just as well. You can have both plugins installed, just select which one you want to use for movement - NumberofLoops = 5 -- number of loops you would like to do + NumberofLoops = 5 + -- number of loops you would like to do InfiniteLoops = false -- options: true | false -- If you want it to continually loop w/o a cap, change InfiniteLoops to true -- this will ignore the number of loops and continually go w/o stopping rate = 0.3 -- Increase this at lower fps [0.3 works on 15fps+] - timeoutThreshold = 15 -- Number of seconds to wait before timeout + timeoutThreshold = 3 -- Number of seconds to wait before timeout ManualSetDuty = false -- true | false option -- if you don't want to deal with the duty selection process, and select the duty yourself/turned on Unsync set this to true. If you want to just automate to the duty, set this to false. @@ -78,13 +81,7 @@ -- If you have your duty from 50 at top, and 90 toward the bottom, leave this as true -- If you have your duty from 90 at top, and 50 toward the bottom, change this to false - YesAlreadyContentCheckBox = false -- true | false option - -- If you have it to where you have the setting to automatically confirm in "YesAlready" set this to true. - -- This will make it to where it won't hang on trying to get the duty confirm window to load, and press the duty commence button - -- I could pause yes already, but that's a headache I don't wanna think about at this second lol. - -- default is false - - ManualRepair = false -- if you want to repair between the loops that you do. [defaults is false | on is true] + ManualRepair = true -- if you want to repair between the loops that you do. [defaults is false | on is true] RepairAmount = 99 -- lowest point your gear will EchoHowMany = true -- Would you like to know where in the script the loop is at? [default is true | off is false] @@ -103,35 +100,34 @@ ]] -- functions - function TargetNearestObjectKind(objectKind, radius, subKind) - local smallest_distance = 10000000000000.0 - local closest_target - local radius = radius or 0 - local subKind = subKind or 5 - local nearby_objects = GetNearbyObjectNames(radius^2,objectKind) + function TargetNearestObjectKind(objectKind, radius, subKind) + local smallest_distance = 10000000000000.0 + local closest_target + local radius = radius or 0 + local subKind = subKind or 5 + local nearby_objects = GetNearbyObjectNames(radius^2,objectKind) - if nearby_objects.Count > 0 then - for i = 0, nearby_objects.Count - 1 do - yield("/target "..nearby_objects[i]) - if not GetTargetName() or nearby_objects[i] ~= GetTargetName() - or (objectKind == 2 and subKind ~= GetTargetSubKind()) then - elseif GetDistanceToTarget() < smallest_distance then - smallest_distance = GetDistanceToTarget() - closest_target = GetTargetName() - end - end - ClearTarget() - if closest_target then yield("/target "..closest_target) end - end - return closest_target - end - - function PlayerTest() - repeat - yield("/wait "..rate) - until IsPlayerAvailable() - end - + if nearby_objects.Count > 0 then + for i = 0, nearby_objects.Count - 1 do + yield("/target "..nearby_objects[i]) + if not GetTargetName() or nearby_objects[i] ~= GetTargetName() + or (objectKind == 2 and subKind ~= GetTargetSubKind()) then + elseif GetDistanceToTarget() < smallest_distance then + smallest_distance = GetDistanceToTarget() + closest_target = GetTargetName() + end + end + ClearTarget() + if closest_target then yield("/target "..closest_target) end + end + return closest_target + end + + function PlayerTest() + repeat + yield("/wait "..rate) + until IsPlayerAvailable() + end -- Custom values being setup at the beginning before running the script @@ -161,7 +157,7 @@ PedalCount = GetItemCount(PedalID) BoltCount = GetItemCount(BoltID) - ActualLoopCount = math.min(BoltCount//2,ShaftCount//2,SpringCount//2,PedalCount//1,CrankCount//1) + ActualLoopCount = math.min(BoltCount//2,ShaftCount//2,SpringCount//2,PedalCount,CrankCount) --Visland Loops Alex_Chest = "H4sIAAAAAAAACuWQSWvDMBCF/0qZsyMkR7It3UIX8CHdCLgLJYhkTASxVWy5C8b/vYpj40ALvRZ605t5enr6WrjWBYKCxR4/1ny9ggAy/flqTelqUM8t3NraOGNLUC08gAqJFDGXEQ/gERSjJKJcijCAJ1AzQZKEJiHrvLQlphegaAD3emsaH8aIF0v7hgWWrt+kpcNKb1xm3O5mcJ/Ohm6+U72z7+PGl/Fpud7XONn7hiyAy8K68eHUYTEcF71jEHcN1m44H4IzbdyUeFBXtjq35Xb4OD0OV6bApffRLviGZUYJo5IyGU9kBOeRkEcykgjJEhH/QzIhoaHkyURlLrk4UonIPJpTmZxQ4YfdyMVf/Y0Ljz3hH8i4CnXdVHi2sXmO1Z8D9dJ9Ad/rgrl7AwAA" @@ -174,15 +170,16 @@ DutyCounter = 0 DutyFail = 0 + if ManualSetDuty == true then + DutyCounter = 1 + end -if ManualSetDuty == true then - DutyCounter = 1 -end - -if NumberofLoops == 0 then - InfiniteLoops = true - yield("/e Hmm... you didn't set it to infinite, but you also set it as 0, so I'm going to safely assume you meant to put it as infinite. Fixed that for you") -end + if NumberofLoops == 0 then + InfiniteLoops = true + yield("/e Hmm... you didn't set it to infinite, but you also set it as 0, so I'm going to safely assume you meant to put it as infinite. Fixed that for you") + end + + StartingZone = GetZoneID() ::LoopTest:: @@ -195,7 +192,7 @@ end if EchoHowMany == true then yield("/echo Loop: "..CurrentLoop.." out of ".. NumberofLoops) end - PlayerTest() + PlayerTest() elseif NumberofLoops < CurrentLoop and InfiniteLoops == false then goto StopLoop elseif InfiniteLoops == true then @@ -241,29 +238,33 @@ end if DutyFail == 4 then goto StopLoop elseif DutyCounter == 0 then -- Initially setting up duty to loop Alexander - Burden of the Father (A4N) + LogInfo("[A4N] Duty Counter = 0") PathStop() - --Open duty finder until it's visible - while not IsAddonVisible("ContentsFinder") do + while not IsAddonVisible("ContentsFinder") do --Open duty finder until it's visible yield("/dutyfinder") yield("/wait "..rate) end - --wait till duty finder has finished loading - while not IsAddonReady("ContentsFinder") do + LogInfo("[A4N] Content Finder Addon is Visible") + while not IsAddonReady("ContentsFinder") do --wait till duty finder has finished loading yield("/wait "..rate) end - -- Setting up Unsync if it wasn't already - SetDFUnrestricted(true) - --wait until duty finder settings has closed + LogInfo("[A4N] Content Finder Addon is ready") + SetDFUnrestricted(true) -- Setting up Unsync if it wasn't already + LogInfo("[A4N] Set the duty to Unrestricted") + yield("/wait "..rate) yield("/pcall ContentsFinder True 12 1") -- Clearing out any old duties - --wait till old selections are cleared out - repeat + LogInfo("[A4N] Clearing any old duties that might of shown up") + yield("/wait "..rate) + while GetNodeText("ContentsFinder", 15) ~= "0/5 Selected" do yield("/wait "..rate) - until GetNodeText("ContentsFinder", 15) == "0/5 Selected" + end OpenRegularDuty(115) + yield("/wait "..rate) + LogInfo("[A4N] Directly going to the tab that should have A4N as it's option") local timeout = 0 repeat yield("/wait "..rate) - timeout = timeout + 1 + timeout = timeout if timeout > timeoutThreshold / rate then goto NOTALLUNLOCK end @@ -283,10 +284,11 @@ end until GetNodeText("ContentsFinder", 14) == "Alexander - The Burden of the Father" ::NOTALLUNLOCK:: + LogInfo("Not everything is unlocked, or your script is in the wrong order") if GetNodeText("ContentsFinder", 14) ~= "Alexander - The Burden of the Father" then for i = 1, 501 do yield("/pcall ContentsFinder True 3 "..i) - yield("/wait "..rate) + yield("/wait 0.1") if GetNodeText("ContentsFinder", 14) == "Alexander - The Burden of the Father" then break end end yield("/wait "..rate) @@ -294,34 +296,34 @@ end yield("/pcall ContentsFinder True 12 0") DutyCounter = DutyCounter + 1 - while IsAddonVisible("ContentsFinderConfirm") == false and YesAlreadyContentCheckBox == false do + elseif DutyCounter == 1 then -- Quicker menu'ing here to load in + PathStop() + --Open duty finder until it's visible + while not IsAddonVisible("ContentsFinder") do + yield("/dutyfinder") yield("/wait "..rate) - end - elseif DutyCounter == 1 then -- Quicker menu'ing here to load in - PathStop() - --Open duty finder until it's visible - while not IsAddonVisible("ContentsFinder") do - yield("/dutyfinder") - yield("/wait "..rate) - end - --wait till duty finder has finished loading - while not IsAddonReady("ContentsFinder") do - yield("/wait "..rate) - end - yield("/pcall ContentsFinder True 12 0") --Duty Load - while IsAddonVisible("ContentsFinderConfirm") == false and YesAlreadyContentCheckBox == false do - yield("/wait "..rate) - end + end + --wait till duty finder has finished loading + while not IsAddonReady("ContentsFinder") do + yield("/wait "..rate) + end + yield("/pcall ContentsFinder True 12 0") --Duty Load elseif DutyCounter == 2 then - yield("/echo Hmm... it seems like this has failed, so going to reset it") - DutyCounter = 0 - DutyFail = DutyFail + 1 - goto DutyFinder -end + yield("/echo Hmm... it seems like this has failed, so going to reset it") + DutyCounter = 0 + DutyFail = DutyFail + 1 + goto DutyFinder + end ::DutyCommence:: - yield("/pcall ContentsFinderConfirm True 8") + while GetZoneID() == StartingZone and GetCharacterCondition(45, false) do + yield("/wait "..rate) + if IsAddonVisible("ContentsFinderConfirm") == true then + yield("/wait "..rate) + yield("/pcall ContentsFinderConfirm True 8") + end + end repeat yield("/wait "..rate) until IsInZone(445) and IsAddonVisible("_Image") @@ -348,12 +350,12 @@ end if MovementType == VNavmesh then PathfindAndMoveTo(enemy_x, enemy_y, enemy_z) while PathfindInProgress() do - yield("/wait 0.05") + yield("/wait 0.1") end yield("/wait "..rate) yield("/rotation manual") while GetDistanceToTarget() > 3 do - yield("/wait 0.05") + yield("/wait 0.1") end PathStop() -- Stop movement after reaching near the target elseif MovementType == Visland then @@ -361,7 +363,7 @@ end yield("/wait "..rate) yield("/rotation manual") while GetDistanceToTarget() > 3 do - yield("/wait 0.05") + yield("/wait 0.1") end yield("/visland stop") end diff --git a/Community Scripts/Misc/Idyllshire Turnin.lua b/Community Scripts/Misc/Idyllshire Turnin.lua index f59255dbc..3827f5c37 100644 --- a/Community Scripts/Misc/Idyllshire Turnin.lua +++ b/Community Scripts/Misc/Idyllshire Turnin.lua @@ -1,58 +1,55 @@ --[[ - *********************** - * Idyllshire Turnin * - * Alex 1-4 Edition * - *********************** + *********************** + * Idyllshire Turnin * + * Alex 1-4 Edition * + *********************** + + READ THIS PLEASE: There seems to be some sort of bug that's causing the script to not... copy properly? If you're using the github copy button? It's like 1AM as i'm typing this so. Dont' know the bug/reason. + Just make sure to select the whole script with your mouse (or even by opening the raw version) and then proceeding to paste it in SND. + + ************** + * VERSION * + * 3.3.2.0 * + ************** + + Update notes: + 3.3.2.0 -> ALRIGHT. Fixed the Teleporting to the GC (Like... 99% on this) also, fixed it interacting w/ Sabina. There's probably something else for me to tweak but... :/ + -> ACTUALLY made it turn on the pandora settings that you need. + 3.3.1.11 -> Removed Old GC Ticket teleport system, since that's just baked into the GCTeleport itself. Took that time to also re-write that whole section and clean it up a bit. + 3.3.1.10 -> Made some tiny optimizations that's been bugging me, nothing to major. mounting in Idyllshire for instance... + 3.3.1.0 -> Small fix to if you're buying in gridania, added a waypoint so you wouldn't get stuck on the step trying to turn it in + 3.3.0.0 -> Rewrote the buying process to go from bolts -> pedal -> spring -> crank -> shaft + This functionally does nothing for normal buyer peeps + Also made it to where you could max buy on the first page, so it'll get in/out of Idyllshire quicker + -> This setting is "MaxSingleItem", you'll find the toglle under Settings, off by default as always + 3.2.0.0 -> Inventory Buying Fix + + Author: Leontopodium Nivale + + *************** + * Description * + *************** + + Teleports you to Idyllshire (or if you're standing in front of an aetheryte) and takes you to the Alex Vendor to trade your raid pieces -> gear, + which then takes you to your personal Grand Company and turns them into what you have selected from Deliveroo. + + If you have OTP on, and you have your company aetheryte tickets, you can do this loop for free wihtout costing you any gil. + + ********************* + * Required Plugins * + ********************* + + -> Teleporter | 1st Party Plugin + -> Pandora (Enable "Auto-select Turn-ins & Automatically Confirm") | NOTE. THESE WILL ACTIVATE NOW IN THE SCRIPT. + -> Lifestream + -> Deliveroo [If you need the link, here --> https://plugins.carvel.li/] + -> vnavmesh (replaced visland) + -> YesAlready + -> YesAlready -> Yes/No -> Add this: You cannot currently equip this item. Proceed with the transaction? + Yes, you can zone lock this to strictly Idyllshire if you would like (I did) + -> YesAlready -> Bothers -> Scroll near the VERY bottom and make sure "ShopExchangeItemDialog" is checkmarked - ************** - * VERSION * - * 3.3.1.12 * - ************** - - Update notes: - 3.3.1.12 - 3.3.1.11 -> Removed Old GC Ticket teleport system, since that's just baked into the GCTeleport itself. Took that time to also re-write that whole section and clean it up a bit. - 3.3.1.10 -> Made some tiny optimizations that's been bugging me, nothing to major. mounting in Idyllshire for instance... - 3.3.1.0 -> Small fix to if you're buying in gridania, added a waypoint so you wouldn't get stuck on the step trying to turn it in - 3.3.0.0 -> Rewrote the buying process to go from bolts -> pedal -> spring -> crank -> shaft - This functionally does nothing for normal buyer peeps - Also made it to where you could max buy on the first page, so it'll get in/out of Idyllshire quicker - -> This setting is "MaxSingleItem", you'll find the toglle under Settings, off by default as always - 3.2.0.0 -> Inventory Buying Fix - - Author: Leontopodium Nivale - - *************** - * Description * - *************** - - Teleports you to Idyllshire (or if you're standing in front of an aetheryte) and takes you to the Alex Vendor to trade your raid pieces -> gear, - which then takes you to your personal Grand Company and turns them into what you have selected from Deliveroo. - - If you have OTP on, and you have your company aetheryte tickets, you can do this loop for free wihtout costing you any gil. - - ********************* - * Required Plugins * - ********************* - - -> Teleporter | 1st Party Plugin - -> Pandora (Enable "Auto-select Turn-ins & Automatically Confirm") | - -> Lifestream - -> Deliveroo [If you need the link, here --> https://plugins.carvel.li/] - -> vnavmesh (replaced visland) - - -> YesAlready - - ************** - * IMPORTANT * - * SETTING * - ************** - - -> YesAlready -> Yes/No -> Add this: You cannot currently equip this item. Proceed with the transaction? - Yes, you can zone lock this to strictly Idyllshire if you would like (I did) - - -> YesAlready -> Bothers -> Scroll near the VERY bottom and make sure "ShopExchangeItemDialog" is checkmarked ]] --[[ @@ -62,6 +59,9 @@ ************** ]] + + +-- !!HEADS UP!! If you're running at lower than 60 FPS. INCREASE THIS VALUE. -- If you're shop is skipping buying items, increase this value. -- Default is 1 cause that's worked for me, but 5 has helped others as well Alex_Shop_Timer = 1 @@ -116,6 +116,20 @@ MaxSingleItem = false end end + function PathFinding() + yield("/wait 0.2") + while PathfindInProgress() do + yield("/wait 0.5") + end + end + + function DeliverooEnable() + if DeliverooIsTurnInRunning() == false then + yield("/wait 1") + yield("/deliveroo enable") + end + end + --tarnished gordian item ids, hardcoded. LensID = 12674 ShaftID = 12675 @@ -137,12 +151,17 @@ MaxSingleItem = false LimsaGCTicket = GetItemCount(LimsaTicketID) GridaniaGCTicket = GetItemCount(GridaniaTicketID) UldahGCTicket = GetItemCount(UldahTicketID) + + -- FUCKING TURNING THESE ON. Because I don't trust people + PandoraSetFeatureState("Auto-select Turn-ins", true) + PandoraSetFeatureConfigState("Auto-select Turn-ins", "AutoConfirm", true) + yield("/e HEY. LISTEN. I just turned on those 2 VERY important things that I said that was necessary. (Unless your running textadvanced, that's fine as well)") ::IdyllshireTurnin:: while IsInZone(478) == false and GetCharacterCondition(27) == false do yield("/tp Idyllshire") - yield("/wait 0.1") + yield("/wait 1") end TeleportTest() @@ -162,7 +181,7 @@ MaxSingleItem = false while IsPlayerCasting() do yield("/wait 0.1") end - yield("/wait 0.2") + yield("/wait 2") end yield("/wait 0.5") yield("/vnavmesh moveto -19.277 211 -36.076") @@ -181,15 +200,13 @@ MaxSingleItem = false if GetCharacterCondition(4, true) then yield("/ac dismount") repeat - yield("/wait 0.1") + yield("/wait 0.5") until GetCharacterCondition(4, false) end yield("/wait 1") - while GetTargetName() == "" do - yield("/target Sabina") - end - yield("/wait 0.35") - yield("/interact Sabina") + yield("/target Sabina") + yield("/wait 0.5") + yield("/interact") yield("/wait 1.0") yield("/pcall SelectIconString True 0") yield("/wait 1.0") @@ -265,7 +282,7 @@ MaxSingleItem = false --yield("/echo Shop Menu: "..Alex_Shop) yield("/wait "..Alex_Shop_Timer) i_count = GetInventoryFreeSlotCount() - if (MaxSingleItem == true and Alex_Shop == ShopArray[4] and (BoltCount == 0)) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[4] and (BoltCount == 0)) then + if (MaxSingleItem == true and Alex_Shop == ShopArray[4]) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[4]) then PedalCount = GetItemCount(PedalID) if i_count > (PedalCount//2) then i_count = (PedalCount//2) @@ -288,7 +305,7 @@ MaxSingleItem = false --yield("/echo Shop Menu: "..Alex_Shop) yield("/wait "..Alex_Shop_Timer) i_count = GetInventoryFreeSlotCount() - if (MaxSingleItem == true and Alex_Shop == ShopArray[6] and (BoltCount == 0 and PedalCount <= 1)) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[6] and (BoltCount == 0 and PedalCount <= 1)) then + if (MaxSingleItem == true and Alex_Shop == ShopArray[6]) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[6]) then SpringCount = GetItemCount(SpringID) if i_count > (SpringCount//4) then i_count = (SpringCount//4) @@ -311,7 +328,7 @@ MaxSingleItem = false --yield("/echo Shop Menu: "..Alex_Shop) yield("/wait "..Alex_Shop_Timer) i_count = GetInventoryFreeSlotCount() - if (MaxSingleItem == true and Alex_Shop == ShopArray[8] and (BoltCount == 0 and PedalCount <= 1 and SpringCount <= 3)) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[8] and (BoltCount == 0 and PedalCount <= 1 and SpringCount <= 3)) then + if (MaxSingleItem == true and Alex_Shop == ShopArray[8]) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[8]) then CrankCount = GetItemCount(CrankID) if i_count > (CrankCount//2) then i_count = (CrankCount//2) @@ -335,7 +352,7 @@ MaxSingleItem = false --yield("/echo Shop Menu: "..Alex_Shop) -- Just Debugging Stuff yield("/wait "..Alex_Shop_Timer) i_count = GetInventoryFreeSlotCount() - if (MaxSingleItem == true and Alex_Shop == ShopArray[10] and (BoltCount == 0 and PedalCount <= 1 and SpringCount <= 3 and CrankCount <= 1)) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[10] and (BoltCount == 0 and PedalCount <= 1 and SpringCount <= 3 and CrankCount <= 1)) then + if (MaxSingleItem == true and Alex_Shop == ShopArray[10]) or (Shop_Menu == 3 and MaxInventory == true and Alex_Shop == ShopArray[10]) then ShaftCount = GetItemCount(ShaftID) if i_count > (ShaftCount//4) then i_count = (ShaftCount//4) @@ -381,7 +398,7 @@ MaxSingleItem = false goto ShopInitialize - elseif (Alex_Shop == ShopArray[11]) and (Shop_Menu == 3) then + elseif (Alex_Shop == ShopArray[11]) and (Shop_Menu >= 3) then --yield("/echo DOM Menu is completed") Gordian_Part = Gordian_Part + 1 @@ -402,19 +419,8 @@ MaxSingleItem = false ::GrandCompanyTurnin:: - if (LimsaGCTicket >= 1) then - yield("/item Maelstrom aetheryte ticket") - yield("/wait 1.0") - elseif (GridaniaGCTicket >= 1) then - yield("/item Twin Adder aetheryte ticket") - yield("/wait 1.0") - elseif (UldahGCTicket >= 1) then - yield("/item Immortal Flames aetheryte ticket") - yield("/wait 1.0") - elseif (LimsaGCTicket == 0) or (GridaniaGCTicket == 0) or (UldahGCTicket == 0) then - TeleportToGCTown() - yield("/wait 1.0") - end + TeleportToGCTown() + yield("/wait 5.0") TeleportTest() @@ -426,59 +432,60 @@ MaxSingleItem = false ::GrandCompanyCheck:: while DeliverooIsTurnInRunning() == false do - if IsInZone(129) then -- Limsa Upper + if IsInZone(129) then -- Limsa Lower + LogInfo("[IdyllshireTurnin] Currently in Limsa Lower!") yield("/wait 3") yield("/target Aetheryte") AetheryteX = GetTargetRawXPos() AetheryteY = GetTargetRawYPos() AetheryteZ = GetTargetRawZPos() PathfindAndMoveTo(AetheryteX, AetheryteY, AetheryteZ, false) + PathFinding() while GetDistanceToPoint(AetheryteX, AetheryteY, AetheryteZ) > 7 do yield("/wait 0.1") end PathStop() yield("/li The Aftcastle") + LogInfo("[IdyllshireTurnin] Heading to the Aftcastle") while GetCharacterCondition(32) do yield("/wait 1") end - while GetCharacterCondition(45) or GetCharacterCondition(51) do - yield("/wait 1") + while IsInZone(128) == false do + yield("/wait 2") end elseif IsInZone(128) then -- Limsa Upper yield("/wait 3") PathfindAndMoveTo(93.9,40.175,75.409, false) + LogInfo("[IdyllshireTurnin] Heading to the Limsa Upper GC") + PathFinding() yield("/wait 0.5") while GetDistanceToPoint(93.9,40.175,75.409) > 1 do yield("/wait 0.1") end - yield("/deliveroo enable") - yield("/wait 0.5") + LogInfo("[IdyllshireTurnin] Limsa Upper GC has been reached!") + DeliverooEnable() elseif IsInZone(130) then -- Ul'dah's GC yield("/wait 3") PathfindAndMoveTo(-142.361,4.1,-106.919, false) - while GetDistanceToPoint(93.9,40.175,75.409) > 1 do + LogInfo("[IdyllshireTurnin] Heading to Ul'Dah's GC") + PathFinding() + while GetDistanceToPoint(-142.361,4.1,-106.919) > 1 do yield("/wait 0.1") end - yield("/deliveroo enable") - yield("/wait 0.5") + LogInfo("[IdyllshireTurnin] Ul'Dah's GC has been reached!") + DeliverooEnable() elseif IsInZone(132) then -- Grdiania's GC yield("/wait 3") - PathfindAndMoveTo(-59.564868927002, -1.7171915769577, 11.678337097168, false) - while GetDistanceToPoint(-59.564868927002, -1.7171915769577, 11.678337097168) > 4 do - if PathIsRunning() == false then - PathfindAndMoveTo(-59.564868927002, -1.7171915769577, 11.678337097168, false) - end - yield("/wait 0.1") - end PathfindAndMoveTo(-67.757,-0.501,-8.393, false) + PathFinding() while GetDistanceToPoint(-67.757,-0.501,-8.393) > 1 do yield("/wait 0.1") if PathIsRunning() == false then PathfindAndMoveTo(-67.757,-0.501,-8.393, false) end end - yield("/deliveroo enable") - yield("/wait 0.5") + LogInfo("[IdyllshireTurnin] Gridania's GC has been reached!") + DeliverooEnable() end end