Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Jaksuhn committed Feb 24, 2024
2 parents 485e53e + 167fdb7 commit 3c8f968
Show file tree
Hide file tree
Showing 11 changed files with 1,678 additions and 349 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
--[[
FPS Rate Version: 15-30
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.0
Created by: Ice, Class Support: Ellipsis
Creators note: thank you Ellipsis for getting all the classes working, you did an amazing job. You deserve the credit here.
Plugins that are used are:
-> Visland (for pathing)
-> Pandora (Setting "Open Chest")
-> RotationSolver
]]

-- How many loops do you wanna do
NumberofLoops = 30

--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"

-- 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

::LoopTest::
if NumberofLoops >= CurrentLoop then
yield("/echo Loop: "..CurrentLoop.." out of ".. NumberofLoops)
elseif NumberofLoops < CurrentLoop then
goto StopLoop
end

::DutyFinder::
if DutyFail == 4 then
goto StopLoop

elseif DutyCounter == 0 then -- Initially setting up duty to loop Alexander - Burden of the Father (A4N)
yield("/visland resume")
yield("/visland stop")
yield("/dutyfinder")
yield("/wait 2")

-- Setting up Unsync if it wasn't already
yield("/pcall ContentsFinder True 15")
yield("/wait 2")
yield("/pcall ContentsFinderSetting True 1 1 1")
yield("/wait 2")
yield("/pcall ContentsFinderSetting True 0")
yield("/wait 2")

yield("/pcall ContentsFinder True 12 1") -- Clearing out any old duties
yield("/wait 2")
OpenRegularDuty(115)
yield("/wait 1")
yield("/send NUMPAD0")
yield("/wait 1")
yield("/send NUMPAD0")

yield("/pcall ContentsFinder True 12 0")
DutyCounter = DutyCounter + 1
yield("/wait 2.0")
elseif DutyCounter == 1 then -- Quicker menu'ing here to load in
yield("/visland resume")
yield("/visland stop")
yield("/dutyfinder") --Open Duty Finder
yield("/wait 2")
yield("/pcall ContentsFinder True 12 0") --Duty Load
yield("/wait 2")
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


::DutyCommence::
yield("/click duty_commence")
yield("/wait 3")

while GetCharacterCondition(45) do
yield("/wait 1")
end

::Start::
if IsInZone(445) then
yield("/wait 1")
end

while IsAddonVisible("_Image") == false do
yield("/wait 1")
end

::BattleInitialize::
manip_phase = 0

if GetCharacterCondition(26, false)
then
-- Target selection and movement logic
local current_target = GetTargetName()
if not current_target or current_target == "" then
yield("/targetenemy") -- Attempt to auto-target the next enemy
current_target = GetTargetName()
if current_target == "" then
yield("/wait 0.5") -- Wait for a longer period if no target is found
end
end
-- This wait might be too long for fast-paced combat scenarios; adjust as needed

local enemy_max_dist = 40
local dist_to_enemy = GetDistanceToTarget()
if dist_to_enemy and dist_to_enemy > 0 then
if dist_to_enemy <= enemy_max_dist then
local enemy_x = GetTargetRawXPos()
local enemy_y = GetTargetRawYPos()
local enemy_z = GetTargetRawZPos()
yield("/visland moveto " .. enemy_x .. " " .. enemy_y .. " " .. enemy_z)
yield("/wait 1")
--yield("/send KEY_1")
yield("/rotation manual")
yield("/wait 5") -- Adjust wait time as necessary for movement completion
yield("/visland stop") -- Stop movement after reaching near the target
end
end
end

::StartofBattle::

yield("/wait 0.5")
--rotation

while GetCharacterCondition(26) do
yield("/wait 1")
-- Target selection and movement logic
local current_target = GetTargetName()
if not current_target or current_target == "" then
yield("/targetenemy") -- Attempt to auto-target the next enemy
current_target = GetTargetName()
if current_target == "" then
yield("/wait 0.5") -- Wait for a longer period if no target is found
end-- This wait might be too long for fast-paced combat scenarios; adjust as needed
end
local enemy_max_dist = 40
local dist_to_enemy = GetDistanceToTarget()
if dist_to_enemy and dist_to_enemy > 0 then
if dist_to_enemy <= enemy_max_dist then
local enemy_x = GetTargetRawXPos()
local enemy_y = GetTargetRawYPos()
local enemy_z = GetTargetRawZPos()
yield("/visland moveto " .. enemy_x .. " " .. enemy_y .. " " .. enemy_z)
yield("/wait 2.5") -- Adjust wait time as necessary for movement completion
yield("/visland stop") -- Stop movement after reaching near the target
end
end
end
-- This section might need an additional command to re-target or adjust positioning
-- if the enemy is beyond the max distance, depending on your needs.

yield ("/wait 4")

if (not GetCharacterCondition(26)) then
yield("/rotation cancel")
yield("/visland exectemponce "..Alex_Chest)
end

yield("/wait 2")

while IsMoving() do
yield("/wait 1")
end

CurrentLoop = CurrentLoop + 1
yield("/echo Leaving the instance")
yield("/wait 0.3")
yield("/pdfleave")
yield("/wait 1")

while GetCharacterCondition(45) do
yield("/wait 1")
yield("/echo Transitioning")
end

goto LoopTest

::StopLoop::
if DutyFail < 4 then
yield("/echo Alex Looping has completed")
elseif DutyFail >= 4 then
yield("/echo It seems like it's failed, maybe lag?")
end
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
--[[
FPS: 60+
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: MCH | SMN | RDM | BLM | BRD
Known classes to work: ALL
Version: 3.0
Created by: Ice, Class Support: Ellipsis
Version: 2.1
Created by: Ice
Creators note: thank you Ellipsis for getting all the classes working, you did an amazing job. You deserve the credit here.
Plugins that are used are:
-> Visland (for pathing)
Expand All @@ -13,7 +17,7 @@ Plugins that are used are:
]]

-- How many loops do you wanna do
NumberofLoops = 15
NumberofLoops = 1

--Visland Loops
Alex_Start = "H4sIAAAAAAAACk2PW2vDMAyF/4ueTXCyNJv9VrYO8tDdIVvHKKbVqKG2Rq3uQsh/nxJctjcd6dPRUQ83LiBYmO/xe12vH0FB534+yEdOYF97uKPk2VME28MzWF3oqrmYmaY2Cl7AlrqY1ea8qhWswJrCNGdaV4MoitheyYKCB7f1R3ErCxFL+sSAkadJGxkPbsOd591tpv/3cjgJlXb0dZpIGnF7d/uEf/gUsVSwCMSnwy1jyOV8IrK4P2LiXI/GnfPjt9lxVNd0uKS4zZ8LNjaffMClcHp4G34B1YIamzkBAAA="
Expand Down Expand Up @@ -93,34 +97,79 @@ end
::BattleInitialize::
manip_phase = 0

yield("/visland exectemponce "..Alex_Start)
yield("/wait 0.3")

while IsVislandRouteRunning() do
yield("/targetenemy")
yield("/rotation Manual")
yield("/wait 1")
if GetCharacterCondition(26, false)
then
-- Target selection and movement logic
local current_target = GetTargetName()
if not current_target or current_target == "" then
yield("/targetenemy") -- Attempt to auto-target the next enemy
current_target = GetTargetName()
if current_target == "" then
yield("/wait 0.5") -- Wait for a longer period if no target is found
end
end
-- This wait might be too long for fast-paced combat scenarios; adjust as needed

local enemy_max_dist = 40
local dist_to_enemy = GetDistanceToTarget()
if dist_to_enemy and dist_to_enemy > 0 then
if dist_to_enemy <= enemy_max_dist then
local enemy_x = GetTargetRawXPos()
local enemy_y = GetTargetRawYPos()
local enemy_z = GetTargetRawZPos()
yield("/visland moveto " .. enemy_x .. " " .. enemy_y .. " " .. enemy_z)
yield("/wait 1")
--yield("/send KEY_1")
yield("/rotation manual")
yield("/wait 4") -- Adjust wait time as necessary for movement completion
yield("/visland stop") -- Stop movement after reaching near the target
end

end
end

::StartofBattle::

yield ("/wait 4")

while GetCharacterCondition(26) do
yield("/wait 2")
yield("/targetenemy")
yield("/wait 0.5")
--rotation

while GetCharacterCondition(26) do
yield("/wait 1")
-- Target selection and movement logic
local current_target = GetTargetName()
if not current_target or current_target == "" then
yield("/targetenemy") -- Attempt to auto-target the next enemy
current_target = GetTargetName()
if current_target == "" then
yield("/wait 0.5") -- Wait for a longer period if no target is found
end-- This wait might be too long for fast-paced combat scenarios; adjust as needed
end
local enemy_max_dist = 40
local dist_to_enemy = GetDistanceToTarget()
if dist_to_enemy and dist_to_enemy > 0 then
if dist_to_enemy <= enemy_max_dist then
local enemy_x = GetTargetRawXPos()
local enemy_y = GetTargetRawYPos()
local enemy_z = GetTargetRawZPos()
yield("/visland moveto " .. enemy_x .. " " .. enemy_y .. " " .. enemy_z)
yield("/wait 2.5") -- Adjust wait time as necessary for movement completion
yield("/visland stop") -- Stop movement after reaching near the target
end
end
end
-- This section might need an additional command to re-target or adjust positioning
-- if the enemy is beyond the max distance, depending on your needs.

yield ("/wait 4")

if (not GetCharacterCondition(26)) then
yield("/visland exectemponce "..Alex_Chest)
yield("/rotation cancel")
yield("/visland exectemponce "..Alex_Chest)
end

yield("/wait 2")

while IsMoving() do
yield("/wait 1")
yield("/wait 1")
end

CurrentLoop = CurrentLoop + 1
Expand Down
18 changes: 18 additions & 0 deletions Community Scripts/Dungeons/arbitrary duty solver/1044.duty
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
1,196.96076965332,185.99942016602,-5.5055732727051,5,0
1,232.08404541016,155.68911743164,-30.1077003479,3,0
1,190.95698547363,151.87268066406,-81.554885864258,3,0
1,172.84265136719,156.0,-25.480905532837,3,0
1,191.6067199707,76.0,0.05311793833971,3,0
1,175.10542297363,76.0,3.9009022712708,3,0
1,176.16802978516,102.21385955811,-67.949180603027,3,0
1,168.72315979004,101.79106140137,-106.60729217529,3,0
0,136.84997558594,78.846633911133,-86.483200073242,3,0
0,92.192047119141,66.560981750488,24.106510162354,3,0
1,242.15399169922,66.38240814209,85.118667602539,3,0
0,229.8122253418,64.799140930176,67.407188415527,3,180
1,-63.371337890625,-103.96941375732,-0.93277209997177,3,0
0,-164.94715881348,-104.39965820313,0.32639053463936,3,0
1,-176.00271606445,-103.88856506348,0.29225087165833,3,0
0,-218.74710083008,-103.99738311768,0.634516954422,3,0
0,-237.78915405273,-103.99738311768,-18.510906219482,3,300
0,-561.11535644531,-268.0,220.39717102051,3,0
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ local char_snake = "no follow"
--firstname lastname (of party member) you want to follow. dont put the @server

-- 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
local enemy_snake = "The Ultima Weapon"
local enemy_snake = "whatever"
--local enemy_snake = "The Ultima Weapon"
--local enemy_snake = "nothing"
--some names
--nothing - dont do anything just attack if something pops on target otherwise we will solve mechs with snd
Expand Down Expand Up @@ -50,15 +51,12 @@ local limitpct = 30
--local movetype = visland
local movetype = vnavmesh
--we'll deal with this later but for now its going into the ini file
local spread_marker_entities = {
"Buttcheeks",
"Chuttbeeks",
"Kuchkeebs"
}


--try to load load duty file or not?
--default on, 0 = off
trytoload = 1
--DEPRECRATED SECTION
--limit break level permitted number is lowest level permitted DEPRECATED FOR NOW but won't remove it from template. ill just keep deprecated stuff at the bottom
local limitlevel = 2


Loading

0 comments on commit 3c8f968

Please sign in to comment.