-
-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Autopass when saved or didn't tag the boss #155
Comments
This is something I'd definitely want to do as well. Doing as you mention and checking the lock status will provide the most info, but I still think it's an good idea to check As for the challenges:
And yes, if for any reason any candidate is ineligible, they should be marked as such, preferably with an explanation why. If we're checking the ML list, then people without the addon will get caught there, but otherwise I don't think it's worth the time creating special use cases for people without the addon. |
I did suggest to check
|
I rejected the idea of sending all candidates with every loottable, and that "ineligble" in it self wasn't enough info. I agreed with the concept, and with this idea you got something I like. If a raider leaves the instance, he can't receive the loot automatically anyway, and should be marked as "Not in Raid" (or similar). Obviously we can't use it for non ML raids, for which the other methods will have to do. I'm not 100% sure about the |
For the Another small suggestion: |
Did a quick test with a starter account in the group outside the instance. Next, I tried a raid (Magtheridon's Lair 25 to be precise). This time I had no Furthermore I found that In conclusion
I still need to see what happens in a real raid, and when inside without participating in the kill. That won't be until next week though. As for the "Not in Raid", I agree. Also, I'd like to know what the difference from |
What I really want to do is to determine whether the raid member is in the same instance, so the ML can get better information whether the loot can be distributed or not. I now have a better way, compare the zone name returned by Antorus, the Burning Throne If a player in the Antorus raid instance, but you found that the Zone name returned by |
Also, the wiki states |
|
I believe |
I did a test in the Ragefire Chasm dungeon with 2 characters. My lvl110 main (A) and a lvl10 starter account (B)
Now I think |
If you have time, can you print If ML is inside an instance
I did a test in a heroic Antorus with all bosses dead. Zone text of GetRaidRosterInfo always returns "Antorus, the Burning Throne" for me, for every location inside Antorus. However, I am very sure while in the Eonar encounter area, it returned "Elunaria" sometime ago. It could be a bug that fixed recently, or it only returns that when Eonar boss is alive. So I need more test result when you progress the entire raid normally. I personally stop raiding in this expansion after mythic Antorus progression. |
Your tests agrees with mine and what I expected. I'll sit out the first boss in my raid tonight to fully confirm it. I don't expect I'll run the following during my raid tonight: local function executeTimer()
for i = 1, GetNumGroupMembers() do
local name, _,_,_,_,_, zone, _,_,_, ml = GetRaidRosterInfo(i)
if ml then
tinsert(RCLootCouncil.db.global.testLog, date("%X", time()) .." - "..name..": "..zone)
elseif RCLootCouncil:UnitIsUnit(name, "player") then
local iname, _, _, _, _, _, _, instanceMapID = GetInstanceInfo()
tinsert(RCLootCouncil.db.global.testLog, date("%X", time()) .." - "..name..": "..zone.." | GetZoneText():"..(GetZoneText() or "")..
" | InstanceName: "..(iname or "").." | InstanceMapID "..(instanceMapID or ""))
end
end
RCLootCouncil:ScheduleTimer(executeTimer, 60)
end
executeTimer() Recoding it every second seems a bit excessive, so I bumped it to 1 min. |
|
Can you check GetRaidRosterInfo every frame and record only when there is a change? |
My script
|
I did some tests in LFR wing2. I found that Then I sit outside of the 1st boss (Garoth) in LFR wing1. I stand above the encounter playspace and not jump down the entire fight. The distance between me and the boss is roughly 100 yards. I got a very interesting result under a very poor internet connection.
|
For some reason my post from yesterday didn't stick, so here I go again... Log from raid. Barrow is the ML, Potdisc is me. The zone name from Btw, I did exactly the same as you, with the same result (expect for the looting part due to ML). This is what I expected though. I didn't check if I got saved until later (~5 bosses in), and I was saved. However, I believe that's because one gets saved to the same instance lock as the leader, which is different from loot lock. I'll see if I can get time to do a pug to check. Another example, "20:37:14 - Barrow: Den of the Devourers" - this was after we killed high command, about 30s after he finished looting, so he probably ran past it there (your script would have been good there) - but why didn't it report that name when we were actually fighting Felhounds from 20:09:56 to 20:13:47? Also, interestingly enough, I dc'd just before we started Eonar (20:58:14), and did some /reloads afterwards, hence the jump in the log. After the dc, I was dead at the top of the stairs. I still got
Finally, the last entry is really weird. After killing Argus, we started looting at 22:59:20 (and I was there before the ML). I went to Dalaran afterwards, and had a In conclusion Remaining issues |
Hi, I found an actual and precise API to determine the instance location of group members.
Thus, we can simply do the additional check in
My current test shows that this function returns accurate and consistent instance id and its value is updated in real time. Other suggesions:
|
I found a new way to check the eligibility of the loot. Research it if you are interested.
I haven't tested in game, but the idea is to send the loot source GUID with the loot table. Send one GUID for each item is very costly, but the new serializer done by me will help, as duplicate strings are only serialized in plain text once. Potential issues:
Seems boss whose loot dropped as chest cannot be tracked using this method. So I think
I don't think Blizzard stores separate information whether the user has looted the boss before and whether the user has saved to the boss. It does not make sense to store both. I don't think it's possible to be eligible for the loot if the player is saved to the encounter when it starts. |
I found a method to convert instance id to its localized string: |
Idea to implement the autopass:
I am emphasizing to only do stuff on |
Not in instanceThere's really two sides to this: 1. Player is outside the instance during a kill 2. Player leaves the instance before item is awarded.
Yes - but it should probably be togglable just in case some people prefer not to have automated messages.
Mentioned above. Are you certain
That's to be expected. A "kill" merely means "you won the encounter" - doesn't matter if the boss actually dies in a lore perspective. Raid lockoutsI don't have any real proof, but I'm pretty sure there's a difference. For example, in the beginning of Antorus before completing the skip quest, we had some people kill up to and including Coven in a pug group. They would be the first to enter the raid, so that we used their lockout. All the first bosses are down in the raid, and once we killed Aggramar, the rest of us got saved to their lockout. This did not mean, however, that we couldn't get loot of the first bosses, it just ment the bosses were dead, and the instance reflected that. AutopassesFirst off Secondly, do we really need the time?
Time doesn't seem to be required.
I.e. only do stuff on
Yes. I also don't like to call this "autopass" - it's more like auto responses, which I labeled "Status texts" in the filtering menus. |
First off, ENCOUNTER_END with a kill (Last argument returned by ENCOUNTER_END is 1) is not equal to BOSS_KILL. My solution is a little bit more comprehensive that it gives the correct response if the raider without touching the boss hearthstones or enters the instance immediately after encounter ends, before RC session starts. |
btw, a good Sublime package for WoW addon: |
I use Atom, but thanks anyway. |
By comparing the raid lockout before the encounter and after the encounter, whether or not the player is eligible for the loot can be known.
GetMasterLootCandidate
is another way to check this, but this occasionally changes when a raider leaves instance and is still eligible for the loot, at least when I tested it in Patch 7.3 (before 7.3.5) I have never done any loot tests since 7.3.5, because I can no longer master loot in old dungeons.5.Out of instance response will be deprecated after the full implementation of this feature.
Such information can be gathered from the following API:
GetSavedInstanceInfo, GetNumSavedInstances, GetSavedInstanceEncounterInfo
RequestRaidInfo RequestLFDPlayerLockInfo
For more reference, read FrameXML/RaidFrame.lua and the addon SavedInstances
There are several challenges for this feature:
Why this feature:
The text was updated successfully, but these errors were encountered: