Category: Action Bar Mods
Addon Information
Works with 3.3
Download Latest Version.
To add favorites please register for a free account. If you already have one you need to login. How do I install this? (FAQ)
Author:
Version:
1.6.1
Date:
01-02-2010 06:04 PM
Size:
10.08 Kb
Downloads:
82,488
Favorites:
274
MD5:
Pictures
Bloodlust your keys
Click to enlarge
Configuration panel
SnowfallKeyPress   Popular! (More than 5000 hits)
This addon accelerates key bindings so that they are activated by key press rather than key release. This allows you to activate your abilities faster than you could otherwise. This can really make a difference for situations where you need to react quickly, like when casting heals, when dispelling, when interrupting spells, or in PvP. In these situations, the addon can have an effect similar to reducing your network latency by 100ms. Of course, the exact impact depends entirely upon how much time you personally spend between key press and release.

"Dude, this addon is going to increase my DPS by so much!" No, it's not. DPS rotations (or even priority systems) are not to any great extent affected by latency. Because they're predictable, good players can anticipate what's coming next and compensate for latency. In fact, if you're a good player who is already compensating for the press-to-release latency, you may actually find that your DPS goes down when you first use this addon until you learn to readjust to the reduced latency. Find a target dummy and practice your rotation until you're comfortable with the changed timing.


Configuration

There is an in-game configuration GUI accessible through the usual Options->Interface->Addons menu. From this panel, you can add or remove keys and mouse buttons to be accelerated, you can enable or disable key press animations, and you can globally enable or disable all key acceleration.

The GUI provides exceptionally fast entry--you can enter your whole keyboard in seconds and all your mouse buttons in a few more seconds. The easiest way to understand this GUI is to start by hitting the "Clear All" button and then adding and removing some keys. In order to add just one key or mouse button, hover over the "+" button and type the key or press the mouse button (including whatever modifiers you desire). In order to remove that key, hover over the "-" button and type that same key with its modifiers. In order to enter all 8 of a key's modified and unmodified combinations with just one key press, hover over the "+ (Modifiers: All)" button and type the key.

If you want to do mass entry of modified and unmodified keys and mouse buttons, hit the "Clear All" button. Then hover over the "+ (Modifiers: All)" button and face-roll your way across keyboard and mouse buttons. You're done.

The default configuration accelerates all the modified and unmodified keys on a standard 104-key US keyboard (except PRINTSCREEN) plus mouse buttons 3-5. If you'd like to get back to this configuration at any time, simply hit the "Reset To Default" button.


Mouse Buttons

SnowfallKeyPress accelerates key bindings of mouse buttons, but it doesn't accelerate mouse button clicks that interact directly with frames without any associated key binding. This means that although SnowfallKeyPress is compatible with click-casting addons like Clique and Vuhdo, it won't accelerate their mouse clicks. Vuhdo already provides its own mouse click acceleration, though, and perhaps Clique will at some point, as well. Until then, you can add support yourself by navigating to Interface\Addons\Clique, editing Clique.lua and CliqueOptions.lua, searching for instances of "AnyUp", and replacing them with "AnyDown".

Mouse scroll-wheel bindings do not need any acceleration, so don't be concerned that SnowfallKeyPress offers no way to accelerate them. Each "tick" of the mouse scroll wheel is, in effect, already a simultaneous press and release.


Custom Button Animations

It is possible to create custom button animations. Unique animations can be applied to specific buttons of your choice. The default button animation can also be modified. Customization is fairly easy, although it does require knowledge of Lua and the World of Warcraft API. There is an example in the SnowfallKeyPress\SnowfallKeyPressAnimation folder, included with this addon. You can copy the SnowfallKeyPressAnimation folder, paste it into Interface\Addons, and then edit it to create your own custom animation addon.


Compatibility and Open Issues

Known incompatibilities: none
Open issues/bugs: none

If you find an issue/bug/incompatibility, please report it on the comments tab or send me a PM. Make an effort to narrow down the problem by having the minimum number of addons installed as possible: ideally SnowfallKeyPress and just one other addon. Indicate the addon versions. Test the default configuration of the other addon. If the default configuration does not sensitize the problem, then indicate the steps I would need to take to configure that addon starting from its default configuration in order to reproduce the problem.


About me

When I'm not writing addons, I raid on my Death Knight, Dayn, in a wonderful guild called Trample on the Fenris server. If you are an amazing player who is interested in efficient 25-man raiding progression on a light 16-hour weekly raiding schedule, then why don't you stop by our guild web site and see what we have to offer?

www.trampleguild.com
  Change Log - SnowfallKeyPress
================================================================================
1.6.1 - 1/2/2010

Fixed a bug that may have affected compatibility with override bindings that some addons were applying.



================================================================================
1.6 - 12/20/2009

Reduced the size of the default button animation by 25%, which should help keep it from obscuring other indicators on buttons.

Added the ability for other addons to customize the SnowfallKeyPress button animations. An example is included.

Removed the deprecated Lua configuration capability (the SnowfallKeyPressSettings folder). This functionality was superseded by the in-game GUI in version 1.2, so it's not needed any longer.



================================================================================
1.5.1 - 12/14/2009

Fixed a bug introduced in 1.5 that was throwing a lua error with OPie.



================================================================================
1.5 - 12/12/2009

Added button press animations (enable or disable through the configuration panel).

Made some infrastructure changes that should be invisible to the user, but which should improve compatibility with addons written in the future that may have more complex behaviors than we generally see in addons today.

Reduced the memory footprint of the code.



================================================================================
1.4 - 12/8/2009

Updated the interface version to 30300 (patch 3.3).

No functional changes.



================================================================================
1.3 - 12/4/2009

Fixed a minor error introduced in 1.2 that was causing some people problems with Bartender4.



================================================================================
1.2 - 11/28/2009

Added an in-game configuration GUI accessible through the usual Options->Interface->Addons menu.



================================================================================
1.1 - 11/25/2009

Added complete support for Dominos and Bindpad. At this time, there are no known incompatibilites with any addons.

Added a user configuration file to control which keys are accelerated.



================================================================================
1.0 - 11/15/2009

First full release version.
  Archived Versions - SnowfallKeyPress
File Name
Version
Size
Author
Date
1.6
10kB
Dayn
12-20-2009 07:37 PM
1.5.1
9kB
Dayn
12-14-2009 09:43 PM
1.5
9kB
Dayn
12-12-2009 11:29 AM
1.4
10kB
Dayn
12-08-2009 09:36 AM
1.3
10kB
Dayn
12-04-2009 08:34 AM
1.2
10kB
Dayn
11-29-2009 12:40 AM
1.1
7kB
Dayn
11-25-2009 01:55 PM
1.0
5kB
Dayn
11-15-2009 10:43 AM
  Comments - SnowfallKeyPress
Post A Reply Comment Options
Old Today, 03:35 AM  
Celade
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Hey, I'm using Bartender4 version 4.4.2 and SnowfallKeyPress version 1.6.1 and I have to manually disable and then enable SnowfallKeyPress every time I login or /reloadui.

Maybe it's some combination of these 2 addons and another that is causing the conflict? If you need more info just say so and I'll give you a list of other stuff I'm using. I'll do some tests myself tomorrow as well.
Celade is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-26-2010, 01:59 PM  
Dayn
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 69
Uploads: 7
Re: ButtonFacade animation support

SnowfallKeyPress doesn't track key release at all. That's why I was suggesting just building a timer and setting the button state back to normal after the timer expires (200ms is probably a reasonable time).

You could use the existing AnimationGroups in the SnowfallKeyPressAnimation example and just modify them so that they don't actually animate anything, they just represent timers. Then you could do AnimationGroup:SetScript("OnFinished", SetButtonStateNormal), where SetButtonStateNormal is a function you'd build that in turn called button:SetButtonState("NORMAL"). You'd might also want to point the "OnStop" handler to your same function.

Then you could do AnimationGroup:SetScript("OnPlay", SetButtonStatePushed), where SetButtonStatePushed is a function you'd build that in turn called button:SetButtonState("PUSHED").

