Elitist Jerks
Register
Blogs
Forums


Go Back   Elitist Jerks » User Interface and AddOns

Reply
 
LinkBack Thread Tools
Old 10/09/09, 9:27 PM   #101
Prinsesa
Bald Bull
 
Blood Elf Paladin
 
Echo Isles
I'm currently using the following script for my Paladin:
$1::
   Loop  
   {
    if not GetKeyState("1", "P")
      break
     Send, 1f3g45
     sleep 1
    }
return
In essence, as long as the 1 key is held down, the string "1f3g45" is sent over and over. My various Ret abilities are bound to 1, f, 3, g, 4 and 5, which effectively allows this macro to fire off my abilities as soon as they come off cooldown, albeit rather randomly if they're all still available.

My question is: Is it possible to code some kind of delay or selection such that one set of buttons will always be pressed ahead of others? This would be useful when dealing with abilities that have no cooldown, such as a Shaman's elemental Shields.

The current method I'm using would cause a Shaman to cast his Lightning Shield over and over and miss the Flame Shock cooldown for some random amount of GCDs, and I'm wondering if you can program some kind of "fall-through" or priority to the keybinds so that it only goes to the non-cooldown ability after everything else has been expended.

"We do want Sanctuary to be the tanking seal"

- Ghostcrawler

Offline
Reply With Quote
Old 10/11/09, 2:20 PM   #102
Machinator
Don Flamenco
 
Troll Warrior
 
Aggramar
Originally Posted by Skyhoof View Post
You cannot use AHK or the G15 keyboard to spam a single key -- even if you are sitting at the keyboard and just want to prevent your finger from falling off.
Reading the blue posts on this subject I am a bit confused if this would be legal or not. Holding down a button so that the script continually sends that key to WoW without any delays or other conditionals, and the key is assigned not to a macro but a single ability that is not on the GCD.

I would like to use Heroic Strike, which is a on-next-swing attack, when I am holding down the button rather than hitting the button more than once a second in addition to my normal rotation. I would also like a toggle so I dont have to hold down the button but that does seem clearly against ToS.

Blue posts seems to indicate it is delays that are the issue, so I am not sure if the quoted line is a generalization or if policies have been updated since early 2008.

"Information is ammunition."

Offline
Reply With Quote
Old 10/14/09, 8:23 AM   #103
ricco19
Glass Joe
 
Human Paladin
 
Medivh
I am currently having issues trying to get an autohotkey script to work, and figured this was a good place to possibly get some help.

Basically the main issue I am having is trying to remap shift so that I can bind shift+numpad keys. For example, if I hit shift+numpad1, the actual keystroke is End. However, End is already bound to something else. I figured a good way to fix this issue would be to remap shift to another key such as alt. I first tried a basic script, like this.

EDIT: Problem fixed...

Last edited by ricco19 : 10/16/09 at 6:35 PM.

Offline
Reply With Quote
Old 10/14/09, 1:30 PM   #104
Titanstrider
Von Kaiser
 
Night Elf Druid
 
Malygos
Originally Posted by Machinator View Post
Reading the blue posts on this subject I am a bit confused if this would be legal or not. Holding down a button so that the script continually sends that key to WoW without any delays or other conditionals, and the key is assigned not to a macro but a single ability that is not on the GCD.

I would like to use Heroic Strike, which is a on-next-swing attack, when I am holding down the button rather than hitting the button more than once a second in addition to my normal rotation. I would also like a toggle so I dont have to hold down the button but that does seem clearly against ToS.

Blue posts seems to indicate it is delays that are the issue, so I am not sure if the quoted line is a generalization or if policies have been updated since early 2008.
If you want to queue up heroic strike for every swing, just add the following to a macro for each of your normal attacks:

/cast !Heroic Strike

This will toggle it on, and multiple key presses won't toggle it back off the way a normal /cast Heroic Strike does. Make the equivalent macros for all your normal rotation abilities; my main's a druid and I have Maul added to all my tank roation attacks this way. So as you use your normal rotation, you'll also be keeping HS queued up, without needing any extra key presses:

#showtooltip Devastate
/cast Devastate
/cast !Heroic Strike

Offline
Reply With Quote
Old 10/15/09, 8:43 AM   #105
Machinator
Don Flamenco
 
