Greetings
Here is the Autohotkey macro I am using with my FvS. Notice that it does nothing at all without me being at the keyboard and active. It merely streamlines spamming more keys into spamming fewer keys.
Any comments and ideas for improvements are most welcome.
Code:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; start DDO for me
#IfWinNotExist Dungeons and Dragons Online
Run C:\ddo
; the hotkeys are only active within DDO not when I tab out.
#IfWinActive ahk_class Turbine Device Class
; I use this to suspend Autohotkey when entering text in chat, search fields etc.
$½::Suspend
; **** Description ***
; This macro will swap weaponsets based on which spell I am casting
; It will also attempt to cast the first spell which is ready from a list of similar spells (e.g. Heal, CSW, SLA Heal, SLA Hot in that order)
; I have spells setup on the keys 1 through 0
; and the weaponsets set up on alt-1 through alt-4 (this is setup in game)
; The variable weaponset tracks which weaponset I am currently wearing
; If I press say key 1 = Heal and I am already wearing the devotion set already it will simply cast the spell.
; If I am wearing something else it will first equip the weaponset then wait a short while and then cast the spell
; The code could definitely be trimmed alot but I am too lazy to do so
; *** Hopefully there isnt an issue with the bug concerning spellpower not working too well after an item swap. That would really mess things up
; **** End description ***
weaponset:="unknown"
1::
if (weaponset <> "devotion")
{
Send !1
Sleep 200
weaponset:="devotion"
}
Send 1 ; heal
Send !8 ; csw
Send 2 ; SLA heal
Send !6 ; SLA hot
return
2::
if (weaponset != "devotion")
{
Send !1
Sleep 200
weaponset:="devotion"
}
Send 2 ; SLA heal
Send !6 ; SLA hot
return
3::
if (weaponset!="kinetic")
{
Send !3
Sleep 200
weaponset:="kinetic"
}
Send 3 ; BB
return
4::
if (weaponset != "kinetic")
{
Send !3
Sleep 200
weaponset := "kinetic"
}
Send 4 ; Destruction
return
5::
if (weaponset != "light")
{
Send !4
Sleep 200
weaponset := "light"
}
Send 5 ; DP
Send 8 ; Divine Wrath
Send !7 ; Avening Light
return
6::
if (weaponset != "kinetic")
{
Send !3
Sleep 200
weaponset := "kinetic"
}
Send 6 ; Implosion
return
7::
if (weaponset != "kinetic")
{
Send !3
Sleep 200
weaponset := "kinetic"
}
Send 7 ; MM from Wiz PL
return
8::
if (weaponset != "light")
{
Send !4
Sleep 200
weaponset := "light"
}
Send !7 ; Divine Wrath
Send 8 ; Avenging Light
return
9::
if (weaponset != "devotion")
{
Send !1
Sleep 200
weaponset := "devotion"
}
Send 9 ; Mass Heal
Send !9 ; Mass Cure
return
0::
if (weaponset != "healscroll")
{
Send !2
Sleep 200
weaponset := "healscroll"
}
Send 0 ; Heal scroll
return