On key press, then, you'd do AnimationGroup:Stop() to make sure the previous button was in its normal state, then change the button associated with that AnimationGroup, then do AnimationGroup:Play() to set the state to pushed and then back to normal after the timer expired.

When you get it working, you may want to share it with others on wowinterface. The way I've set up the custom animation facility naturally allows you to just release what you've done as an addon for others to enjoy.
Dayn is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-26-2010, 08:13 AM  
hid
A Kobold Labourer

Forum posts: 1
File comments: 15
Uploads: 0
Re: Re: ButtonFacade animation support

Quote:
Originally posted by Dayn
Hi Hid,

What you'd like to do should be possible using the custom animations facility of SnowfallKeyPress. Have a look at the SnowfallKeyPressAnimation folder. It sounds like you're pretty capable with addon editing, so I'll just try to give you some ideas. You'd probably want to simply call button:SetButtonState("PUSHED") from your SnowfallKeyPress animation handler (instead of having the star animation). You'd also want some means of setting the state back to normal after a delay, so you could either use Blizzard's animation system as a timer with OnFinished as a callback handler, or you could create an OnUpdate function as the timer (probably less efficient). Then when the timer expired, you could call button:SetButtonState("NORMAL").
I'm an experienced coder, but not with lua (I work with perl and php mainly). With the help of your guide/tips I got the PUSHED state to work just fine via the addon, but I'm having troubles finding the event/script to use to track the key release. The "AnyUp" event isn't firing at all. This is an example of the code I'm testing with:

Code:
button:SetScript("AnyUp", function(button)
  button:SetButtonState("NORMAL")
end)
All I want is as you said, PUSHED state while the key is being held down, and NORMAL state when the key is released. I must be ****ing up some pretty basic stuff here, because in my mind this SHOULD work! Any help would be appreciated.
hid is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-25-2010, 11:32 AM  
Dayn
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 69
Uploads: 7
Re: ButtonFacade animation support

Hi Hid,

What you'd like to do should be possible using the custom animations facility of SnowfallKeyPress. Have a look at the SnowfallKeyPressAnimation folder. It sounds like you're pretty capable with addon editing, so I'll just try to give you some ideas. You'd probably want to simply call button:SetButtonState("PUSHED") from your SnowfallKeyPress animation handler (instead of having the star animation). You'd also want some means of setting the state back to normal after a delay, so you could either use Blizzard's animation system as a timer with OnFinished as a callback handler, or you could create an OnUpdate function as the timer (probably less efficient). Then when the timer expired, you could call button:SetButtonState("NORMAL").
Dayn is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-25-2010, 01:19 AM  
hid
A Kobold Labourer

Forum posts: 1
File comments: 15
Uploads: 0
ButtonFacade animation support

I hate doing this, but after trying to fiddle around with it myself for a few hours to no avail (your code is pretty obfuscated, no offence :P) I gave up and came here.

I, like some other people I've seen in these comments would like to request a way to add support for (bartender +) ButtonFacade keypress animations in this addon. I'm just too used to the keypress feedback given by my ButtonFacade style/setup, and trying to "re-learn" it with your star animation is proving difficult.

Really appreciate your work, and I hope you won't get too annoyed at my "feature request"!
hid is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-18-2010, 02:19 PM  
Dayn
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 69
Uploads: 7
Re: Grid Targeting

Hi Jarrot. You could go into Options->KeyBindings and bind a key or mouse button to "Target Mouseover", and this will be by default perform the targeting on key/button press rather than release.

I don't plan to accelerate mouse button clicks directly on frames, because there are many complex behaviors that can occur (selecting, dragging, etc.) that are special cases per addon. It would be better for those addons to decide what mouse clicks to accelerate rather than for special cases for each addon to be included in SnowfallKeyPress.
Dayn is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-18-2010, 01:29 AM  
Jarrot
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Grid Targeting

Hello thx for an awesome mod. is there anyway to get targeting with Grid (mouse1) to be on keypress instead of release? this is something I've managed to waste a lot of gcd's on and is getting really irritated with(as healer this is not so good)...

