Introducing...
AutoDisenchanter
This was completely written by myself, out of frustration from clicking the Disenchanting button, then the item to DE, and repeat that 30 times.
It was written in AutoIt3, and you'll need that to run this script. I will not compile it, because you might aswell see the code yourself, to see that it's safe.
Important stuff to know:
- Please enable Auto-Loot in interface options when using this script.
- Please run WoW in a window when running this script.
- You get the best result if you use a bag addon such as Bagnon.
- Change all the variables to fit your screen and game configuration.
- This also works with prospecting ore, put them in stacks of five.
You'll need to change some variables to make it work on your computer. It's all neatly described in the script.
To get your values, take a screenshot of the whole computer screen, paste it into Paint, and hover your mouse over the first slot on the first row of your bags. The coordinates will show up in the bottom-right corner of Paint.
NOTE! This will take control of your mouse cursor. Don't activate any other windows or try to do anything else while the script is disenchanting, or you might mess stuff up.
If you'd like to prematurely end the script, then press Ctrl+Break on your keyboard.
Protip for nubies to AutoIt:
Copy this into a document and save it as 'AutoDisenchanter.au3', edit your values, then run the script.
Hope you like it! Please leave feedback and/or bug reports here.
Sincerely, your neighbourhood coder, xdpirate.
The script itself:
Code:
; +========================================================================+
; | AutoDisenchanter - By xdpirate |
; | ------------------------------ |
; | - Please enable Auto-Loot in interface options when using this script. |
; | - Please run WoW in a window when running this script. |
; | - You get the best result if you use a bag addon such as Bagnon. |
; | - Change all the variables to fit your screen and game configuration. |
; | - This also works with prospecting ore, put them in stacks of five. |
; +========================================================================+
; To get your values, take a screenshot of the whole computer screen,
; paste it into Paint, and hover your mouse over the first slot on the
; first row of your bags. The coordinates will show up in the bottom-right
; corner of Paint.
; CHANGE THESE VARIABLES
$xStart = 1080 ; X-Coordinate of first slot of first row
$yStart = 445 ; Y-Coordinate of first slot of first row
$enchButtonX = 1605 ; X-Coordinate of Disenchant-button
$enchButtonY = 425 ; Y-Coordinate of Disenchant-button
$slotDistance = 50 ; Distance in pixels between each slot
HotKeySet("^{BREAK}", "QuitIt") ; Quit-button combo: Ctrl+Break
func QuitIt() ; Quit the script
ToolTip(">> Quitting. Thank you for using AutoDisenchanter! <<", 0, 0, "AutoDisenchanter", 1, 4)
Sleep(4000)
Exit
EndFunc
func disenchant($xCoord, $yCoord) ; Perform Disenchanting
ToolTip(">> Clicking Disenchant-button at: " & $enchButtonX & ", " & $enchButtonY & " - CTRL+BREAK to quit <<", 0, 0, "AutoDisenchanter", 1, 4)
MouseClick("left", $enchButtonX, $enchButtonY, 1, 0)
Sleep(500) ; Wait 0.5 seconds between clicking Disenchant-button and clicking the item to be disenchanted (Change if you've got lag or a slow computer)
ToolTip(">> Disenchanting item at: " & $xCoord & ", " & $yCoord & " - CTRL+BREAK to quit <<", 0, 0, "AutoDisenchanter", 1, 4)
MouseClick("left", $xCoord, $yCoord, 1, 0)
Sleep(5000) ; Wait 5 seconds for DE-cast + Loot (3 sec cast + 2 sec looting time) (Change if you've got lag or a slow computer)
EndFunc
WinActivate("World of Warcraft") ; Give World of Warcraft focus
WinWaitActive("World of Warcraft") ; Wait untill WoW has gotten focus
ToolTip(">> Running Disenchanter. CTRL+BREAK to quit <<", 0, 0, "AutoDisenchanter", 1, 4)
Sleep(2000) ; Wait 2 seconds for WoW to get ready (Change this if you have a slow computer)
; CHANGE THESE VARIABLES
$slot = 0 ; Starting slot (0 is the first item)
$row = 0 ; Starting row (0 is the first row)
$totalSlots = 9 ; Ending slot (0 is the first item, If only DEing one slot, then put the same as $slot here)
$totalRows = 0 ; Ending row (0 is the first row. If only DEing one row/slot, then put the same as $row here)
; Do not mess with this
While $row <= $totalRows
while $slot <= $totalSlots
disenchant($xStart + ($slot * $slotDistance), $yStart + ($row * $slotDistance))
$slot += 1
WEnd
$slot = 0
$row += 1
WEnd
;Exits when all loops are done
QuitIt()