Skip to content
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

Battle of Dazar'alor DifficultyString #233

Closed
LiangYuxuan opened this issue Feb 2, 2019 · 11 comments
Closed

Battle of Dazar'alor DifficultyString #233

LiangYuxuan opened this issue Feb 2, 2019 · 11 comments
Assignees
Labels
🐛 Bug This is a problem with SavedInstances. 🚨 High Priority This ticket needs to be handled ASAP

Comments

@LiangYuxuan
Copy link
Collaborator

SavedInstances uses information in instancelink to track how many bosses are defeated. However, there are some problem with BoD's instancelink. Instead of marking a bit in bitmap true for every boss defeated in usual, killing first 3 bosses marking least 5 bits true. So, if first 3 bosses are defeated in your instance, KILLED is showing 2 more bosses. Here are some example of my own instances

Bosses Defeated Bosses List Bitmap
1-7 4959 00001001101011111
1-3 31 00000000000011111
1-4 287 00000000100011111
1-6, 8 66399 10000001101011111
5 64 00000000001000000

But I am not sure which two bits are being marked true when first two bosses defeated, so I am looking for help. If you have only killed first one or two bosses, you can help us by following steps.

  1. Click your DifficultyString like "6/9" in SI's tooltip, then it will be a link in your chat input
  2. Add a pair of quotes and /dump to the very head, it will be like /dump "[Battle of Dazar'alor]"
  3. Press Enter and post what you get here

Your help will be very important to us and these workaround.

@LiangYuxuan LiangYuxuan added 🙏 Help Wanted If you think you can implement this, feel free to open a pull request! priority:urgent 🐛 Bug This is a problem with SavedInstances. 👩‍🔬 Work in Progress This pull request is not yet ready to merge. labels Feb 2, 2019
@LiangYuxuan LiangYuxuan self-assigned this Feb 2, 2019
@HopeUS
Copy link

HopeUS commented Feb 3, 2019

Hi, This is from a 9/9 Normal lockout showing 11/9

Dump: value="[Battle of Dazar'alor]"
[1]="|cffff8000|Hinstancelock:Player-61-0B48BA51:2070:14:201567|h[Battle of Dazar'alor]|h|r"

@Av8oR127
Copy link

Av8oR127 commented Feb 3, 2019

Hello, This is from 7/9 Normal Lockout showing 9/9
[1]="|cffff80000|Hinstancelock"Player-71-0BDDCF1A:2070:14:4959|h[Battle of Dazar'alor]|h|r"

Also, LFR shows 3/18 completed. I couldn't click that one as it does not show up

@rdw-software
Copy link
Collaborator

rdw-software commented Feb 4, 2019

I believe I've gathered all the required bit flags. The structure is somewhat different because the second and third bosses aren't identical for both factions, which increases the total number of bosses. It's safe to assume that killing one will set BOTH faction's flags, thereby increasing the total amount that SavedInstances displays by one or two, respectively.

Additionally, there seem to be unused entries, but that shouldn't be a problem. Here are the individual flags for each faction, which I collected using this test script:


2^X bitmap H A Matching Boss
--- 000000000000000000 0 0 X ---
00 000000000000000001 0 3 Grong the Revenant (Alliance)
01 000000000000000010 2 0 Grong, the Jungle Lord (Horde)
02 000000000000000100 0 2 Jadefire Masters (Alliance)
03 000000000000001000 1 1 X Champion of the Light
04 000000000000010000 3 0 Jadefire Masters (Horde)
05 000000000000100000 0 0 X ---
06 000000000001000000 5 5 X Conclave of the Chosen
07 000000000010000000 0 0 X ---
08 000000000100000000 4 4 X Opulence
09 000000001000000000 6 6 X King Rastakhan
10 000000010000000000 0 0 X ---
11 000000100000000000 0 0 X ---
12 000001000000000000 7 7 X Mekkatorque
13 000010000000000000 0 0 X ---
14 000100000000000000 0 0 X ---
15 001000000000000000 0 0 X ---
16 010000000000000000 8 8 X Stormwall Blockade
17 100000000000000000 9 9 X Lady Jaina Proudmoore

Notes:

  • I assume that these are the only bit flags being used, as there aren't any other bosses as far as I know
  • Changing difficulty to 15 or 16 (Heroic/Mythic) doesn't seem to change anything. Disclaimer: I did NOT test every single combination, just a few to be reasonably certain
  • It seems likely that killing one of the faction-specific bosses toggles two flags instead of one, though I can't test it myself
  • The bosses are numbered according to the order displayed in the tooltip. So for Horde, Grong is 2 and for Alliance it is 3, with Jadefire Masters being 3 for Horde and 2 for Alliance instead

@Av8oR127
Copy link

Av8oR127 commented Feb 4, 2019

I believe I've gathered all the required bit flags. The structure is somewhat different because the second and third bosses aren't identical for both factions, which increases the total number of bosses. It's safe to assume that killing one will set BOTH factions flags, thereby increasing the total amount that SavedInstances displays by one or two, respectively.

Thanks for the update. I guess I should have mentioned that I run Horde. Thought never really crossed my mind that there was an Alliance side, lol. Good work and I'm glad you put this together as I use it frequently.

@tanknotes
Copy link

Appear to be getting errors with my dumps :(

image

@LiangYuxuan LiangYuxuan changed the title [HELP WANTED] Battle of Dazar'alor DifficultyString Battle of Dazar'alor DifficultyString Feb 5, 2019
@LiangYuxuan LiangYuxuan removed the 🙏 Help Wanted If you think you can implement this, feel free to open a pull request! label Feb 5, 2019
@Dephi73
Copy link

Dephi73 commented Feb 9, 2019

4/9HC lockout showing 6/9HC
[15:06:14] Dump: value="[Schlacht von Dazar'alor]"
[15:06:14] [1]="|cffff8000|Hinstancelock:Player-1118-05AA9A00:2070:15:287|h[Schlacht von Dazar'alor]|h|r"

@cremor
Copy link

cremor commented Feb 15, 2019

Some more values for you from an Alliance player:

1/9M:
[1]="|cffff8000|Hinstancelock:Player-580-04430F9B:2070:16:26|h[Schlacht von Dazar'alor]|h|r"

5/9H:
[1]="|cffff8000|Hinstancelock:Player-580-04430F9B:2070:15:351|h[Schlacht von Dazar'alor]|h|r"

@kaedys
Copy link

kaedys commented Feb 17, 2019

2/6 Heroic (horde): [1]="|cffff8000|Hinstancelock:Player-3678-07B71F7D:2070:15:14|h[Battle of Dazar'alor]|h|r"
Showing as 3/9H, set bits are 1110, which correspond to Champion of the Light (2^3), Jadefire Alliance (2^2), and Grong Horde (2^1)

3/9 Mythic (horde): [1]="|cffff8000|Hinstancelock:Player-3678-09F02666:2070:16:31|h[Battle of Dazar'alor]|h|r"
Showing as 5/9M, set bits are 11111.

9/9 Heroic (horde): [1]="|cffff8000|Hinstancelock:Player-3678-09F02666:2070:15:201567|h[Battle of Dazar'alor]|h|r"
Shows as 11/9H, set bits are 110001001101011111

Also pinged an alliance friend, and got this:

2/9 Heroic (alliance): [1]="|cffff8000|Hinstancelock:Player-86-075D54DA:2070:15:14|h[Battle of Dazar'alor]|h|r"
Set bits are 1110, which is identical to the 2/9 Heroic (horde) link above from my hunter.

I'm still waiting to hear back from a guildy that was only around for our Champions kill in mythic this week, but I fully expect his link to have a bit pattern of 1000. From the comparison of these strings, I suspect your initial expectation was correct. When you kill the first boss, it sets the Champions bit (which is weirdly the 4th bit). When you kill the 2nd boss, regardless of faction, it sets the Grong (horde) and Jadefire Masters (alliance) bits. When you kill the 3rd, it sets the Jadefire Masters (horde) and Grong (alliance) bits. Thus the bit patterns for each level of progression, regardless of faction, should be:

X/9 bitmap decimal
0/9 000000000000000000 0
1/9 000000000000001000 8
2/9 000000000000001110 14
3/9 000000000000011111 31
4/9 000000000100011111 287
5/9 000000000101011111 351
6/9 000000001101011111 863
7/9 000001001101011111 4959
8/9 010001001101011111 70495
9/9 110001001101011111 201567

However, there's anomoly in the comments above. cremor has a 1/9M lockout with a bit pattern of 11010, which corresponds to Champion of the Light, Jadefire (Horde), and Grong (Horde), without the expected alliance boss bits set. I suspect this was a case where cremor accepted the lockout later in the week, after the first 3 bosses were down, and it only set his faction-specific bits rather than all of the first 3 boss bits.

Edit: perhaps not. I had a guildy with our 3/9M lockout invite my (unsaved) hunter, went into the instance, and saved myself, and got a lockout 31 (11111), which is the same as my DH main has above. Perhaps it's because cremor was there for the first boss, and then the raid lockout progressed without him? I'll know more when my guildy that was only there for the first boss this week gets back to me.

LFR seems to have a different issue. My LFR pattern is this:

6/9 LFR (horde): [1]="|cffff8000|Hinstancelock:Player-3678-07B71F7D:2070:17:863|h[Battle of Dazar'alor]|h|r"
Showing as 6/18, set bits are 1101011111

Which is properly counting the number of bosses cleared (oddly) as 6, but showing there being 18 killable bosses rather than just 9.

@rdw-software
Copy link
Collaborator

For the faction-specific bosses, I suggest simply checking both bits (via OR) and counting either one as one boss regardless of faction. This should work with either combination as long as any one of the bit flags is set by the game, which it should be. If the extra bits are filtered out that way, most users should get an accurate count.

The LFR issue probably needs to be looked into. Perhaps it is considering each boss twice?

@LiangYuxuan
Copy link
Collaborator Author

@SacredDuckwhale 's table is right, and I am working on this which might be done these days.

Mythic is quite different, it marks the other faction bosses true when you kill the first boss, unlike in Normal or Heroic.

For LFR, it is because Blizzard have 3 new LFR wings for each faction, but their parent id is the same, so SI add all these wings up and make the number of total bosses is 18, twice of 9. Since we have more Combined LFR issues, like #217, so I'd like to solve it later, as it's not urgent as this.

@kaedys
Copy link

kaedys commented Feb 19, 2019

Mythic is quite different, it marks the other faction bosses true when you kill the first boss, unlike in Normal or Heroic.

Yep, looks to be accurate. My guildie who was there for only Champion (mythic) this week got back to me and had a link with a bit pattern of 13 (1101), which corresponds to Champion and the two alliance bosses. So that would also explain cremor's link, he's alliance and had only killed the first boss that week, and thus had Champion and the two horde bosses flagged.

I love it when Blizzard just YOLO's the API...

LiangYuxuan added a commit to LiangYuxuan/SavedInstances that referenced this issue Feb 19, 2019
@LiangYuxuan LiangYuxuan added status:resolved and removed 👩‍🔬 Work in Progress This pull request is not yet ready to merge. labels Feb 20, 2019
@LiangYuxuan LiangYuxuan added 🚨 High Priority This ticket needs to be handled ASAP and removed priority:urgent labels Mar 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 Bug This is a problem with SavedInstances. 🚨 High Priority This ticket needs to be handled ASAP
Projects
None yet
Development

No branches or pull requests

8 participants