WoWInterface (
-   General Authoring Discussion (
-   -   Amber-Shaper Un'sok (

Haleth 11-06-12 01:36 PM

Amber-Shaper Un'sok
Does anyone know what type of action bar players get when they turn into the Mutated Construct on this boss? They get 4 abilities and someone using my UI reports that he isn't seeing the bar. He also gets the same problem on heroic Nefarian.

p3lim 11-06-12 02:26 PM

Did one try on him for funsies last night, didn't get the buff/debuff so couldn't see.
I would expect vehicle or override.

nin 11-06-12 02:28 PM

1 Attachment(s)
Haven't tested the boss yet but seen a lot of videos, and it looks just like altpowerbar to me.

The video i checked was from one pov so same UI, and when they were doing stone guards his altpowerbar was showing in the same spot as this one.

Not much of help, what im trying to say is that i think it's the altpowerbar controlling it, though like p3lim said you also get pet/vehicle actionbar showing so i might be wrong. :)

p3lim 11-06-12 08:01 PM

He was talking about actionbar states, not the statusbar that shows the power.

Haleth 11-06-12 09:09 PM

I did indeed mean action bar, I should've specified because there's lots of bars in the UI. :p

Haleth 11-09-12 09:31 AM

Anyone have an idea? It's pretty much impossible for me to test this.

zork 11-09-12 11:57 AM

If that is your actionbar code:

Hmm...well it should work. The only reason for it not to work is [overridebar] or [vehicleui] not firing correctly. We could do nothing about that.

Haleth 11-09-12 05:45 PM

Yep, that's the code I use today. I pretty much follow rActionBarStyler plus/minus a few things.

I'll have a look at other action bars and see how they handle it.

Phanx 11-10-12 02:39 AM


Originally Posted by Haleth (Post 268452)
Does anyone know what type of action bar players get when they turn into the Mutated Construct on this boss? They get 4 abilities and someone using my UI reports that he isn't seeing the bar. He also gets the same problem on heroic Nefarian.

Run this macro, or if you don't have access to the content yourself, have someone else who does run it:


/run local s=SecureCmdOptionParse print(s("[extrabar]extrabar"),s("[overridebar]overridebar"),s("[possessbar]possessbar"),s("[vehicleui]vehicleui"))
It will print to chat which condition(s) apply at the moment.

zork 11-15-12 08:08 AM

I checked ElvUi since his and TukUi always have some nice code pieces to look at.

When building the new rABS for MoP I stepped aways from bar paging because I had no clue how to apply the bar state to protected children (buttons). Actually thats the reason why I had to keep the default OverrideActionBar alive.

But there is a solution for this:
Lua Code:
  1. control:ChildUpdate("snippetid", message)
  2.     executes the contents of "_childupdate-snippetid" (or, if that attribute is nil/false, "_childupdate"), on all protected children (and children of children) of the restricted environment owner with (self, scriptid, message) arguments.

The interesting code snippets of Elv UI are
Lua Code:
  1. AB["barDefaults"] = {
  2.     ["bar1"] = {
  3.         ['visibility'] = "[petbattle] hide; show", --[petbattle][overridebar][vehicleui] hide; show
  4.         ['page'] = 1,
  5.         ['conditions'] = string.format("[vehicleui] %d; [possessbar] %d; [overridebar] %d; [bar:2] 2; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6;", GetVehicleBarIndex(), GetVehicleBarIndex(), GetOverrideBarIndex()),
  6.     },
  7. }
  9.     RegisterStateDriver(bar, "page", self:GetPage(barName, self['barDefaults'][barName].page, self['barDefaults'][barName].conditions));
  10.     --basically returns this: [vehicleui] GetVehicleBarIndex(); [possessbar] GetVehicleBarIndex(); [overridebar] GetOverrideBarIndex(); [bar:2] 2; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6; 1"
  11.     RegisterStateDriver(bar, "visibility", self['barDefaults'][barName].visibility)
  13.     bar:SetAttribute("_onstate-page", [[
  14.         self:SetAttribute("state", newstate)
  15.         control:ChildUpdate("state", newstate)
  16.     ]])

The problem that we have when building an actionbar on our own is to reproduce this function in the ActionBarController. It handles the actionpage swap on conditions.
Lua Code:
  1. function ActionBarController_UpdateAll()
  2.     PossessBar_Update();
  3.     StanceBar_Update();
  6.     -- If we have a skinned vehicle bar or skinned override bar, display the OverrideActionBar
  7.     if ((HasVehicleActionBar() and UnitVehicleSkin("player") and UnitVehicleSkin("player") ~= "")
  8.     or (HasOverrideActionBar() and GetOverrideBarSkin() and GetOverrideBarSkin() ~= "")) then
  9.         -- For now, a vehicle has precedence over override bars (hopefully designers make it so these never conflict)
  10.         if (HasVehicleActionBar()) then
  11.             OverrideActionBar_Setup(UnitVehicleSkin("player"), GetVehicleBarIndex());
  12.         else
  13.             OverrideActionBar_Setup(GetOverrideBarSkin(), GetOverrideBarIndex());
  14.         end
  17.     -- If we have a non-skinned override bar of some sort, use the MainMenuBarArtFrame
  18.     elseif ( HasBonusActionBar() or HasOverrideActionBar() or HasVehicleActionBar() or HasTempShapeshiftActionBar() or C_PetBattles.IsInBattle() ) then
  19.         if (HasVehicleActionBar()) then
  20.             MainMenuBarArtFrame:SetAttribute("actionpage", GetVehicleBarIndex());
  21.         elseif (HasOverrideActionBar()) then
  22.             MainMenuBarArtFrame:SetAttribute("actionpage", GetOverrideBarIndex());
  23.         elseif (HasTempShapeshiftActionBar()) then
  24.             MainMenuBarArtFrame:SetAttribute("actionpage", GetTempShapeshiftBarIndex());
  25.         elseif (HasBonusActionBar() and GetActionBarPage() == 1) then
  26.             MainMenuBarArtFrame:SetAttribute("actionpage", GetBonusBarIndex());
  27.         else
  28.             MainMenuBarArtFrame:SetAttribute("actionpage", GetActionBarPage());
  29.         end
  31.         for i=1, NUM_ACTIONBAR_BUTTONS do
  32.             local button = _G["ActionButton"..i];
  33.             ActionButton_UpdateAction(button);
  34.         end
  35.     else
  36.         -- Otherwise, display the normal action bar
  37.         ActionBarController_ResetToDefault();
  38.     end
  40.     ValidateActionBarTransition();
  41. end

In vehicle and possess state ElvUI uses the ID from GetVehicleBarIndex().
In overridebar state ElvUI uses the ID from GetOverrideBarIndex().

There is no state for temp shapeshift and bonusbar.

So basically what ElvUi does is creating an actionbar on its own using LibActionButton-1.0.
On page-state the bar state swaps and additionally all children swap aswell.

Regarding rABS. I have no clue why the bar should not show up.

The only reason I could think of is the [overridebar] firing without actually loading the OverrideActionbar and instead loading the override actionbuttons into the main actionbar. This would result in me removing the main actionbar and showing an probably empty (?!) overridebar. No clue.

Haleth 11-15-12 05:18 PM

If I happen to get transformed during that boss fight I'll run the script which Phanx posted and report the results. That might make the situation a little more clear.

Tonyleila 11-18-12 09:38 AM


Originally Posted by Haleth (Post 268945)
If I happen to get transformed during that boss fight I'll run the script which Phanx posted and report the results. That might make the situation a little more clear.

I'll try that macro too :)
I have made a screenshot and Alt-Powerbar of my UI is working fine. You can see the pink bar on top of Bossframes.
I use Gnosis with

to display alt power. Also using Dominos and Shadowed Unit frames.

zork 11-18-12 03:31 PM

Check this out: (used the macro from Phanx)

The interesting part is the Vehicle Exit Button. My condition to spawn it is:

Why on earth does possessbar fire but neither vehicleui or overridebar.

The problem is that the possessbar changes the default actionbar by default. But not this time. Strange.

That actually fixes the other problem imo. The solution is using this:

RegisterStateDriver(OverrideActionBar, "visibility", "[overridebar][vehicleui][possessbar,@vehicle,exists] show; hide")
Basically adding another condition checking if possessbar is fired but actually a vehicle exists. This actually reminded me ... why not use "@vehicle,exists" in first place? Because there may be vehicles that do not change your bars (like the camel encounter in the 5man dungeon). Crazy stuff...

Going to update rABS in a minute.


What I really don't understand is: If the OverrideBar is used. How can the [overridebar] statement return nil?

That damn feast fest table is using the OverrideBar, thus the [overridebar] condition should in no way be nil. Yet it is.

zork 11-19-12 04:10 PM

I did LFR today. Got mindcontrolled. Got bar. So the possessbar thingy fixed it.

Haleth 11-19-12 05:08 PM

Awesome. Great that you got on this :D

Was also getting comments about the silly table, I figured the two bars might be related in some way.

All times are GMT -6. The time now is 04:32 PM.

vBulletin © 2018, Jelsoft Enterprises Ltd
© 2004 - 2017 MMOUI