Closed Ecselsior closed 4 months ago
I don't think I really understand what you mean in the first scenario. Why is someone interacting with the battlewarden? That ends the duty before you killed bockman? Autoleave hooks the duty state so if that is somehow triggering falsely then there's bigger problems.
AutoLeave should not trigger if the current instance is different from the one that just ended.
There's no way to know what instance you're in, but even if you could, that behaviour would just mean you'd only ever be able to auto leave once, which if you're farming under the armour you wouldn't want that.
AutoQueue should not trigger while party members are still in the loading screen.
I unfortunately do not really have a way to check the status of party members, much less ones that could be in different zones from you. All I can (and do) check is their territory. Only thing else I could do is add a customisable delay
I don't think I really understand what you mean in the first scenario. Why is someone interacting with the battlewarden? That ends the duty before you killed bockman?
Ok, let me try to explain again. In the guildhest, you have to kill the boss bockman, and once you do, the npc battlewarden becomes interactable. The first time you interact with him, you pickup the reward for the guildhest. If you interact with him again, it ends the instance and kicks everybody in the instance out. This behaviour is the same for all guildhests afaik.
What I think is happening, is the following:
As for another possible solution, I replaced the Automaton Auto Leave with a lua script in S*methingNeedDoing. Maybe this will give you some idea of what to do, so that I could switch back to Auto Leave. The idea is that if the script detects the zoneId changing, it aborts leaving the duty.
local i = 0
while i < 15 do
if GetZoneID() == 190 then
i = i + 1
yield("/wait 1")
else
zone_changed = true
yield("/e Zone Change Detected!")
return
end
end
if GetZoneID() == 190 and zone_changed ~= true then
yield("/pdfleave") -- From P*ndora'sBox
yield("/e Manually Left instance: " .. instance)
elseif GetZoneID() == 190 and zone_changed == true then
yield("/e New instance detected!")
else
yield("/e Instance shutdown by somebody else!")
end
zone_changed = false
I unfortunately do not really have a way to check the status of party members, much less ones that could be in different zones from you. All I can (and do) check is their territory. Only thing else I could do is add a customisable delay
We were in the same zone. but one person had not fully loaded. I know that in S*methingNeedDoing you can check if you are inbetweenzones with GetCharacterCondition(), though I have no idea if this is possible to do with party members. Otherwise a delay would be nice, thank you.
Ohh... you had a delay on auto leave I assume you're comm farming and not mentor roulette farming then
you can check if you are inbetweenzones with GetCharacterCondition(
Other players do not have Conditions. Some info about other players is checkable, but very few relative to all the conditions that you the local player have. Being in between zones isn't one of them. I can add a check for targetability but it'll require all the members of the party to be relatively close to each other
new version has the zone check for the first issue and targetability check for the second
Describe the bug Enhanced Duty Start/End AutoLeave triggering when entering into a new duty before time has elapsed causing a lockout and AutoQueue triggering when not all members have loaded in from a duty (causing Y*sAlready to fail to autocommence on duty pop)
To Reproduce Steps to reproduce the behaviour: --Enhanced Duty Start/End AutoLeave
--Auto Queue triggering early while in party
Expected behaviour
Additional context Both issues are caused by getting a duty pop almost immmediately after a duty ends. Perhaps both issues could be partially resolved by adding an optional delay into the config of AutoQueue.