Troll Warrior
 
Aggramar
There are a couple issues with doing that. First is that then you can't stop doing HS if needed, such as low rage. Second is that HS often needs to be hit more often than once per GCD.

"Information is ammunition."

Offline
Reply With Quote
Old 10/16/09, 6:44 PM   #106
Titanstrider
Von Kaiser
 
Night Elf Druid
 
Malygos
You could create a button holding /cast !Heroic Strike and assign that button to the mouse scroll wheel. Then use the scroll as needed/wanted, and get it to fire many times per second.

Offline
Reply With Quote
Old 10/18/09, 1:24 PM   #107
Wtfitzandy
Glass Joe
 
Draenei Shaman
 
Kel'Thuzad
Maybe my keyboard keys will finally last a little bit longer with this x.x

My "W" "S" "A" "D" keys are literally gone from me keyboard =/

Will give it a shot.

Offline
Reply With Quote
Old 10/19/09, 8:56 AM   #108
 Koban
A psychedelic state of mind ...
 
Orc Shaman
 
Al'Akir (EU)
So, after about 5 months of inactivity I've decided to reactivate my account.

Here's my problem.
I've always used an AHK script to replicate keypresses. This used to work almost perfect and I've never had any problems with it until now.

Here's the script I used:
#ifWinActive World of Warcraft
{
$&::
   Loop  
   {
    if not GetKeyState("&", "P")
      break
     Send & 
     sleep 1
    }
return
$é::
   Loop  
   {
    if not GetKeyState("é", "P")
      break
     Send é 
     sleep 1
    }
return

$"::
   Loop  
   {
    if not GetKeyState(""", "P")
      break
     Send " 
     sleep 1
    }
return

$(::
   Loop  
   {
    if not GetKeyState("(", "P")
      break
     Send ( 
     sleep 1
    }
return
$v::
   Loop  
   {
    if not GetKeyState("v", "P")
      break
     Send v 
     sleep 1
    }
return

~Enter::Suspend, toggle
~Esc::Suspend, off
~r::
IfEqual, A_IsSuspended, 1, Return
Suspend, on
return
}
The only thing that has changed between now and 5 months ago is my OS. I've upgraded to Windows 7 Ultimate, but as far as I can look up on Google there have been no known problems between ahk scripts and Win 7.

So if anyone has any idea's on how to fix this, please do not hesitate to post.

Edit: Post can be deleted, the excellent people at AHK found my problem. (Set admin priviliges to autohotkey.exe and make sure the right executable is used.)

Last edited by Koban : 10/19/09 at 9:48 AM.

Offline
Reply With Quote
Old 02/14/10, 5:56 PM   #109
Latas
Don Flamenco
 
Night Elf Druid
 
Uther
So I've gotten rid of the error spam, and the error emotes, but is there any way to get rid of the whoosh sound when the keyspam tries to cast spells during spells that are over the GCD?

Offline
Reply With Quote
Old 02/14/10, 7:51 PM   #110
 gcbirzan
Bald Bull
 
gcbirzan's Avatar
 
Human Paladin
 
Darksorrow (EU)
Error Sounds Be Gone! - Addons - Curse

Romania Offline
Reply With Quote
Old 04/18/10, 5:05 PM   #111
Zoort
Glass Joe
 
Draenei Death Knight
 
Anub'arak (EU)
Did anyone actually know of somebody who got perma banned for using those loop functions?

My Hands would thank me, if id stop smashing buttons.

Im kind of confused, on the one hand there are quite some threads that using this will get you banned, on the other hand i cant find a single thread about someone actually getting banned for using ahk or a G15/G11 but some punk from 2006

Last edited by Zoort : 04/20/10 at 8:43 AM.

Offline
Reply With Quote
Old 04/20/10, 3:21 PM   #112
Badpaladin
Von Kaiser
 
Sparklefairy
Blood Elf Paladin
 
No WoW Account
I haven't heard of anybody being banned for using a loop script. Just think of it as a "super-awesome-mega-fast-button-presser-5000", because that's essentially what it does(what I'm getting at is that this is how it registers in game). Any bans you've heard of were likely from scripts that perform multiple actions(i.e. Crusader Strike and Divine Storm) with one key stroke.

Offline
Reply With Quote
Old 05/05/10, 5:33 PM   #113
Petrocity
Glass Joe
 
Blood Elf Paladin
 
Kil'Jaeden
Guess the cat's out of the bag on AHK, so I'll go ahead and add some code I personally use. This makes AHK only run when the WoW window is open, as well as turns off the script when you press Enter to chat, as well as making use of the \ key to toggle the script on and off. You can add this to the top of Bluedeep's code if you wanted to; I personally think it really helps usability.

#SingleInstance Force ;Forces AHK to allow only one script at a time
#NoEnv
#ifWinActive World of Warcraft ;Only runs the script if the active window is World of Warcraft
{

;<=====  HotKey Toggle  =====>
~Enter::Suspend ;When pressing Enter to chat, suspends the rapid key presses.  Pressing enter again resumes the macro.
return

$\::Suspend ;Toggle script suspend when pressing \
return

;ADD YOUR (or Bluedeep's) KEYPRESS / SCRIPT CODE HERE

}
edit: I personally don't believe in using a script to spam both Exorcism (or whatever) and Divine Storm at the same time; to me, it feels too much like cheating. For my own personal use, I have the speed at which I send keystrokes turned way down, and I use it as more of a comfortability / anti-carpal tunnel tool. I really can't imagine playing without it these days; the game just "feels" so much better with it.

To each their own tho; I'm not one to judge someone for trying to take every competitive advantage they can.

Last edited by Petrocity : 05/05/10 at 5:40 PM.

Offline
Reply With Quote
Old 05/06/10, 3:09 AM   #114
Elamahpla
Von Kaiser
 
Goblin Death Knight
 
Mug'thol
Originally Posted by Glutton View Post
I don't know if this is an allowed topic. We'll see how this goes.

AutoHotkey - Free Mouse and Keyboard Macro Program with Hotkeys and AutoText

AutoHotKey is a program that mimics the behavior of keyboards like the G15. In the context of WoW it permits the user to create simple, yet incredibly powerful macros that can decrease key press latency and specifically for Retribution it can eliminate human reaction time from Divine Storm! procs. Usage of AHK may be in violation of the "one action per key press" rule that's been decreed by the blue oracles, however I doubt they'd start banning users for utilizing the features of their G15 keyboard. Although AHK has the possibility of becoming more prevalent, so it may raise a few more eyebrows.

I use AHK to perform two major functions that I believe makes my DPS both slightly higher and more consistent.

1) Key press latency

Standard WoW forces you to continuously press and release keys in order to minimize gaps between abilities. The macros I have designed allow you to hold a key down rather than continuously press and release until the previous GCD has finished. This function can greatly minimize key press latency, therefore increasing your DPS by squeezing more actions per unit time. It's also a huge quality of life improvement and may delay the onset of carpal tunnel syndrome.

2) 2P T10 Divine Storm! procs

Divine Storm is ahead of Exorcism, Consecration, and Hammer of Wrath in priority. Therefore it's a technically a DPS loss if you get a DS proc the split second before you use a lower priority ability, yet don't react quickly enough to press DS instead. AHK can automate this process, although it's "dumb" and prone to error until all of your abilities are on cooldown. For example, if I hold down my Exorcism key, then AHK will spam a loop of Divine Storm>Exorcism>Divine Storm>Exorcism until I release my Exorcism key.


Here's the logic of my macros:

Judgement: 1
CS: 2
DS: 3
Conc: 4
Exo: 5
HoW: 6

J>DS (when I hold 1, it spams 13 in a loop)
C>DS (when I hold 2, it spams 23 in a loop)
DS (when I hold 3, it spams 3 in a loop)
DS>Conc (when I hold 4, it spams 34 in a loop)
DS>Exo (when I hold 5, it spams 35 in a loop)
DS>HoW (when I hold 6, it spams 36 in a loop)

Below is the AHK script that I currently use.
Click Here ← Click Here

#MaxHotkeysPerInterval 100000000

$1::
Loop
{
if not GetKeyState("1", "P")
break
Send 13
}
return

$2::
Loop
{
if not GetKeyState("2", "P")
break
Send 23
}
return

$3::
Loop
{
if not GetKeyState("3", "P")
break
Send 3
}
return

$4::
Loop
{
if not GetKeyState("4", "P")
break
Send 34
}
return

$5::
Loop
{
if not GetKeyState("5", "P")
break
Send 35
}
return

$6::
Loop
{
if not GetKeyState("6", "P")
break
Send 36
}
return
So to change what is bound in AHK and in game, all you need to do is change the number in "-"? Example being; if not GetKeyState("6", "P") if my/your HoW is bound to "B", I would change the '6' to a 'B' or am I completely misunderstanding that?

Offline
Reply With Quote
Old 05/06/10, 3:39 AM   #115
Glutton
King Hippo
 
Glutton's Avatar
 
Blood Elf Paladin
 
Kalecgos
Yes. For example:

$1::
Loop
{
if not GetKeyState("1", "P")
break
Send 1
}
return

In order to bind this to the "b" key, you would need to replace the three bolded "1" entries with "b".

Offline
Reply With Quote
Old 05/06/10, 1:49 PM   #116
vorda
Bald Bull
 
vorda's Avatar
 
Blood Elf Paladin
 
Jaedenar (EU)
I spent quite some time testing this today.
The "Send 13" part doesn't really work as it advocated. It is safer to see a double send as a random use of either abilities when they are both off CD. So using "Send 13" for judgement means it may do CS instead of judgement, even when both are off cooldown. In a pug toc25 I just did, this caused for mana issues. You can reproduce this by being in a GCD and then holding the button for judgement.

Some other issues you may notice: HoW and Exo can (and often are) used from rage when closing a gap. The script will make DS be used as well, wasting a CD, a GCD and mana.

So in the end, I personally use these: loop on judgement alone, loop on DS+CS, loop on DS alone, loop on DS+Consec, loop on Exo alone.
I also added/changed these lines for usability:
~r::Suspend, on ;Turns hotkeys off when replying a whisper. 'on' is needed so I don't re-enable it when typing r in the text box.
return

~NumpadMult::Pause ;Toggles the script off completely when pressing numpad* . Good for PvP/offspecs.
return

Offline
Reply With Quote
Old 05/06/10, 1:51 PM   #117
Dreamy0
Glass Joe
 
Dreamy0's Avatar
 
Human Paladin
 
Frostmane (EU)
Originally Posted by Glutton View Post
Yes. For example:

$1::
Loop
{
if not GetKeyState("1", "P")
break
Send 1
}
return

In order to bind this to the "b" key, you would need to replace the three bolded "1" entries with "b".
When using your settings my computer seems to lagg Endlessly While doing CS,DS etc. Any idea how to fix this?
Having a new computer I doubt it is the problem.

Edit: the problem only occur when doing CS and DS.

Last edited by Dreamy0 : 05/06/10 at 1:59 PM.

Sweden Offline
Reply With Quote
Old 05/06/10, 2:04 PM   #118
Exemplar
Bald Bull
 
Human Paladin
 
Scarlet Crusade
Most AHK commands function better with an associated Sleep command, even as little as "Sleep 1" which will be the minimum length(AHK wiki info). Adding this to the macros which spam a single ability when a key is held may be of assistance.

I'm not sure why people are discussing the utility and fine-tuning of AHK macros which use two abilities with a single keypress. This is against Blizzard's rules, figuring out how to do it better doesn't change that fact.

Rock: "We're sub-standard DPS. Nerf Paper, Scissors are fine."
Paper: "OMG, WTF, Scissors!"
Scissors: "Rock is OP and Paper are QQers. We need PvP buffs."

Offline
Reply With Quote
Old 05/06/10, 2:15 PM   #119
Glutton
King Hippo
 
Glutton's Avatar
 
Blood Elf Paladin
 
Kalecgos
Originally Posted by vorda View Post
I spent quite some time testing this today.
The "Send 13" part doesn't really work as it advocated. It is safer to see a double send as a random use of either abilities when they are both off CD. So using "Send 13" for judgement means it may do CS instead of judgement, even when both are off cooldown. In a pug toc25 I just did, this caused for mana issues. You can reproduce this by being in a GCD and then holding the button for judgement.

Some other issues you may notice: HoW and Exo can (and often are) used from rage when closing a gap. The script will make DS be used as well, wasting a CD, a GCD and mana.
Yes, I mentioned that this macro is "dumb" and is prone to error until all abilities are on CD. It's simply spamming 363636 or what have you. AHK cannot determine if you're in range, so an ability like DS will be spammed immediately if the ranged ability cannot be cast. My solution to this is to keep two binds - an AHK bind as previously mentioned for Judgement / HoW / Exorcism when the fight is stationary and a non-AHK bind for when the fight becomes mobile.

As for the specific Judgement issue I've had some success experimenting with things like spamming "1111111111113" where you increase the probability of the former ability occurring in the microseconds after the GCD. This doesn't eliminate the error completely and may be increasing your key press latency.

Although the chance of improper priority usage (DS before J) decreases significantly once both abilities are on cooldown and spamming "13" results in immediately triggering whichever comes off cooldown first, thus mimicking ideal FCFS behavior.

Originally Posted by Dreamy0 View Post
Having a new computer I doubt it is the problem.
I'm using a three year old QuadCore with Windows 7 64 bit. I have not experienced any noticeable slow down as you've described, so I can't really help. I'd try what Exemplar suggests.

Last edited by Glutton : 05/06/10 at 2:44 PM.

Offline
Reply With Quote
Old 05/06/10, 2:21 PM   #120
Gormal
Give nothing back.
 
Gormal's Avatar
 
Blood Elf Paladin
 
Mal'Ganis
I play with game sounds so I ran into a storm of the 'ability is not ready' noises if I used AHK to spam an attack. I changed my macros to this and it works well:

#showtooltip Crusader Strike
/console Sound_EnableSFX 0
/startattack
/cast Crusader Strike
/console Sound_EnableSFX 1
/script UIErrorsFrame:Clear()

United States Offline
Reply With Quote
Old 05/06/10, 2:53 PM   #121
Glutton
King Hippo
 
Glutton's Avatar
 
Blood Elf Paladin
 
Kalecgos
Originally Posted by Exemplar View Post
I know negative action has been taken in the past when people have been reported (in-game report) using a G15 or Autohotkey in a disapproved fashion. I would suspect they also have some rough systems to try to detect "illegal" usage - such as watching for commands repeated on a truly perfect sequence (for example every .2000 seconds on the dot). There are many different pattern detection systems possible which could be employed to monitor such activity. How often they may review such logs and how often actually take any action based on them, who knows.
For example, I once sent you an overnight (8+ hour) Judgement of Wisdom proc test that was performed with a more insidious usage of AHK (spams a given string in an infinite loop until a different secondary key is pressed). I think that suggests there is no sort of automated "gotcha" system in place if you're sending too many commands while doing nothing else or sending commands in too "perfect" a pattern.

Last edited by Glutton : 05/06/10 at 3:26 PM.

Offline
Reply With Quote
Old 05/06/10, 4:00 PM   #122
Exemplar
Bald Bull
 
Human Paladin
 
Scarlet Crusade
Originally Posted by Glutton View Post
For example, I once sent you an overnight (8+ hour) Judgement of Wisdom proc test that was performed with a more insidious usage of AHK (spams a given string in an infinite loop until a different secondary key is pressed). I think that suggests there is no sort of automated "gotcha" system in place if you're sending too many commands while doing nothing else or sending commands in too "perfect" a pattern.
I'd be extremely surprised if there were no "gotcha" system. However, I would also be extremely surprised if it did more than write something to a log file somewhere. Knowing how a company works, a vast amount of information is recorded or logged in audit files. Regardless of the plans when any given log was established, a majority wind up never referenced or reviewed.

This is from personal knowledge of a business system arguably with the same or greater complexity than a single WoW server. Considering the quantity of WoW servers, Blizzard's logging is possibly 2 to 4 orders of magnitude larger.

Any chance of discovery is probably extremely low. However, knowing it is against the rules you are running this tiny risk. Potentially more so if anyone specifically admits to such on publicly accessible forums.

To steer back to the main point - efficiency - I would be very, very interested if anyone competent with mod design were to craft one specifically designed to use action bar spell X (or macro X) on key down and action bar spell Y (or macro Y) on key up. This is apparently an acceptable usage and known to be possible within the UI (I did it with macaroon, as stated above, it just flaked out as I'm sure that wasn't intended usage from macaroon's designer). Utilization of such a mod in conjunction with the also-acceptable spam-one-key AHK script could perform the desired function.

Rock: "We're sub-standard DPS. Nerf Paper, Scissors are fine."
Paper: "OMG, WTF, Scissors!"
Scissors: "Rock is OP and Paper are QQers. We need PvP buffs."

Offline
Reply With Quote
Old 05/07/10, 5:09 AM   #123
Cosmo Kramer
Glass Joe
 
Cosmo Kramer's Avatar
 
Blood Elf Paladin
 
Nathrezim (EU)
hi,
i was wondering why you all use sleep 1.
If i understood the way blizzard handles this they will check for times where users had the exact same delay over a period of time while using abilitys. i was thinking it would be good to alternate the sleep command in way that with a random function the script switches between say 0,5 and 1 seconds.

loop
{
Random, time , 500, 1000 ;1000=1sec

$1::
Loop
{
if not GetKeyState("1", "P")
break
Send 13
sleep %time%
}
return
}

(i couldnt try this out yet because i am at work)
would this lower the risk or is it useless?

another thing that i dont understand is that sometimes the script
a) breaks for no apparent reason. so that it doesnt work at all. in this case i have to restart it, often multiple times, before it will work again properly
b) does work but the ::Suspend function is not working (everything else is) which leaves suspicious words in the chat like "how do you f3f3f3eel?" ;P (to clarify, the suspend does work except in this case).

Anyone find a way around this?


edit: the one under me: Indeed it is but i dont see me asking anywhere IF i could get banned for this?! the main part of my code was quoted from bluedeep´s post on this page...

Last edited by Cosmo Kramer : 05/07/10 at 8:14 AM.

Offline
Reply With Quote
Old 05/07/10, 5:59 AM   #124
Zalinda
Von Kaiser
 
Draenei Paladin
 
Khadgar (EU)
I thought this statement from a blue posted on the very first part of this thread is clear enough:
To clarify: No, you may not use hardware or software to auto-spam your shot rotations - period.
This means any kind of 'autofire' or looping as the AHK suggestions here seem to indicate is against the rules.
Pressing 1 key and having AHK generate a fixed or variable sequence of keys is equally a nono.
Adding delays is even worse. You're now willigingly and knowingly trying to prevent detection because you know it's against the rules.

So yes, it's a bannable offence. Is it going to actually get you banned ? That's an entirely different question.

Blizzard seems to follow a policy of creating rules but not necessarily enforcing or even policing them until things start to get out of hand. Even the use in multiboxing is debatably breaking the rule (1 hardware event, resulting in keys in different clients), but since multiboxing is rarely causing actual problems in game, nothing so far has actually been done.

Is AHK (or any other key generator) detectable: Yes, definately. There is a very clear disctinction noticable between actual keypresses and keys generated via software. Does blizzard actually have detection code in place... Who knows?

All I can say is: It's against the rules, use at your own risk.

Offline
Reply With Quote
Old 05/07/10, 3:43 PM   #125
Badpaladin
Von Kaiser
 
Sparklefairy
Blood Elf Paladin
 
No WoW Account
Originally Posted by Zalinda View Post
Adding delays is even worse. You're now willigingly and knowingly trying to prevent detection because you know it's against the rules.
I disagree, adding a delay of 1 milisecond significantly reduces CPU usage for those without great computers. I don't think people are intentionally adding "sleep 1" to avoid detection, since blizzard can pick up these kinds of actions as Exemplar stated earlier.

Regarding the code that Bluedeep put out, I don't think it's going to garner some bans even if it's in use by a lot more people. It simulates "super fucking fast button pressing" more than scripting automation. Although this can "cast divine storm by automation", it still registers as you pressing your key more than once in-game. Now is this riding the line? I think so, but the script isn't written as a one-button-wonder either. You're still pressing roughly the same amount of keys as if you didn't run AHK at all.

Offline
Reply With Quote
Reply

Go Back   Elitist Jerks » User Interface and AddOns

Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
The WWS Thread Praetorian Public Discussion 4068 08/04/09 2:03 PM