#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=ShopBot.ico #AutoIt3Wrapper_Compression=4 #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #Include #Include 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