WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   nUI: Bug Reports (https://www.wowinterface.com/forums/forumdisplay.php?f=90)
-   -   action bar wont show on last boss in dtk (https://www.wowinterface.com/forums/showthread.php?t=46266)

tawaraya 04-13-13 08:09 AM

action bar wont show on last boss in dtk
 
on last boss in drak tharon keep when boss changes u into skeleton the action bar for the skeleton buttons doesnt show any idea how to fix that?

using nui5 incase u wondering which

Xrystal 04-13-13 10:42 AM

Looking at the some web searches on that boss it looks like there may be problems getting the right bar to appear.

2 Sep 2012 - http://us.battle.net/wow/en/forum/topic/6490009164 - When Tharon'ja transforms the group to undead, the special action bar does not appear.

14 Feb 2013 - http://us.battle.net/wow/en/forum/topic/7922982721 - Tharonja removed all my abilities

30 Dec 2012 - http://www.curse.com/forums/games/wo...itching-during - On the last boss of Drak'Tharon Keep, where you get transformed into a skeleton, your first action bar should switch to a new set of abilities. Mine doesn't.

Reply on the last one .. 'With both BT4 and Dominos, there is an option per action bar to switch with vehicle, but I believe it is off by default. In any case, I'm fairly certain that's what you want. '

So sounds like there is another macro action bar setting that needs to be set for this type of thing that might be hidden somewhere in Bartender and Dominos.

tawaraya 04-13-13 05:08 PM

dont have bt4 and dominos installed in addons only have nui installed for addon so is there a way to turn that action bar on in nui

Xrystal 04-13-13 08:48 PM

nUI should automatically change action bars so I suspect there is another setting that bartender addon knows about that nUI doesn't. hopefully it is easy to find.


Edit 1: I was posting those example links to help explain that it is a blizz fault that is likely causing it as it was happening without any addons for someone.

Edit 2: Unfortunately I can't see what setting nUI needs to make as I cannot locate the settings in bartender that even remotely looks like how nUI sets its bars up with. And without an easier way of testing I can't even play with it to track down the setting like I did with all the other possible settings.

Edit 3: Looking at the blizz coding it is possible that it is linked to the following which may or may not be in nUI .

Lua Code:
  1. elseif (HasTempShapeshiftActionBar()) then
  2.       MainMenuBarArtFrame:SetAttribute("actionpage", GetTempShapeshiftBarIndex());

I will try and take a look before I start playing tomorrow.

tawaraya 04-14-13 04:43 AM

does same thing with quest in vash

vision of the past: invasion of vashj'ir
reoccupation

if u want to know which class playing it on its a monk thought i let u know if that helps

Xrystal 04-14-13 05:25 AM

2 Attachment(s)
thanks.

Looks like I can solo dtk with my paladin so just ran through it without addons and can see it working but none of my debug code is showing which is worrying:

Lua Code:
  1. local eventFrame = CreateFrame("Frame","XUI_ActionBar_Events")
  2.  
  3. local function CheckEvents(self,event,...)
  4.     local args = { ... }
  5.     print(event,args[1],args[2],args[3],args[4],args[5])
  6.  
  7.     print("HasVehicleActionBar() = ", HasVehicleActionBar())
  8.     print("HasOverrideActionBar() = ", HasOverrideActionBar())
  9.     print("HasTempShapeshiftActionBar() = ", HasTempShapeshiftActionBar())
  10.     print("HasBonusActionBar() = ", HasBonusActionBar())
  11.     print("HasTempShapeshiftActionBar() = ", HasTempShapeshiftActionBar())
  12.    
  13. end
  14.  
  15.  
  16. eventFrame:RegisterEvent("ACTIONBAR_PAGE_CHANGED")
  17. eventFrame:RegisterEvent("UPDATE_BONUS_ACTIONBAR")
  18. eventFrame:RegisterEvent("UPDATE_VEHICLE_ACTIONBAR")
  19. eventFrame:RegisterEvent("UPDATE_OVERRIDE_ACTIONBAR")
  20. eventFrame:RegisterEvent("UPDATE_SHAPESHIFT_FORM")
  21. eventFrame:RegisterEvent("UPDATE_POSSESS_BAR")
  22. eventFrame:RegisterEvent("UPDATE_EXTRA_ACTIONBAR")

So now testing the tournament ground area to see if my debug tests are working there.

edit: oops, forgot to set the script to run rofl .. oh well need to empty the bags after the first run , so will reset and try again.

edit2: second screenshot shows what my mini addon does. As you can see it correctly recognises that it has loaded the vehicle action bar.

Xrystal 04-14-13 06:12 AM

2 Attachment(s)
Okay, looks like I was right. Draktharon Keep uses the TempShapeshift Bar for those abilities.

Now to see how nUI can be fixed to work with it.

Xrystal 04-14-13 06:45 AM

1 Attachment(s)
Scott, need your help :D

Added the following to the event checks in nUI5's nUI_ButtonBar.lua file and it is triggering but I can't remember how to tell the actionbar to change this way.

Lua Code:
  1. elseif ( event == "UPDATE_SHAPESHIFT_FORM" ) then
  2.         if ( HasTempShapeshiftActionBar() ) then
  3.             print("HasTempShapeshiftActionBar: ", HasTempShapeshiftActionBar(), " Action Page = ", GetTempShapeshiftBarIndex() )
  4.             nUI_ActionBar:SetAttribute( "actionpage", GetTempShapeshiftBarIndex() );
  5.         end



For your reference the TempShapeshiftBar is the same bar number as the ExtraActionBar which is 13.

tawaraya 04-14-13 06:49 AM

yeah since the quests in vash uses the same script as boss in dtk. anyway for temp fix for it or need to wait for scott

Xrystal 04-14-13 07:34 AM

I'm trying to fix it but Scott understands how nUI and the secure action bars work better than myself. I don't think I have anyone that can quickly get to the vash quest stage so just redoing the dungeon over and over on my pally ... would have been better if it was the first boss but of course its not that easy rofl.

Edit: Okay, tried various ways the other addons have got this working but none of them seem to work with nUI so there must be something else I have to do for nUI to register the change.

Current code I have adjusted Scott is :

Lua Code:
  1. nUI_ActionBar:SetAttribute('updatePage', [[
  2.         local newPage = 0
  3.    
  4.         if HasTempShapeshiftActionBar() then
  5.             newPage = GetTempShapeshiftBarIndex() or 0
  6.         else
  7.             newPage = 0
  8.         end
  9.        
  10.         local oldPage = self:GetAttribute('actionpage') or 0
  11.         if newPage == 0 then
  12.             newstate = newPage
  13.         else
  14.             newstate = oldPage
  15.         end
  16.     ]])
  17.        
  18.  
  19.         nUI_ActionBar:SetAttribute(
  20.             "_onstate-page",
  21.             [[
  22.            
  23.                 self:RunAttribute( "updatePage" )
  24.  
  25.                 self:SetAttribute( "actionpage", tonumber( newstate ) );
  26.                
  27.                 for i, button in ipairs( ChildList ) do
  28.                     if not button:GetAttribute( "nUI_ActionButtonOverlay" ) then
  29.                         button:SetAttribute( "touch", nil )                
  30.                     end
  31.                 end                        
  32.             ]]
  33.         );


and

Lua Code:
  1. elseif ( event == "UPDATE_SHAPESHIFT_FORM" or event == "UPDATE_BONUS_ACTIONBAR" ) then
  2.         if ( HasTempShapeshiftActionBar() ) then
  3.             print("Event is : ", event, ", Has Temp Shapeshift bar so trying to switch page to the new bar, and actionpage is : ",nUI_ActionBar:GetAttribute("state-page"))
  4.            
  5.             if ( HasBonusActionBar() or HasOverrideActionBar() or HasVehicleActionBar() or HasTempShapeshiftActionBar() ) then
  6.                 if (HasVehicleActionBar()) then
  7.                     print("VehicleBarIndex =", GetVehicleBarIndex())
  8.                 elseif (HasOverrideActionBar()) then
  9.                     print("OverrideBarIndex = ", GetOverrideBarIndex())
  10.                 elseif (HasTempShapeshiftActionBar()) then
  11.                     print("TempShapeShiftBarIndex = ", GetTempShapeshiftBarIndex())
  12.                 elseif (HasBonusActionBar() and GetActionBarPage() == 1) then
  13.                     print("BonusBarIndex = ", GetBonusBarIndex())
  14.                 else
  15.                     print("ActionBarIndex = ", GetActionBarPage())
  16.                 end
  17.             else
  18.                 print("No special bar so using Action Bar Page: ", GetActionBarPage())
  19.             end
  20.  
  21.            
  22.             if not InCombatLockdown() then
  23.             else
  24.                 print("In Combat so unable to switch")
  25.             end        
  26.         end
  27.            
  28.     end

it consistently displays TempShapeshiftBar as 13 everytime it switches me but the bar doesn't ever change because the TempShapeShiftBar isn't set when you first load the addon so the page setup doesn't seem to change as it always shows the actionpage as 1

spiel2001 04-14-13 08:56 PM

Xrystal -- I'm not sure if I can get to this or not until this coming weekend... I've got to travel on business this week and won't be back until Friday around 5:30 -- unless I end up locked up in a hotel room with time to spare, I'm not going to get to look at it. If I do... I'll holler. Otherwise, it will likely be Saturday before I see it.

Xrystal 04-15-13 01:24 AM

Thanks Scott,

If I get a brainwave and fix it I'll let you know

tawaraya 06-19-13 09:54 PM

was wondering did u ever find a fix for this? was lvling a few more chars through vash and still encountered same problems as couple months back

Belechannas 06-19-13 11:24 PM

I suspect the culprit may be this line in nUI_ButtonBar.lua:

Code:

RegisterStateDriver(nUI_ActionBar, "page", "[vehicleui] 12; [overridebar] 14; [bar:2] 2; [bar:3] 3; [bar:4] 4; [bar:5] 5; [bar:6] 6; [bonusbar:1] 7; [bonusbar:2] 8; [bonusbar:3] 9; [bonusbar:4] 10; [bonusbar:5] 11;1" );
It is a sort of lookup table that controls what bar is displayed based on what bar the Blizzard UI says to display.

I have hacked my version so that it doesn't use different bar for Moonkin form, as described here:

http://www.wowinterface.com/forums/s...ad.php?t=46554

Anyway, the statement above is a sort of conditional, which takes the first matching value, and if nothing matches, it uses bar 1 (the default). I notice there is no entry for the tempshapeshift bar (bar 13), so when Blizzard says to load that one, nUI will load bar #1 (I think...).

Edit: Ah, the wonders of Google. It looks like the match for bar 13 was removed to fix some other problem...by Xrystal:

http://www.wowinterface.com/forums/s...8&postcount=16

Xrystal 06-20-13 03:42 PM

I have been testing this again and again with my pally and I have not as yet been able to identify a way to get it to work. At least not with the way nUI5 is currently coded to work. My knowledge of secure coding is not as extensive as Scotts so I'm currently at an impasse.

Xrystal 08-03-13 01:50 PM

Just tested the dungeon in the latest nUI6 version and the bar doesn't show there but so far I have been unable to get some debug code in place to identify where to start testing code changes.

Xrystal 08-04-13 01:12 PM

Well, save me messing up my copy of nUI6 beyond recognition I thought I would see if I could create a simple actionbar and get it to do the switches and test things that way ... not working quite like I planned though so Scott, a little help if possible.

The below is the whole of my code and it works in the sense that the main action bar appears and is useable and even has some basic functionality because of the templates I used.

However, despite it shifting when I use it on my warlock and shift into meta mode it doesn't work on my druid in ANY of her forms nor when doing the farming ( OVERRIDEBAR ) and definitely no closer to figuring out DTK last boss problems with it.

Any idea as to why it isn't working Scott ? Or anyone else looking in that understands Secure Handling.

Oh, and I take it that the secure snippet blocks don't allow print output commands for debugging ?

Lua Code:
  1. local addonName,addonData = ...
  2.  
  3. local actionBarFrame = CreateFrame("Frame","XUI_ActionBar_Frame",UIParent,"SecureHandlerStateTemplate,SecureHandlerAttributeTemplate,SecureHandlerShowHideTemplate")
  4. local eventFrame = CreateFrame("Frame","XUI_ActionBar_Events")
  5.  
  6. local function CheckEvents(self,event,...)
  7.     local args = { ... }
  8.     print(event,args[1],args[2],args[3],args[4],args[5])
  9.     print("HasVehicleActionBar() = ", HasVehicleActionBar())
  10.     print("HasOverrideActionBar() = ", HasOverrideActionBar())
  11.     print("HasTempShapeshiftActionBar() = ", HasTempShapeshiftActionBar())
  12.     print("HasBonusActionBar() = ", HasBonusActionBar())
  13.     print("HasPossessBar() = ", IsPossessBarVisible())
  14.     print("HasExtraBar() = ",HasExtraActionBar())
  15.  
  16.    
  17.     if ( event == "ADDON_LOADED" and args[1] == addonName ) then
  18.         actionBarFrame:SetPoint("CENTER",UIParent,"CENTER",0,0)
  19.         actionBarFrame:SetAttribute( "XUI_ActionType","ACTIONBUTTON" )
  20.         actionBarFrame:SetAttribute( "actionpage", 1 );
  21.         actionBarFrame.Buttons = { }
  22.         local lastButton = nil
  23.         for i = 1,12 do
  24.             actionBarFrame.Buttons[i] = CreateFrame("CheckButton","$parent_Button_"..i,actionBarFrame,"SecureActionButtonTemplate,ActionBarButtonTemplate")
  25.             actionBarFrame.Buttons[i]:SetID(i)
  26.             actionBarFrame.Buttons[i]:SetAttribute("action", i );
  27.             actionBarFrame.Buttons[i]:Show()
  28.             if ( lastButton ) then
  29.                 actionBarFrame.Buttons[i]:SetPoint("TOPLEFT",actionBarFrame.Buttons[i-1],"TOPRIGHT",1,0)
  30.             else
  31.                 actionBarFrame.Buttons[i]:SetPoint("TOPLEFT",actionBarFrame,"TOPLEFT",1,0)
  32.             end
  33.             lastButton = actionBarFrame.Buttons[i]
  34.             ActionButton_UpdateAction(lastButton);
  35.         end
  36.         RegisterStateDriver( actionBarFrame, "visibility", "[petbattle] hide; show" );
  37.  
  38.         actionBarFrame:Execute(
  39.             [[
  40.                 ChildList     = newtable( self:GetChildren() );
  41.                 ActionButtons = newtable();
  42.                 actionType    = self:GetAttribute( "XUI_ActionType" );
  43.                
  44.                 local j = 1;
  45.                
  46.                 for i, child in ipairs( ChildList ) do
  47.                     if child:GetAttribute( "XUI_ActionType" ) then
  48.                         ActionButtons[j] = child;
  49.                         j = j+1;
  50.                     end
  51.                 end
  52.             ]]
  53.         );
  54.  
  55.         actionBarFrame:SetAttribute(
  56.             "updatePage",
  57.             [[
  58.  
  59.                 if ( newstate ~= "custombar" ) then return end
  60.  
  61.                 local newIndex = 0
  62.                 local oldIndex = self:GetAttribute( "newstate" )
  63.  
  64.                 if ( ( HasVehicleActionBar() and UnitVehicleSkin("player") and UnitVehicleSkin("player") ~= "")
  65.                 or ( HasOverrideActionBar() and GetOverrideBarSkin() and GetOverrideBarSkin() ~= "") ) then
  66.                     if ( HasVehicleActionBar() ) then
  67.                         newIndex = GetVehicleBarIndex()
  68.                     else
  69.                         newIndex = GetOverrideBarIndex()   
  70.                     end
  71.                 else
  72.                     if HasVehicleActionBar() then
  73.                         newIndex = GetVehicleBarIndex()
  74.                     elseif HasOverrideActionBar() then
  75.                         newIndex = GetOverrideBarIndex()
  76.                     elseif HasTempShapeshiftActionBar() then
  77.                         newIndex = GetTempShapeshiftBarIndex()
  78.                     elseif HasBonusActionBar() and GetActionBarPage() ~= 1 then
  79.                         newIndex = GetBonusBarIndex()
  80.                     else
  81.                         newIndex = GetActionBarPage()
  82.                     end
  83.                 else
  84.                     newIndex = GetActionBarPage()
  85.                 end
  86.                 if ( newIndex == 0 ) then
  87.                     newstate = oldIndex
  88.                 else
  89.                     newstate = newIndex
  90.                 end
  91.                 print("newState=",newstate)
  92.             ]]
  93.             )
  94.  
  95.         actionBarFrame:SetAttribute(
  96.             "_onstate-page",
  97.             [[
  98.  
  99.                 print(newstate)
  100.                 self:RunAttribute("updatePage")
  101.                 print(newstate)
  102.                 self:SetAttribute( "actionpage", tonumber( newstate ) );               
  103.                 print(newstate)
  104.                 for i, button in ipairs( ActionButtons ) do
  105.                     button:SetAttribute( "touch", nil )
  106.                 end        
  107.  
  108.             ]]
  109.         );        
  110.  
  111.         actionBarFrame:SetAttribute(
  112.             "_onshow",
  113.             [[
  114.                 for i, button in ipairs( ActionButtons ) do
  115.                     button:SetAttribute( "touch", nil )
  116.                 end        
  117.             ]]
  118.         );             
  119.  
  120.         RegisterStateDriver( actionBarFrame, "page", "custombar; 1" );
  121.         actionBarFrame:Show()
  122.  
  123.     end
  124.    
  125. end
  126.  
  127. eventFrame:RegisterEvent("ACTIONBAR_UPDATE_STATE")
  128. eventFrame:RegisterEvent("ADDON_LOADED")
  129. eventFrame:RegisterEvent("ACTIONBAR_PAGE_CHANGED")
  130. eventFrame:RegisterEvent("UPDATE_BONUS_ACTIONBAR")
  131. eventFrame:RegisterEvent("UPDATE_VEHICLE_ACTIONBAR")
  132. eventFrame:RegisterEvent("UPDATE_OVERRIDE_ACTIONBAR")
  133. eventFrame:RegisterEvent("UPDATE_SHAPESHIFT_FORM")
  134. eventFrame:RegisterEvent("UPDATE_POSSESS_BAR")
  135. eventFrame:RegisterEvent("UPDATE_EXTRA_ACTIONBAR")
  136.  
  137. eventFrame:SetScript("OnEvent",CheckEvents)

spiel2001 08-05-13 06:40 AM

I should (hopefully) have a little time when I get home this evening... assuming I can drag myself through the door. I'll try and have a look at it then.

Xrystal 08-18-13 05:30 AM

Well, after some research on State Handling - something minimal on what is happening to pets - I managed to use the same approach on the action bar paging ... it correctly reports the right page based on the blizzard special coding I filched that tests for the things a macro conditional can't test for.

However, not all the action bar buttons themselves aren't changing. Using them executes the right function but visually they are the wrong ones. But only a couple of them are having this problem.

Once I get that part figured out for my druid stance changes I can work on the next stage. I'm sure it will end up being some little thing I messed up on.

spiel2001 08-18-13 11:09 AM

This issue here is taint. There's a lot the Blizz code does with the action buttons that addons cannot because of secure execution. When we start trying to code the stuff that Blizz is doing ourselves to work around the missing macro, then we start throwing taint.

I've asked Blizz for a macro and I think it's in the latest PTR drop. I'm testing on the PTR today, so I'll report back what I find.


All times are GMT -6. The time now is 10:05 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI