1. Broken API functions? No worries, mate. [DIY Stagger Icon Fix]

    ***Related API function has since been fixed.***
    This is not a bug report. Everything has already been reported in the bugtracker. This is what I would call a "DIY fix" to a problem regarding the display of Stagger.

    What exactly is this "fix" ?
    It's a an icon, like the one for the Stagger Debuff. It's movable, resizable, and with customizable text to be displayed on it.

    How does one get this icon?
    First of all, you need an AddOn called TellMeWhen, an AddOn that can provide notifications about pretty much anything combat related. Now if you have no experience with TellMeWhen, fear not. I've done 99% of the work, you just have to import a string (if you know what to do, the string is in the first comment). For those unfamiliar with TellMeWhen, I have some steps you can follow:
    1) Get TellMeWhen: https://wow.curseforge.com/addons/te...es/1642-7-0-2/ - a 5.4.8 Release version of it. Link under "Filename" on the right. Unzip in WoW Folder/Interface/AddOns/
    2) Import the string from the first comment below, following this simple guide: https://wow.curseforge.com/addons/te...mport-strings/ . Just make it a new group, it doesn't need to be a "global" one.
    3) That was it.
    Ez, m8. Now some things about the customization of the displayed text I mentioned above.

    What I've made the icon display is the total amount of damage staggered. I've also made it display the numbers "VeryShort" - 14k, 379k, 218k, etc. If you want your icon to display a different number, here are some things you can put in the icon layout:
    [(Stacks * Duration:Round):Short]
    -Shows your total staggered damage as 1356, 56.7k, 109k, etc.
    [((Stacks * Duration:Round) / MaxHP * 100):Round:Percent]
    -Shows your total staggered damage as a percentage of your max health.
    [((Stacks * Duration:Round) / HP * 100):Round:Percent]
    -Shows your total staggered damage as a percentage of your current health. If this value reaches 100%, you will die if you don't get any heals before stagger runs out.
    [Stacks:Short]
    -Shows your staggered damage per second.
    *Just copied them from curseforge*

    That's pretty much all you need, the following is just some info for those who'd ask for it.

    What exactly is the problem with the GUI?
    The display of stagger in the game's GUI is bugged. The only thing working about it is the value displayed when you mouseover on your Stagger Debuff. The bar on the player frame doesn't work. Any AddOn that is supposed to display the stagger does not work.
    Bugtracker report on the stagger icon: https://www.warmane.com/bugtracker/report/27721

    Why isn't it working?
    There's an API (Application Programming Interface) function that is used to determine the stagger a player has. It is used for displaying the stagger value on the stagger bar (player frame, below chi) and also by AddOns handling stagger. This function is called API UnitStagger and it doesn't work. It always returns 0.
    Bugtracker report on the API UnitStagger: https://www.warmane.com/bugtracker/report/30800

    If it isn't working, then how did I do that?
    Be warned, it's not interesting. It could be harmfully boring. - I used a different, unnecessarily difficult approach (it's much easier with a working API UnitStagger) to take what the currently broken API function should return. Having API UnitStagger broken, I used another function - API UnitDebuff.
    The hard part was retrieving what I need from this function and comparing it with other data without using any variables or conditional statements with the goal to end up with a single "true" or "false", and also with no LuA errors (even if you disable displaying them from the Interface menu, they will still harm your game's performance).
    God, how I missed conditional statements after that. I shall never take them for granted, ever again. I won't bore you with any more of this. If you're interested, you can see what I've written in the "Conditions" tab for the icons.
    Edited: September 2, 2016 Reason: Staff - Fix ==> Me - Edit :)

  2. Here you go, fellas. It's a group with 4 icons, but only one of them will be displayed.

    ^1^T^SPoint^T ^Sy^F4969247713563015 ^f-45^SrelativePoint ^SBOTTOMLEFT^Sx ^F7514684053669604^f-44 ^t^SScale^F5364584340783105 ^f-51^SRows ^N2^SIcons ^T^N2^T ^SType^Smeta ^SIcons^T ^N1^STMW:icon:1NlkCuqmQcQX ^N2^STMW:icon:1NlkCuqbXvOR ^N3^STMW:icon:1NlkCuqYutDU ^t^SEnabled^B ^t^N4^T ^SShowTimer^B ^SBuffOrDebuff^SHARMFUL ^SType^Sbuff ^SHideIfNoUnits^B ^SShowTTText^B ^SName^SLight~`Stagger;~`Moderate~`Stagger;~`Heavy ~`Stagger ^SEnabled^B ^SConditions^T ^N1^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Light~`Sta gger"))~`or~`0~`)~`<=~`UnitHealthMax("player")/100*33 ^t^N2^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Moderate~` Stagger"))~`or~`0~`)~`<=~`UnitHealthMax("player")/100*33 ^SAndOr^SOR ^t^N3^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Heavy~`Sta gger"))~`or~`0~`)~`<=~`UnitHealthMax("player")/100*33 ^SAndOr^SOR ^t^Sn^N3 ^t^SUnAlpha^N0.48 ^SSettingsPerView^T ^Sicon^T ^STexts^T ^N2^S[(Stacks~`*~`Duration:Round):Hide(0):VeryShort] ^t^t^t^SCustomTex^S124275 ^SGUID^STMW:icon:1NlkCuqYutDU ^SFakeHidden^B ^t^N5^T ^SShowTimer^B ^SBuffOrDebuff^SHARMFUL ^SType^Sbuff ^SHideIfNoUnits^B ^SShowTTText^B ^SName^SLight~`Stagger;~`Moderate~`Stagger;~`Heavy ~`Stagger ^SEnabled^B ^SConditions^T ^N1^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Light~`Sta gger"))~`or~`0~`)~`>~`UnitHealthMax("player")/100*33 ^t^N2^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Moderate~` Stagger"))~`or~`0~`)~`>~`UnitHealthMax("player")/100*33 ^SAndOr^SOR ^t^N3^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Heavy~`Sta gger"))~`or~`0~`)~`>~`UnitHealthMax("player")/100*33 ^SAndOr^SOR ^t^Sn^N3 ^t^SUnAlpha^N0.48 ^SSettingsPerView^T ^Sicon^T ^STexts^T ^N2^S[(Stacks~`*~`Duration:Round):Hide(0):VeryShort] ^t^t^t^SCustomTex^S124274 ^SGUID^STMW:icon:1NlkCuqbXvOR ^SFakeHidden^B ^t^N6^T ^SShowTimer^B ^SBuffOrDebuff^SHARMFUL ^SType^Sbuff ^SHideIfNoUnits^B ^SShowTTText^B ^SName^SLight~`Stagger;~`Moderate~`Stagger;~`Heavy ~`Stagger ^SEnabled^B ^SConditions^T ^N1^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Light~`Sta gger"))~`or~`0~`)~`>~`UnitHealthMax("player")/100*66 ^t^N2^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Moderate~` Stagger"))~`or~`0~`)~`>~`UnitHealthMax("player")/100*66 ^SAndOr^SOR ^t^N3^T ^SType^SLUA ^SName^S(select(16,UnitDebuff("player","Heavy~`Sta gger"))~`or~`0~`)~`>~`UnitHealthMax("player")/100*66 ^SAndOr^SOR ^t^Sn^N3 ^t^SUnAlpha^N0.48 ^SSettingsPerView^T ^Sicon^T ^STexts^T ^N2^S[(Stacks~`*~`Duration:Round):Hide(0):VeryShort] ^t^t^t^SCustomTex^S124273 ^SGUID^STMW:icon:1NlkCuqmQcQX ^SFakeHidden^B ^t^t^SColumns^N3 ^STree2^b ^SGUID^STMW:group:1Nli8MA8j5lZ ^STree3^b ^t^N70206^S~`~| ^Sgroup^N11 ^^
    Edited: August 28, 2016

  3. Skybro's Avatar
    Skybro
    Guest
    Stagger UI and related API commands should now be fixed on FW, the way we handled stagger server side was incorrect before this update.
    Thank you for bringing this to my attention, wasn't aware of this issue before your BT report and this post ^^

  4. I'm glad I could help.
    I don't know if it's related, but you also made it so that the damage is taken by Stagger, instead of the different debuffs (Light,Moderate,Heavy). That's very helpful for assessing combat logs.
    Thanks.

  5. Skybro's Avatar
    Skybro
    Guest
    That was a deliberate change, the client has that spell hardcoded and using the 3 separate spells like we did originally was the reason the UI and API wasn't working.

  6. @skybro Okay so brewmaster's stagger is fixed, and thats a good thing but what about mistweaver monks NOT getting the 50% haste increase from items? https://www.warmane.com/bugtracker/report/156
    ^this report says its fixed however, like the comments said, it does not work.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •