From 9527da21f650053b0a2887cba8a2b41268a65337 Mon Sep 17 00:00:00 2001 From: Leontopodium Nivale <103514618+LeontopodiumNivale14@users.noreply.github.com> Date: Wed, 6 Mar 2024 10:00:19 -0500 Subject: [PATCH 1/3] Helps if I actually push an update for these... updated personal scripts --- .../Alex Burden of Father [A4N] Farm.lua | 116 +++- .../Gathering/Spearfishing Desynth.lua | 52 +- .../Misc/Deep Dungeon Inuition Farm.lua | 85 +-- Community Scripts/Misc/Idyllshire Turnin.lua | 2 + .../Island Sanctuary - Leveling.lua | 543 +++++++++++++++--- ...eman.lua => Miner & Botanist Leveling.lua} | 30 +- 6 files changed, 671 insertions(+), 157 deletions(-) rename Community Scripts/Quests And Levelling/{Miner & Botanist Leveling Lua_LegendofIceman.lua => Miner & Botanist Leveling.lua} (69%) 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 8ac6d0745..2b8454a64 100644 --- a/Community Scripts/Dungeons/Alex Burden of Father [A4N] Farm.lua +++ b/Community Scripts/Dungeons/Alex Burden of Father [A4N] Farm.lua @@ -7,12 +7,16 @@ This is meant to be used for Alexander - The Burden of the Father (NORMAL NOT SAVAGE) It's setup to where you should be able to loop it as many time as you want, and be able to farm mats for GC seals Known classes to work: ALL - Version: 3.3.1 + Version: 3.3.3 + -> 3.3.3: Added the fucking manual like the main repo. + -> 3.3.2: Added the ability to Infinite Loop w/o having to set a number -> 3.3.1: Added some checks to wait till you're fully loaded out (in case of high ping) [Chest fix is next on the list for high ping] - -> 3.3: Repair Functionality & Potentional duty load check (@leaf update) - Created by: Ice, Class Support: Ellipsis | Menu Optimizing: Leaf + -> 3.3.0: Repair Functionality & Potentional duty load check (@leaf update) + Created by: Leontopodium Nivale, Class Support: Ellipsis | Menu Optimizing/tweaks: Leaf Creators note: thank you Ellipsis for getting all the classes working, you did an amazing job. You deserve the credit here. + also @Leaf thanks for tweaking it and making this more friendly for situations I didn't account for, you're the best + ********************* * Required Plugins * @@ -21,13 +25,11 @@ Plugins that are used are: -> Visland (for pathing) : https://puni.sh/api/repository/veyn - -> NEW Vnavmesh (needed for visland) : https://puni.sh/api/repository/veyn (this might be temporary, waiting on some news/update, but for now) -> Pandora (Setting "Open Chest") : https://love.puni.sh/ment.json -> RotationSolver : https://puni.sh/api/repository/croizat - -> Something Need Doing [Expanded Edition] : https://puni.sh/api/repository/croizat + -> Something Need Doing [Expanded Edition] : https://puni.sh/api/repository/croizat -> In the SND window, press the question mark to make the help setting's menu open -> Go to options tab -> /target -> DISABLE THIS!! "Stop macro if target not found (only applies to SND's targeting system')" - ]] --[[ @@ -37,7 +39,12 @@ ************** ]] - NumberofLoops = 5 -- How many loops do you wanna 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 @@ -54,8 +61,10 @@ ManualRepair = false -- if you want to repair between the loops that you do. [defaults is false | on is true] RepairAmount = 75 -- 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] + + CastingDebug = false --[[ @@ -65,30 +74,80 @@ ************ ]] +-- 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) + + 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 + --Visland Loops -Alex_Start = "H4sIAAAAAAAACk2PW2vDMAyF/4ueTXCyNJv9VrYO8tDdIVvHKKbVqKG2Rq3uQsh/nxJctjcd6dPRUQ83LiBYmO/xe12vH0FB534+yEdOYF97uKPk2VME28MzWF3oqrmYmaY2Cl7AlrqY1ea8qhWswJrCNGdaV4MoitheyYKCB7f1R3ErCxFL+sSAkadJGxkPbsOd591tpv/3cjgJlXb0dZpIGnF7d/uEf/gUsVSwCMSnwy1jyOV8IrK4P2LiXI/GnfPjt9lxVNd0uKS4zZ8LNjaffMClcHp4G34B1YIamzkBAAA=" -Alex_Chest = "H4sIAAAAAAAACuWQSWvDMBCF/0qZsyMkR7It3UIX8CHdCLgLJYhkTASxVWy5C8b/vYpj40ALvRZ605t5enr6WrjWBYKCxR4/1ny9ggAy/flqTelqUM8t3NraOGNLUC08gAqJFDGXEQ/gERSjJKJcijCAJ1AzQZKEJiHrvLQlphegaAD3emsaH8aIF0v7hgWWrt+kpcNKb1xm3O5mcJ/Ohm6+U72z7+PGl/Fpud7XONn7hiyAy8K68eHUYTEcF71jEHcN1m44H4IzbdyUeFBXtjq35Xb4OD0OV6bApffRLviGZUYJo5IyGU9kBOeRkEcykgjJEhH/QzIhoaHkyURlLrk4UonIPJpTmZxQ4YfdyMVf/Y0Ljz3hH8i4CnXdVHi2sXmO1Z8D9dJ9Ad/rgrl7AwAA" + Alex_Chest = "H4sIAAAAAAAACuWQSWvDMBCF/0qZsyMkR7It3UIX8CHdCLgLJYhkTASxVWy5C8b/vYpj40ALvRZ605t5enr6WrjWBYKCxR4/1ny9ggAy/flqTelqUM8t3NraOGNLUC08gAqJFDGXEQ/gERSjJKJcijCAJ1AzQZKEJiHrvLQlphegaAD3emsaH8aIF0v7hgWWrt+kpcNKb1xm3O5mcJ/Ohm6+U72z7+PGl/Fpud7XONn7hiyAy8K68eHUYTEcF71jEHcN1m44H4IzbdyUeFBXtjq35Xb4OD0OV6bApffRLviGZUYJo5IyGU9kBOeRkEcykgjJEhH/QzIhoaHkyURlLrk4UonIPJpTmZxQ4YfdyMVf/Y0Ljz3hH8i4CnXdVHi2sXmO1Z8D9dJ9Ad/rgrl7AwAA" -- Values that are needed for the whole script -CurrentLoop = 1 -- This is just the loop counter itself, keeps tracks of how many you've done. -DutyCounter = 0 -DutyFail = 0 + CurrentLoop = 1 -- This is just the loop counter itself, keeps tracks of how many you've done. + DutyCounter = 0 + DutyFail = 0 + 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 + ::LoopTest:: -if NumberofLoops >= CurrentLoop then +if NumberofLoops >= CurrentLoop and InfiniteLoops == false then + if EchoHowMany == true then yield("/echo Loop: "..CurrentLoop.." out of ".. NumberofLoops) -elseif NumberofLoops < CurrentLoop then + end + PlayerTest() +elseif NumberofLoops < CurrentLoop and InfiniteLoops == false then goto StopLoop +elseif InfiniteLoops == true then + if EchoHowMany == true then + yield("/e Current Loop is at: "..CurrentLoop) + end + PlayerTest() end -repeat -yield("/wait 0.1") -until IsPlayerAvailable() +if CurrentLoop == 69 then + yield("/e Heh... nice.") +elseif CurrentLoop == 100 then + yield("/e Woo! 100 in, only... many more to go") +elseif CurrentLoop == 300 then + yield("/e Wow, 300. Man Idyllshire is going to be hurting for gear after this") +elseif CurrentLoop == 500 then + yield("/e Wanna know what a pirate's favorite letter is?") + yield("/e You might this it's 'Arr' but his first love was the 'C' ") +end -- Repair Functionality if ManualRepair == true then @@ -109,10 +168,6 @@ if ManualRepair == true then end end -repeat -yield("/wait 0.1") -until IsPlayerAvailable() - ::DutyFinder:: if DutyFail == 4 then goto StopLoop @@ -184,8 +239,6 @@ elseif DutyCounter == 1 then -- Quicker menu'ing here to load in while not IsAddonReady("ContentsFinder") do yield("/wait "..rate) end - -- Setting up Unsync if it wasn't already - SetDFUnrestricted(true) yield("/pcall ContentsFinder True 12 0") --Duty Load repeat yield("/wait "..rate) @@ -214,9 +267,6 @@ while not GetCharacterCondition(26) do current_target = GetTargetName() if current_target == "" then yield("/wait "..rate) - if CastingDebug == true then - yield("/e Target system is working, if it's targeting something here") - end end end @@ -230,9 +280,6 @@ while not GetCharacterCondition(26) do yield("/visland moveto " .. enemy_x .. " " .. enemy_y .. " " .. enemy_z) yield("/wait "..rate) yield("/rotation manual") - if CastingDebug == true then - yield("/e Break B") - end else yield("/visland stop") -- Stop movement after reaching near the target end @@ -288,6 +335,13 @@ repeat yield("/wait "..rate) until not IsVislandRouteRunning() +while TargetNearestObjectKind(4) do + if not IsVislandRouteRunning() then + yield("/visland moveto " .. GetTargetRawXPos() .. " " .. GetTargetRawYPos() .. " " .. GetTargetRawZPos()) + end + yield("/wait "..rate) +end + CurrentLoop = CurrentLoop + 1 yield("/echo Leaving the instance") yield("/pdfleave") diff --git a/Community Scripts/Gathering/Spearfishing Desynth.lua b/Community Scripts/Gathering/Spearfishing Desynth.lua index 173f686a8..5f7b7dd78 100644 --- a/Community Scripts/Gathering/Spearfishing Desynth.lua +++ b/Community Scripts/Gathering/Spearfishing Desynth.lua @@ -1,28 +1,55 @@ --[[ Description: Spearfishing Auto Desynth The script allows you to have it running a visland route (while spearfishing) and when you get to a certain inventory amount it will pause for you and proceed to desynth all your collectables. - Version: 5 (Now with a built in route, and ability to add your own!) - Author: LegendofIceman + Version: 6.1 (Now with a built in route, and ability to add your own!) + Author: Leontopodium Nivale ]] +Fishing_Start = 0 + +--When do you want to repair your own gear? From 0-100 (it's in percentage, but enter a whole value +Repair_Amount = 50 + --[[If you want to input your own route from visland, put it below here. It will take priority over the default one that is included in this LUA script]] routename = "Insert the name of your visland route here!" --[[Route name below, it's in base64 (which in simple terms, means that the route is already in this LUA script -This makes it to where you won't need to import the script to visland, and run it solely from this]] +This makes it to where you won't need to import the script to visland, and run it solely from this +Location for this is: Upper La Noscea | Camp Bronzelake +]] earthbreak_aethersand = "H4sIAAAAAAAACu2VTU/cMBCG/wryOYz8Mf7KDRWQ9kBbqkpbinpwWZeN2sRVYkBotf+94yRbVIHUAycWbh5nMhk/ft/Jhr0PbWQ1Owl9Xn/vY/h5cBTzOvZD6FasYstw/zs1XR5YfblhH9PQ5CZ1rN6wL6yWyoHXwlXsgtWH2oBTqGzFvlJkLKBGVFsKUxcXx6zmFfsUVs0N1ZJAwVm6jW3sMqtFxRZdjn24yssmrz+UbIXI+b/7c685xrbprg/uAj0aqMlhne52edQd1f8Rfg3x4eWxZfrISZvyrpVFju28PBoz5uD8Jg55XpfCy9Dkh4olOk39u9StZhJ82vzctPGM8vi2esRJaA+I1okJlHFglRVWj6SMLJFD8zQp9X9ST1N6CVycKGdXExarQWhtJ/3YIibuxLPkI/dEPkqCcUUuIyYFxihuRkyapOTR4hum4jIBSpidyUgjikvpRk4oaFBxLl6fx7wHQxbDvx5Tzkg5zWiNILi19lnqEfthMq9AojE7TgocyqKlwslzMCike+NENyQ80ECSNH9GmyFoZSRhK6CsB+0d3/tf2bftH0ShbN45CQAA" slots_remaining = 5 --How many slots do you want open before it starts to desynth? [Default is 5] +-- If you have the ability to repair your gear, this will allow you to do so. +::RepairMode:: + if NeedsRepair(Repair_Amount) then + yield("/generalaction repair") + yield("/waitaddon Repair") + yield("/pcall Repair true 0") + yield("/wait 0.1") + if IsAddonVisible("SelectYesno") then + yield("/pcall SelectYesno true 0") + yield("/wait 0.1") + end + while GetCharacterCondition(39) do yield("/wait 1") end + yield("/wait 1") + yield("/pcall Repair true -1") + end + -- Starts the route/resumes it if you had it paused in visland ::Fishingstart:: + +if Fishing_Start == 0 then yield("/visland exectemp "..earthbreak_aethersand) yield("/visland exec "..routename) yield("/visland resume") yield("/wait 1") + Fishing_Start = Fishing_Start + 1 +end -- Checks to see how much inventory space you have ::StartCount:: @@ -55,11 +82,18 @@ end while (not GetCharacterCondition(6)) and not (GetCharacterCondition(39)) do yield("/visland pause") - if GetCharacterCondition(4) then - yield("/ac dismount") - yield("/wait 3") - end - yield("/wait 0.5") +yield("/wait 1") + +while GetCharacterCondition(27) do + yield("/wait 1") +end + +if GetCharacterCondition(4) then + yield("/ac dismount") + yield("/wait 3") +end + +yield("/wait 0.5") while (not GetCharacterCondition(6)) and (not GetCharacterCondition(39)) do if IsAddonVisible("PurifyResult") then @@ -97,4 +131,4 @@ if not GetCharacterCondition(39) then yield("/visland resume") end -goto StartCount +goto RepairMode \ No newline at end of file diff --git a/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua b/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua index 2bfa00624..9f3fdb7c3 100644 --- a/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua +++ b/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua @@ -1,4 +1,4 @@ ---[[ +--[[ **************** * Authors Note * @@ -7,16 +7,18 @@ Authors note: TECHNICALLY if you get a Concealment, you are going to be WAY quicker on your runs. It's a 1 pom usage vs 2, which shaves off ~3 seconds per run And that can add up... VERY quickly. I have went through and made this as fast as I can (possibly) made it at this second. - Author: Ice + Author: Leontopodium Nivale Quick note: thank you the two of you who kept bug fixing my things and asking for new features this wouldn't have gotten better w/o you buggin me in my dms ************** * Version: * - * 1.1 * + * 1.1.1 * ************** Version Update Notes: + 1.1.2 -> Forgot that floors 21-30 has a different zone ID... woops. Also, standard is now supported by default, so no need for extra menu-ing/changing control schemes + 1.1.1 -> Added tracker to tell you how many you've gotten as you farm, false by default 1.1 -> NVM. Turns out this is faster than I could before. Updated timers again, added one before loading into NPC to make it more normalish on loadout 1.0.4.2 -> Fixed sprint, made it constantly try to use while moving to spot 1.0.4.1 -> Concealment save file setting added @@ -59,24 +61,39 @@ ************** ]] + + Save_Slot = 0 --Save Data Slot --Top Slot = 0, Bottom Slot = 1, change the value to the save file you want to farm the achievement - Save_Slot = 1 + ManualMovement = false -- If an Intuition is on the floor, and out of range, do you want to still get it manually? -- false will leave and try to find one closer -- true will make it to where you are in control till you get the Intuition - ManualMovement = false - - -- If you're running on standard control scheme (like my raid mates), make sure to change this to false, it'll make vnavmesh work properly - -- Options: true | false - MovementLegacy = true + ConcealmentSaveFile = true -- This setting is so you can mark off if you have concealment or not -- Concealment is 100% quicker, so if you do have it in a save, would highly recommend setting this to true -- if not, it'll use a primal + safety for movmement (sight doesn't really do TOO much, safety is so you don't hit a luring on the way there lol) -- Options: true | false - ConcealmentSaveFile = true + + ChatTracker = true + -- Option to track how many intuitions you've found over time + -- false by default, if you would like it to tell you upon every return back in front of the NPC, set it to true + -- Options: true | false + + --[[ + + ******************** + * Script Start * + * Point * + ******************** + + ]] + + IntuitFound = 0 + IntuitNotFound = 0 + IntuitOutofRanged = 0 ::DeepDungeon:: while IsInZone(613) == false do @@ -85,11 +102,18 @@ while IsInZone(613) == false do end while GetCharacterCondition(45) do -yield("/wait 0.1") + yield("/wait 0.1") end if IsInZone(613) then yield("/wait 0.5") + if ChatTracker == true then + yield("/e ┣━━━━━━━━━━━━━━━━━┫") + yield("/e -> Intuitions Found Currently at: "..IntuitFound) + yield("/e -> Intuitions Not Found: "..IntuitNotFound) + yield("/e -> Intuitions Out of Range: "..IntuitOutofRanged) + yield("/e ┣━━━━━━━━━━━━━━━━━┫") + end while GetCharacterCondition(34, false) and GetCharacterCondition(45, false) do if IsAddonVisible("ContentsFinderConfirm") then yield("/pcall ContentsFinderConfirm true 8") @@ -110,7 +134,7 @@ end ::ZoneCheck:: -if GetZoneID() == 771 then +if (GetZoneID() == 771 or GetZoneID() == 772) then repeat yield("/wait 0.1") until IsPlayerAvailable() @@ -135,22 +159,13 @@ if GetToastNodeText(2, 3) == "You sense the Accursed Hoard calling you..." then end if GetAccursedHoardRawX() == 0.0 and GetAccursedHoardRawY() == 0.0 and ManualMovement == false then yield("/e It's out of range, getting out of here") + IntuitOutofRanged = IntuitOutofRanged + 1 LeaveDuty() goto DeepDungeon end yield("/echo Hey! A Hoard is here and in range.") - if MovementLegacy == false then - yield("/characterconfig") - yield("/pcall ConfigCharacter True 10 0 0 1") -- Makes sure you're on the Contorl Settings Tab - yield("/wait 0.2") - yield("/pcall ConfigCharaOpeGeneral True 18 143 1 0") --Legacy Button - yield("/wait 0.2") - yield("/pcall ConfigCharacter True 0") -- Applies the settings - yield("/wait 0.2") - yield("/pcall ConfigCharacter True 1") -- Closes the Config Menu - yield("/wait 1") - end + yield("/vnavmesh moveto "..string.format("%.2f", GetAccursedHoardRawX()).." "..string.format("%.2f", GetAccursedHoardRawY()).." "..string.format("%.2f", GetAccursedHoardRawZ())) if ConcealmentSaveFile == true then yield("/pcall DeepDungeonStatus True 11 18") -- Concealment pomander repeat @@ -165,16 +180,16 @@ if GetToastNodeText(2, 3) == "You sense the Accursed Hoard calling you..." then yield("/wait 0.1") until IsPlayerAvailable() end - yield("/vnavmesh moveto "..string.format("%.2f", GetAccursedHoardRawX()).." "..string.format("%.2f", GetAccursedHoardRawY()).." "..string.format("%.2f", GetAccursedHoardRawZ())) Chest_Got = false elseif GetToastNodeText(2, 3) == "You do not sense the call of the Accursed Hoard on this floor..." then + IntuitNotFound = IntuitNotFound + 1 LeaveDuty() goto DeepDungeon end ::IntuitionTime:: -while Chest_Got == false do +while Chest_Got == false and (GetZoneID() == 771 or GetZoneID() == 772) do yield("/wait 0.1") yield("/ac sprint") if GetToastNodeText(2, 3) == "You obtain a piece of the Accursed Hoard." then @@ -184,23 +199,15 @@ while Chest_Got == false do end end -if Chest_Got == true then +if Chest_Got == true and (GetZoneID() == 771 or GetZoneID() == 772) then while GetCharacterCondition(26) do yield("/wait 1") end yield("/wait 1") - if MovementLegacy == false then - yield("/characterconfig") - yield("/pcall ConfigCharacter True 10 0 0 1") -- Makes sure you're on the Contorl Settings Tab - yield("/wait 0.2") - yield("/pcall ConfigCharaOpeGeneral True 18 143 0 0") --Standard Button - yield("/wait 0.2") - yield("/pcall ConfigCharacter True 0") -- saves the Settings - yield("/wait 0.2") - yield("/pcall ConfigCharacter True 1") -- closes the character config - yield("/wait 0.2") - end + + IntuitFound = IntuitFound + 1 LeaveDuty() - goto DeepDungeon -end \ No newline at end of file +end + + goto DeepDungeon \ No newline at end of file diff --git a/Community Scripts/Misc/Idyllshire Turnin.lua b/Community Scripts/Misc/Idyllshire Turnin.lua index 3b6fbf675..20fb42e77 100644 --- a/Community Scripts/Misc/Idyllshire Turnin.lua +++ b/Community Scripts/Misc/Idyllshire Turnin.lua @@ -1,5 +1,7 @@ --[[ + Author: Leontopodium Nivale + *************** * Description * *************** diff --git a/Community Scripts/Quests And Levelling/Island Sanctuary - Leveling.lua b/Community Scripts/Quests And Levelling/Island Sanctuary - Leveling.lua index 8929037eb..716975304 100644 --- a/Community Scripts/Quests And Levelling/Island Sanctuary - Leveling.lua +++ b/Community Scripts/Quests And Levelling/Island Sanctuary - Leveling.lua @@ -1,60 +1,92 @@ --[[ -Version: 1.85.2 [Properly returning to base update, and resuming routes] -Author: LegendofIceman +Version: 2.1 [Ground & Flying ] +Author: Leontopodium Nivale This is a small version of the "Gathering Everything" script I'm working on, just meant to be a quick way of leveling up Note: This does require flying atm, I'll work on making a non-flying verison in a bit. (When I get a second or need a breather from the other script lol.) Requirements: -> Visland (V)ery Island +-> vnavmesh (Just got released on 2.19, same place on visland) ]] -- Settings - ItemMax = 999 + IslandLevel = 17 ItemCountEcho = true LoopEcho = true ContinueLooping = true + -- Testing + TestingShopSend = false + + -- If flying is disabled, it will do the ground version of the route for xp + -- if flying is enabled, it will do the faster/xp route on top of the mountain + FlyingEnabled = true + -- If you are currently running the workshop and you have items being used in it, make sure to add the amount you're using in the shops here - QuartzWorkShop = 0 - IronWorkShop = 0 - LeucograniteWorkShop = 0 - StoneWorkShop = 0 - QuartzArrayWorkShop = StoneWorkShop + IronWorkShop + QuartzWorkShop + LeucograniteWorkShop +-- or if you would like to keep a certain amount of that item, also change it here + + -- For the flying Loop + + if FlyingEnabled == true then + QuartzWorkShop = 0 + IronWorkShop = 0 + DuriumWorkShop = 0 + LeucograniteWorkShop = 0 + StoneWorkShop = 0 + end + -- For the ground XP Loop + if FlyingEnabled == false then + ClayWorkShop = 0 + LimestoneWorkShop = 0 + MarbleWorkShop = 0 + TinsandWorkShop = 0 + SugarcaneWorkShop = 0 + VineWorkShop = 0 + ResinWorkShop = 0 + LogWorkShop = 0 + BranchWorkShop = 0 + + StoneWorkShop = 0 + SandWorkShop = 0 + end -- Array for the Route -- XP Route || Quarts | Iron | Durium Sand | Leucogranite QuartzArray = {6, 3, 2, 11} --- Loop amount checker - if QuartzArrayWorkShop == 0 then - XPLoopAmount = 166 - end + -- Ground XP Route || Clay | { Stone/Limestone/Marble | Tinsand | Sugarcane/Vine | Resin/Log/Branch} | Sand + ClayArray = {7, 1, 9} + + -- Max item amount. DO NOT CHANGE + ItemMax = 999 - if QuartzArrayWorkShop > 0 then - XPLoopAmount = 166 +-- Loop amount checker + if FlyingEnabled == true then + BaseLoopAmount = math.floor(ItemMax/QuartzArray[1]) LoopTestA = 0 - LoopTestB = 0 - LoopTestC = 0 if QuartzWorkShop > 0 then LoopTestA = math.ceil(QuartzWorkShop/QuartzArray[1]) end - if IronWorkShop > 0 then - LoopTestB = math.ceil(IronWorkShop/QuartzArray[2]) - end - if LeucograniteWorkShop > 0 then - LoopTestC = math.ceil(LeucograniteWorkShop/QuartzArray[3]) + XPLoopAmount = BaseLoopAmount - LoopTestA -- if workshop was > 0, takes that amount and removes it from the loop + yield("/echo LoopAmount = "..XPLoopAmount) + end + if FlyingEnabled == false and IslandLevel >= 5 then + LoopTestA = 0 + BaseLoopAmount = math.floor(ItemMax/ClayArray[1]) + if ClayWorkShop > 0 then + LoopTestA = math.ceil(ClayWorkShop/ClayArray[1]) end - - HighestAmount = math.max(LoopTestA, LoopTestB, LoopTestC) - XPLoopAmount = XPLoopAmount - HighestAmount + GroundXPAmount = BaseLoopAmount - LoopTestA -- if workshop was > 0, takes that amount and removes it from the loop + yield("/echo LoopAmount = "..GroundXPAmount) end - yield("/echo LoopAmount = "..XPLoopAmount) -- Visland Routes for the script B2Quartz = "H4sIAAAAAAAACuVS20rEMBD9lWWe25A0aZvmQfAKfVh1RagXfAhuZAM2kSZVtPTfTdssK/gH+jZn5nDmzGEGuJStAgEn0qlVerTa9LLzX5BAIz/frDbegXgc4No67bU1IAa4A5GSMkeMlhVN4B4EwQRRTlgCDwEUGBFasXwM0BpVn4HACdzIre6DGEEBrO27apXxASZQG686+ewb7XdXkf2zFx0GT25nP/aTYCaovchXpw702WGQPG+t3y+uvWpjeTwzItj0yvlYT8KN1P6gOKEL251as42H46V5q1u1Djw8Jr9ioZQhxrN8DoVWJcowLeZQUspzxDFh/B+mkofrKlosv0IrjkrKC77kwqbXKbPiz+fyNH4DG0XUEmwDAAA=" VQuartz = "H4sIAAAAAAAACu2WXW/TMBSG/0rk62D8bZ/cIT6kSgw2hNTBtIvQejRqE5fEBUHV/z6ns5MhddpVJSp65xOfnJw8On79btGHsraoQIzg7Ob6Mnvv3Po2u9qUrf/zctK6BuVoWv5eu6rxHSputujSdZWvwkaxRdeo4EJjwyTL0ZcQgMCUAc/RV1S84KAwMMV3IXSNnbxBBcnRp3JebUIphkNw4X7a2jZ+vzNpvG3LmZ9WfvGxz2YkFDPy753YcOs23xfZt1U5W2atmy1Dn93C/UqZocHwjbty1dnx9X3XNEdva+dTOxNv67h8tc+IwdXGdj6u+8LTsvJjxT5659rXrplHGOTh4eeqthchj+zyA6gU1proARWjSj+gEoRgEXgdBVW3trPlys5PhxNgDZyOM8UZ0WIkpaQ08jAqgpl8jhU5SOkkwDBsCEsDxDEQQxMWjRnXcJQB+rGXg+zOtXW5b+cUUAE23AwTJCVjiZQMGiXNmVQkJRlmeiRFQAyiZAJDRc/6nUgpLLmEARVw9ggV8Cc06T88fRJw/0sDKaMUJFIiXIL0LFQJlaKYEiUGTdcG4lBxACwJF+fzl6bKBHXqb7yIyug0VRyCC1XkOFbz5PyTlJgTLUefqUR0TxwkBn2WqQSKYm7YI1LUJJ/JwQR/LtUTsPjzI3W6NlMGxw09iEglSFK0mb0kGSGPc87++YvudncPgcau5jAPAAA=" + VClay = "H4sIAAAAAAAACu2YS2vcMBSF/4rR2oirq7d3JX0QaNo0FJI2ZOFmlBnTsVVsTUII+e+VLTlpYQrdzGKS8cqyhSx/vufcM/NAPtWtIxU5Wtf3xZnfBFdcfuj9plsUF6fFR3fr1k23vCIlOa/vf/mmCwOpLh/IqR+a0PiOVA/kglSIggLTlpfkG6mkokJKNCX5TirDKGqB7DGOfOeO35IKSnJWL5pNXIrRODjxt651XYjrlOS4C66vr8N5E1af8+w/r+UNxx0NK38334lbiavd1OvBPU+f9sdK8q71YX7wcXBtPn0zzciDLxs3hHw+LnxeN+F5xXH03vdHvlvk14Z08WvTupM4Dx7LLVCAciYxMdGUc+AJiaBSaPgHEvwbCWxBgsDQGrkVzNB6H1bF3aqJ37L31z/3ghRSbY1NpAxlWguRUGkKCkDsBFU71bm/KRZNH/YCk6RKGs4SJ0sVKJFrygrKFTdM/pfO4EXpjMe3U/hEBUU8MFHh1IJS5pVSMQbM7D4aRnceJWWoMELvxn32TlJcUougZ0pWcJ0oWcrRqIPxJEpRVbPAoiMLrTIlRQ0z8kBpoiSASqnmJgZa6xSBLKOKIfCD4iZKgjLL+JMvocySi5gs1xYPmCZMiiqLYg7UmgHL1QQUmT1gSppTPHY5mbucoDEGQGr9RsbAzXZk4MPmR+v6pVsUQ90t9qHPjWnRGC3nekIQLGdsPd6KP9heY0hSMSSpUVjJs42xaBOUaEaAIHdUPsu6v647tyd+rYWxua9ZarjJfU0hlVpa/grrJkIBgUlNYw1JYGxiImXMABJ3UzdhU699tyxC7/aidGK45gyeehhaJXiso1FeGLub1Oql/yt09fgblrr3aWMTAAA=" + -- Node Functions function QuartzNode() QuartzID = 37573 @@ -73,8 +105,57 @@ Requirements: LeucograniteCount = GetItemCount(LeucograniteID) end + function ClayNode() + ClayID = 37570 + ClayCount = GetItemCount(ClayID) + end + + function Marble_LimestoneNode() + MarbleID = 39890 + LimestoneID = 37565 + MarbleCount = GetItemCount(MarbleID) + LimestoneCount = GetItemCount(LimestoneID) + end + + function TinsandNode() + TinsandID = 37571 + TinsandCount = GetItemCount(TinsandID) + end + + function SugarcaneNode() + SugarcaneID = 37567 + SugarcaneCount = GetItemCount(SugarcaneID) + end + + function LogNode() + LogID = 37560 + LogCount = GetItemCount(LogID) + end + + function Branch_ResinNode() + BranchID = 37553 + ResinID = 39224 + BranchCount = GetItemCount(BranchID) + ResinCount = GetItemCount(ResinID) + end + -- These are Items that are shared across multiple nodes + function SandNode() + SandID = 37559 + SandCount = GetItemCount(SandID) + end + + function VineNode() + VineID = 37562 + VineCount = GetItemCount(VineID) + end + + function LogNode() + LogID = 37560 + LogCount = GetItemCount(LogID) + end + function StoneNode() StoneID = 37554 StoneCount = GetItemCount(StoneID) @@ -86,34 +167,140 @@ Requirements: if StoneAmount < 0 then StoneAmount = 0 end - if StoneWorkShop > 0 then - StoneAmount = StoneAmount + StoneWorkShop - end StoneSend = (StoneCount-StoneAmount) + if StoneSend > 999 then + StoneSend = 999 + end + if StoneWorkShop > 0 then + StoneSend = StoneSend - StoneWorkShop + end + end + + function SandShop() + SandAmount = ItemMax-(ItemAmount*LoopAmount) + if SandWorkShop < 0 then + SandAmount = 0 + end + SandSend = (SandCount-SandAmount) + if SandSend > 999 then + SandSend = 999 + end + if SandWorkShop > 0 then + SandSend = SandSend - SandWorkShop + end end function IronShop() IronAmount = ItemMax-(ItemAmount*LoopAmount) - if IronWorkShop > 0 then - IronAmount = IronAmount + IronWorkShop + if IronAmount < 0 then + IronAmount = 0 end IronSend = (IronCount-IronAmount) + --if IronWorkShop > 0 then + --IronSend = IronSend - IronWorkShop + --end end function QuartzShop() QuartzAmount = ItemMax-(ItemAmount*LoopAmount) - if QuartzWorkShop > 0 then - QuartzAmount = QuartzAmount + QuartzWorkShop + if QuartzAmount < 0 then + QuartzAmount = 0 end QuartzSend = (QuartzCount-QuartzAmount) + --if QuartzWorkShop > 0 then + --QuartzAmount = QuartzAmount - QuartzWorkShop + --end end function LeucograniteShop() LeucograniteAmount = ItemMax-(ItemAmount*LoopAmount) - if LeucograniteWorkShop > 0 then - LeucograniteAmount = LeucograniteAmount + LeucograniteWorkShop + if LeucograniteAmount < 0 then + LeucograniteAmount = 0 end LeucograniteSend = (LeucograniteCount-LeucograniteAmount) + --if LeucograniteWorkShop > 0 then + --LeucograniteAmount = LeucograniteAmount - LeucograniteWorkShop + --end + end + + function DuriumShop() + DuriumAmount = ItemMax-(ItemAmount*LoopAmount) + if DuriumAmount < 0 then + DuriumAmount = 0 + end + DuriumSend = (DuriumCount-DuriumAmount) + --if DuriumWorkShop > 0 then + --DuriumAmount = DuriumAmount - DuriumWorkShop + --end + end + + function ClayShop() + ClayAmount = ItemMax-(ItemAmount*LoopAmount) + if ClayWorkShop < 0 then + ClayAmount = 0 + end + ClaySend = (ClayCount-ClayAmount) + end + + function LimestoneShop() + LimestoneAmount = ItemMax-(ItemAmount*LoopAmount) + if LimestoneWorkShop < 0 then + LimestoneAmount = LimestoneAmount + LimestoneWorkShop + end + LimestoneSend = (LimestoneCount-LimestoneAmount) + end + + function MarbleShop() + MarbleAmount = ItemMax-(ItemAmount*LoopAmount) + MarbleSend = (MarbleCount-MarbleAmount) + end + + function TinsandShop() + TinsandAmount = ItemMax-(ItemAmount*LoopAmount) + if TinsandWorkShop < 0 then + TinsandAmount = TinsandAmount + TinsandWorkShop + end + TinsandSend = (TinsandCount-TinsandAmount) + end + + function SugarcaneShop() + SugarcaneAmount = ItemMax-(ItemAmount*LoopAmount) + if SugarcaneWorkShop < 0 then + SugarcaneAmount = SugarcaneAmount + SugarcaneWorkShop + end + SugarcaneSend = (SugarcaneCount-SugarcaneAmount) + end + + function VineShop() + VineAmount = ItemMax-(ItemAmount*LoopAmount) + if VineWorkShop < 0 then + VineAmount = VineAmount + VineWorkShop + end + VineSend = (VineCount-VineAmount) + end + + function ResinShop() + ResinAmount = ItemMax-(ItemAmount*LoopAmount) + if ResinWorkShop < 0 then + ResinAmount = ResinAmount + ResinWorkShop + end + ResinSend = (ResinCount-ResinAmount) + end + + function LogShop() + LogAmount = ItemMax-(ItemAmount*LoopAmount) + if LogWorkShop < 0 then + LogAmount = LogAmount + LogWorkShop + end + LogSend = (LogCount-LogAmount) + end + + function BranchShop() + BranchAmount = ItemMax-(ItemAmount*LoopAmount) + if BranchWorkShop < 0 then + BranchAmount = BranchAmount + BranchWorkShop + end + BranchSend = (BranchCount-BranchAmount) end -- Shop Selling Functions @@ -146,6 +333,84 @@ Requirements: yield("/wait 1.5") end + function DuriumSell() + yield("/pcall MJIDisposeShop True 12 39 ") + yield("/pcall MJIDisposeShopShipping True 11 "..DuriumSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function ClaySell() + yield("/pcall MJIDisposeShop True 12 16 ") + yield("/pcall MJIDisposeShopShipping True 11 "..ClaySend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function LimestoneSell() + yield("/pcall MJIDisposeShop True 12 14 ") + yield("/pcall MJIDisposeShopShipping True 11 "..LimestoneSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function MarbleSell() + yield("/pcall MJIDisposeShop True 12 36 ") + yield("/pcall MJIDisposeShopShipping True 11 "..MarbleSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function TinsandSell() + yield("/pcall MJIDisposeShop True 12 17 ") + yield("/pcall MJIDisposeShopShipping True 11 "..TinsandSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function SugarcaneSell() + yield("/pcall MJIDisposeShop True 12 18 ") + yield("/pcall MJIDisposeShopShipping True 11 "..SugarcaneSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function VineSell() + yield("/pcall MJIDisposeShop True 12 8 ") + yield("/pcall MJIDisposeShopShipping True 11 "..VineSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function ResinSell() + yield("/pcall MJIDisposeShop True 12 28 ") + yield("/pcall MJIDisposeShopShipping True 11 "..ResinSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function LogSell() + yield("/pcall MJIDisposeShop True 12 11 ") + yield("/pcall MJIDisposeShopShipping True 11 "..LogSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + + function BranchSell() + yield("/pcall MJIDisposeShop True 12 1 ") + yield("/pcall MJIDisposeShopShipping True 11 "..BranchSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + + function SandSell() + yield("/pcall MJIDisposeShop True 12 7 ") + yield("/pcall MJIDisposeShopShipping True 11 "..SandSend) + yield("/pcall SelectYesno True 0") + yield("/wait 1.5") + end + -- Setup for moving to the shop, and getting ready to sell the items function Sellingitemsto() yield("/visland moveto -268 40 226") @@ -168,30 +433,33 @@ Requirements: function LeavingShop() yield("/pcall MJIDisposeShop False -2") - yield("/visland moveto -268 40 226") - yield("/wait 1") - MovingTest() + yield("/visland moveto -267.841 40 230.751") + yield("/wait 1") + MovingTest() + + yield('/mount "Company Chocobo"') + yield("/wait 5") end -- Checks to see how far you are from in front of the main workshop, if a certain distance, will teleport you in front of It function IslandReturn() - yield("/pcall _ActionContents True 9 1 ") - while GetCharacterCondition(27) do - yield("/wait 1") - end - yield("/wait 1") - while GetCharacterCondition(45) do + yield("/pcall _ActionContents True 9 1 ") + while GetCharacterCondition(27) do + yield("/wait 1") + end yield("/wait 1") - end + while GetCharacterCondition(45) do + yield("/wait 1") + end - yield("/wait 1") + yield("/wait 1") end -- Distance Test -function DistanceToBase() + function DistanceToBase() Distance_Test = GetDistanceToPoint(-268, 40, 226) -end + end -- Moving Test function MovingTest() @@ -207,8 +475,15 @@ end end end +-- Route Check +if FlyingEnabled == true then + goto FlyShop +elseif FlyingEnabled == false then + goto GroundShop +end + -- Start of the Loop -::Shop:: +::FlyShop:: yield("/visland stop") yield("/visland resume") @@ -218,7 +493,7 @@ end DistanceToBase() if Distance_Test > 4 then - goto Shop + goto FlyShop end CurrentLoop = 1 @@ -230,6 +505,9 @@ end ItemAmount = QuartzArray[2] Iron_DuriumNode() IronShop() + if IslandLevel >= 17 then + DuriumShop() + end ItemAmount = QuartzArray[3] LeucograniteNode() @@ -247,43 +525,168 @@ end yield("/echo Stone Send = "..StoneSend) end - if StoneSend > 999 then - StoneSend = 999 + if TestingShopSend == true then + yield("/snd stop") + end + + Sellingitemsto() + + if (QuartzSend > 0) then + QuartzSell() + end + if (IronSend > 0) then + IronSell() + end + if IslandLevel >= 17 and (DuriumSend > 0) then + DuriumSell() end + if LeucograniteSend > 0 then + LeucograniteSell() + end + if StoneSend > 0 then + StoneSell() + end + + LeavingShop() + + yield("/visland exectemponce "..B2Quartz.." ") + VislandCheck() + + goto FlyLoopTime - Sellingitemsto() +::FlyLoopTime:: + + while CurrentLoop <= LoopAmount do + yield("/visland exectemponce "..VQuartz.." ") - if (QuartzSend > 0) then - QuartzSell() + VislandCheck() + CurrentLoop = CurrentLoop + 1 + + if LoopEcho == true then + yield("/echo Current Loop: "..CurrentLoop.." / "..LoopAmount) end - if (IronSend > 0) then - IronSell() + end + + if ContinueLooping == true then + goto FlyShop + elseif ContinueLooping == false then + goto EndScript + end + +-- Ground XP Route +::GroundShop:: + + yield("/visland stop") + yield("/visland resume") + + IslandReturn() + + DistanceToBase() + + if Distance_Test > 4 then + goto GroundShop + end + + CurrentLoop = 1 + LoopAmount = GroundXPAmount + ItemAmount = ClayArray[1] + ClayNode() + ClayShop() + + ItemAmount = ClayArray[2] + Marble_LimestoneNode() + StoneNode() + TinsandNode() + SugarcaneNode() + VineNode() + Branch_ResinNode() + LogNode() + + MarbleShop() + LimestoneShop() + StoneShop() + TinsandShop() + SugarcaneShop() + VineShop() + BranchShop() + ResinShop() + LogShop() + + ItemAmount = ClayArray[3] + SandNode() + SandShop() + + if SandSend > SandCount then + SandSend = SandCount + end + + yield("/e Clay send = "..ClaySend) + + yield("/echo Sand: "..SandSend) + + Sellingitemsto() + + if ClaySend > 0 then + ClaySell() end - if LeucograniteSend > 0 then - LeucograniteSell() + if MarbleSend > 0 then + MarbleSell() end - if StoneSend > 0 then + if LimestoneSend > 0 then + LimestoneSell() + end + if StoneSend > 0 then StoneSell() end - - LeavingShop() + if TinsandSend > 0 then + TinsandSell() + end + if SugarcaneSend > 0 then + SugarcaneSell() + end + if VineSend > 0 then + VineSell() + end + if BranchSend > 0 then + BranchSell() + end + if ResinSend > 0 then + ResinSell() + end + if LogSend > 0 then + LogSell() + end + if SandSend > 0 then + SandSell() + end -yield("/visland exectemponce "..B2Quartz.." ") -VislandCheck() + LeavingShop() -::LoopTime:: + yield("/vnavmesh moveto 217.135 56.829 83.243") + yield("/wait 1.0") + MovingTest() + goto GroundXPTime + +::GroundXPTime:: while CurrentLoop <= LoopAmount do - yield("/visland exectemponce "..VQuartz.." ") + yield("/visland exectemponce "..VClay.." ") VislandCheck() CurrentLoop = CurrentLoop + 1 - + if LoopEcho == true then - yield("/echo Current Loop: "..CurrentLoop) + yield("/echo Current Loop: "..CurrentLoop.." / "..LoopAmount) end end -if ContinueLooping == true then - goto Shop -end \ No newline at end of file + if ContinueLooping == true then + goto GroundShop + elseif ContinueLooping == false then + goto EndScript + end + + + +::EndScript:: +yield("/e XP Loop has concluded") \ No newline at end of file diff --git a/Community Scripts/Quests And Levelling/Miner & Botanist Leveling Lua_LegendofIceman.lua b/Community Scripts/Quests And Levelling/Miner & Botanist Leveling.lua similarity index 69% rename from Community Scripts/Quests And Levelling/Miner & Botanist Leveling Lua_LegendofIceman.lua rename to Community Scripts/Quests And Levelling/Miner & Botanist Leveling.lua index efb29633c..e59522b61 100644 --- a/Community Scripts/Quests And Levelling/Miner & Botanist Leveling Lua_LegendofIceman.lua +++ b/Community Scripts/Quests And Levelling/Miner & Botanist Leveling.lua @@ -1,12 +1,26 @@ --[[ - Description: Full automation of Diadem, to allow leveling of an item. You need to initially click the first item you want to gather here, but afterwards can just walk away. - Now built to have both Botanist & Miner in the same script. Detects which class you're on, and has a built in route for both as well! + + *************** + * Description * + *************** + + Full automation of Diadem, to allow leveling of an item. You need to initially click the first item you want to gather here, but afterwards can just walk away. + Now built to have both Botanist & Miner in the same script. Detects which class you're on, and has a built in route for both as well! - Required Plugins: - -> visland - -> snd [Make sure to press the lua button when you import this] - -> Pandora's Box - Author: LegendofIceman + ********************* + * Required Plugins * + ********************* + + -> visland -> https://puni.sh/api/repository/veyn + -> SomethingNeedDoing (Expanded Edition) [Make sure to press the lua button when you import this] -> https://puni.sh/api/repository/croizat + -> Pandora's Box -> https://love.puni.sh/ment.json + + + *********** + * Credits * + *********** + + Author: Leontopodium Nivale Version: 6.2.4 [Tweaked BTN/Miner Route to be smoother/fixed potentional collision against the wall in the miner route] Class: Miner/BTN Link: https://discord.com/channels/1001823907193552978/1191076157882388581/1193291297067384873 @@ -20,7 +34,7 @@ Repair_Amount = 75 Miner_Red = "H4sIAAAAAAAACu2ZTWsjRxCG/4qYUwJy01VdVV2tW8gmYIjzsQScbMhBWBN2yEpjpHHCYvzfUy31SA4rwQSddiY+TUvNuPXw1lsf/Vx9v1zX1aJ60yxX9Xp2M7trNvV29sXsbb2afWfP8xkK4ePsy2pe3S8/PrbNpttVi9+eqx/bXdM17aZaPFe/VIsbkOiSaNJ59ast2fl59c4eggaH6oVebN1u6ts31cK+ertcNU/2Jsz77tq/6nW96Ww5r243Xb1dPnT3Tff+h7L79WflyHag3fv27/4bO4m97Y/lh1192r4/Hsyrb9Zt1//j265el8ev9jvK4qeneteV5/zi+2XTnd6YV9+226/bzar8an/48OdmXd/ZPv8yP8eEnMcYDkiC8xBRsOfCLsbEg7D4M1hCiP48mm378OfHWfvUPWzbx8+DEzj2WjihS4oUoeckDiGm85zCtDiRcWIl2INCFwJKPGAiNcmQcDzPCf7NCUYWZsnFhEEO+tHeehjASQDRSVoPOjWPOSDJIWRaocIFTTqow7BcCik4i2ad88fyw2xVP+YDfR6k1DFq7EklAlbhHhU49Ew0KKz8yCQkTiMfE3rSkHyxG0Z2SHKeineRJyYhcFGjP0QbOkDxdEKVnE8pDoq2kRmzqcSMmdNBQuSYRCnn+T0Y8Y4jwATBKDmA6PuCxx8zVorO3CfyILsZV8aKyVmvkMvjzASsmzBCxYbFW4B5P0wql+wGx2I30ZorDVCMGdSB2Y2eSJFeKgOnRoqtP1CJfQcG7FQR+zIomCEJXGrBRl0ys/066yZynt47s9XMCqXjYjCZRDPqV1xSSP9ZRWEsKiJ2nDBSYSVOPFJp4xlsvOH1ungbEynL+VxUhYbG6keUHhWZNam/qKsw5oizhBZMJ6VHRXHWnfaFEKEV0yldpSEay4jDakLieMRENlLEk2Grxuv61rFwYkfJKmg8lpASJPh0IoXE/kKDNuZAs7kHJ5JXZo0iBQsla/XJ41UC4lEIiMXGhSagEydNifIUpJ+cqXLQ6fUhEU0xFEtxTdEJhWNhFGz8KjQsqsZFxfxENMdRUUtMkK969lh8buwx/B9VC/BWSKcUXqlHQh5/HDhZdaThUv4asymDT9bOezliUdT+IixjsVx1XQUtI6mgPwEVo+BRP96Rv5TTJwbqBoLlcp9Ol4YUknUYRVRkUxFLYnF6oXYDye4w4HihQa7k9GC3ZIwEw64yRpW9rDxWp9zPW4PNWDHkVmzPhe32UAZeEp4PK0lpLGGFVvkB5LuLQkqC/fWkzLgFpkjq95d/ALvupM8sIwAA" -- Botanist Pink Route -Botanist_Pink = "H4sIAAAAAAAACu2ZW2vbMBTHv4rx0wapkM5F0snbtm5QWLduDLoLezCt15o1dmncjlH63XdUy0kHLRTyVKfJS44tFOWXc/37uvxQLepyXu421XG9KHaK111ftc2yL14UB037u3jftPWsgED2pHhZzsrD6u9517T9spz/uC4PumXTN11bzq/Lr+V8Bygasl54Vn5T05nAUaL4WfldTQp619vAN2p3bb23W87trPxcHTeXuh8aNfa7q3pRt305d7Nyr+3ri+qoP2z604959d1r+fB6rOVp92e8o+fR3X5VZ8t6vfz2kLrl20XXj1+819eL/PHV7YpsfLqsl33+nDY+rJp+vWOy3nUXb7r2OP92O1z80izqfV1nb2YPkImR4kCGDY9MgolCgvczgf+ZwLSYMJgg0Q9IwMTA+h65sHLhR1Gx91BBDPF+MmeXy9Piqj6p+yodpjiv+qPTp4ErGmagFS4n5FduRAacj8+81ryQlBEADrxQUw+BY8zAHJoQCPwW5iKkYBzkTEQGgweJIxYwnils5EduWnGH7NWPXK5pZNiz4xUvZwDsM6+7vHw03kbKgZeCkBh8JoaMJrLdxh4AgzUgqcINXMR7xtwbIXkTLMJGgQcTCzzlJfoaeQVhgBUvtZ3frEGYGC8CrWlic0MFIUFIrMBrvg823HUuQVnjclOOOkJvnEv/9QAlBV1uMoHVwTSbb+REeC+ZRdVfXtRFf1HXTwOSug7g0BOANzqRBBkhOfUeoGdIhMGIkyF/KzCxAEJrSupY9nEd+MQiLAbDMdc1YOUiLqdprfwG7SOn24cijCYRYWJNxKyMJEiKxo2QdHjTQfgZEqMYklTjU4Q5w9otxlWy1g5JW4JtnNiYtGkWpJGLjrK5nQYOJkTeLMB4Wn0Qq9aGmPtGhKRIphwy4gKymxWzqeFS7YhtVia1WbJBAEZeanvyDrYx6FSaVT1kyNhImrFlHPtBvcpFv9m05qfmRlrqHefcTVrsNM5GXFZJ+gcy93biUtXIOJWPshqgOV0c3w67t7qSkMqTNoYtjDuw1qCEkMnwOMaSqP4tGGkbH5VYNt6JG7Vsy6gKyMBFxTStabhRTUvD3qSiy+pjtZStB1yq14Yk4A64rLqRl63F9fPmH++6l4n3HQAA" +Botanist_Pink = H4sIAAAAAAAACu2ZW2vbMBTHv4rx0wapkM5F0snbtm5QWLduDLoLezCt15o1dmncjlH63XdUy0kHLRTyVKfJS44tFOWXc/37uvxQLepyXu421XG9KHaK111ftc2yL14UB037u3jftPWsgED2pHhZzsrD6u9517T9spz/uC4PumXTN11bzq/Lr+V8Bygasl54Vn5T05nAUaL4WfldTQp619vAN2p3bb23W87trPxcHTeXuh8aNfa7q3pRt305d7Nyr+3ri+qoP2z604959d1r+fB6rOVp92e8o+fR3X5VZ8t6vfz2kLrl20XXj1+819eL/PHV7YpsfLqsl33+nDY+rJp+vWOy3nUXb7r2OP92O1z80izqfV1nb2YPkImR4kCGDY9MgolCgvczgf+ZwLSYMJgg0Q9IwMTA+h65sHLhR1Gx91BBDPF+MmeXy9Piqj6p+yodpjiv+qPTp4ErGmagFS4n5FduRAacj8+81ryQlBEADrxQUw+BY8zAHJoQCPwW5iKkYBzkTEQGgweJIxYwnils5EduWnGH7NWPXK5pZNiz4xUvZwDsM6+7vHw03kbKgZeCkBh8JoaMJrLdxh4AgzUgqcINXMR7xtwbIXkTLMJGgQcTCzzlJfoaeQVhgBUvtZ3frEGYGC8CrWlic0MFIUFIrMBrvg823HUuQVnjclOOOkJvnEv/9QAlBV1uMoHVwTSbb+REeC+ZRdVfXtRFf1HXTwOSug7g0BOANzqRBBkhOfUeoGdIhMGIkyF/KzCxAEJrSupY9nEd+MQiLAbDMdc1YOUiLqdprfwG7SOn24cijCYRYWJNxKyMJEiKxo2QdHjTQfgZEqMYklTjU4Q5w9otxlWy1g5JW4JtnNiYtGkWpJGLjrK5nQYOJkTeLMB4Wn0Qq9aGmPtGhKRIphwy4gKymxWzqeFS7YhtVia1WbJBAEZeanvyDrYx6FSaVT1kyNhImrFlHPtBvcpFv9m05qfmRlrqHefcTVrsNM5GXFZJ+gcy93biUtXIOJWPshqgOV0c3w67t7qSkMqTNoYtjDuw1qCEkMnwOMaSqP4tGGkbH5VYNt6JG7Vsy6gKyMBFxTStabhRTUvD3qSiy+pjtZStB1yq14Yk4A64rLqRl63F9fPmH++6l4n3HQAA -- Main loop, test to see if you're in the Diadem or not ::Wait:: From ab45bda1967e3596fd0768575f75208d74614a26 Mon Sep 17 00:00:00 2001 From: Leontopodium Nivale <103514618+LeontopodiumNivale14@users.noreply.github.com> Date: Wed, 6 Mar 2024 10:04:19 -0500 Subject: [PATCH 2/3] Update Deep Dungeon Inuition Farm.lua --- Community Scripts/Misc/Deep Dungeon Inuition Farm.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua b/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua index 9f3fdb7c3..a98bbcea2 100644 --- a/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua +++ b/Community Scripts/Misc/Deep Dungeon Inuition Farm.lua @@ -77,7 +77,7 @@ -- if not, it'll use a primal + safety for movmement (sight doesn't really do TOO much, safety is so you don't hit a luring on the way there lol) -- Options: true | false - ChatTracker = true + ChatTracker = false -- Option to track how many intuitions you've found over time -- false by default, if you would like it to tell you upon every return back in front of the NPC, set it to true -- Options: true | false From bc8cf4d0d8f4303a40f559fce116b0411189f3b9 Mon Sep 17 00:00:00 2001 From: davoodinator <135515620+McVaxius@users.noreply.github.com> Date: Tue, 12 Mar 2024 11:58:56 -0400 Subject: [PATCH 3/3] ini defaults update ini defaults update --- .../Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.ini | 2 +- .../Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.ini b/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.ini index 5c1f64a33..26bdd873c 100644 --- a/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.ini +++ b/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.ini @@ -16,7 +16,7 @@ local char_snake = "no follow" --^^^^^^^^^^^ please note that party leader is the char_snake to pick if you want to actually trigger the duties --firstname lastname (of party member) you want to follow. dont put the @server -local enemy_snake = "whatever" +local enemy_snake = "nothing" --**Info** -- the enemy to follow. 4 means character slot 4, slot 1 is us, dont use 1, can throw in text if you want it to be a specific enemy or player -> wrap it with double quotes --**Examples** diff --git a/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.lua b/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.lua index d7369819b..41b7524d8 100644 --- a/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.lua +++ b/Community Scripts/Dungeons/arbitrary duty solver/arbitraryduty_McVaxius.lua @@ -561,6 +561,7 @@ local function arbitrary_duty() if target ~= doodie[whereismydoodie][7] then --dont get away from they keys and such yield("/"..muuvtype.." moveto "..doodie[whereismydoodie][2].." "..doodie[whereismydoodie][3].." "..doodie[whereismydoodie][4]) --move to the x y z in the waypoint yield("/echo No Combat - Regular NAV , WP -> "..whereismydoodie.." navtype -> "..muuvtype.." nav code -> "..doodie[whereismydoodie][1].." current dist to objective -> "..tempdist) + --yield("/echo No Combat - Regular NAV , DEBUG -> /"..muuvtype.." moveto "..doodie[whereismydoodie][2].." "..doodie[whereismydoodie][3].." "..doodie[whereismydoodie][4].."<-- line end") end if string.len(doodie[whereismydoodie][7]) > 1 then yield("/target "..doodie[whereismydoodie][7])