anyways thanks for awesome mod and I understand this might not be right place to ask about this but somehow felt like it was as good as any =)
Jarrot is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-15-2010, 10:13 AM  
Dayn
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 69
Uploads: 7
Hi Tekashi, I sent you a PM requesting additional information.
Dayn is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-14-2010, 06:56 PM  
Tekashi
A Murloc Raider

Forum posts: 6
File comments: 3
Uploads: 0
I'm having the same issue. Using Bartender4, the keys will NOT be accelerated until after I click "restore all defaults" every single time I log on. I am using version 1.6.1
Tekashi is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-06-2010, 02:01 PM  
Dayn
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 69
Uploads: 7
Radighoul and I had a PM conversation and he believes that the problem he was seeing is actually solved in 1.6.1. I'm marking this issue as closed. Of course, if anyone finds something else, just let me know.

Last edited by Dayn : 01-07-2010 at 09:18 AM.
Dayn is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-06-2010, 01:49 PM  
radighoul
A Kobold Labourer

Forum posts: 0
File comments: 22
Uploads: 1
It seems to have improved the problem but not gotten rid of it altogether. Last night on Festergut after vanishing and attempting to immediately Ambush it once again tried to apply Kidney Punch (same bind SHIFT+Q just on different bars paged by stealth status, Ambush being on the stealth bar).

Is it possible this is just a Bartender problem? I suppose I should test it out without SFKP running and see if I can reproduce the issue. That would significantly point to the problem lying within Bartender's code.
radighoul is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 01-02-2010, 06:06 PM  
Dayn
A Kobold Labourer
Interface Author - Click to view interfaces

Forum posts: 0
File comments: 69
Uploads: 7
Radighoul and Ymoon, please try version 1.6.1 and see if that fixes your problem.

Sjiulk, I've been using SnowfallKeyPress with OPie without any issue. Would you please indicate the versions of both addons you're using?
Dayn is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 12-30-2009, 08:18 AM  
Raphael_M
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Bug with Bartender

I'm experiencing strange problems in combination with Bartender - initially (after a login / ReloadUI() ) the buttons are not accelerated.

Anyway, in the configuration menu of SFKP all hotkeys seem to be listed.

Now comes the strange thing: After pressing "Reset to Defaults" (which changes absolutely nothing) also the Bartender4 Buttons are working in highspeed mode.

If i relog (or even ReloadUI() ) now they stop working again until i press "Reset to Default"...
Raphael_M is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 12-28-2009, 07:18 PM  
radighoul
A Kobold Labourer

Forum posts: 0
File comments: 22
Uploads: 1
Dayn,

There might be some issue with SnowfallKeyPress and Bartender.

When using action bar paging in Bartender to swap out bars based on some conditional (in this example, stealth) it appears that the bar visually changes properly but pressing a keybind is defaulting to the previous (now invisible) action bar.

In case that wasn't clear here's a working example. I have shift + Q bound to Ambush when I'm stealthed and Kidney Shot when I'm unstealthed. I've noticed odd behavior where sometimes after I use Vanish and try to ambush it instead uses Kidney Shot despite the bar changing visually as expected.

I assumed this was an issue with Bartender perhaps not paging quickly enough and went to go see if there was an update, instead stumbling upon these comments on the Bartender page where people report this issue with SnowfallKeyPress and Bartender. Some users have reported that installing your latest version 1.6 corrects the issue but I'm running 1.6 and I still have this problem.

Also, it may be unrelated and it may be something entirely with Bartender as well but animations from SFKP never play on the stealth paged action bar, only on the normal state action bar. It's not the biggest deal but perhaps it has something to do with the previously stated problem.

Any chance you could take a look?
radighoul is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Old 12-28-2009, 04:35 PM  
Sjiulk
A Kobold Labourer

Forum posts: 0
File comments: 16
Uploads: 0
Love the addon, but when it's turned on it doesn't let me use OPie. =/ I use OPie for raiding so until they are compatible I won't be able to use Snowfall.
Sjiulk is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.




The Network:
EQInterface | EQ2Interface | LoTROInterface | MMOInterface | War.MMOUI | WoWInterface | VGInterface | Allakhazam | Thottbot | Wowhead | Zam


©2009 MMOUI / ZAM Network
vBulletin - Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.