Closed Theletha closed 3 weeks ago
Did you find out the cause of the problem since you closed the issue?
Did you find out the cause of the problem since you closed the issue?
it seems to be working better with a updated script but the new script is not working so good for me on other parts instead so im stuck using the older one still.
This is the scirpt
`gearsets = {
0, 0, 0
}
repairat = 30
dorepairs = true
selfrepair = false
targeting = 5
retryque = 25
gracetime = 180
killclient = false
repairgil = 9000
maxpraetime = 1200
dochat = 1
zoneid = 1044
nofruns = 0
confplugins = true
--[[ .
]]
keepgoing = true leader = false leadertest = false gearfine = true inprae = 0 notarget = 0 isdead = 0 currentgear = 0 maxzone = 0 zoneleft = 0 targetcooldown = 0 outprae = 0 grace = 0 reque = 0 runsdone = 0 bossmode = 0 bossposition = "Any" trashposition = "Any" bossrange = 2.6 trashrange = 2.6
local function isLeader() return leader end
local function getPositions() -- Proto Ultima Arm Unit -- Magitek Vanguard H-1 -- Magitek Colossus -- Cermet Blast Door
-- Paladin 19, Warrior 21, Dark Knight 32, Gunbreaker 37 -- Monk 20, Dragoon 22, Ninja 30, Samurai 34, Reaper 39, Viper 31 -- White Mage 24, Scholar 28, Astrologian 33, Sage 40 -- Bard 23, Machinist 31, Dancer 38 -- Black Mage 25, Summoner 27, Red Mage 35, Pictomancer 42, Blue Mage 36
-- Positional will be role based: Tank front, healer rear, dps flank -- Distance will be set based on efficient AoE distance, but swapped for some classes against boss (e.g. dancer and scholar move back) -- Positionals: 0 = any, 1 = flank, 2 = rear, 3 = front myClass = GetClassJobId() trashposition = 0 if myClass == 19 or myClass == 21 or myClass == 32 or myClass == 37 then -- tank bossposition = 3 bossrange = "4,0" trashrange = "2,6" end if myClass == 20 or myClass == 22 or myClass == 30 or myClass == 34 or myClass == 31 then -- melee dps bossposition = 1 bossrange = "4,0" trashrange = "2,6" end if myClass == 24 or myClass == 28 or myClass == 40 then -- healer bossposition = 2 if myClass == 24 then -- whm always ranged, others melee trash trashrange = "6,0" else trashrange = "2,6" end if myClass == 28 then -- sch always melee (ok autoattack dps), others ranged boss bossrange = "4,0" else bossrange = "8,0" end end if myClass == 23 or myClass == 31 or myClass == 38 then -- physical ranged bossposition = 1 bossrange = "10,0" if myClass == 38 then -- dancer melee trash trashrange = "2,6" else trashrange = "6,0" end end if myClass == 25 or myClass == 27 or myClass == 35 or myClass == 42 then -- magic dps except BLU bossposition = 1 if myClass == 35 then -- red mage is sort of hybrid melee bossrange = "4,0" trashrange = "2,6" else -- others can stay at range at all times bossrange = "10,0" trashrange = "6,0" end end if myClass == 36 then -- blue mage can do whatever bossposition = 1 bossrange = "8,0" trashrange = "6,0" end return end
local function setPosition() if not HasTarget() then return end myTarget = GetTargetName() if type(myTarget == "string") and ( myTarget == "Nero tol Scaeva" or myTarget == "Magitek Death Claw" or myTarget == "Mark II Magitek Colossus" or myTarget == "Gaius van Baelsar" or myTarget == "Phantom Gaius" ) then if bossmode == 1 then return end getPositions() yield("/vbm cfg AIConfig DesiredPositional " .. bossposition) yield("/vbm cfg AIConfig MaxDistanceToTarget " .. bossrange) bossmode = 1 return end if bossmode == 2 then return end getPositions() yield("/vbm cfg AIConfig DesiredPositional " .. trashposition) yield("/vbm cfg AIConfig MaxDistanceToTarget " .. trashrange) bossmode = 2
return
end
local function swapgear() -- swap to next gearset if available. -- return true if swapped, false if not (indicating need to repair)
currentgear = currentgear + 1
if currentgear > #gearsets or gearsets[currentgear] == 0 then
currentgear = currentgear - 1
return false
end
yield("/gs change " .. gearsets[currentgear])
yield("/wait 2")
return true
end
local function chat(message) if dochat == 2 then yield("/p " .. message) end if dochat == 1 then yield("/echo " .. message) end return end
local function leaveDuty() yield("/ad stop") while IsInZone(zoneid) do if IsAddonVisible("SelectYesno") then yield("/click SelectYesno Yes") else yield("/leaveduty") end yield("/wait 2") end return end
local function clearContentsFinderConfirm() if IsAddonVisible("ContentsFinderConfirm") and IsAddonReady("ContentsFinderConfirm") then yield("/click ContentsFinderConfirm Withdraw") end return end
local function testLeader(enternow) local lisleader = false
if leadertest then
return
end
-- if we start inside instance, can only assume someone else brought us there
if IsInZone(zoneid) then
leadertest = true
return false
end
PauseYesAlready()
if IsAddonVisible("ContentsFinder") then
yield("/pcall ContentsFinder true -1")
while IsAddonVisible("ContentsFinder") do
yield("/wait 0.1")
end
end
yield("/wait 0.5")
yield("/finder")
yield("/wait 2.5")
if IsAddonVisible("ContentsFinder") then
yield("/pcall ContentsFinder true -1")
while IsAddonVisible("ContentsFinder") do
yield("/wait 0.1")
end
else
lisleader = true
if enternow then
RestoreYesAlready()
if IsAddonVisible("ContentsFinderConfirm") and IsAddonReady("ContentsFinderConfirm") then
yield("/click ContentsFinderConfirm Commence")
end
yield("/wait 0.5")
return lisleader
end
end
RestoreYesAlready()
yield("/wait 0.5")
clearContentsFinderConfirm()
yield("/wait 0.5")
leadertest = true
return lisleader
end
local function goRepair() gearfine = true -- we're not multithreading, so just be preemptive
if swapgear() then
return
end
-- we're at end of gearsets, swap back to first one
currentgear = 0
swapgear()
if not dorepairs then
-- we're not to do repairs, so all we can do is just
-- swap gearsets every run from here on, and hope they last
return
end
-- here we do repairs for first set
yield("/ad repair")
iloop = 15
while iloop > 0 do
clearContentsFinderConfirm()
yield("/wait 1")
iloop = iloop - 1
end
-- we should now bet at repair person, loop through the rest of the sets
while swapgear() do
yield("/ad repair")
iloop = 5
while iloop > 0 do
clearContentsFinderConfirm()
yield("/wait 1")
iloop = iloop - 1
end
end
-- finally go back to inn and swap back to original first set
yield("/ad goto inn")
iloop = 15
while iloop > 0 do
clearContentsFinderConfirm()
yield("/wait 1")
iloop = iloop - 1
end
yield("/ad stop")
currentgear = 0
swapgear()
return
end
if confplugins then -- rsr settings RSRChangeOperatingMode(1) yield("/rotation Settings AutoOffBetweenArea False") yield("/rotation Settings AutoOffSwitchClass False") yield("/rotation Settings AutoOffCutScene False") yield("/rotation Settings AddEnemyListToHostile True") yield("/rotation Settings OnlyAttackInEnemyList False") yield("/rotation Settings AutoOffAfterCombat False") yield("/rotation Settings AutoOffWhenDead False") yield("/rotation Settings AutoOffWhenDutyCompleted False") yield("/rotation Settings AoEType Full") yield("/rotation Settings HostileType AllTargetsWhenSoloInDuty") -- bossmod ai on yield("/vbmai on") -- ad settings yield("/ad cfg AutoExitDuty false") yield("/ad cfg AutoManageVnavAlignCamera true") yield("/ad cfg OverridePartyValidation true") if dorepairs then yield("/ad cfg AutoRepair true") yield("/ad cfg AutoRepairPct " .. repairat) if selfrepairs then yield("/ad cfg AutoRepairSelf true") else yield("/ad cfg AutoRepairSelf false") end end yield("/ad cfg FollowDuringCombat true") yield("/ad cfg FollowDuringActiveBossModule true") yield("/ad cfg FollowOutOfCombat false") yield("/ad cfg FollowTarget true") yield("/ad cfg FollowSelf true") yield("/ad cfg maxDistanceToTargetRoleBased false") yield("/ad cfg PositionalRoleBased false") yield("/ad cfg autoManageBossModAISettings false") yield("/ad cfg HideBossModAIConfig true")
yield("/vbm cfg AIConfig FollowDuringCombat true")
yield("/vbm cfg AIConfig FollowDuringActiveBossModule true")
yield("/vbm cfg AIConfig FollowOutOfCombat false")
yield("/vbm cfg AIConfig FollowTarget true")
yield("/vbm cfg AIConfig FollowSlot 0")
end
leader = testLeader(true) if leader then chat("I'm the leader") else chat("I'm NOT the leader") end
if currentgear == 0 and repairat > 0 then swapgear() end
if confplugins then setPosition() end
while keepgoing do yield("/wait 1") -- wait 1 second, this is also timer for instance if IsInZone(zoneid) then zoneleft = GetContentTimeLeft() if type(zoneleft) == "number" and zoneleft > 100 then if zoneleft > maxzone then maxzone = zoneleft end inprae = maxzone - zoneleft if inprae > 60 then if IsAddonVisible("SelectYesno") and IsAddonReady("SelectYesno") then yield("/click SelectYesno Yes") end if IsPlayerDead() then isdead = isdead + 1 if isdead > 120 then chat("I'm dead, bye") leaveDuty() end else isdead = 0 end if inprae > maxpraetime then chat("This is taking forever, I'm out") NavRebuild() while not NavIsReady() do yield("/wait 1") end leaveDuty() end end end end if IsPlayerAvailable() and not IsPlayerDead() then if IsInZone(zoneid) then -- -------------- inside prae
if gearfine and repairat > 0 and NeedsRepair(repairat) and not (GetGil() < repairgil) then
chat("I'll need repairs after this run")
PauseYesAlready()
gearfine = false
end
if confplugins then
setPosition()
end
if targeting > 0 and not HasTarget() then
targetcooldown = targetcooldown - 1
if targetcooldown < 1 then
TargetClosestEnemy(30)
targetcooldown = targeting
end
else
targetcooldown = targeting
end
else -- -------------- outside prae
if not gearfine then
goRepair()
RestoreYesAlready()
end
if inprae > 0 then
-- we have just returned, stop ad and start counting time outside
runsdone = runsdone + 1
chat("I think we finished run " .. runsdone)
yield("/ad stop")
bossmode = 0
inprae = 0
outprae = 0
if nofruns > 0 and runsdone == nofruns then
gracetime = 1
end
end
outprae = outprae + 1
if gracetime > 0 and outprae > gracetime then
keepgoing = false
if killclient then
if HasPlugin("AutoRetainer") then
yield("/ays shutdown 0:0:10")
else
CrashTheGame()
end
end
end
if isLeader() then
reque = reque + 1
if reque > retryque then
if IsAddonVisible("ContentsFinder") then
yield("/pcall ContentsFinder true -1")
else
reque = 0
yield("/finder")
end
end -- leader or not
end -- inprae counter
end -- prae or not
end -- player available
end -- main loop `
shouldn't you post this over in the snd channel ? i feel like this isnt a bossmod problem
this looks like rituskos script
I keep getting these errors from a snd script trying to send commands to bossmod, im running same script on other instances using same files and they are not showing that error.
[12:25]Field not found OverridePositional, Valid fields: [12:25]- ShowDTR [12:25]- DrawUI [12:25]- FocusTargetLeader [12:25]- BroadcastToSlaves [12:25]- FollowSlot [12:25]- ForbidActions [12:25]- ForbidMovement [12:25]- FollowDuringCombat [12:25]- FollowDuringActiveBossModule [12:25]- FollowOutOfCombat [12:25]- FollowTarget [12:25]- DesiredPositional [12:25]- MaxDistanceToSlot [12:25]- MaxDistanceToTarget
[12:23]Failed to set AIConfig.MaxDistanceToTarget to 2.6: System.FormatException: The input string '2.6' was not in a correct format. at System.Number.ThrowFormatException[TChar](ReadOnlySpan
1 value) at BossMod.ConfigRoot.FromConsoleString(String str, Type t) in D:\a\BossmodReborn\BossmodReborn\BossMod\Config\ConfigRoot.cs:line 173 at BossMod.ConfigRoot.ConsoleCommand(IReadOnlyList
1 args, Boolean save) in D:\a\BossmodReborn\BossmodReborn\BossMod\Config\ConfigRoot.cs:line 82Im not sure why it is pointing to a D: drive when i have nothing there, quite weird?