Code: Select all
Opt('MouseCoordMode', 0)
Opt('PixelCoordMode', 0)
HotKeySet('{END}', 'Quit')
HotKeySet('{SPACE}', 'Pause')
Global $Paused
Global $Picked = False
Global $DebugOn = True
Global $still = 0
Global $moving = 0
;bot starts paused. press space to start.
Pause()
WinActivate('Diablo III')
While 1
If WinActive('Diablo III') Then
;start
Sleep(2000)
;Click(134, 255) ;resume
;ControlClick ("Diablo III","","D3 Main Window Class0","Right",1,134,255)
MouseClick('left',134, 255,1,0)
Sleep(5500) ;load
DEBUG("Searching for do repair")
$repair = PixelSearch(569,39,597,84,0xFFF000) ;searches top right screen for yellow of broken armor
If Not @error Then
DEBUG("Going to repair")
Send("t")
Sleep(11000)
MouseClick("left", 700, 147) ;begin movement towards merchant
Sleep(2400)
MouseClick("left", 531, 51) ;moves to get merchant in screen
;Sleep(1500)
;MouseClick("left", 845, 225) ;NPC Merchant to the right of cain's home
Sleep(3000)
MouseClick("left", 294, 296) ;button to open up repair menu
Sleep(1500)
MouseClick("left", 186, 326) ;button to pay for repairs
Sleep(1500)
Send("{ESCAPE}") ;opens menu
Sleep(1000)
Send("{ESCAPE}") ;opens menu
Sleep(1000)
MouseClick("left", 407, 345) ;button to leave game
Sleep(8000)
;MouseClick("left", 230, 416) ;button to resume game from main menu
;Sleep(8000)
Else
;$handle = WinGetHandle("Diablo")
;$thecolor = PixelGetColor (580 , 55,$handle)
;DEBUG("Didn't find repair, color:" & $thecolor)
Click(235, 595) ;companion
Click(349, 595) ;choose chakram
Click(300, 300) ;cast chakram
;route start
DEBUG("1")
Shoot(298, 201)
DEBUG("2")
Shoot(648, 465)
DEBUG("3")
Move(648, 465)
DEBUG("4")
Sleep(1000)
Click(275, 594) ;trap
For $i = 0 To Random(5, 5)
Shoot(538, 208)
Next
Click(275, 594) ;trap
For $i = 0 To Random(5, 5)
Shoot(561, 402)
Next
DEBUG("5")
Shoot(689, 479)
DEBUG("6")
Move(689, 479)
DEBUG("7")
Move(555, 302)
DEBUG("8")
Shoot(725, 139)
DEBUG("9")
Move(725, 139)
DEBUG("10")
Sleep(1000)
Click(275, 594) ;trap
For $i = 0 To Random(5, 5)
Shoot(552, 218)
Next
Click(275, 594) ;trap
For $i = 0 To Random(5, 5)
Shoot(310, 210)
Next
Move(658, 187)
;door check & open
MouseMove(423, 220)
MouseMove(421, 225)
$blue = PixelSearch(380, 140, 465, 290, 0x5877A3, 50) ;if it still doesn't catch the door, make a screenshot of
;your highlighted door and check for blue color with AutoIt Window Info - then replace the 0x5877A3 with yours.
If Not @error Then
MouseClick("left")
Sleep(500)
Shoot(526, 174)
EndIf
Sleep(100)
Sleep(1000)
DEBUG("16")
Shoot(526, 174)
DEBUG("17")
Move(622, 174)
DEBUG("18")
Shoot(655, 140)
DEBUG("19")
Move(655, 140)
DEBUG("20")
Shoot(384, 94)
DEBUG("21")
Move(588, 252)
DEBUG("22")
Move(608, 389)
DEBUG("23")
Shoot(628, 281)
DEBUG("24")
Shoot(470, 459)
DEBUG("25")
Shoot(431, 139)
DEBUG("26")
Move(634, 285)
DEBUG("27")
Shoot(613, 158)
DEBUG("28")
Move(589, 259)
DEBUG("29")
Shoot(459, 112)
DEBUG("30")
Shoot(683, 408)
DEBUG("31 - mousemove?")
MouseMove(543, 492, 0)
DEBUG("32")
Shoot(543, 492)
DEBUG("33")
Move(688, 465)
DEBUG("34")
Move(649, 469)
DEBUG("35")
Shoot(469, 460)
DEBUG("36 - mousemove?")
MouseMove(720, 429, 0)
DEBUG("37")
Shoot(720, 429)
DEBUG("38")
Move(699, 485)
DEBUG("39")
Shoot(466, 348)
Shoot(466, 348)
Sleep(900)
DEBUG("40 - mousemove?")
MouseMove(270, 352, 0)
DEBUG("41 - Trap and Shoot")
Click(275, 594) ;trap
For $i = 0 To Random(3, 3)
Shoot(270, 352)
Shoot(265, 160)
Next
sleep(900)
DEBUG("42")
Move(64, 100)
DEBUG("43")
Sleep(1000)
Move(219, 114)
Sleep(1000)
DEBUG("44")
Shoot(550, 148)
Shoot(550, 148)
DEBUG("45")
Move(471, 153)
DEBUG("46")
Click(275, 594) ;trap
For $i = 0 To Random(3, 3)
Shoot(369, 117)
Next
DEBUG("47")
Move(282, 101)
DEBUG("48")
Shoot(224, 141)
DEBUG("49 - mousemove?")
MouseMove(53, 246, 0)
DEBUG("50")
Shoot(53, 246)
DEBUG("51")
Move(83, 241)
DEBUG("52")
Move(156, 371)
DEBUG("54")
Shoot(140, 491)
DEBUG("55")
Move(181, 268)
DEBUG("56")
Shoot(131, 174)
Shoot(131, 174)
Shoot(131, 174)
DEBUG("57 - mousemove?")
MouseMove(187, 92, 0)
DEBUG("58")
Shoot(187, 92)
DEBUG("59")
Move(107, 108)
DEBUG("60")
Click(275, 594) ;trap
For $i = 0 To Random(3, 3)
Shoot(649, 437)
Shoot(649, 437)
Next
DEBUG("61")
Move(707, 485)
Sleep(900)
DEBUG("62")
Move(713, 504)
DEBUG("63")
Move(275, 506)
DEBUG("64")
Shoot(165, 400)
DEBUG("65")
Shoot(462, 494)
;route end
Sleep(2000)
DEBUG("quitting")
;Click(567, 594) ;menu
MouseClick('left',567,594,1,0)
;Click(407, 345) ;leave
MouseClick('left',407,345,1,0)
$Picked = False
Sleep(12000)
EndIf
EndIf
WEnd
Func Move($x, $y)
If Not $Picked Then
FindItems()
EndIf
If Not $Picked Then
;MouseClick('middle', Random($x - 3, $x + 3), Random($y - 3, $y + 3), 1, Random(0, 1))
;Local $z = 1
;While $z
;If Not IsMoving() Then
;$z = 0
MouseClick('middle',$x,$y,1,0)
;EndIf
;Sleep(Random(2000, 2500))
Sleep(2000)
;WEnd
EndIf
EndFunc ;==>Move
Func Click($x, $y)
If Not $Picked Then
FindItems()
EndIf
If Not $Picked Then
;MouseClick('left', Random($x - 3, $x + 3), Random($y - 3, $y + 3), 1, Random(0, 1))
MouseClick('left',$x,$y,1,0)
;Sleep(Random(1000, 1500))
Sleep(1000)
EndIf
EndFunc ;==>Click
Func Shoot($x, $y)
If Not $Picked Then
FindItems()
EndIf
If Not $Picked Then
;MouseClick('right', Random($x - 2, $x + 2), Random($y - 2, $y + 2), 1, 0)
MouseClick('right',$x,$y,1,0)
;Sleep(Random(550, 700))
Sleep(550)
EndIf
EndFunc ;==>Shoot
Func FindItems()
;Local $item = PixelSearch(60, 80, 750, 525, 0xA75A2B, 5)
Local $item = PixelSearch(15, 96, 794, 525, 0xAC5B2A,0)
If Not @error Then
DEBUG("Legendary found, grabbing")
MouseMove($item[0],$item[1],Random(0, 1))
Sleep(Random(400))
MouseClick('left')
Sleep(2300)
$Picked = True
EndIf
;$item = PixelSearch(60, 80, 750, 525, 0x07E305, 5)
$item = PixelSearch(15, 96, 794, 525, 0x07E305,0)
If Not @error Then
DEBUG("Set piece found, grabbing")
MouseMove($item[0],$item[1],Random(0, 1))
Sleep(Random(400))
MouseClick('left')
Sleep(2300)
$Picked = True
EndIf
EndFunc
Func IsMoving()
Local $check = PixelChecksum(659,109,749,177,10)
Sleep(50)
Local $check2 = PixelChecksum(659,109,749,177,10)
Local $ratio = $check/$check2
If (($ratio < 1.05) And ($ratio > .95)) Then
$still = $still + 1
If $still >= 3 Then
$moving = 0
Return False
EndIf
Else
$moving = $moving + 1
If $moving > 3 Then
;If $moving > 20 Then
;Return
;EndIf
$still = 0
Return True
EndIf
EndIf
Return True
EndFunc
Func Quit()
Exit
EndFunc ;==>Quit
Func Pause()
$Paused = Not $Paused
While $Paused
Sleep(100)
ToolTip('Paused...', 0, 0)
WEnd
ToolTip("")
EndFunc ;==>Pause
Func DEBUG($MESSAGE)
If $DebugOn Then
ToolTip($MESSAGE, 0, 0)
Else
ToolTip('debug !@#$%^&*')
EndIf
EndFunc ;==>Debug Info