I can't thank you enough TC u just made CM wizard fun!
I was getting so bored of my archon wiz, and when I seen this I was like Ima try this to see if it makes a difference(I hated spamming those buttons first time I tried cm so went back to archon) and I most say it brought some life back into my wizard again for me.
Now to start looking for some upgrades to better suit my cm wizard...
Cm wizards rejoice! This script is a tweaked and improved version of a CM rotation
This version improves on the old one in a variety of ways. First, the old one actually spam clicked the mouse, whereas I wanted a mouse button held down effect.
I can't get your macro to work properly. It may be an ID10T issue on my part, but I want the script to do something like this:
Hold down "D" to:
-attack in place with Left mouse click
-use 1,2,3 skills (frost nova, EB, and DS)
-repeat
using:
#InstallMouseHook
#Ifwinactive, Diablo
$d::
Send d
KeyWait d, T0.1 ; Wait 1/10 second for user to release "d" key
If ErrorLevel{ ; Still held down
Click down
While GetKeyState("d","p"){ ; While it's held down
Send 1
Sleep 10
Send 2
Sleep 50
Send 3
sleep 50
}
if !GetKeyState("LButton", "P")
Click up
;else its down so leave it down
}
return
Tried out the script in OPs post and it works perfectly, I've only got one question - can I somehow change it to from "d" to using spacebar?
or any other key really, where could I find out how to do that?
in the script where it has d, just replace it with the button of your choice. like i replaced the "d" with w as it is closer o where my fingers usually sit.
They have stated that they "look for a different kind of automation." (Aka bot scripts) But they make it clear they reserve the right to ban you for using 3rd party software.
My girlfriend is playing CM, and she's complaining that her right hand hurts. I was thinking of telling her to use AHK, but I'm still unsure if it really is "illegal". I know it's against the ToS, but that doesn't mean anything if it's not enforced. Many things are "illegal" in my country, but noone is going to court for doing them, mostly because the law should be interpreted by its intent, not its wording. AHK may be technically automatation, but it's not botting, or even doing many things without actually being there (automating them). It's just a shortcut to switch one button with 4.
I was thinking of writing a script that while a button is pressed, it cycles between 4 buttons. Isn't that 1 button for 1 action? They don't happen simultaneously, or even in consecution (with artificial time delay - even random). When you keep a button pressed in D3, it's -for some skills- like pressing it again and again, so it's one "action" with multiple results.
What do you think? I don't want her to lose her account...
I think that's at the edge of acceptable play since it is still 1 key press for 1 action. It's still possible to be banned, I suppose, because the software is still 3rd party software, but you can also argue that they allow 3rd party software to be used to remap keys, so this isn't much different. Also I have to imagine there's plenty more people they would ban first who use 1 key press to spam 3-4 keys at once. It's still "use at your own risk" but with extremely low chance of anything bad happening.
That's one of the reasons they never come out and say directly what is and isn't bannable, since if they say you can use that, and everyone uses it, it could cause some unforeseen issues with the game or servers. Then if they decided they needed to stop people from using that, they'd be stuck with their response saying it's ok.
i mostly lurk. but i like to code. took a look at this and got a few ideas. the below script will randomly time the CM sequence. i basically coded up a little app that timed how fast i could cycle 432 and shaved a bit off.
i'm a bit weird, i like '3' as the hotkey. also note this uses the {Blind} modifier which will pass on any ctrl/alt/shift modifier if you want to be stationary.
F12 will enable/disable everything
it can optionally refresh armor every 105-250s. F11 toggles this
it can optionally randomly click the right mouse button (in case you have meteor or teleport-safe passage). F10 toggles this. F9 modifies the chance between ~3-50%
it's a fun academic exercise. do take into account all warnings Loroese has mentioned, use at your own risk
#SingleInstance force
hotkeyEnabled = 1
armorEnabled = 1
rbuttonEnabled = 0
rbuttonModifier = 2
SetTimer, RefreshArmor, 10000 ; setup initial armor refresh to happen in 10s
#IfWinActive ahk_class D3 Main Window Class ; only use these hotkeys if D3 is active
; 3 is the hotkey to engage CM sequence - {Blind} resends with any mod keys (shift/ctrl/alt) to allow stationary
$*3::
if (hotkeyEnabled) { ; do CM sequence
Click, down
while GetKeyState("3", "P") {
Send, {Blind}4 ; diamond skin
RandomSleep(20, 40) ; randomness helps prevent detection
Send, {Blind}3 ; frost nova
RandomSleep(40, 80) ; randomness helps prevent detection
Send, {Blind}2 ; eb:cr
RandomSleep(80, 120) ; randomness helps prevent detection
if (rbuttonEnabled) {
Random, rbuttonRoll, 1.0, 100.0
rbuttonChance:= 100.0 / rbuttonModifier / 2.0
if (rbuttonRoll <= rbuttonChance or rbuttonRoll >= (100.0 - rbuttonChance))
Click, right
}
}
Click, up
} else { ; just send 3 if hotkeys are disabled
Send, {Blind}3
}
return
; F12 toggles whether all hotkey functionality is enabled or disabled
F12::
hotkeyEnabled := !hotkeyEnabled
if(hotkeyEnabled && armorEnabled)
SetTimer, RefreshArmor, 1000
else
SetTimer, RefreshArmor, off
SplashMessage("Hotkeys " ((hotkeyEnabled) ? "enabled" : "disabled"))
return
; F11 toggles auto-refresh of armor
F11::
armorEnabled := !armorEnabled
if(hotkeyEnabled && armorEnabled)
SetTimer, RefreshArmor, 1000
else
SetTimer, RefreshArmor, off
SplashMessage("Armor refresh " ((armorEnabled) ? "enabled" : "disabled"))
return
; F10 toggles whether whatever ability is on right mouse button is randomly used in CM sequence
; Ex: if meteors are on right button, meteors will be randomly thrown
; teleport-safe passage is another possibility, becomes very easy to keep the 30% damage reduction up
F10::
rbuttonEnabled := !rbuttonEnabled
SplashMessage("Random chance " ((rbuttonEnabled) ? "enabled" : "disabled"))
return
; F9 cycles the actual random chance
F9::
rbuttonModifier *= 2
if (rbuttonModifier > 32)
rbuttonModifier = 2
SplashMessage("Random chance is now " (100.0 / rbuttonModifier))
return
; timer event that occurs for armor refresh
RefreshArmor:
WinWaitActive, ahk_class D3 Main Window Class, , 1 ; don't do this if D3 isn't active
if (hotkeyEnabled && armorEnabled && !ErrorLevel) {
SetTimer, RefreshArmor, off
Send, 1 ; 1 = armor
Random armorTimer, 105000, 125000 ; setup the next refresh to be in 105-125s - randomness helps prevent detection
SetTimer, RefreshArmor, %armorTimer%
}
return
; function to sleep a random amount of time
RandomSleep(min, max) {
Random, rand, %min%, %max%
Sleep %rand%
}
; function to splash a message for 1s
SplashMessage(msg) {
SplashTextOn, , , %msg%
Sleep, 1000
SplashTextOff
}
So how can i bind this script to this key ~ instead of X? very annoying key if u want to write to someone because X won't be in the keyboard to type it....
realized there is no reason to spam keys so much. can do a pixel check to see whether a key is in cooldown.
the below script is for my resolution, 1680x1050. my laptop is 1920x1080, i'll work it out later. change the coords for your res.
example:
note that 2,3,4 are not spammed insanely when they are on cooldown.
#SingleInstance force
SendMode Input
hotkeyEnabled:= 1
armorEnabled:= 1
SetTimer, RefreshArmor, 10000 ; setup initial armor refresh to happen in 10s
#IfWinActive ahk_class D3 Main Window Class ; only use these hotkeys if D3 is active
; 3 is the hotkey to engage CM sequence
$*3::
if (hotkeyEnabled) { ; do CM sequence
Click, down
while GetKeyState("3", "P") {
PixelSearch, , , 741, 973, 741, 973, 0x181E19, 5, Fast
if !ErrorLevel
Send, {Blind}4
PixelSearch, , , 676, 973, 676, 973, 0x181E19, 5, Fast
if !ErrorLevel
Send, {Blind}3
PixelSearch, , , 611, 973, 611, 973, 0x181E19, 5, Fast
if !ErrorLevel
Send, {Blind}2
RandomSleep(100, 200)
}
Click, up
} else { ; just send 3 if hotkeys are disabled
Send, {Blind}3
}
return
; F12 toggles whether all hotkey functionality is enabled or disabled
F12::
hotkeyEnabled := !hotkeyEnabled
if(hotkeyEnabled && armorEnabled)
Gosub, RefreshArmor
else
SetTimer, RefreshArmor, off
SplashMessage("Hotkeys " ((hotkeyEnabled) ? "enabled" : "disabled"))
return
; F11 toggles auto-refresh of armor
F11::
armorEnabled := !armorEnabled
if(hotkeyEnabled && armorEnabled)
Gosub, RefreshArmor
else
SetTimer, RefreshArmor, off
SplashMessage("Armor refresh " ((armorEnabled) ? "enabled" : "disabled"))
return
; timer event that occurs for armor refresh
RefreshArmor:
WinWaitActive, ahk_class D3 Main Window Class, , 1 ; don't do this if D3 isn't active
if (hotkeyEnabled && armorEnabled && !ErrorLevel) {
SetTimer, RefreshArmor, off
Send, 1 ; 1 = armor
Random armorTimer, 105000, 118000 ; setup the next refresh to be in 105-125s
SetTimer, RefreshArmor, %armorTimer%
}
return
; function to sleep a random amount of time
RandomSleep(min, max) {
Random, rand, %min%, %max%
Sleep %rand%
}
; function to splash a message
SplashMessage(msg) {
SplashTextOn, , , %msg%
Sleep, 800
SplashTextOff
}
fwiw, you can do really insane stuff with similar code. you can pixel check mana level, determine percentages, and calculate when to throw the meteors and when to stop. not including that to keep this simple.
I really had to do something as I started to have wrist problems and i had to wear a plastic cuff (i don't know hopw to call it in english, sorry) for 2 weeks. So I personally use AHK because I can't afford a g15 keyboard with built in macro.
Hopefully maybe whoever posted the above code, could maybe help me change it to suite the "a" "w" "d" keys for me please? d is FN, w is EB, and a is diamond skin, i use s for storm armor. also i use left shift to stand in place if that button matters at all? I looked through the code but when im looking to change from numbers to letters it gets kind of confusing. Greatly appreciate anyone taking the time to help me out thanks.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I was getting so bored of my archon wiz, and when I seen this I was like Ima try this to see if it makes a difference(I hated spamming those buttons first time I tried cm so went back to archon) and I most say it brought some life back into my wizard again for me.
Now to start looking for some upgrades to better suit my cm wizard...
I can't get your macro to work properly. It may be an ID10T issue on my part, but I want the script to do something like this:
Hold down "D" to:
-attack in place with Left mouse click
-use 1,2,3 skills (frost nova, EB, and DS)
-repeat
using:
in the script where it has d, just replace it with the button of your choice. like i replaced the "d" with w as it is closer o where my fingers usually sit.
I think that's at the edge of acceptable play since it is still 1 key press for 1 action. It's still possible to be banned, I suppose, because the software is still 3rd party software, but you can also argue that they allow 3rd party software to be used to remap keys, so this isn't much different. Also I have to imagine there's plenty more people they would ban first who use 1 key press to spam 3-4 keys at once. It's still "use at your own risk" but with extremely low chance of anything bad happening.
That's one of the reasons they never come out and say directly what is and isn't bannable, since if they say you can use that, and everyone uses it, it could cause some unforeseen issues with the game or servers. Then if they decided they needed to stop people from using that, they'd be stuck with their response saying it's ok.
Crusader DPS and EHP Spreadsheet, meant for Crusaders
My Wizard
i'm a bit weird, i like '3' as the hotkey. also note this uses the {Blind} modifier which will pass on any ctrl/alt/shift modifier if you want to be stationary.
F12 will enable/disable everything
it can optionally refresh armor every 105-250s. F11 toggles this
it can optionally randomly click the right mouse button (in case you have meteor or teleport-safe passage). F10 toggles this. F9 modifies the chance between ~3-50%
it's a fun academic exercise. do take into account all warnings Loroese has mentioned, use at your own risk
the below script is for my resolution, 1680x1050. my laptop is 1920x1080, i'll work it out later. change the coords for your res.
example:
note that 2,3,4 are not spammed insanely when they are on cooldown.
fwiw, you can do really insane stuff with similar code. you can pixel check mana level, determine percentages, and calculate when to throw the meteors and when to stop. not including that to keep this simple.