rendered paste body#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=ShopBot.ico
#AutoIt3Wrapper_Compression=4
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Include <Date.au3>
#Include <GUIConstants.au3>
Dim $Location
Dim $IniFile = "mm.ItemReader.ini"
Dim $IniSection1 = "mm.ItemReader"
Dim $IniSection2 = "ShopBot"
Dim $i = 1
Opt("PixelCoordMode",0)
Opt("MouseCoordMode",0)
Opt("SendKeyDelay",100)
Opt("MouseClickDelay",100)
$D2WinName = IniRead($IniFile,$IniSection1,"WName","Diablo II")
$ReaderKey = IniRead($IniFile,$IniSection1,"HotKey","PAUSE")
$GameName = IniRead($IniFile,$IniSection2,"GameName","")
$GamePass = IniRead($IniFile,$IniSection2,"GamePass","")
$ShopBot = GUICreate("ShopBot",150,30)
$StartBot = GUICtrlCreateButton("Run !",5,5,140,20)
GUISetIcon("ShopBot.ico")
GUISetState(@SW_SHOW)
HotKeySet("{END}","QuitBot")
Call("Init")
Func Init()
While 1
Switch GUIGetMsg()
Case $StartBot
WinActivate($D2WinName)
Sleep(1000)
Call("CheckStatus")
If $Location = "Channel" Then
Call ("CreateGame")
Else
Run("mm.ItemReader.exe")
Sleep(1500)
Call("Drognan")
EndIf
Case $GUI_EVENT_CLOSE
Call("QuitBot")
EndSwitch
Wend
EndFunc
Func CheckStatus()
$Status = PixelGetColor(300,600)
Switch $Status
Case 1024
$Location = "Channel"
Case 11897418
$Location = "InGame"
EndSwitch
EndFunc
Func CreateGame()
MouseClick("left",600,485,1,0)
Send($GameName&$i)
$i = $i+1
Send("{TAB}")
Send($GamePass)
Send("{ENTER}")
While $Location = "Channel"
Call("CheckStatus")
WEnd
Sleep(200)
MouseClick("left",560,60,1,0)
Sleep(2000)
MouseClick("left",20,110,1,0)
Sleep(2000)
MouseClick("left",400,25,1,0)
Sleep(2000)
MouseClick("left",795,40,1,0)
Sleep(2000)
MouseClick("left",790,120,1,0)
Sleep(2000)
MouseClick("left",790,120,1,0)
Sleep(2000)
MouseClick("left",790,120,1,0)
Sleep(2000)
MouseClick("left",790,120,1,0)
Sleep(2000)
MouseClick("left",680,90,1,0)
Sleep(1500)
If PixelGetColor(390,150) = 1638144 Then
Run("mm.ItemReader.exe")
Sleep(1500)
Call("Drognan")
Else
Call("QuitGame")
EndIf
EndFunc
Func Drognan()
$DrognanCoords = PixelSearch(0,160,370,500,0xFF2C00,0,39)
If @error Then
MsgBox(0,"ShopBot","Could not find Drognan !")
Call("QuitGame")
EndIf
MouseMove($DrognanCoords[0],$DrognanCoords[1],0)
Sleep(250)
MouseClick("left",$DrognanCoords[0],$DrognanCoords[1],1,100)
Sleep(1500)
Send("{DOWN}")
Send("{ENTER}")
Sleep(1500)
MouseClick("left",200,95,1,0)
Sleep(1500)
Call("CheckItem",200,190)
Call("CheckItem",260,190)
Call("CheckItem",320,190)
Call("CheckItem",380,190)
Call("CheckItem",200,275)
Call("CheckItem",260,275)
Call("CheckItem",320,275)
Call("CheckItem",380,275)
Call("CheckItem",200,360)
Call("CheckItem",260,360)
Call("CheckItem",320,360)
Call("CheckItem",380,360)
Sleep(300)
Send("{SPACE}")
$BlockCoords = PixelSearch(250,20,790,450,0x18FF00,0,19)
MouseClick("left",$BlockCoords[0]+30,$BlockCoords[1]+175,1,0)
Sleep(1000)
MouseClick("left",785,100,1,0)
Sleep(1800)
MouseClick("left",20,520,1,0)
Sleep(3000)
Call("Drognan")
EndFunc
Func CheckItem($x,$y)
MouseMove($x,$y,0)
Sleep(200)
Send("{"&$ReaderKey&"}")
Sleep(1500)
$ItemFile = FileOpen("mm.ItemReader.txt",0)
Global $Item = FileRead($ItemFile)
If StringInStr($Item,"+2 to Paladin Skill Levels") And StringInStr($Item,"+3 to Blessed Hammer") Then
MouseClick("right")
Call("WriteLog")
EndIf
If StringInStr($Item,"+2 to Paladin Skill Levels") And StringInStr($Item,"+2 to Blessed Hammer") And StringInStr($Item,"Faster Cast Rate") Then
MouseClick("right")
Call("WriteLog")
EndIf
If StringInStr($Item,"+2 to Sorceress Skill Levels") And StringInStr($Item,"+3 to Blizzard") And StringInStr($Item,"Faster Cast Rate") Then
MouseClick("right")
Call("WriteLog")
EndIf
If StringInStr($Item,"+2 to Sorceress Skill Levels") And StringInStr($Item,"+3 to Enchant") And StringInStr($Item,"Faster Cast Rate") Then
MouseClick("right")
Call("WriteLog")
EndIf
If StringInStr($Item,"+2 to Sorceress Skill Levels") And StringInStr($Item,"+3 to Energy Shield") Then
MouseClick("right")
Call("WriteLog")
EndIf
FileClose($ItemFile)
FileDelete("mm.ItemReader.txt")
EndFunc
Func WriteLog()
$LogFile = FileOpen("ShopBot.log",1)
FileWriteLine($LogFile,_NowDate()&" - "&_NowTime()&@CRLF&@CRLF&$Item&@CRLF)
FileClose($LogFile)
EndFunc
Func QuitGame()
Sleep(3000)
Send("{ESC}")
MouseClick("left",400,280,1,0)
Sleep(10000)
Call("CheckStatus")
Call("CreateGame")
EndFunc
Func QuitBot()
ProcessClose("mm.ItemReader.exe")
FileDelete("mm.ItemReader.txt")
Exit
EndFunc