Evokerbot v1.4 - Final Release-thanks to Ispanika for the original code-
Changes:
-Character movement completely redone, it is now faster and smoother
-Timing on all attacks completely redone
-Changed looting to be done during spell cooldowns (looting no longer wastes any time)
-Added redundancy for exiting and entering, it is less likely to fail
-Changed /unstuck to key bind 4 (no accidental chatting)
-Switched all mouse clicks to key binds instead, mouse clicks failed 50% of the time
Notes:
1. If you are wearing any items that increase your movement speed over 100, remove them in order for the bot to work.
2. Open chat macro window in game, pick one and type "/unstuck" then go to keyboard controls and bind that key to 4.
3. If you are experiencing lag, the bot will not work correctly.
4. All keys now are necessary to keep your character alive, but I've got it worked out well enough, if you have good gear, you should be okay on Nightmare.
5. I suggest as much splash damage as you possibly can, as well as crit chance multiplier for demons.
6. Max EVERY skill used for the bot. If you're a halfway decent Evoker, you will have these all maxed anyways. For lower levels get gear with +6 hellfire before using the bot.
Instructions:
1. Set resolution to 1024x768 NOT windowed
2. Set ALL graphics to minimum (all on low, uncheck everything)
3. Set key bindings:
-Button 3 - Demonspine of Flameshards
-Button 1 - Hellfire
-Button 8 - Arcane Shield
-Button 4 - /unstuck (chat macro)
4. Go to Harrow Deep, enter then exit, do not move
5. Minimize the chat dialog with the ~ key
6. Alt Tab and Run bot
I spent about 30 hours of testing and timing, trying to get this right, so if you use it and like it, show some gratitude.
Download the program here:
http://www.megaupload.com/?d=NFH5S2A7My code:
Code
;### Tidy Error: next line creates a negative tablevel.
;### Tidy Error: next line creates a negative tablevel for the line after it.
#ce ----------------------------------------------------------------------------
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#region
$Form1 = GUICreate("Hellgate Bot", 268, 257, 637, 331)
$Form1 = GUISetBkColor(0xb83f5d)
$Form1 = GUICtrlSetFont(-1, 12, 800, 0, "Comic Sans Ms")
$Form1 = GUISetState()
$Button1 = GUICtrlCreateButton("GO GO > START", 20, 40, 190, 50, 0)
$Button2 = GUICtrlCreateButton("Pause Button = Pause / ESC = Quit", 20, 120, 190, 50, 0)
$Button3 = GUICtrlCreateButton("USE 1024x768 RESOLUTION - FULLSCREEN", 20, 180, 250, 50, 0)
GUISetState(@SW_SHOW)
$Mouse = MouseGetPos()
#endregion
_WinWaitActivate("Hellgate (x86 DX9)", "")
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
Func _move($loop, $key)
For $i = $loop To 1 Step -1
ControlSend("Hellgate (x86 DX9)", "", "", $key)
Next
EndFunc;==>_move
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('BOT IS PAUSED ATM',0,0)
WEnd
ToolTip("Use 1024x768")
EndFunc
Func Terminate()
Exit 0
EndFunc
While 1
$nMsg = GUIGetMsg()
Select
Case $Button1
While 1
Sleep(3000); TO PORTAL
Send("{s down}")
Sleep(1300)
Send("{s up}")
Sleep(100)
Send("{w down}")
Sleep(250)
Send("{w up}")
Sleep(100)
Send("{s down}")
Sleep(250)
Send("{s up}")
Sleep(100)
Send("{w down}")
Sleep(250)
Send("{w up}")
Sleep(100)
Send("{s down}")
Sleep(250)
Send("{s up}")
Sleep(5)
_move(20, "w")
Sleep(5)
_move(20, "s")
Sleep(5)
_move(20, "w")
Sleep(5)
_move(20, "s")
Sleep(4000); INSIDE BELOW THIS LINE
Send("{a down}")
Sleep(600)
Send("{a up}")
Sleep(200)
Send("{w down}")
Sleep(2050)
Send("{w up}")
Sleep(200)
Send("{a down}")
Sleep(350)
Send("{a up}")
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{1}"); Hellfire
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{3}"); Demonspine
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{3}")
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{3}")
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{1}"); Hellfire
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{3}"); Demonspine
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{3}")
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{3}")
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{1}"); Hellfire
Sleep(1000)
ControlSend("Hellgate (x86 DX9)", "", "", "{8}"); Arcane Sheild
Sleep(250)
Send("{f down}")
Sleep(5)
Send("{w down}")
Sleep(2500)
Send("{w up}")
Sleep(5)
Send("{f up}")
Sleep(5)
ControlSend("Hellgate (x86 DX9)", "", "", "{1}"); Hellfire
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{4}"); /unstuck
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
ControlSend("Hellgate (x86 DX9)", "", "", "{f}")
Sleep(500)
Send("{s down}")
Sleep(1200)
Send("{s up}")
Sleep(200)
Send("{w down}")
Sleep(250)
Send("{w up}")
Sleep(200)
Send("{s down}")
Sleep(250)
Send("{s up}")
Sleep(5)
_move(20, "w")
Sleep(5)
_move(20, "s")
Sleep(5)
_move(20, "w")
Sleep(5)
_move(20, "s")
Sleep(4000)
Send("{ALTDOWN}"); RESET
Sleep(250)
MouseClick("primary", "834", "63", 10)
Sleep(2000)
MouseClick("primary", "445", "426", 10)
Sleep(2000)
MouseClick("primary", "508", "410", 10)
Sleep(250)
Send("{ALTUP}")
Sleep(250)
WEnd
Case $Button2
GUIDelete()
ExitLoop
EndSelect
WEnd
This post was edited by chumly on Oct 17 2011 05:52pm