GetKeyState, key_state, a, P
if key_state = U
if (face == "o_O")
face = O_o
face = o_O
tooltip, % face
There was another script that works but it is not as accurate as what Chris has made, and the result was obvious from testing the both.
Looks like you took that idea and sort of made it up, but it seems like it has never been tested. So, I of course, have tested your script and first of all, it is obviously missing something there, therefore, your script won't even respond at all.
* Most game uses 60 fps, in other words, there are 60 frames displaying within a second. So, 1/60fps(0.0166 Sec) is approximately equal to the delay time of 1 (Frame).
* The delay of 4 or above (0.064=4/60fps or above for the quickness of repeated rate between the keystrokes that goes on and off within a second)
often results in a delayed response while attepting to make a move. For playing a fighting game, it is a good example that often applies the result to that matter.
* Because although it is not easy to repeat a single keystroke for a multi-reponse within 60fps, it is also possible to input a single keystroke within the delay of 3 or less by a common keyboard or joystick; therefore, having a multi-response within a second is only a matter of practice by repeating a single keystroke as quickly as possible in a accurate manner in which speaking of the Autofire
, we can still do it without it which makes it useless to benefit neither the quickness nor the accuracy in this case.
- For an example, most happ buttons
(that uses in the Arcade Joysticks) are designed to respond as quickly as 1/60fps except it is not automated (autofire
), but the accuracy is still guaranteed in which a player can often pre-input the button by repeating it multiple times between the dealy of two events while continuing the same keystroke.
* Therefore, the benefit of using the "Autofire
" should/(or must) overcome the common task that requires a continuous accuracy over repeated keystrokes and also to be able to repeat faster than it is by the default that of what it is being without.
- There is what is called, "pre-input" in which a programed-set often enables to recognize the input (a keystroke) being made beforehand that is prior to the action that follows while commanding the previous event (action). The fighting games are all designed to allow this due to the nature of its game play.
* For those, if you have either ever played or watched any Aracde Fighting games, we often see the "Combo Moves" in which a player uses a several pattern of directional movements to pre-input the command before pushing the button (inputting a keystroke) that finally allows the action to respond at the end.
- It only works if the combined of directional movement with the buttons are being input accurately without the obstacles; blocks, evade, counter attack.... etc. by the opponent)
- This type of practice not only requires the accuracy, but also the quickness of repeated keystrokes to be input before the event. The main reason is that it is simply impossible to count the numbers of frames (60fps) while playing a game. But there is always a limited frame delayed time that allows the next action to continue in which they are all being programmed in the game.
- For an example, if the "mid-air Jump+kick" must be done together in between of the delay 50/60fps and 40/60fps (0.8sec to 0.64sec), it only works if the input is being made between those times.
* But there is a catch to this which explains the "pre-input." that I have mentioned-above.
- Directonal movements such as Up/Left/Down/Right are not often required to be automated because those inputs can be only done for not more than once, otherwise it would be too late to go back to do it over if being mistaken since most of them must be done in a matter of 60fps or less, so Autofire would simply ruin the practice by overexceeding the numbers of inputs that shouldn't be made before pushing the buttons that allows a command of its action at the end of pre-input.
1. Normal inputs = Foward~Down~Foward + Kick = Rising Attack
2. Automated inputs = Foward...fw.fw~Down..dn..dn.dn..Foward + kick = Error
Exceptional move is the spin move (360 degree) that a player only uses a joystick to rotate it repeately for a greater damage without the use of buttons that often takes the action to respond at the end of pre-inputs. In this case, directional movement can be automated as well, but not in gerneral.
* The experience eventually determines the accuracy of how well a player can get used to this type of pre-inputting practice. So, the point is that once these directional movement are being pre-input before the event, the action button (such as Kick, Punch, Guard... etc.) must be followed at the end of its pre-input command on exact timing in order to make it happen.
- That is how the Combo Move works as well. Nobody can count the numers of frames to see when to push the buttons or not, but the timing is often referred to as how or when to make these pre-inputs (directional movements), but the result is always based on the quickness as how quickly a player pushes the button on time at the end of the pre-input (directional movements).
* That is where the benefit of Autofire comes for.
Since you can not make a mistake while attepting to use the pre-input, the accuracy is only now based on how quickly you make that final input such as Kick, Punch , Guard,, etc. Most people at the Arcade would often mash the buttons for a couple of times very quickly as they are always assure of how pre-inputs being made before the event (Combo Moves... etc.)
- A good Arcade joystick is simply that has the most accuracy in the movement and the quickness in the buttons. The autofire simply guarantees the quickness without the delay, therefore, you do not need to mash the button in order to reduce the tension of having a dealy time between the keystroke due to the rule of 60fps in most fihging games.
I just put those extra comments in the quote, so I hope people are aware of this.
The above-script which was previously suggested by one of us here do work. It was to automate the MouseClick for some shooter games, but not for fighting games. I just simply switched the script into "~a" instead of "*$mbutton." to show that it would still work by simply modifying it into whatever the keystrokes that you want to use. The problem is that it just only repeates a single keystoke as it should be but not as accuractly as what Chris's script does. Of course, we can shorten the delay time by modifying the "Sleep
" time down to "0" or "-1" which is supposed to be the fastest delay time and also causes an error in some case according to the "AutoHotkey Help file."
I think this script does cause an error, so I wanted to know how to modify Chris's script directly from its own. The script you suggested here simply doesn't even work at all and even if it works, it wouldn't without causing an error in which sometimes, the repeated keystroke is not constantly working on the exact pattern of loop; therefore, it is useless in a fighting game due to the nature of its game play that requires rather constant acuracy than a random response.
As far as I am concerned, Chris's script do work at some level except I haven't been able to test it rather than using a Right_MouseClick.
Would you give me an example of "a", "NumPad8" or anything else other than "Right_MouseClick" in your own script unless someone else here can come up with a better script?
I know you have been very pateint to be helpful here and I have been still very appreciated of your effort, but I think it is about the time to solve this problem.
Btw, not only for Chris but for anyone else, you guys are very welcome to join in the discussion. please if you could. And I think we should someday add the Autofire
in "Autohotkey Help File
" by including some common information about how to set the Autofire
into the script for gaming,......( just for a thought, lol)