First of all, thank you for everyone that participates in this project, I've been using AHK for almost a decade in World of Warcraft and it saved my fingers and wrist.
So, I'm using a script that spams the key I press, so I don't have to hit it non stop and flatten my index.
I've been using the same script I stole from someone on the web and I just add more keys if needed:
Code: Select all
#ifWinActive World of Warcraft
{
$2::
Loop
{
if not GetKeyState("2", "P")
break
Send 2
sleep 99
}
return
}
{
$1::
Loop
{
if not GetKeyState("1", "P")
break
Send 1
sleep 95
}
return
}
{
$3::
Loop
{
if not GetKeyState("3", "P")
break
Send 3
sleep 105
}
return
}
{
$4::
Loop
{
if not GetKeyState("4", "P")
break
Send 4
sleep 90
}
return
}
{
$v::
Loop
{
if not GetKeyState("v", "P")
break
Send v
sleep 200
}
return
}
{
$f::
Loop
{
if not GetKeyState("f", "P")
break
Send f
sleep 200
}
return
}
{
$t::
Loop
{
if not GetKeyState("t", "P")
break
Send t
sleep 200
}
return
}
{
$6::
Loop
{
if not GetKeyState("6", "P")
break
Send 6
sleep 200
}
return
}
{
$r::
Loop
{
if not GetKeyState("r", "P")
break
Send r
sleep 100
}
return
}
{
$5::
Loop
{
if not GetKeyState("5", "P")
break
Send 5
sleep 101
}
return
}
{
$c::
Loop
{
if not GetKeyState("c", "P")
break
Send c
RandSleep (100,200)
}
return
}
I started playing a class that requires you to spam 1 special ability for max output. Said ability is off cooldown compared to the rest, so you basically press 2 buttons at the same time. I thought about having the special ability on a comfy button (mouse or C key), keep it pressed and just do my usual rotation.
I also thought about the sleep part and found out you can random sleep, so I stole another script from this community to add that function, to make it less robotic I guess, not have the same pause for 300 key presses. I have tried using the same logic { function random } for each key, but it threw an error because it used duplicates random. So I changed to be { random all functions } instead of individual. It works, everything is fine, I get random intervals.
Code: Select all
#ifWinActive World of Warcraft
{
RandSleep(x,y) {
Random, rand, %x%, %y%
Sleep %rand%
}
$2::
While GetKeyState("2", "P") {
Send 2
RandSleep(50,100)
}
return
$1::
While GetKeyState("1", "P") {
Send 1
RandSleep(50,100)
}
return
$3::
While GetKeyState("3", "P") {
Send 3
RandSleep(50,100)
}
return
$4::
While GetKeyState("4", "P") {
Send 4
RandSleep(50,100)
}
return
$5::
While GetKeyState("5", "P") {
Send 5
RandSleep(50,100)
}
return
$6::
While GetKeyState("6", "P") {
Send 6
RandSleep(100,200)
}
return
$7::
While GetKeyState("7", "P") {
Send 7
RandSleep(100,200)
}
return
$8::
While GetKeyState("8", "P") {
Send 8
RandSleep(100,200)
}
return
$9::
While GetKeyState("9", "P") {
Send 9
RandSleep(100,200)
}
return
$f::
While GetKeyState("f", "P") {
Send f
RandSleep(100,200)
}
return
$t::
While GetKeyState("t", "P") {
Send t
RandSleep(100,200)
}
return
$r::
While GetKeyState("r", "P") {
Send r
RandSleep(50,100)
}
return
$c::
While GetKeyState("c", "P") {
Send c
RandSleep(50,200)
}
return
}
I have made a recording to show the example. c is the special button that is always pressed and 2 3 4 are part of my rotation. In the 1st one I start with c pressed and then I start clicking 2 3 4. You can see towards the end, I pressed 2 more and c never appeared till I let off the button. In the 2nd one, I start with 4, then I press c and 4 isn't sent unless I let off c. The other buttons, 2 3 work. This is the same for every button I start before c.
https://www.flexclip.com/share/548404649eb96416c4022bc208d6f3d8e3ca47f.html
Any thoughts about this? Also, does it matter in the script where the buttons are? C button is the last in the list, maybe it doesn't like it there and it throws "errors"?
Thank you,
Stefan