UPDATE!!!
1: Revised the repair path in order to fix a rare error in pathing that gets you stuck.
2: You no longer have to kill all Terror Spawn in the armory to leave the game properly. It will exit the armory then attempt to leave the game.
3: Longer attack time and more attack directions including behind you to kill any Terror Spawn that may happen to get by you.
4: Some click functions now have reduced time, making the overall process faster.
A: See notes list for more details.
Hello. Credit for this goes to NoUseLying. Copied the code from him and changed it to work for the resolution in the title. I also removed the group feature for solo afk leveling.
This is specifically for a witch doctor using the setup listed in the controls section below. Fully automated scripting. First time I ever attempted to script and it turned out beastly. I may do more some other time. Tested this on inferno on MP8 and I barely take any damage. Copy and paste the code below into notepad and save as a .au3 file.
If you need the program, please google autoit to run this script.
;#### - NoUseLying's - Tremors in the Stone - Au3 Leveling AutoIt Script - ####
;Version .8
;Controls-
;Skill Slot 1 = Firebats (glyph that you want, I use plague bats)
;Skill Slot 2 = Soul Harvest (glyph that you want, I use Soul to Waste)
;Skill Slot 3 = Gargantuan (glyph that you want, I use Humongoid)
;Skill Slot 4 = Zombie Dogs (glyph that you want, I use Leeching Beasts)
;Skill Slot Left Click = Spirit Barage (not required, I use Manitou Glyph)
;Skill Slot Right Click = Spirit Walk (glyph that you want, I use Honored Guest Glyph)
;Notes-
;If you intend to use cloud of bats glyph, then change Skill Slots 3 and 4 to
;something else to allow the Terror Spawns to come to you, or find the action below
;that is called moveawayfromblacksmith and delete the send actions of 3 and 4.
;Also delete the sleep timer that is inbetween them.
;Timings after load is very high in order for various machines to run it flawlessly.
;Approximately 25 seconds between click to load game and talk to the npc.
;It will automatically repair all equipment as well so you don't have to check to make
;sure you are not doing this with broken gear.
;Mouse pivot function included for direction facing when chaining Firebats.
;Key down function to keep chaining cost instead of repeatedly pressing.
;The game now exits the armory instead of making sure all Terror Spawn is dead
;after the attack actions have been completed. This makes sure that the timings
;stay accurate for leaving the game instead of giving you a 10 second timer If
;any Terror Spawns still remain.
;Hotkeys Defined
HotKeySet("=","start") ;START by pressing =
HotKeySet("-", "stop") ;STOP by pressing -
$runScript = True
$start = False
Call ( "mainRun" )
Func resumegame()
;####Breakdown of MouseClick Function using Random Mouse Cordinates####
;$x???????? = Random(???,???) (x axis function named anything)
;Left to Right
;1st number for x = 1st number on x axis(x value for left side -------
;2nd number for x = 2nd number on x axis(x value for right side -------
;MouseClick("anybutton",$x????????,$yFunction,1)
;$y???????? = Random(???,???) (y axis function named anything)
;Top to Bottom
;1st number for y = 1st number on y ayis(y value for top |||||||
;2nd number for y = 2nd number on y ayis(y value for bottom |||||||
;MouseClick("anybutton",$xFunction,$y????????,1)
;1280x720 widescreen mouse positions
$xMostResume = Random(47,262) ; x leftside(47) x rightside(262)
$yMostResume = Random(257,296) ; y top(257) y bottom(296)
MouseClick("left",$xMostResume,$yMostResume,1)
EndFunc
Func leavegame()
$xMostLeave = Random(533,744) ; x leftside(533) x rightside(744)
$yMostLeave = Random(372,401) ; y top(372) y bottom(401)
MouseClick("left",$xMostLeave,$yMostLeave,1)
EndFunc
Func quest()
sleep(random(24000,25000))
$xQuestDialog = Random(700,725) ; x leftside(700) x rightside(725)
$yQuestDialog = Random(260,294) ; y top(275) y bottom(294)
MouseClick("left",$xQuestDialog,$yQuestDialog,1)
EndFunc
Func findblacksmith()
$xFindBlacksmith = Random(1145,1150) ; x leftside(1145) x rightside(1150)
$yFindBlacksmith = Random(20,30) ; y top(20) y bottom(30)
MouseClick("left",$xFindBlacksmith,$yFindBlacksmith,1)
sleep(random(2000,2500))
EndFunc
Func findrepair()
$xFindRepair = Random(335,345) ; x leftside(335) x rightside(345)
$yFindRepair = Random(400,425) ; y top(400) y bottom(425)
MouseClick("left",$xFindRepair,$yFindRepair,1)
sleep(random(500,750))
EndFunc
Func repair()
$xRepair = Random(150,175) ; x leftside(150) x rightside(175)
$yRepair = Random(385,400) ; y top(385) y bottom(400)
MouseClick("left",$xRepair,$yRepair,1)
sleep(random(500,750))
EndFunc
Func movefromblacksmith()
Send("{3}")
sleep(random(1000,1500))
Send("{4}")
$xMoveFromBlacksmith = Random(490,500) ; x leftside(490) x rightside(500)
$yMoveFromBlacksmith = Random(460,470) ; y top(460) y bottom(470)
MouseClick("left",$xMoveFromBlacksmith,$yMoveFromBlacksmith,1)
EndFunc
Func huntchamber()
$xHuntChamber = Random(900,910) ; x leftside(900) x rightside(910)
$yHuntChamber = Random(490,500) ; y top(490) y bottom(500)
MouseClick("left",$xHuntChamber,$yHuntChamber,1)
EndFunc
Func findchamber()
$xFindChamber = Random(900,910) ; x leftside(900) x rightside(910)
$yFindChamber = Random(380,390) ; y top(380) y bottom(390)
MouseClick("left",$xFindChamber,$yFindChamber,1)
EndFunc
Func enterchamber()
$xEnterChamber = Random(600,610) ; x leftside(600) x rightside(610)
$yEnterChamber = Random(110,120) ; y top(110) y bottom(120)
MouseClick("left",$xEnterChamber,$yEnterChamber,1)
EndFunc
Func skipquestchat()
$xSkipQuestChat = Random(505,627) ; x leftside(505) x rightside(627)
$ySkipQuestChat = Random(236,261) ; y top(236) y bottom(261)
MouseClick("left",$xSkipQuestChat,$ySkipQuestChat,1)
EndFunc
Func killeverything()
sleep(random(10000,11000))
$xRightKillArea = Random(1000,1075) ; x leftside(1000) x rightside(1075)
$yRightKillArea = Random(514,603) ; y top(514) y bottom(603)
$xMiddleKillArea = Random(675,750) ; x leftside(675) x rightside(750)
$yMiddleKillArea = Random(514,603) ; y top(514) y bottom(603)
$xLeftKillArea = Random(370,495) ; x leftside(370) x rightside(495)
$yLeftKillArea = Random(483,613) ; y top(483) y bottom(613)
$xUpperKillArea = Random(575,600) ; x leftside(575) x rightside(600)
$yUpperKillArea = Random(275,285) ; y top(275) y bottom(285)
MouseMove($xRightKillArea,$yRightKillArea,1)
Send("{1 down}")
sleep(random(1000,1500))
MouseMove($xLeftKillArea,$yLeftKillArea,1)
sleep(random(1000,1500))
MouseMove($xMiddleKillArea,$yMiddleKillArea,1)
Send("{2}")
sleep(random(1000,1500))
MouseMove($xRightKillArea,$yRightKillArea,1)
sleep(random(1000,1500))
MouseMove($xLeftKillArea,$yLeftKillArea,1)
sleep(random(1000,1500))
MouseMove($xUpperKillArea,$yUpperKillArea,1)
sleep(random(2000,2500))
MouseMove($xRightKillArea,$yRightKillArea,1)
MouseClick("right")
sleep(random(1000,1500))
MouseMove($xLeftKillArea,$yLeftKillArea,1)
sleep(random(1000,1500))
MouseMove($xRightKillArea,$yRightKillArea,1)
sleep(random(1000,1500))
MouseMove($xLeftKillArea,$yLeftKillArea,1)
sleep(random(1000,1500))
MouseMove($xMiddleKillArea,$yMiddleKillArea,1)
sleep(random(1000,1500))
MouseMove($xUpperKillArea,$yUpperKillArea,1)
sleep(random(2000,2500))
MouseMove($xRightKillArea,$yRightKillArea,1)
sleep(random(1000,1500))
MouseMove($xLeftKillArea,$yLeftKillArea,1)
sleep(random(1000,1500))
Send("{1 up}")
EndFunc
Func exitchamber()
$xExitChamber = Random(535,545) ; x leftside(535) x rightside(545)
$yExitChamber = Random(155,165) ; y top(155) y bottom(165)
MouseClick("left",$xExitChamber,$yExitChamber,1)
sleep(random(1000,1500))
EndFunc
Func endrun()
Call ( "leavechamber" ) ;leave game
Send ( "{Escape}" )
Sleep(Random(1000,2000))
Call ( "leavegame" ) ;leave game
EndFunc
Func changequest()
$xChangeQuest = Random(49,260) ; x leftside(49) x rightside(260)
$yChangeQuest = Random(311,339) ; y top(311) y bottom(339)
MouseClick("left",$xChangeQuest,$yChangeQuest,1)
EndFunc
Func selectquest()
$xSelectQuest = Random(261,528) ; x leftside(261) x rightside(528)
$ySelectQuest = Random(471,489) ; y top(471) y bottom(489)
MouseClick("left",$xSelectQuest,$ySelectQuest,1)
EndFunc
Func selectq()
$xSelectQ = Random(699,909) ; x leftside(699) x rightside(909)
$ySelectQ = Random(562,588) ; y top(562) y bottom(588)
MouseClick("left",$xSelectQ,$ySelectQ,1)
EndFunc
Func confirmselectedquest()
$xConfirmSelectedQuest = Random(502,626) ; x leftside(502) x rightside(626)
$yConfirmSelectedQuest = Random(409,436) ; y top(409) y bottom(436)
MouseClick("left",$xConfirmSelectedQuest,$yConfirmSelectedQuest,1)
EndFunc
Func start()
$start = True
EndFunc
Func pause()
$start = False
EndFunc
Func stop()
Exit
EndFunc
Func mainRun()
While $runScript
If ($start) Then
$min = random(2100,2900)
$max = random(3100,4400)
$aclearroom = random(1000,1500)
$bclearroom = random(1000,1500)
sleep(random($min,$max))
Call ( "resumegame" ) ;enter game
sleep(random($min,$max))
Call ( "quest" ) ;get quest
sleep(random(1200,1400))
Call ( "findblacksmith" ) ;move to blacksmith to repair.
sleep(random(2000,2500))
Call ( "findrepair" ) ;move to blacksmith to repair.
sleep(random(500,750))
Call ( "repair" ) ;move to blacksmith to repair.
sleep(random(500,750))
Call ( "movefromblacksmith" ) ;move away from blacksmith
sleep(random(500,750))
Call ( "huntchamber" ) ;head to the chamber
sleep(random(750,1000))
Call ( "findchamber" ) ;head to the chamber
sleep(random(1000,1250))
Call ( "enterchamber" ) ;enter chamber
sleep(random(2200,2300))
Call ( "skipquestchat" ) ;skip quest chat
sleep(random(2300,2700))
Call ( "killeverything" ) ;clear room
sleep(random($aclearroom,$bclearroom))
Call ( "exitchamber" ) ;leave chamber
sleep(random(2300,2700))
Call ( "endrun" ) ;tp and exit
sleep(random(3250,3500))
Call ( "changequest" ) ;change quest button
sleep(random(600,800))
Call ( "selectquest" ) ;reselect quest
sleep(random(666,999))
Call ( "selectq" ) ;select button
sleep(random(500,800))
Call ( "confirmselectedquest" ) ;confirm reselection
EndIf
Wend
EndFunc