Turn it on/off with shift + alt + o.
Reset the amount of arrows left to the pack size with shift + alt + r.
Add the amount of arrows that get used per scatter to the amount left with alt + z. (Useful for lag.)
If you want continuous firing (if you have an arrow reloader that works better, or if you're not using it for arrows but for some other skill), check the checkbox up top.
Arrows go on F1. Make sure to have your skill you want (scatter) be active.
Once you press ok, the program will minimize to a tray icon. To get it back, click the icon and select Show Attributes.
You can exit by clicking the tray and selecting exit or by bringing up attributed and closing (red X or the close button).
Click the tray icon for additional stats - whether or not the macro is on (good for debugging or lag or if you're unsure), how many arrows left in the pack (N/A if you want continuous firing).
Just open up your CO window, press shift + alt + o, and point the mouse where you want the scatter (or whatever other skill you want) to go. I like to jump around bi auto-scattering - good exp.
Basically, this program just makes sure your fingers don't get tired after right-clicking a few thousand times.
Code: (Edit: formatting sucks. Forum's fault, not mine.)
Code:
;Gimp
#include <GUIConstants.au3>
#Include <Constants.au3>
#NoTrayIcon
$on = False
$packSize = 500
$arrPerShot = 3
$pause = 1000
$arrowsLeft = 500
$reload = True
HotKeySet("+!o", "toggleOn")
HotKeySet("+!r", "reset")
HotKeySet("!z", "addShot")
Opt("TrayMenuMode",1)
$showitem = TrayCreateItem("Show Attributes")
$hideitem = TrayCreateItem("Hide Attributes")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TrayCreateItem("")
TrayCreateItem("Macro on:")
$statusitem = TrayCreateItem($on)
TrayCreateItem("")
TrayCreateItem("Arrows left in pack: ")
$aleftitem = TrayCreateItem($arrowsLeft)
TraySetState()
$attrWindow = GUICreate("Arrow shooting and reloading")
$reloadInput = GUICtrlCreateCheckbox("Check to fire continuously", 200, 45)
GUICtrlCreateLabel("Don't reload: ", 120, 48)
$packSizeInput = GUICtrlCreateInput("500", 195, 80, 40, 20, $ES_NUMBER)
GUICtrlCreateLabel("Pack Size: ", 120, 82)
$arrPerShotInput = GUICtrlCreateInput("3", 195, 120, 40, 20, $ES_NUMBER)
GUICtrlCreateLabel("Arrows/Shot: ", 120, 122)
$pauseInput = GUICtrlCreateInput("1150", 195, 160, 40, 20, $ES_NUMBER)
GUICtrlCreateLabel("Pause/Shot: ", 120, 162)
$arrowsLeftInput = GUICtrlCreateInput("500", 195, 220, 40, 20, $ES_NUMBER)
GUICtrlCreateLabel("Arrows left: ", 120, 222)
$buttonOk = GUICtrlCreateButton ("Ok.", 80, 300, 100)
$buttonClose = GUICtrlCreateButton ("Close.", 200, 300, 100)
GUISetState()
While 1
$guimsg = GUIGetMsg()
Select
Case $guimsg = $GUI_EVENT_CLOSE
close()
Case $guimsg = $buttonOk
setValues()
hideWindow()
Case $guimsg = $buttonClose
close()
EndSelect
$traymsg = TrayGetMsg()
Select
Case $traymsg = $showitem
showWindow()
Case $traymsg = $hideitem
hideWindow()
Case $traymsg = $exititem
close()
EndSelect
If $on Then
attack()
If $arrowsLeft < $arrPerShot And $reload Then
reload()
EndIf
EndIf
WEnd
Func addShot()
$arrowsLeft = $arrowsLeft + $arrPerShot
updateArrTray()
EndFunc
Func attack()
$pos = MouseGetPos()
MouseClick("secondary", $pos[0], $pos[1], 2, 1)
$arrowsLeft = $arrowsLeft - $arrPerShot
updateArrTray()
GUICtrlSetData($arrowsLeftInput, $arrowsLeft)
sleep($pause)
EndFunc
Func close()
Beep(1000, 20)
$msg = MsgBox(0x21, "Close?", "Do you really want to close?")
If $msg = 1 Then
Exit(0)
EndIf
EndFunc
Func hideWindow()
GUISetState(@SW_HIDE)
EndFunc
Func reload()
Send("{F1}")
reset()
EndFunc
Func reset()
$i = 0
$arrowsLeft = $packSize
updateArrTray()
EndFunc
Func setValues()
$packSize = GUICtrlRead($packSizeInput)
$arrPerShot = GUICtrlRead($arrPerShotInput)
$pause = GUICtrlRead($pauseInput)
$arrowsLeft = GUICtrlRead($arrowsLeftInput)
If GUICtrlRead($reloadInput) = $GUI_CHECKED Then
$reload = False
Else
$reload = True
EndIf
updateArrTray()
EndFunc
Func showWindow()
GUISetState(@SW_SHOW)
EndFunc
Func toggleOn()
$on = NOT $on
TrayItemSetText($statusitem, $on)
EndFunc
Func updateArrTray()
If $reload Then
TrayItemSetText($aleftitem, $arrowsLeft)
Else
TrayItemSetText($aleftitem, "N/A")
EndIf
EndFunc






