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.
|
All times are GMT -6. The time now is 07:41 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI