frame replacing
Hi,
There is a simple boolean variable which determines if some "all" debuffs are shown or only own debuffs(of the target). So when = true then it will only show own debuffs when = false it will show all debuffs I want to make a modifier with the shift key to show all debuffs when the shiftkey is pressed and hide them again when shift is realeased. Lua Code:
This is my very simple solution for it which works. The problem here is though it only works on starting of the script. That is not very efficent because I would send my user into a loadingscreen. OnUpdate should fix my problem here which will run this specific code everytime a frame gets rendered which is pretty handy and is what I want to accomplish. So this is what I made Lua Code:
My problem is now that it doesn't work. I new to the onUpdate stuff and only copy pasted it from another addon I did which worked fine. Right it goes straight to = false, which is only happening I think because it is the default. thanks for the help weird title, can't change it. |
bump
~ 10 characters ~ |
You OnUpdate code is ok and does work as expected.
There must be something wrong within other parts of your code. |
Quote:
This is what I found in Skarj's code Lua Code:
|
So you're using an unmodified version of ouF_Skaarj and just would like to add a way to show your own auras on shift key?
|
Quote:
|
I'm not that motivated to dig into the code of ouF_Skaarj to be honest. :) But this you be a quick and dirty solution.
Try to replace Lua Code:
in aura.lua with Lua Code:
Didn't test this though. :) |
Hmm, I know where you are going with this but it doesn't work. I'm not sure why
|
1. Never use an OnUpdate script if there's an event you can respond to instead. OnUpdate scripts run every time a new video output frame is drawn -- if you're running at 60 FPS, every OnUpdate script is getting run 60 times per second. In this case, there is an event that tells you when modifier keys are pressed or released -- MODIFIER_STATE_CHANGED.
2. Simply checking for the modifier state in the aura filter won't really work, because modifier state changes don't trigger an aura display update -- only aura changes do that. 3. I already do this in my layout; here's a standalone adaptation that will work with any oUF layout to show all auras while Shift is pressed, and restore whatever filter you normally have when it's released: Code:
local f = CreateFrame("Frame") |
Okay, Thank you
But doesn't the filter from the ouF Layout apply after this one which would make the de/buffs visible/not visible again? I just tried it and it doesn't seem to work. No Error code but as long as the debuffs are still turned on in skaarj config nothing changes. |
What the code I posted does:
When you press the Shift key, it removes the CustomFilter from all Auras, Buffs, and Debuffs elements on all oUF frames, and forces them all to update. This will cause all buffs and debuffs to be displayed, since there is no filtering in place. When you release the Shift key, it replaces whatever CustomFilter was on each Auras, Buffs, and Debuffs element on each oUF frame, and forces them all to update. This will cause buffs and debuffs to be filtered according to your CustomFilter function again. If you use the code I posted, your CustomFilter function should apply normal (non-Shift key) filtering all the time, because it will never be run while the Shift key is pressed. If it has any checks to apply special filtering, get rid of them. If you want something other than the functionality I just described, please be more specific about what you're looking for. Based on the description in your original post, it sounded like this is what you wanted -- show all auras on Shift, otherwise apply your filter. |
No the functionality is exactly want I want.
But for I don't get it working. I there is no special filtering in place by Skarj as far as I have seen, so your Code should work, but it just doesn't. |
Yes, there is:
Code:
local CustomFilter = function(icons, ...) |
Quote:
Also tried leaving the aurafilter in the cfg of ouf_skaarj on/off but that didn't make any change aswell, except that it still works so you can still Hide debuffs on the target with the cfg.aura.ShowOnlyPlayer |
Where did you put the code I gave you? Are you sure it's even running? Add some print statements to make sure:
Code:
if state == 1 then |
I tried aura.lua and layout.lua
both same result "Shift released, restoring aura filters" |
Are you on live or beta? If you're on beta, they may have changed the "state" argument passed into the event to a boolean or something else that isn't a numeric 1 for "the key is pressed".
Code:
print("Shift changed:", type(state), state) |
Quote:
|
Are you sure you don't have some third-party software messing with your keyboard? There's no way that releasing a key should indicate it's pressed. I just tested in-game and it's still passing 1/0, which I fully expected since the code was copied and pasted from my own oUF layout where it's working just fine.
Type "/etrace" in-game, press Shift, and release Shift. The mouseover the MODIFIER_STATE_CHANGED events in the window and look at arg2. It should be a numeric 1 on press, 0 on release. If it's something else please post what it is. |
No works perfectly.
|
Quote:
|
Hmm,
This is what my chat looks like now. It does the exact same thing when pressing shift/or not |
Can you post your whole OnEvent function?
|
Quote:
Lua Code:
|
Ok, you should've placed the bottom snippet inside the event handler, so that's probably working, after all. The problem will be in the oUF bit, but I have no idea what's going on there, nor how oUF works.
|
Quote:
|
Well, then try to find out whats wrong. Just add a print(key, state) to you OnEvent handler. :) What does it print?
|
Quote:
|
Quote:
|
Post your entire addon.
|
Quote:
I really appreciate the help. I know that's a lot of work. oUF_Skaarj: https://www.mediafire.com/?ust166y91ht5k2h If you actually need to run the Addon and you probably need my other folder too which includes the media for oUF_Skaarj https://www.mediafire.com/?cscjvjvdbp6jo7b |
Well, as written, your player frame only has a Debuffs element, which is not filtered, and your target frame's Buffs and Debuffs elements are not filtered either, so while the code I posted works just fine and does what it should do, there's no visible result because there are no filters to remove and restore. What exactly are you hoping to do?
|
Quote:
But there is also an option to ONLY show my own debuffs, which is exactly what I am looking for. |
Quote:
/dump GetMouseFocus().Debuffs.CustomFilter "empty result" |
Quote:
|
That's an option in the default UI.
|
Filter options for the default UI do not affect oUF.
However, on further investigation, oUF itself applies a filter if you don't supply one, and if you set certain properties on the Debuffs element: Code:
local customFilter = function(icons, unit, icon, name, rank, texture, count, dtype, duration, timeLeft, caster) Code:
local showall = function() return true end |
All times are GMT -6. The time now is 03:19 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI