[Goldfarming] Dank Celler [AutoIT Script] [DH based on chancitys] [800x600] menu

User Tag List

Page 8 of 19 FirstFirst ... 456789101112 ... LastLast
Results 106 to 120 of 273
  1. #106
    stealthingyew's Avatar Knight-Lieutenant
    Reputation
    12
    Join Date
    Jun 2012
    Posts
    257
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by LATM View Post
    The 800x600 version has a lot of strange bugs and quirks in the ilvl code. I just put out a 1920x1080 port of Chancity with the rest of my DH code that was previously in blacksack's. All iLVL stash and inventory bugs should be perfect in that version. Running for a long time with no failures.

    Posted in main page.
    There is currently 2 things wrong with the ilvl coding part and i think i got 1 corrected other isnt really an issue just a labeling problem. It labels crafting materials as legendary in the debug log all else is correct. The other bug was it wasnt detecting the middle line becuase in 800x600 the line is different pixel colors where in 1920 its not. It has been running 12 hours atm with all the changes I made last night going to work will post it when I am back from work.

    If you are not detecting the cellar 1 check your run speed use 0% or 25% not anything in between as it wasn't created or tested with it. If that doesn't work try your own image.

    Ill help the ones having problems when im off work running late that is all i can offer at the moment.
    Last edited by stealthingyew; 07-16-2012 at 04:54 AM.

    [Goldfarming] Dank Celler [AutoIT Script] [DH based on chancitys] [800x600]
  2. #107
    Saruman69's Avatar Member
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    24
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Any fix for my problem? After shooting 2 cluster arrows The script keep getting stuck at shooting devouring arrow non stop. I figure out that it doesn't A) let go of the shift button and B) doesn't let go of the left mouse button which makes it to attack without stopping. Mainly the problem I think is getting stuck on B) as after i changed the stand still button to something else the scripts didn't attack non stop but it was still holding left button of the mouse. Any help would be greatly appreciated!

  3. #108
    sydeu's Avatar Master Sergeant
    Reputation
    2
    Join Date
    Jun 2012
    Posts
    87
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Saruman69 View Post
    Any fix for my problem? After shooting 2 cluster arrows The script keep getting stuck at shooting devouring arrow non stop. I figure out that it doesn't A) let go of the shift button and B) doesn't let go of the left mouse button which makes it to attack without stopping. Mainly the problem I think is getting stuck on B) as after i changed the stand still button to something else the scripts didn't attack non stop but it was still holding left button of the mouse. Any help would be greatly appreciated!
    post your exact script.

  4. #109
    Saruman69's Avatar Member
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    24
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by sydeu View Post
    post your exact script.
    Code:
    ;=========== DO NOT TOUCH ===========;
    #RequireAdmin
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ScreenCapture.au3>
    #include <GoldRead.au3>
    Opt('MouseCoordMode', 2)
    Opt('PixelCoordMode', 2)
    
    
    ;GUI Predeclare to prevent firing the Case statements
    Global $lbllink,$mFile,$mOptions,$lblRun,$lblLocation,$lblStatus,$lblLast,$lblRuntime,$lblGold,$lblCellars,$lblStats,$mAutoUpdate,$SettingsGUI,$Settings,$tsSettings,$grpgameAutoStart,$lblgameDiabloIIILoc,$txtgameDiabloIIILoc,$lblgamePassword,$txtgamePassword,$cbgameAutoStart,$btngameDiabloIIILoc,$tsLooting,$grpLoot,$etlootCustom,$cblootSet,$cblootLegendary,$cblootRare,$cblootMagic,$cblootCustom,$tsStash,$grpStashing,$cbstashSet,$cbStashLegendary,$cbstashRare,$cbstashMagic,$cbStashTomes,$cbStashGems, $tsVendoring,$grpVendoring,$cbvendorRare,$cbvendorMagic,$cbvendorLegendary,$cbvendorSet,$cmbvendorRows,$lblVendorRow,$cbvendorAll, $lblVendorCol,$cmbVendorColumns,$tsSkills,$grpSkills,$txtSkill1,$txtSkill2,$txtSkill3,$txtSkill4,$lblskill1,$lblSkill2,$lblSkill3, $lblSkill4,$cbCellarDetectScreenShots, $btnSave,$grpAdd,$txtAddMove, $txtAddDPS, $lblAddDPS,$cbAddGoldOnly, $lbltimingGameLoad, $lbltimingCellarClick, $lbltimingWormHole, $lbltimingMiddleDoor, $lbltimingAbort, $lbltimingTP, $lbltimingLoot, $lbltimingLootRun, $txttimingGameLoad, $txttimingWormHole, $txttimingTP, $txttimingCellarClick, $txttimingMiddleDoor, $txttimingLootRun, $txttimingLoot, $txttimingAbort,$txtRareStashilvl, $txtRareSalvageilvl, $txtRareVendorilvl, $txtMagicStashilvl, $txtMagicSalvageilvl, $txtMagicVendorilvl,$lblitems,$lblgear,$lblStartingG,$CurrentItems
    
    Global $size = WinGetClientSize("[CLASS:D3 Main Window Class]"), $Kill = ProcessList("AutoIt3_x64.exe"),$mLootIn = 0, $x_ratio, $y_ratio, $AddDPS = 0,$attackTime = 0, $hFont = 0, $title, $Paused, $Go = 0, $i = 0, $gX = 0, $gY = 0, $GemCount = 0, $LegendaryCount = 0, $SetCount = 0, $RareCount = 0, $deathCount = 0, $MagicCount = 0, $repairCount = 0, $closedcellarCount = 0, $cellarCount = 0, $countMissedCellar = 0, $MissedCellarCountPercent = 0, $t = TimerInit(), $rt = 0, $run = 0, $yellow = 0xFFF000, $red = 0xD90000, $StartingGold = 0,$AccumulatedGold = 0,$GPH = 0, $OpenCellarAvg = 0, $OpenCellarSec = 0,$ClosedCellarAvg, $ClosedCellarSec = 0,$CellCoord = 0, $c = 0, $RunsPerHour = 0,$closedCellarCountPercent = 0, $repairCountPercent = 0, $deathsCountPercent = 0, $cellarCountPercent = 0, $settingsINI = "Settings.ini", $StashSelectedTab = 0,$Items = 0
    Global $gems[4] = ["Em1.png", "Ru1.png", "To1.png", "Am1.png"]
    Global $AnalyzedLoot[10][6]
    Global $StashTabs[3][2] = [[281,127], [281,199], [285,271]]
    
    
    For $i = 1 To $Kill[0][0]
    	$CurrentPID = @AutoItPID
    	If $CurrentPID < $Kill[$i][1] or $CurrentPID > $Kill[$i][1] Then
    	ProcessClose($Kill[$i][1])
    	EndIf
     Next
    
    DirCreate("shots")
    DirCreate("shots\Start")
    DirCreate("shots\Cellar")
    
    $pngLoc = @ScriptDir & "\pics\" & @DesktopWidth & "x" & @DesktopHeight& "\"
    
    If Not FileExists($pngLoc & "MainMenu.png") Then
    	MsgBox(16, "Fatal Error", "FATAL ERROR: Cannot find: " & $pngLoc & "MainMenu.png" & @CRLF & "Make sure your desktop resolution is 800x600")
    	Exit
    EndIf
    
    If @OSArch = "X64" Then DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)
    If @OSArch = "X64" And Not @AutoItX64 Then MsgBox(16, "ERROR", "Why aren't you running the 64-bit AutoIt??? Expect bugs!")
    
    ;GUI Title Bar
    For $i = 0 To Random(0, 7, 1)
    	$title &= Chr(Random(97, 122, 1))
    Next
    For $i = 0 To Random(5, 10, 1)
    	$title &= Chr(Random(65, 90, 1))
    Next
    $title &= " "
    
    
    ;==================================================
    
    $totalItems = 1	;Number of items in the pick array
    ;$currentArrayItem = 0x
    Global $pick[$totalItems] 	;DONT CHANGE THIS
    
    ;Cellar Detection
    Global $cellarCoordx[7] = [166,137,240,245,121,174,243]
    Global $cellarCoordy[7]=  [146,145,156,144,135,129,150]
    $cellarCheckSleep = 180
    $Screenshot = 1
    
    ;AutoStart
    $gameDiabloIIILoc = "C:\" ;Location of Diablo 3 executable
    $gameAutoStart = 0 ; Set this to 1 to start game from desktop or reco from closed game
    $gameStartTime = 9000  ;Change depending on computer/internet speed
    $gamePassword = "Your Password" ;Symbols go in brackets "Password1{!}"
    $gameExecutable = "Diablo III.exe"
    
    ;Change to match your abilities (1-4 by default)z
    $Skill1 = "1"
    $Skill2 = "2"
    $Skill3 = "3"
    $Skill4 = "4"
    ;==================================================
    
    ;Looting
    $LootSet = 1 ;1 if you want to pick up Set
    $LootLegendary = 1;1 if you want to pick up Legendaries
    $LootRare = 1 ;1 if you want to pick up Rares
    $LootMagic = 1 ;1 if you want to pick up Magic
    $LootCustom = 0 ;1 if you want to pick up Custom Items
    $LootGoldOnly = 0 ; 1 if you want to not loot anything but gold
    ;==================================================
    
    ;Stashing
    $StashLegendary = 1 ;1 if you want to store Legendary items in the stash
    $StashSet = 1 ;1 if you want to store Set items in the stash
    $StashRare = 1 ;1 if you want to store Rare items in the stash
    $StashMagic = 0 ;1 if you want to store Magic items in the stash
    $StashTomes = 1 ;1 if you want to store Tomes items in the stash
    $StashGems = 1 ;1 if you want to store Gems items in the stash
    $StashLoot = $StashMagic  + $StashRare + $StashLegendary + $Stashset + $StashGems + $StashTomes
    ;==================================================
    
    ;Vendoring
    $VendorSet = 0
    $VendorLegendary = 0
    $VendorRare = 0 ;1 if you want to vendor Rares
    $VendorMagic = 1 ;1 if you want to vendor Magic
    $vendorRows = 6 ;# of rows to vendor, starting from the top (default = 5: bottom row is safe)
    $vendorColumns = 10 ;# of columns to vendor, starting from left
    $VendorAll = 1 ;Vendors everything but identified items
    $VendorLoot = $VendorMagic + $VendorRare + $VendorLegendary + $VendorSet +  $VendorAll
    ;==================================================
    
    ;Additional
    $AddDPS = 0 ;Time (in s) the script will shoot sarkoth with the right button
    
    ;==================================================
    
    ;Timing
    
    $timingCellarClick = 750 ;time (in ms) it takes to run into the cellar
    
    $timingAbort = 300 ;time (in ms) to wait to cast abort skills, decrease if you have high attack speed
    $timingGameLoad = 5000 ;Time (in ms) the script waits for the game to load before it starts pathfinding. Slow this down for slower hard drives
    $timingTP = 6000;Time (in ms) the script waits for teleport before exiting the game
    $timingLoot = 800;Time (in ms) the script waits before each loot attempt
    $timingLootRun = 600;Time (in ms) the script runs towards sarkoth dead body
    ;==================================================
    
    
    ;Anal Loot!!
    $AnalLoot = 1
    $RareSalvageiLvl = 61 ;and below to Salvage #
    $MagicSalvageiLvl = 62 ;and below to Salvage #
    $RareStashiLvl = 62 ;and above to Stash #
    $MagicStashiLvl = 63 ;and above to Stash #
    $RareVendoriLvl = 60 ;and below to Vendor #
    $MagicVendoriLvl = 60 ;and below to Vendor #
    $AnalSpeed = 50
    ;==================================================
    ;New Loot Coords
    $slot1x = 530  ; first slot x coordinate
    $slot1y = 338 ;first slot y coordinate
    
    
    $offset = 27 ; offset for each slot
    
        ;$slotLineX = 520 ;First slot line x coordinate
    	;$slotLineY = 324 ;First slot line y coordinate
    	;$slotLineOffSet = 26.75 ;offset for each line
    	
    $slotLineTopX = 519 ;First slot line x coordinate
    $slotLineTopY = 320 ;First slot line y coordinate
    $slotLineBotX = 541 ;First slot line x coordinate
    $slotLineBotY = 352 ;First slot line y coordinate
    $slotLineOffSet = 26.75 ;offset for each line
    
    $CellMiddleTopX = 530
    $CellMiddleTopY = 339
    $CellMiddleBotX = 531
    $CellMiddleBotY =341
    $CellMiddleO = 26.75
    ;==================================================
    
    ;====DONT CHANGE=====;
    $AnalSalvage = 0 ;determines whether not theres items to salvage
    $AnalRareIdentify = 0  ;determines whether not theres a rare to identify, don't change
    $AnalVendor = 0
    $slotError = 0;Used if line doesn't exisit
    ;==================================================
    
    
    HotKeySet("=", "Begin") ;script toggled on/off by pressing =
    HotKeySet("{PAUSE}", "TogglePause") ;script toggle pause by pressing Pause/Break key
    HotKeySet("x", "Stop") ;script stopped by pressing x
    
    Call("ReadINI")
    
     If $AddDPS = 0 then 
            MsgBox(16, "First Run", "Edit your settings.")
    	 EndIf
    	 
    
    If $gameAutoStart = 1 Then 
       Call("GameAutostart")
    Else
       $size = WinGetClientSize("[CLASS:D3 Main Window Class]")
       If $size = 0 Then
            MsgBox(16, "Error", "Diablo III is not running, cannot grab resolution!" & @CRLF & "Exiting...")
            Exit
       EndIf
       $x_ratio = $size[0] / 800 
       $y_ratio =  $size[1] / 600 
    EndIf
       
    MainGUI()
    Func MainGUI()
    
    $frmBot = GUICreate($title &  " -waiting to start", 255, 157, Round(10 * $x_ratio), Round(375 * $y_ratio), -1, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW), 0)
    GUISetBkColor(0xC0C0C0)
    $mFile = GUICtrlCreateMenu("File")
    $mStart = GUICtrlCreateMenuItem("Start", $mFile)
    $mOptions = GUICtrlCreateMenu("Options")
    $mSettings = GUICtrlCreateMenuItem("Settings", $mOptions)
    
    $lblRun = GUICtrlCreateLabel("Run Number: 0 - Runs Per Hour: 0", 2, 0, 260, 24)
    GUICtrlSetFont(-1, 10, 600, 0, "Segoe UI")
    GUICtrlSetColor(-1, 0xFF0000)
    
    $lblStatus = GUICtrlCreateLabel("Status: ", 2, 20, 260, 17)
    $lblRuntime = GUICtrlCreateLabel("Total Runtime: 0 hours, 0 minutes", 2, 35, 260, 17)
    $lblLast = GUICtrlCreateLabel("Open Cellar Avg: 0s - Closed Cellar Avg: 0s", 2, 50, 260, 17)
    $lblCellars = GUICtrlCreateLabel("Cellars Open: 0 (0%) - Cellars Closed: 0 (0%)", 2, 65, 260, 17)
    $lblGold = GUICtrlCreateLabel("0 Per Hour - Accumulated Gold: 0", 2, 80, 260, 17)
    $lblStartingG=GUICtrlCreateLabel("Staring Gold: 0", 2, 95, 260, 17)
    $lblGear= GUICtrlCreateLabel("Legendary: 0 Set: 0 Rare: 0 Magics: 0",2, 110,260,17)
    
    GUISetState()
    
    While 1
    
    $aMsg = GUIGetMsg(1) ; Use advanced parameter to get array
    	Switch $aMsg[1] ; check which GUI sent the message
    		Case $frmBot
    			Switch $aMsg[0]
    				Case $mStart
    					Call("Begin")
    				Case $mSettings
    					GUICtrlSetState($mSettings, $GUI_DISABLE)
    					SettingsGUI()
    
    				 EndSwitch
    		Case $SettingsGUI
    		   Switch $aMsg[0] ; Now check for the messages for $hGUI2
    			Case $cbStashSet
    			If IsChecked($cbStashSet) Then GUICtrlSetState($cbvendorSet,$GUI_UNCHECKED)
    		Case $cbStashLegendary
    			If IsChecked($cbStashLegendary) Then GUICtrlSetState($cbvendorLegendary,$GUI_UNCHECKED)
    		Case $cbStashRare
    			If IsChecked($cbStashRare) Then GUICtrlSetState($cbvendorRare,$GUI_UNCHECKED)
    		Case $cbStashMagic
    			If IsChecked($cbStashMagic) Then GUICtrlSetState($cbvendorMagic,$GUI_UNCHECKED)
    		Case $cbvendorSet
    			If IsChecked($cbvendorSet) Then GUICtrlSetState($cbStashSet,$GUI_UNCHECKED)
    		Case $cbvendorLegendary
    			If IsChecked($cbvendorLegendary) Then GUICtrlSetState($cbStashLegendary,$GUI_UNCHECKED)
    		Case $cbVendorRare
    			If IsChecked($cbvendorRare) Then GUICtrlSetState($cbStashRare,$GUI_UNCHECKED)
    		Case $cbVendorMagic
    			If IsChecked($cbvendorMagic) Then GUICtrlSetState($cbStashMagic,$GUI_UNCHECKED)
    		Case $cbgameAutoStart
    			If IsChecked($cbgameAutoStart) And FileExists(GUICtrlRead($txtgameDiabloIIILoc) & "Diablo III.exe") = 0 Then
    				GUICtrlSetState($cbgameAutoStart,$GUI_UNCHECKED)
    				EndIF
    		Case $txtSkill1
    			SkillAlphaNum($txtSkill1,$Skill1,0)
    		Case $txtSkill2
    			SkillAlphaNum($txtSkill2,$Skill2,0)
    		Case $txtSkill3
    			SkillAlphaNum($txtSkill3,$Skill3,0)
    		Case $txtSkill4
    			SkillAlphaNum($txtSkill4,$Skill4,0)
    			 
    			
    		Case $btngameDiabloIIILoc
    			$GUIfileSelect = FileSelectFolder ("Diablo III Executable Location","")
    			If Not @Error And FileExists($GUIfileSelect & "\Diablo III.exe") = 0 Then
    				$GUIwrongLocation = MsgBox ( "6", "Wrong Location", "Select the folder with the Diablo III.exe!")
    				If $GUIwrongLocation = 2 Or 11 Then
    					GUISetCheck(0,$cbgameAutoStart)
    					GUIUpdate($txtgameDiabloIIILoc,$GUIfileSelect)
    				EndIf
    			ElseIf FileExists($GUIfileSelect & "\Diablo III.exe") = 1 Then
    			GUIUpdate($txtgameDiabloIIILoc,$GUIfileSelect & "\")
    			GUISetCheck(1,$cbgameAutoStart)
    			Endif
    
    			Case $btnSave
    			Call("SaveINI")
    			GUIDelete($SettingsGUI)
    			GUICtrlSetState($mSettings, $GUI_ENABLE)
    	EndSwitch
    	EndSwitch
    	Call("RestartRun")
    WEnd
    
    EndFunc   ;==>MainGUI
    
    Func SettingsGUI()
    
    $SettingsGUI = GUICreate($title , 443, 195, Round(10 * $x_ratio), Round(375 * $y_ratio), -1,$WS_EX_TOPMOST, 0)
    GUISetIcon(@ScriptDir & "\Setting-icon.ico")
    $Settings = GUICtrlCreateTab(0, 8, 441, 185)
    GUICtrlSetResizing($Settings, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $tsSettings = GUICtrlCreateTabItem("Auto Start")
    $grpgameAutoStart = GUICtrlCreateGroup("", 4, 33, 273, 121)
    $lblgameDiabloIIILoc = GUICtrlCreateLabel("Diablo III Location:", 12, 83, 93, 17)
    $txtgameDiabloIIILoc = GUICtrlCreateInput($gameDiabloIIILoc, 116, 81, 105, 21)
    $lblgamePassword = GUICtrlCreateLabel("Password:", 12, 116, 53, 17)
    $txtgamePassword = GUICtrlCreateInput($gamePassword, 116, 113, 105, 21)
    $cbgameAutoStart = GUICtrlCreateCheckbox("Auto Start", 12, 49, 73, 17)
    $btngameDiabloIIILoc = GUICtrlCreateButton("Browse", 224, 79, 49, 23, 0)
    GUICtrlSetState($txtgameDiabloIIILoc, $GUI_DISABLE)
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $tsLooting = GUICtrlCreateTabItem("Looting")
    $grpLoot = GUICtrlCreateGroup("", 4, 33, 273, 121)
    $etlootCustom = GUICtrlCreateEdit("",148, 73, 121, 65)
    $cblootSet = GUICtrlCreateCheckbox("Set Items", 12, 49, 81, 17)
    $cblootLegendary = GUICtrlCreateCheckbox("Legendary Items", 12, 73, 113, 17)
    $cblootRare = GUICtrlCreateCheckbox("Rare Items", 12, 97, 81, 17)
    $cblootMagic = GUICtrlCreateCheckbox("Magic Items", 12, 121, 81, 17)
    $cblootCustom = GUICtrlCreateCheckbox("Custom Loot", 149, 49, 81, 17)
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $tsstash = GUICtrlCreateTabItem("Stashing")
    $grpStashing = GUICtrlCreateGroup("", 4, 33, 273, 121)
    ;~ $cbstashSet = GUICtrlCreateCheckbox("Set Items", 12, 49, 97, 17)
    ;~ $cbstashLegendary = GUICtrlCreateCheckbox("Legendary Items", 12, 73, 97, 17)
    ;~ $cbstashRare = GUICtrlCreateCheckbox("Rare Items", 12, 97, 97, 17)
    ;~ $cbstashMagic = GUICtrlCreateCheckbox("Magic Items", 12, 121, 96, 17)
    $cbStashGems = GUICtrlCreateCheckbox("Gems", 12, 49, 97, 17)
    $cbStashTomes = GUICtrlCreateCheckbox("Tomes", 12, 73, 97, 17)
    
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $tsAnalLoot = GUICtrlCreateTabItem("Anal Loot")
    $grpAnalLoot = GUICtrlCreateGroup("", 4, 33, 273, 121)
    $lblRareStashiLvl = GUICtrlCreateLabel("Rare Stash:", 12, 52, 60, 17)
    $lblRareSalvageiLvl = GUICtrlCreateLabel("Rare Salvage:", 12, 76, 72, 17)
    $lblRareVendoriLvl = GUICtrlCreateLabel("Rare Vendor:", 12, 100, 67, 17)
    $lblMagicStashiLvl = GUICtrlCreateLabel("Magic Stash:", 136, 52, 66, 17)
    $lblMagicSalvageiLvl = GUICtrlCreateLabel("Magic Salvage:", 136, 76, 78, 17)
    $lblMagicVendoriLvl = GUICtrlCreateLabel("Magic Vendor:", 136, 100, 73, 17)
    $txtRareStashiLvl = GUICtrlCreateInput($RareStashiLvl, 88, 49, 33, 21)
    $txtRareVendoriLvl = GUICtrlCreateInput($RareVendoriLvl, 88, 97, 33, 21)
    $txtRareSalvageiLvl = GUICtrlCreateInput($RareSalvageiLvl, 88, 73, 33, 21)
    $txtMagicStashiLvl = GUICtrlCreateInput($MagicStashiLvl, 216, 49, 33, 21)
    $txtMagicSalvageiLvl = GUICtrlCreateInput($MagicSalvageiLvl, 216, 73, 33, 21)
    $txtMagicVendoriLvl = GUICtrlCreateInput($MagicVendoriLvl, 216, 97, 33, 21)
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $tsSkills = GUICtrlCreateTabItem("Skills")
    $grpSkills = GUICtrlCreateGroup("", 4, 33, 273, 121)
    $txtSkill1 = GUICtrlCreateInput($Skill1, 184, 49, 41, 21)
    $txtSkill2 = GUICtrlCreateInput($Skill2, 184, 73, 41, 21)
    $txtSkill3 = GUICtrlCreateInput($Skill3, 184, 97, 41, 21)
    $txtSkill4 = GUICtrlCreateInput($Skill4, 184, 121, 41, 21)
    $lblskill1 = GUICtrlCreateLabel("Vault(Rattling Roll):", 12, 52, 139, 17)
    $lblSkill2 = GUICtrlCreateLabel("Preperation(Battlescars):", 12, 76, 124, 17)
    $lblSkill3 = GUICtrlCreateLabel("Companion(Ferret):", 12, 100, 103, 17)
    $lblSkill4 = GUICtrlCreateLabel("Spike Trap(Scatter):", 12, 124, 160, 17)
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $tsTiming = GUICtrlCreateTabItem("Timing")
    $grpTiming = GUICtrlCreateGroup("", 4, 33, 273, 121)
    $lbltimingGameLoad = GUICtrlCreateLabel("Game Load:", 12, 52, 62, 17)
    $lbltimingTP = GUICtrlCreateLabel("Town Portal:", 12, 76, 64, 17)
    
    $lbltimingCellarClick = GUICtrlCreateLabel("Cellar Click:", 12, 124, 59, 17)
    $lbltimingAbort = GUICtrlCreateLabel("Abort:", 139, 52, 32, 17)
    $lbltimingMiddleDoor = GUICtrlCreateLabel("Middle Door:", 139, 76, 64, 17)
    $lbltimingLootRun = GUICtrlCreateLabel("Loot Run:", 139, 100, 51, 17)
    $lbltimingLoot = GUICtrlCreateLabel("Loot:", 139, 124, 28, 17)
    $txttimingGameLoad = GUICtrlCreateInput("2000", 80, 49, 41, 21)
    $txttimingTP = GUICtrlCreateInput("5000", 80, 73, 41, 21)
    
    $txttimingCellarClick = GUICtrlCreateInput("750", 80, 121, 41, 21)
    $txttimingAbort = GUICtrlCreateInput("255", 206, 49, 41, 21)
    
    $txttimingLootRun = GUICtrlCreateInput("300", 206, 97, 41, 21)
    $txttimingLoot = GUICtrlCreateInput("800", 206, 121, 41, 21)
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $tsCellarDetect = GUICtrlCreateTabItem("Cellar Detect")
    $grpCellarDetect = GUICtrlCreateGroup("", 4, 33, 273, 121)
    $lblCellarDetectX = GUICtrlCreateLabel("X Coordinates:", 12, 52, 73, 17)
    $lblCellarDetectY = GUICtrlCreateLabel("Y Coordinates:", 12, 76, 73, 17)
    $lblCellarDetectTime = GUICtrlCreateLabel("Check Time:", 12, 100, 64, 17)
    $cbCellarDetectScreenShots = GUICtrlCreateCheckbox("Screen Shots", 12, 124, 97, 17)
    $txtCellarDetectXCoords = GUICtrlCreateInput("166,137,240,245,121", 96, 49, 169, 21)
    GUICtrlSetState($txtCellarDetectXCoords, $GUI_DISABLE)
    $txtCellarDetectYCoords = GUICtrlCreateInput("146,145,156,144,135", 96, 73, 169, 21)
    GUICtrlSetState($txtCellarDetectYCoords, $GUI_DISABLE)
    $txtCellarDetectTime = GUICtrlCreateInput("155", 96, 97, 41, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    
    GUICtrlCreateTabItem("")
    $btnSave = GUICtrlCreateButton("Save", 352, 160, 75, 25, 0)
    $grpAdd = GUICtrlCreateGroup("Additional", 280, 33, 153, 121)
    $cbAddGoldOnly = GUICtrlCreateCheckbox("Gold Only", 288, 97, 97, 17)
    $txtAddDPS = GUICtrlCreateInput($AddDPS, 376, 49, 49, 21)
    $lblAddDPS = GUICtrlCreateLabel("DPS:", 288, 52, 29, 17)
    
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState()
    
    
    getCustomKeys()
    UpdateGUI()
    EndFunc ;===SettingsGUI
    
    Func ReadINI()
        getCustomkeys()
    	$gameAutoStart = IniRead($settingsINI, "Auto Start", "Auto Start", $gameAutoStart)
    	$gameDiabloIIILoc = IniRead($settingsINI, "Auto Start", "Game Location", $gameDiabloIIILoc)
    	$gamePassword = IniRead($settingsINI, "Auto Start", "Password", $gamePassword)
    	$Skill1 = IniRead($settingsINI, "Skills", "Skill1", $Skill1)
    	$Skill2 = IniRead($settingsINI, "Skills", "Skill2", $Skill2)
    	$Skill3 = IniRead($settingsINI, "Skills", "Skill3", $Skill3)
    	$Skill4 = IniRead($settingsINI, "Skills", "Skill4", $Skill4)
    
    	$AddDPS = IniRead($settingsINI, "Additional", "DPS", $AddDPS )
    	$LootSet = IniRead($settingsINI, "Looting", "Set", $LootSet)
    	$LootLegendary = IniRead($settingsINI, "Looting", "Legendary", $LootLegendary)
    	$LootRare = IniRead($settingsINI, "Looting", "Rare", $LootRare)
    	$LootMagic = IniRead($settingsINI, "Looting", "Magic", $LootMagic)
    	$LootCustom = IniRead($settingsINI, "Looting", "Custom", $LootCustom)
    	$LootGoldOnly = IniRead($settingsINI, "Looting", "Gold Only", $LootGoldOnly)
    	$StashSet = IniRead($settingsINI, "Stashing", "Set", $StashSet)
    	$StashLegendary = IniRead($settingsINI, "Stashing", "Legendary", $StashLegendary)
    	$StashRare = IniRead($settingsINI, "Stashing", "Rare", $StashRare)
    	$StashMagic = IniRead($settingsINI, "Stashing", "Magic", $StashMagic)
    	$StashGems = IniRead($settingsINI, "Stashing", "Gems", $StashGems)
    	$StashTomes = IniRead($settingsINI, "Stashing", "Tomes", $StashTomes)
    	$VendorSet = IniRead($settingsINI, "Vendoring", "Set", $VendorSet)
    	$VendorLegendary = IniRead($settingsINI, "Vendoring", "Legendary", $VendorLegendary)
    	$VendorRare = IniRead($settingsINI, "Vendoring", "Rare", $VendorRare)
    	$VendorMagic = IniRead($settingsINI, "Vendoring", "Magic", $VendorMagic)
    	$VendorAll  = IniRead($settingsINI, "Vendoring", "All Items", $VendorAll)
    	$vendorRows = IniRead($settingsINI, "Vendoring", "All-Rows", $vendorRows)
    	$vendorColumns = IniRead($settingsINI, "Vendoring", "All-Columns", $vendorColumns)
    	
    	$timingGameLoad = IniRead($SettingsINI, "Timing", "Game Load", $timingGameLoad)
    
        $timingTP = Iniread($SettingsINI, "Timing", "Town Portal", $timingTP)
        
    	$timingCellarClick = Iniread($SettingsINI, "Timing", "Cellar Click", $timingCellarClick)
    
        $timingLootRun = Iniread($SettingsINI, "Timing", "Loot Run", $timingLootRun)
        $timingLoot = Iniread($SettingsINI, "Timing", "Loot", $timingLoot)
        $timingAbort = Iniread($SettingsINI, "Timing", "Abort", $timingAbort)
    	$ScreenShot = InIread($SettingsINI, "Cellar Detect", "Screen Shot", $ScreenShot)
    	$RareStashilvl=IniRead($settingsINI, "Anal Loot", "Stash Rare", $RareStashiLvl)
        $RareSalvageilvl=IniRead($settingsINI, "Anal Loot", "Salvage Rare", $RareSalvageilvl)
        $RareVendoriLvl=IniRead($settingsINI, "Anal Loot", "Vendor Rare", $RareVendoriLvl)
        $MagicStashilvl=IniRead($settingsINI, "Anal Loot", "Stash Magic", $MagicStashilvl)
        $MagicSalvageilvl=IniRead($settingsINI, "Anal Loot", "Salvage Magic", $MagicSalvageilvl)
        $MagicVendorilvl=IniRead($settingsINI, "Anal Loot", "Vendor Magic", $MagicVendorilvl)
    EndFunc   ;==>ReadINI
    
    Func UpdateGUI()
    ;GUI Update
    
    ;Loot
    GUISetCheck($gameAutoStart,$cbgameAutoStart)
    GUISetCheck($LootSet,$cbLootSet)
    GUISetCheck($LootLegendary,$cbLootLegendary)
    GUISetCheck($LootRare,$cbLootRare)
    GUISetCheck($LootMagic,$cbLootMagic)
    GUISetCheck($LootCustom,$cbLootCustom)
    GUISetCheck($LootGoldOnly,$cbAddGoldOnly)
    ;=============================================
    
    ;Stash
    GUISetCheck($StashSet,$cbStashSet)
    GUISetCheck($StashLegendary,$cbStashLegendary)
    GUISetCheck($StashRare,$cbStashRare)
    GUISetCheck($StashMagic,$cbStashMagic)
    GUISetCheck($StashGems,$cbStashGems)
    GUISetCheck($StashTomes,$cbStashTomes)
    ;=============================================
    
    ;Vendor
    If Not IsChecked($cbStashSet) Then GUISetCheck($VendorSet,$cbvendorSet)
    If Not IsChecked($cbStashLegendary) Then GUISetCheck($VendorLegendary,$cbvendorLegendary)
    If Not IsChecked($cbStashRare) Then GUISetCheck($VendorRare,$cbVendorRare)
    If Not IsChecked($cbStashMagic) Then GUISetCheck($VendorMagic,$cbVendorMagic)
    GUISetCheck($VendorAll,$cbVendorAll)
    ;=============================================
    
    ;Cellar Detect
    GUISetCheck($ScreenShot,$cbCellarDetectScreenShots)
    ;=============================================
    
    
    ;Misc
    ;Skills
    SkillAlphaNum($txtSkill1,$Skill1,1)
    SkillAlphaNum($txtSkill2,$Skill2,1)
    SkillAlphaNum($txtSkill3,$Skill3,1)
    SkillAlphaNum($txtSkill4,$Skill4,1)
    
    ;AutoStart
    GUIUpdate($txtgamePassword,$gamePassword)
    GUIUpdate($txtgameDiabloIIILoc,$gameDiabloIIILoc)
    
    ;Vendoring
    GUIUpdate($cmbVendorColumns,$vendorColumns)
    GUIUpdate($cmbvendorRows,$vendorRows)
    
    ;Timing
    GUIUpdate($txttimingGameLoad, $timingGameLoad)
    
    
    
    GUIUpdate($txttimingTP, $timingTP)
    GUIUpdate($txttimingCellarClick, $timingCellarClick)
    
    
    
    
    GUIUpdate($txttimingLootRun, $timingLootRun)
    GUIUpdate($txttimingLoot, $timingLoot)
    GUIUpdate($txttimingAbort, $timingAbort)
    
    ;anal loot
    GUIUpdate($txtRareStashiLvl,$RareStashiLvl)
    GUIUpdate($txtRareSalvageiLvl,$RareSalvageiLvl)
    GUIUpdate($txtRareVendoriLvl,$RareVendoriLvl)
    GUIUpdate($txtMagicStashiLvl,$MagicStashiLvl)
    GUIUpdate($txtMagicSalvageiLvl,$MagicSalvageiLvl)
    GUIUpdate($txtMagicVendoriLvl,$MagicVendoriLvl)
    ;=============================================
    
    ;Additional
    GUIUpdate($txtAddDPS, $AddDPS) 
    ;=============================================
    EndFunc
    
    Func SaveINI()
    	FileDelete($settingsINI)
    	IniWrite($settingsINI, "Auto Start", "Auto Start", ConvertFlag($cbgameAutoStart))
    	IniWrite($settingsINI, "Auto Start", "Game Location", GUICtrlRead($txtgameDiabloIIILoc))
    	IniWrite($settingsINI, "Auto Start", "Password", GUICtrlRead($txtgamePassword))
    	IniWrite($settingsINI, "Auto Start", "Task Manager Executable Name", $gameExecutable)
    	IniWrite($settingsINI, "Skills", "Skill1", GUICtrlRead($txtSkill1))
    	IniWrite($settingsINI, "Skills", "Skill2", GUICtrlRead($txtSkill2))
    	IniWrite($settingsINI, "Skills", "Skill3", GUICtrlRead($txtSkill3))
    	IniWrite($settingsINI, "Skills", "Skill4", GUICtrlRead($txtSkill4))
    	IniWrite($settingsINI, "Additional", "DPS", GUICtrlRead($txtAddDPS))
    
    
    
    	IniWrite($settingsINI, "Looting", "Set", ConvertFlag($cbLootSet))
    	IniWrite($settingsINI, "Looting", "Legendary", ConvertFlag($cbLootLegendary))
    	IniWrite($settingsINI, "Looting", "Rare", ConvertFlag($cbLootRare))
    	IniWrite($settingsINI, "Looting", "Magic", ConvertFlag($cbLootMagic))
    	IniWrite($settingsINI, "Looting", "Custom", ConvertFlag($cbLootCustom))
    	IniWrite($settingsINI, "Looting", "Gold Only", ConvertFlag($cbAddGoldOnly))
    	IniWrite($settingsINI, "Stashing", "Set", ConvertFlag($cbStashSet))
    	IniWrite($settingsINI, "Stashing", "Legendary", ConvertFlag($cbStashLegendary))
    	IniWrite($settingsINI, "Stashing", "Rare", ConvertFlag($cbStashRare))
    	IniWrite($settingsINI, "Stashing", "Magic", ConvertFlag($cbStashMagic))
        IniWrite($settingsINI, "Stashing", "Gems",  ConvertFlag($cbStashGems))
    	IniWrite($settingsINI, "Stashing", "Tomes",  ConvertFlag($cbStashTomes))
       	IniWrite($settingsINI, "Vendoring", "Set", ConvertFlag($cbVendorSet))
    	IniWrite($settingsINI, "Vendoring", "Legendary", ConvertFlag($cbVendorLegendary))
    	IniWrite($settingsINI, "Vendoring", "Rare", ConvertFlag($cbVendorRare))
    	IniWrite($settingsINI, "Vendoring", "Magic", ConvertFlag($cbVendorMagic))
    	IniWrite($settingsINI, "Vendoring", "All Items", ConvertFlag($cbVendorAll))
    	IniWrite($settingsINI, "Vendoring", "All-Rows", GUICtrlRead($cmbvendorRows))
    	IniWrite($settingsINI, "Vendoring", "All-Columns", GUICtrlRead($cmbVendorColumns))
    
    	IniWrite($settingsINI, "Timing", "Game Load", GUICtrlRead($txttimingGameLoad))
    
    
    
    	IniWrite($settingsINI, "Timing", "Town Portal", GUICtrlRead($txttimingTP))
    	IniWrite($settingsINI, "Timing", "Cellar Click", GUICtrlRead($txttimingCellarClick))
    
    
    	IniWrite($settingsINI, "Timing", "Loot Run", GUICtrlRead($txttimingLootRun))
    	IniWrite($settingsINI, "Timing", "Loot", GUICtrlRead($txttimingLoot))
    	IniWrite($settingsINI, "Timing", "Abort", GUICtrlRead($txttimingAbort))
    	IniWrite($SettingsINI, "Cellar Detect", "Screen Shot", ConvertFlag($cbCellarDetectScreenShots))
        IniWrite($settingsINI, "Anal Loot", "Stash Rare", GUICtrlRead($txtRareStashilvl))
        IniWrite($settingsINI, "Anal Loot", "Salvage Rare", GUICtrlRead($txtRareSalvageilvl))
        IniWrite($settingsINI, "Anal Loot", "Vendor Rare", GUICtrlRead($txtRareVendoriLvl))
        IniWrite($settingsINI, "Anal Loot", "Stash Magic", GUICtrlRead($txtMagicStashilvl))
        IniWrite($settingsINI, "Anal Loot", "Salvage Magic", GUICtrlRead($txtMagicSalvageilvl))
        IniWrite($settingsINI, "Anal Loot", "Vendor Magic", GUICtrlRead($txtMagicVendorilvl))
         saveCustomKeys()
    	Call("ReadINI")
    	$StashLoot = $StashMagic  + $StashRare + $StashLegendary + $Stashset + $StashGems + $StashTomes
        $VendorLoot = $VendorMagic + $VendorRare + $VendorLegendary + $VendorSet +  $VendorAll
    EndFunc   ;==>SaveINI
    
    
    
    Func GUISetCheck($Flag,$CheckBox)
    	If $Flag = 0 Then
    		GUICtrlSetState($CheckBox, $GUI_UNCHECKED)
    	ElseIf $Flag = 1 Then
    		GUICtrlSetState($CheckBox, $GUI_CHECKED)
    	EndIf
    EndFunc
    
    Func ConvertFlag($CheckBox)
    	If GUICtrlRead($Checkbox) = 4 Or GUICtrlRead($Checkbox) = 68 Then
    		Return 0
    	Else
    		Return 1
    	EndIf
    EndFunc
    
    Func GUIUpdate($CheckBox,$Value)
    	GUICtrlSetData($CheckBox, $Value)
    EndFunc
    
    Func saveCustomKeys()
    	$string = GUICtrlRead($etlootCustom)
    	If Not $string = "" Then
    		$temp = StringReplace($string, @CRLF, " ")
    		$temp = StringStripWS($temp, 7)
    		$arr = StringSplit($temp, " ")
    
    		For $a = 1 To $arr[0]
    			$tempLoc = StringSplit($arr[$a],"|")
    			If FileExists($pngLoc & $tempLoc[1] & ".png") Then
    			IniWrite($settingsINI, "Custom Items", "Key" & $a , $arr[$a])
    			EndIf
    		Next
    		Return 1
    	 Else
       If $totalItems < 1 Then 
    		$LootCustom = "0"
    		GUICtrlSetState($cblootCustom, $GUI_UNCHECKED)
    		EndIf
    		Return @error
    	EndIf
    EndFunc
    
    Func getCustomKeys()
    	$string = ""
    	$var = IniReadSection($settingsINI, "Custom Items")
    	If Not @error Then
    		$totalItems = $var[0][0]
    		If $totalItems > 0 Then
    			ReDim $pick[$totalItems]
    		EndIf
    		For $a = 1 To $totalItems
    			$pick[$a-1] = $var[$a][1]
    			$string &= $pick[$a-1] & @CRLF
    		Next
    	Else
    		$totalItems = 0
    	 EndIf
         If $totalItems < 1 Then 
    		$LootCustom = "0"
    		GUICtrlSetState($cblootCustom, $GUI_UNCHECKED)
    	 EndIf
    	GUICtrlSetData($etlootCustom, $string)
    EndFunc
    
    Func IsChecked($control)
     Return BitAnd(GUICtrlRead($control),$GUI_CHECKED) = $GUI_CHECKED
    EndFunc
    
    Func SkillAlphaNum($txtSkill,$Skill,$UpdateFlag)
    If $UpdateFlag = 0 Then $temp = GUICtrlRead($txtSkill)
    If $UpdateFlag = 1 Then $temp = $Skill
    $temp = StringStripWS($temp, 8)
    If StringLen($temp) = 1 Then
    	If StringRegExp($temp,"[a-zA-Z0-9]") Then
    		GUICtrlSetData($txtSkill, $temp)
    			Else
    		GUICtrlSetData($txtSkill,"1")
    	EndIf
    Else
    	$temp = StringTrimRight($temp, StringLen($temp)-1)
    	GUICtrlSetData($txtSkill, $temp)
    	SkillAlphaNum($txtSkill,$Skill,$UpdateFlag)
    	EndIf
    EndFunc
    
    Func RestartRun()
    	If ($Go) Then
    		$i = 0
    		WinSetTitle($title, "", $title &  " - Running")
    		
    		MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(300, 600) * $y_ratio), 1) ;Moves mouse out of the way
    		;Checks if the player is Dead/Logout/Window, then if in Main Menu, etc.
    		If CheckDead() Then
    			Return
    		ElseIf CheckFor("ExitGame", "", Round(370 * $x_ratio), Round(232 * $y_ratio), Round(431 * $x_ratio), Round(243 * $y_ratio), 0.5, 140) Then
    			GUICtrlSetData($lblStatus, "Status: Exit window up")
    			MouseClick("left", Round(461 * $x_ratio), Round(351 * $y_ratio))
    			Sleep(Random(100, 105))
    			Send("{SPACE}")
    			Return
    		ElseIf CheckFor("MainMenu", "", Round(86 * $x_ratio),Round(225 * $y_ratio) ,Round(174 * $x_ratio),Round(240  * $y_ratio)) Then
    			GUICtrlSetData($lblRun, "Run Number: " & $run & " - Runs Per Hour: " &  Round($RunsPerHour))
    			GUICtrlSetData($lblLocation, "Location: Main Menu")
    			GUICtrlSetData($lblStatus, "Status: Starting Game")
    			WinActivate("Diablo III")
    			RandClick("left", Round(128* $x_ratio), Round(232 * $y_ratio), 10, 20, 1, 1) ;Random Click on the resume button
    			Sleep($timingGameLoad)
    		 ElseIf CheckFor("Road", "Area")  Then
    			Call("TownPortal")
    			Call("LeaveGame")
    			Return
    		ElseIf CheckFor("OldRuins", "Area") Or CheckFor("NewTristram", "Area") Or CheckFor("DankCellar", "Area") Then
    			Call("TownPortal")
    			Call("LeaveGame")
    			Return
     	    ElseIf CheckFor("Disconnect", "", Round(338 * $x_ratio), Round(230* $y_ratio), Round(461 * $x_ratio), Round(242 * $y_ratio), 1, 140) Then
    			GUICtrlSetData($lblStatus, "Status: Network Disconnect window up")
    			MouseClick("left", Round(401 * $x_ratio), Round(351 * $y_ratio),1)
     			Sleep(Random(100, 105))
    
     			Send("{SPACE}")
    			
     			Return
    		ElseIf CheckFor("LimitError", "", Round(700 * $x_ratio), Round(340 * $y_ratio), Round(1200 * $x_ratio), Round(600 * $y_ratio), 1, 140) Then
    			MouseClick("left", Round(960 * $y_ratio), Round(635 * $x_ratio),1)
     			$rand = Random(40000, 80000)
    			GUICtrlSetData($lblStatus, "Status: Input Limit - Waiting " & Round($rand / 1000) & " seconds.")
     			Sleep($rand)
    			Send("{SPACE}")
     			Return
    		 		 
    	   ElseIf CheckFor("connection", "", Round(338 * $x_ratio), Round(230* $y_ratio), Round(461 * $x_ratio), Round(242 * $y_ratio), 1, 140) Then
    			GUICtrlSetData($lblStatus, "Status: Lost Connection window up")
    			MouseClick("left", Round(401 * $x_ratio), Round(351 * $y_ratio),1)
     			Sleep(Random(100, 105))
     			Send("{SPACE}")
    		
     			Return
    			
    else
        GUICtrlSetData($lblStatus, "ERROR: Cannot find Resume button")
    			
    			Return
    		 EndIf
    		 
    		;Make sure we are in the right area before beginning run
    		If CheckFor("OldRuins", "Area") Then
    		   	$rt = TimerInit()
    			$run += 1
    			;Call("StartScreenShot")
    			GUICtrlSetData($lblLocation, "Location: Old Ruins")
    			If $StartingGold = 0 Then Call("GoldPerHour")
    			;Start Run
         		MouseMove(Round(262* $x_ratio ), Round(220* $y_ratio )) ;vault to stairs
    			Send($skill1)
    			sleep(random(500,520))
    			MouseMove(Round(0* $x_ratio ), Round(224* $y_ratio )) ;vault1
    			Send($Skill1)
    			sleep(random(500,520))
    			MouseMove( Round(0 * $x_ratio), Round(224* $y_ratio )) ;vault2
    			Send($Skill1)
    			sleep(random(500,520))
    			MouseMove( Round(0 * $x_ratio), Round(224* $y_ratio )) ;vault3
    			Send($Skill1)
    			sleep(random(50,75))
    			MouseMove( Round(55 * $x_ratio), Round(224* $y_ratio )) ;vault4
    			Send($Skill4) ;scatter to vaulting area
    			sleep(random(500,520))
    			Send($skill2) ;preperation to heal/regen disc
    			sleep(random(250,270))
    			Send($skill1) ;vault5
    			sleep(random(500,520))
    			
    			
    
    
    
    
    
    			If FindCellar() = 1 Then
    				If CheckDead() Then
    				  Return 
         			   EndIf
    
    			GUICtrlSetData($lblStatus, "Status: Cellar - Found")  
    			MouseClick("left",Round($cellarCoordx[$CellCoord] * $x_ratio),Round($cellarCoordy[$CellCoord] * $y_ratio),1)
    			sleep($timingCellarClick)
    			Else ;ABORT RUN
    			    ;FileMove(@ScriptDir & "\shots\Start\OpenStartShot"& $run & ".bmp", @ScriptDir & "\shots\Start\ClosedStartShot"& $run & ".bmp")
    				GUICtrlSetData($lblStatus, "Status: Cellar - Not Found" & @CRLF)
    				Sleep(Random(300, 320))
    				MouseMove(Round(396 * $x_ratio),Round(526 * $y_ratio))
    			   	Send("{SHIFTDOWN}")
    			     MouseDown("right") ;ATTACK
    			    Sleep(Random(100, 120))
    			    MouseUp("right")
    			    Send("{SHIFTUP}")
    			    Sleep(Random(50, 78))
    				send($Skill1)
    				Sleep(Random(300, 312))
    				send($Skill4)
    				Sleep(Random(200, 215))
    				randMove(Round(396 * $x_ratio),Round(526 * $y_ratio))
    				Sleep(Random(50, 61))
    			    send($Skill4)
    				Sleep(Random(100, 115))
    			    randclick("middle", Round(437* $x_ratio),Round(349 * $y_ratio) , 1, 1) 
    			    Sleep(Random(200, 215))
    			    randMove(Round(362 * $x_ratio),Round(196 * $y_ratio))
    			    send($Skill4)
    				Sleep(Random(300, 350))
    
    
    
    
    				Call("TownPortal")
    				If Not CheckDead() Then
    				   Call("ClosedCellar")
    					Call("LeaveGame")
    				EndIf
    				Return
    			EndIf
    		Else
    			Call("TownPortal")
    			If Not CheckDead() Then
    			   Call("ClosedCellar")
    				Call("LeaveGame")
    			EndIf
    			Return
    		EndIf
    
    		;Checks that the player is in the Dank Cellar
    		If CheckFor("DankCellar", "Area") Then
    			GUICtrlSetData($lblLocation, "Location: Dank Cellar")
    			Sleep(Random(500, 550))
    		 	MouseMove(round(0 * $x_ratio),Round(500 * $y_ratio)) ;moves cursor to doorway leading to rare inside cellar
    			Sleep(Random(50, 60))
    			send($skill1);vaults to doorway leading to rare inside cellar
    			sleep(random(500,520))
    
    			randclick("middle", Round(200 * $x_ratio),Round(228 * $y_ratio) , 1, 1) ;moves to doorway inside doorway
    Sleep(Random(375, 383))
    MouseMove(Round(213* $x_ratio),Round(147 * $y_ratio)) ;hovers over the rare Sarkoth
    Send($Skill4); bombs
    Sleep(Random(150, 200))
    Send($Skill3) ;cast ferret for looting
    Sleep(Random(100, 110))
    Send("{SHIFTDOWN}")
    MouseDown("right") ;cast cluster arrow 1x
    Sleep(Random(600, 650));cast cluster arrow
    MouseUp("right");end cluster arrow should shoot 2x
    MouseDown("left") ;cast hungering arrow till mobs are dead 
    sleep($attackTime/2)
    mousemove(Round(109* $x_ratio),Round(157 * $y_ratio))
    sleep($attackTime/2)
    			mousemove(Round(109* $x_ratio),Round(157 * $y_ratio))
    
    			sleep($attackTime/2)
    			MouseUp("left") ;stop cast hungering arrow
    
    			Sleep(Random(150, 156))
    			Send("{SHIFTUP}")
    			Sleep(Random(100, 110))
    			send($Skill1) ;vault to loot
    			Sleep(Random(400, 510))
    
    	  		sleep($timingLootRun)
    
    			If $LootGoldOnly = 0 then
    			GUICtrlSetData($lblStatus, "Status: Looting")
    				Call("Loot")
    		 	EndIf			
    			Sleep(Random(100, 110))
    
    
    			Call("TownPortal")
    		 Else
    			$countMissedCellar += 1
    			   Call("CellarScreenShot")
    		    MouseMove(Round(396 * $x_ratio),Round(526 * $y_ratio))
    
    
    		  	Send("{SHIFTDOWN}")
    			MouseDown("right") ;ATTACK
    			Sleep(Random(100, 120))
    			MouseUp("right")
    			Send("{SHIFTUP}")
    			Sleep(Random(50, 78))
    			send($Skill1)
    			Sleep(Random(300, 312))
    			send($Skill4)
    			Sleep(Random(200, 215))
    			randMove(Round(396 * $x_ratio),Round(526 * $y_ratio))
    			Sleep(Random(50, 61))
    			send($Skill4)
    			Sleep(Random(100, 115))
    
    
    
    
    
    			Call("TownPortal")
    			If Not CheckDead() Then
    			    Call("ClosedCellar")
    				Call("LeaveGame")
    			EndIf
    			Return
    		EndIf
    		;After successful run
    		If Not CheckDead() Then
    			Sleep(Random(300, 305))
    			If $mLootIn = 1 And CheckFor("NewTristram", "Area") Then ;If its time to manage loot and we are in town
    				If $LootGoldOnly = 0 Then
    				  If $StashLoot >= 1 Then
    					Call("StashLoot")
    				  EndIF
    				EndIF		
    
    
    			ElseIf Not CheckFor("NewTristram", "Area") Then
    			GUICtrlSetData($lblStatus, "Status: Skipping vendor, not in New Tristram")
    				Sleep(Random(3000, 3005))
    			ElseIf $mLootIn = 1 Then
    				$mLootIn = 0
    			EndIf
    	
    
    			If Not CheckDead() Then
    			    Call("OpenCellar")
    				Call("LeaveGame")
    			EndIf
    			Return
    		Else
    			Return
    		 EndIf
    	  Else
    		 Return 0
    	 EndIf
    EndFunc   ;==>RestartRun
    
    Func CheckDead()
    	$LogoutTimerCancel = PixelSearch(Round(900 * $x_ratio), Round(240 * $y_ratio), Round(1010 * $x_ratio), Round(290 * $y_ratio), 0x993827) ; checks for cancel button on logout timer
    	If Not @error Then
    	GUICtrlSetData($lblStatus, "Status: Logging out")
    		Sleep(11000)
     		Sleep($timingGameLoad)
     		Return 1
     	EndIf
    
     	$CloseButton = PixelSearch(Round(1570 * $x_ratio), Round(110 * $y_ratio), Round(1590 * $x_ratio), Round(120 * $y_ratio), 0x8C2300) ; checks for the red color of the "X" on an open window
     	If Not @error Then
    GUICtrlSetData($lblStatus, "Status: Open Window")
     	Sleep(200)
     		Send("{SPACE}") ;close any open windows
    		Return 1
    	EndIf	
     
    
    
     	$YouHaveDied = PixelSearch(Round(285* $x_ratio), Round(491* $y_ratio), Round(308* $x_ratio), Round(508* $y_ratio), 0x2C0100,2) ; checks for white text "YOU HAVE DIED"
    	If Not @error Then
    		GUICtrlSetData($lblStatus, "Status: Dead")
    		$deathCount += 1
    		Call("LeaveGame")
    		Sleep(Random(11000, 11005)
    		
    		Sleep($timingGameLoad)
    		Return 1
    	Else
    		Return 0
    	EndIf
    EndFunc   ;==>CheckDead
    
    
    Func CheckRepair()
    	$RepairArea = PixelSearch(Round(552 * $x_ratio),Round(6* $y_ratio),Round(589 * $x_ratio),Round(51 * $y_ratio), $yellow)
    	If Not @error Then
    		Call("DoRepair")
    	EndIf
    	$RepairAreaRed = PixelSearch(Round(552 * $x_ratio),Round(6 * $y_ratio),Round(589 * $x_ratio),Round(51 * $y_ratio), $red)
    	If Not @error Then
    		Call("DoRepair")
    	EndIf
    EndFunc   ;==>CheckRepair
    
    Func DoRepair()
    Sleep(Random(2500, 2550))
    
    $repairCount += 1
    	If CheckDead() Then
    		Return
    	EndIf
    	If CheckFor("NewTristram", "Area") Then
            RandClick1("middle", Round(755 * $x_ratio),Round(29 * $y_ratio), 1, 1) ;step1
    		Sleep(Random(3500, 3550))
    
    
    
    		RandClick1("left", Round(405 * $x_ratio),Round(123 * $y_ratio), 1, 1) ;vendor
    		Sleep(Random(2100,2110))
    
    	    RandClick("left", Round(282 * $x_ratio),Round(267 * $y_ratio), 1, 1) ;button to open up repair menu
    		Sleep(Random(400, 412))
    		RandClick("left", Round(142 * $x_ratio),Round(295 * $y_ratio), 1, 1) ;button to pay for repairs
    		Sleep(Random(200, 212))
    		Send("{Escape}")
    	EndIf
    EndFunc   ;==>DoRepair
    
    
    Func ClosedCellar()
    	   $closedcellarCount += 1
    	   $srt = TimerDiff($rt)
       	   $ClosedCellarSec = $ClosedCellarSec + Round($srt / 1000, 2)
    	   $ClosedCellarAvg = $ClosedCellarSec / $closedcellarCount
    	EndFunc
    	
    Func OpenCellar()
    	   $cellarCount += 1
       	   $srt = TimerDiff($rt)
    	   $OpenCellarSec = $OpenCellarSec + Round($srt / 1000, 2)
    	   $OpenCellarAvg = $OpenCellarSec / $cellarCount
       EndFunc
    
    Func CalcTime()
    	$trt = TimerDiff($t)
    	$total = Round((($trt / 1000) / 60) / 60, 4)
    	;Total runtime calculation.
    	$hours = Floor((($trt / 1000) / 60) / 60)
    	$minutes = (($trt / 1000) / 60)
    	;trim minutes if runtime is more then 1 hour.
    	If $minutes > 60 Then
    		While $minutes > 60
    			$minutes -= 60
    		WEnd
    	 EndIf
    	 $RunsPerHour = $Run / ($trt / 1000) * 3600
    	 $repairCountPercent = $repairCount / $run
         $deathsCountPercent = $deathCount / $run
         $cellarCountPercent = $cellarCount /  $run
         $closedCellarCountPercent = ($run - $cellarCount) / $run
    	 $MissedCellarCountPercent = $countMissedCellar / $run
    	 GUICtrlSetData($lblRuntime, "Total Runtime: " & $hours & " hours, " & Ceiling($minutes) & " minutes")
    	 GUICtrlSetData($lblLast, "Open Cellar Avg: " & Round($OpenCellarAvg,1) & "s - Closed Cellar Avg: " & Round($ClosedCellarAvg,1) & "s")
    	 GUICtrlSetData($lblCellars, "Cellars Open: " & $cellarCount & " (" & Round($cellarCountPercent * 100) & "%)" &  " - Cellars Closed: " & $run - $cellarCount & " (" & Round($closedCellarCountPercent * 100,.00) & "%)")
    	 GUICtrlSetData($lblStats, "Deaths: " & $deathCount &  " (" & Round($deathsCountPercent * 100) & "%" & ")" &  " - Missed Cellars: " & $countMissedCellar & " (" & Round($MissedCellarCountPercent * 100) & "%)")
    EndFunc   ;==>CalcTime
    
    Func CheckFor($img, $type = "", $startX = 0, $startY = 0, $endX = @DesktopWidth, $endY = @DesktopHeight, $seconds = 6, $tolerance = 140)
    	If $type = "Area" Then
    		$startX = 650 * $x_ratio
    		$startY = 0 * $y_ratio
    		$endX = 800 * $x_ratio
    		$endY = 50 * $y_ratio
    		$seconds = 2.5
    	EndIf
    	$c = 0
    	$string = $pngLoc & $img & ".png"
    	Do
    		$c += 1
    		Sleep(Random(100, 105))
    		
    		If $c > ($seconds * 10) Then ;Make sure we never get stuck here for infinity.
    			If $type = "Area" Then
    				GUICtrlSetData($lblStatus, "Status: Area not found - " & $img)
    			EndIf
    			Return 0
    		EndIf
    	 Until _ImageSearchArea($string, 1, $startX, $startY, $endX, $endY, $gX, $gY, $tolerance)
    	Return 1
    EndFunc   ;==>CheckFor
    
    
    Func Loot()
    	Sleep($timingLoot)
    	MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(300, 600) * $y_ratio), 3) ;Moves mouse out of the way
    	If $LootSet == 1 Then
    		$SetCount += LootGear(0x02CE01)		
    	EndIf
    	
    	If $LootLegendary == 1 Then
    		$LegendaryCount += LootGear(0xBF642F, 0)
    	EndIf
    	
    	If $LootRare == 1 Then
    		$RareCount += LootGear(0xBBBB00)
    	EndIf
    	
    	If $LootCustom == 1 Then
    		Call("LootCustom")
    	EndIf
    	
    	If $LootMagic == 1 Then
    		$MagicCount += LootGear(0x6969FF)
    	EndIf
    	call("Showloot")
    EndFunc   ;==>Loot
     
     Func LootCustom()
    	$count = 0
    	$gX = 0
    	$gY = 0
    	For $i = 0 To ($totalItems - 1)
    		$array = StringSplit($pick[$i], "|")
    		$file = $array[1]
    		$accuracy = $array[2]
    		$urlString = $pngLoc & $file & ".png"
    		While _ImageSearchArea($urlString, 1, 0, 0, @DesktopWidth, @DesktopHeight, $gX, $gY, $accuracy)
    			$count += 1
    			MouseClick("left", $gX, $gY, 1, 3)
    			Sleep(Random(50, 55))
    
    			MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(300, 600) * $y_ratio), 3) ;Moves mouse out of the way
    			Sleep($timingLoot)
    			If $count >= 15 Then
                            ExitLoop
                    EndIf
    		WEnd
    	Next
    EndFunc   ;==>LootCustom
     
    Func LootGear($color, $tolerance = 3)
    	$count = 0
    	$Loot = PixelSearch(Round(0 * $x_ratio), Round(75*$y_ratio), Round(800 * $x_ratio), Round(400 * $y_ratio), $color, $tolerance)
    	If Not @error Then
    		While Not @error
    			$count += 1
    			MouseClick('left', $Loot[0], $Loot[1], 1, 3)
    			Sleep(Random(50, 55))
    
    			MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(300, 600) * $y_ratio), 1) ;Moves mouse out of the way
    			sleep($timingLoot)
    			If $count >= 15 Then
                            ExitLoop
                    EndIf
    			$Loot = PixelSearch(Round(0 * $x_ratio), Round(75*$y_ratio), Round(800 * $x_ratio), Round(400 * $y_ratio), $color, $tolerance)
    		WEnd
    	EndIf
    	Return $count
    
     EndFunc   ;==>LootGear
     
     Func CheckFullInventory()
    
     If Not _ImageSearchArea($pngLoc &  "FullInventory.png", 1, Round(518* $x_ratio),Round(329 * $y_ratio), Round(788 * $y_ratio),Round(484 * $x_ratio), $gX, $gY, 140) Then
    	  $mLootIn = 1
    	  If $StashLoot = 0 And $VendorLoot = 0 Then 
    		 $LootGoldOnly = 1
    	 EndIf
    	 Return 0
    
       Else
       $mLootIn = 0
    		 Return 1
    EndIf
    Return
      EndFunc
      
    
    Func StashLoot()
       MouseClick("left", 442* $x_ratio,121* $y_ratio)
       Sleep(Random(1600, 1620))
    
    GUICtrlSetData($lblStatus, "Status: Putting Items in Stash")
       If $StashSelectedTab > 0 Then MouseClick("left", Round($StashTabs[$StashSelectedTab][0] * $x_ratio) ,Round($StashTabs[$StashSelectedTab][1] * $x_ratio), 1, 4)
    
    If $AnalLoot = 1 And $StashLoot > 0 Then
    	 MouseMove(Round($StashTabs[$StashSelectedTab][0] * $x_ratio) ,Round($StashTabs[$StashSelectedTab][1] * $x_ratio), 2)
    	 AnalLoot()
    	 Send("{SPACE}")
       If $AnalSalvage = 1 Then
    	  If $AnalRareIdentify = 1 Then
    	   DoIdentify()
    	  EndIf
    	   DoSalvage()
    	EndIf
    	If $AnalVendor = 1 Then
    	    If $AnalRareIdentify = 1 Then
    	   DoIdentify()
    	  EndIf
       VendorLoot()
       EndIf
    EndIF
    $AnalSalvage = 0 
    $AnalRareIdentify = 0  
    $AnalVendor = 0
     EndFunc   ;==>StashLoot
    
    
     Func CheckFullStash()
    If _ImageSearchArea($pngLoc &  "FullStash.png", 1, Round(320 * $x_ratio),Round(72 * $y_ratio), Round(376 * $y_ratio),Round(88 * $x_ratio), $gX, $gY, 140) Then
       If $StashSelectedTab < 2 Then
    	  $StashSelectedTab += 1
       ElseIf $StashSelectedTab = 2 Then
    	  $StashLoot = 0
    	  Return 0
       EndIf
    Do 
    Sleep(Random(100, 105))
       Until Not _ImageSearchArea($pngLoc &  "FullStash.png", 1, Round(320 * $x_ratio),Round(72 * $y_ratio), Round(376 * $y_ratio),Round(88 * $x_ratio), $gX, $gY, 140)
    
    MouseClick("left", Round($StashTabs[$StashSelectedTab][0] * $x_ratio) ,Round($StashTabs[$StashSelectedTab][1] * $x_ratio), 1, 4)
    EndIf
     Return 1
       EndFunc
     
     Func AnalScan()
        GUICtrlSetData($lblStatus, "Status: Unhighlighting new items")
        For $i = 0 To 9
          For $j = 0 To 5
          MouseMove(Round(($slot1x + ($i * $offset)*$x_ratio)),Round(($slot1y + ($j * $offset)) * $y_ratio), 1)
          Next
       Next
    EndFunc
    
     Func AnalLoot()
    DebugLog(@CRLF & "iLvl Analyzing " & @CRLF & _
    	"****************************************************")
    	GUICtrlSetData($lblStatus, "Status: Stashing And Analyzing Loot")
    	AnalScan()
    	ArrayClear($AnalyzedLoot)
    	$rt = TimerInit()
    
    	For $i = 0 To 9
    			   For $j = 0 To 5
    	  $SlotPixelLine = PixelSearch(Round($slotLineTopX + $i * $slotLineOffSet * $x_ratio), Round($slotLineTopY  + $j * $slotLineOffSet * $y_ratio), Round($slotLineBotX + $i * $slotLineOffSet * $x_ratio), Round($slotLineBotY + $j * $slotLineOffSet * $y_ratio), 0x35251B,1)
    	  $MiddleOfCell = PixelSearch(Round($CellMiddleTopX + $i * $CellMiddleO * $x_ratio), Round($CellMiddleTopY  + $j * $CellMiddleO * $y_ratio), Round($CellMiddleBotX+ $i * $CellMiddleO * $x_ratio), Round($CellMiddleBotY + $j * $CellMiddleO * $y_ratio), 0x130C08,1)
       If Not IsArray($MiddleOfCell) Then
    	  If IsArray($SlotPixelLine) Or $slotError >= 1 Or $j = 0 Then
    		 $slotError  = 0
    	  MouseMove(Round($slot1x + $i * $offset * $x_ratio), Round($slot1y + $j * $offset * $y_ratio),1)
          Sleep($AnalSpeed)
    	  $ItemInfo = StringSplit(GetItemInfo(), ",")
    
    	  If StringRegExp($ItemInfo[1],"Magic")  Then
    	  DebugLog("Magic Item Found iLvl=" &$ItemInfo[2]&" @ Cell " & $i & "," & $j)
    	   
    		 If $ItemInfo[2] < 0 Then
    			$AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Vendor,Magic," & $ItemInfo[2]
    			$AnalVendor = 1
    		  Else
    			If $ItemInfo[2] >= $MagicStashiLvl Then
    			   GUICtrlSetData($lblStatus, "Status: " & $ItemInfo[2] & " Stashing Magic @ " & $i & "," & $j)
    			   $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Stashed,Magic," & $ItemInfo[2]
    			   MouseClick("Right", Round($slot1x + $i * $offset * $x_ratio), Round($slot1y + $j * $offset * $y_ratio), 1)
    
    
    			Elseif $ItemInfo[2] <= $MagicSalvageiLvl And $ItemInfo[2] > $MagicVendoriLvl Then
    			   GUICtrlSetData($lblStatus, "Status: " & $ItemInfo[2] & " Salvaging Magic @ " & $i & "," & $j)
    			   $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Salvage,Magic," & $ItemInfo[2]
    			   $AnalSalvage = 1
    			   
    			Elseif $ItemInfo[2] <= $MagicVendoriLvl Then
    			   GUICtrlSetData($lblStatus, "Status: " & $ItemInfo[2] & " Vendoring Magic @ " & $i & "," & $j)
    			   $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Vendor,Magic," & $ItemInfo[2]
    			   $AnalVendor = 1
    
    			EndIf
    		 EndIf
    	  ElseIf StringRegExp($ItemInfo[1],"Rare") Then
    
    		DebugLog("Rare Item Found iLvl=" &$ItemInfo[2]&" @ Cell " & $i & "," & $j)
    	   
    		 If $ItemInfo[2] < 0 Then
    			$AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Vendor,Rare," & $ItemInfo[2]
    			$AnalRareIdentify = 1
    			$AnalVendor = 1
    			
    		  Else
    			If $ItemInfo[2] >= $RareStashiLvl Then
    			   GUICtrlSetData($lblStatus, "Status: " & $ItemInfo[2] & " Stashing Rare @ " & $i & "," & $j)
    			   $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Stashed,Rare," & $ItemInfo[2]
    			   MouseClick("Right", Round($slot1x + $i * $offset * $x_ratio), Round($slot1y + $j * $offset * $y_ratio), 1)
    
    
    
    			Elseif $ItemInfo[2] <= $RareSalvageiLvl And $ItemInfo[2] > $RareVendoriLvl Then
    			   GUICtrlSetData($lblStatus, "Status: " & $ItemInfo[2] & " Salvaging Rare @ " & $i & "," & $j)
    			   $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Salvage,Rare," & $ItemInfo[2]
    			   $AnalRareIdentify = 1
    			   $AnalSalvage = 1
    			   
    			ElseIf $ItemInfo[2] <= $RareVendoriLvl Then
    			   GUICtrlSetData($lblStatus, "Status: " & $ItemInfo[2] & " Vendoring Rare @ " & $i & "," & $j)
    			   $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Vendor,Rare," & $ItemInfo[2]
    			   $AnalRareIdentify = 1
    			   $AnalVendor = 1
    
    			EndIf
    		 EndIf
    	  ElseIf StringRegExp($ItemInfo[1],"Set") Or StringRegExp($ItemInfo[1],"Legendary") Then
    
    		 DebugLog($ItemInfo[1] & " Item Found iLvl=" &$ItemInfo[2]&" @ Cell " & $i & "," & $j)
    		 GUICtrlSetData($lblStatus, "Status: " & $ItemInfo[2] & " Stashing " & $ItemInfo[1] & " @ " & $i & "," & $j)
    		 $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Stashed,Set/Legendary," & $ItemInfo[2]
    		 MouseClick("Right", Round($slot1x + $i * $offset * $x_ratio), Round($slot1y + $j * $offset * $y_ratio), 1)
    
    
     ElseIf StringRegExp($ItemInfo[1],"Crafting") Or StringRegExp($ItemInfo[1],"Tomes") Or StringRegExp($ItemInfo[1],"Gem") Or StringRegExp($ItemInfo[1],"Tome") _
    	  Or StringRegExp($ItemInfo[1],"RareRing") Or StringRegExp($ItemInfo[1], "RareAmmy") Or StringRegExp($ItemInfo[1], "BlackSmithPlan") Then 
    	  
    	 DebugLog($ItemInfo[1] & " @ Cell " & $i & "," & $j)
         GUICtrlSetData($lblStatus, "Status: Stashing " & $ItemInfo[1] & " @ " & $i & "," & $j)
         $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Stashed," &$ItemInfo[1]& ",0"
    	 MouseClick("Right", Round($slot1x + $i * $offset * $x_ratio), Round($slot1y + $j * $offset * $y_ratio), 1)
    	 
    	  ElseIf $ItemInfo[1] = 0 Then
    		 
    		 DebugLog("Unknown Item Found iLvl=0 @ Cell " & $i & "," & $j)
    		 GUICtrlSetData($lblStatus, "Status:  Vendoring Unknown @ " & $i & "," & $j)
      	     $AnalyzedLoot[$i][$j] = Round($slot1x + $i * $offset * $x_ratio) & "," & Round($slot1y + $j * $offset * $y_ratio) & ",Vendor,Unknown,0"
    		 $AnalVendor = 1
    		 
      Else
    	  $slotError += 1
        EndIF	 
       EndIf	
     EndIf
    	  If CheckFullStash() = 0 Then ExitLoop
    	  Next
       Next
       $srt = TimerDiff($rt)
       $AnalTime = Round($srt / 1000, 2)
          DebugLog(@CRLF & "iLvl Analyzing took " & $AnalTime & " Seconds" & @CRLF & _
    	"****************************************************")
       ToolTip("")
     EndFunc   ;==>AnalLoot
     
    Func DoIdentify()
       DebugLog("Identifying Rare Items" & @CRLF & _
    	"****************************************************")
       Send("c")
       $arr = 0
    		For $i = 0 To 9
    			   For $j = 0 To 5
    				  If StringRegExp($AnalyzedLoot[$i][$j],"Rare") Then
    				  $arr = StringSplit($AnalyzedLoot[$i][$j], ",")
    				  DebugLog("Rare to Identify "  & $i & "," & $j)
    				  GUICtrlSetData($lblStatus, "Status: " & $arr[5] & " Identify " & $arr[4] & " @ Cell " & $i & "," & $j)
    				  MouseClick("Right",$arr[1],$arr[2],2)
                      Sleep(Random(2900, 3000))
    				  ToolTip("")
    				  EndIF
    	  Next	
       Next
       Send("c")
       $AnalRareIdentify = 0
       EndFunc
       
    Func DoSalvage()
    	DebugLog("Salvaging Items")
    	MouseClick("Left",Round(799 * $x_ratio),Round(290 * $y_ratio),1)
    
    	Sleep(Random(1600, 1620))
    	MouseClick("Left",Round(562 * $x_ratio),Round(211 * $y_ratio),1)
    	Sleep(Random(1000, 1010))
    
    	MouseClick("Left",Round(286 * $x_ratio),Round(268 * $y_ratio),1)
    	Sleep(Random(300, 305))
    
    	MouseClick("Left",Round(151 * $x_ratio),Round(159 * $y_ratio),1)
    	 If Not _ImageSearchArea("CurrentInventory.png", 1, Round(625 * $x_ratio), Round(93 * $y_ratio), Round(772 * $x_ratio), Round(300 * $y_ratio), $gX, $gY, 9) Then
    			GUICtrlSetData($lblStatus, "Status: Frozen to prevent vendor of worn item, sorry....")
    			TogglePause()
    					 EndIf
    	$arr = 0
    		For $i = 0 To 9
    			   For $j = 0 To 5
    				  If StringRegExp($AnalyzedLoot[$i][$j],"Salvage") Then
    				  $arr = StringSplit($AnalyzedLoot[$i][$j], ",")
    				  DebugLog("Item to Salvage " & $arr[4] & " " & $i & "," & $j)
    				  GUICtrlSetData($lblStatus, "Status: " & $arr[5] & " Salvaging " & $arr[4] & " @ Cell " & $i & "," & $j)
    				  MouseClick("Left",$arr[1],$arr[2],1)
    				  If $arr[4] == "Rare" Then
    					Send("{Enter}") 
    				  EndIf
    				  sleep(150)
    				  EndIF
    	  Next	
       Next
       ToolTip("")
       Send("{Space}")
       EndFunc
    
    
    Func VendorLoot()
    	   If $AnalSalvage = 1 Then
    		MouseClick("left",Round(517 * $x_ratio), Round(15 * $y_ratio), 6) ;NPC Merchant to the right of cain's home
    		Sleep(Random(2200, 2210))
    		
    
    		MouseClick("left",Round(279 * $x_ratio), Round(218 * $y_ratio), 6) ;NPC Merchant to the right of cain's home
    		Sleep(Random(500, 550))
    		
    
    		Else
    Sleep(Random(500, 550))
    		RandClick1("middle", Round(755 * $x_ratio),Round(29 * $y_ratio), 1, 1) ;step1
    
    		Sleep(Random(3500, 3550))
    
    
    
    
    		RandClick1("left", Round(405 * $x_ratio),Round(123 * $y_ratio), 1, 1) ;vendor
    		Sleep(Random(2800, 2850))
    		EndIf
    
    		Sleep(Random(300, 310))
    
    		$arr = 0
    		If Not _ImageSearchArea("CurrentInventory.png", 1, Round(625 * $x_ratio), Round(93 * $y_ratio), Round(772 * $x_ratio), Round(300 * $y_ratio), $gX, $gY, 9) Then
    		  TogglePause()	  
    		  GUICtrlSetData($lblStatus, "Status: Frozen to prevent salvage of worn item, sorry....")
    		 EndIf
    	    
    
    		For $i = 0 To 9
    			   For $j = 0 To 5
    				  If StringRegExp($AnalyzedLoot[$i][$j],"Vendor") Then
    				  $arr = StringSplit($AnalyzedLoot[$i][$j], ",")
    				  DebugLog("Item To Vendor  " & $arr[4] & " " & $i & "," & $j)
    				  GUICtrlSetData($lblStatus, "Status: " & $arr[5] & " Vendoring " & $arr[4] & " @ Cell " & $i & "," & $j)
    
    				  MouseClick("Right",$arr[1],$arr[2],1)
    				  EndIF
    	  Next	
       Next
        ToolTip("")
    	Sleep(Random(200, 205))
    	RandClick("left", Round(282 * $x_ratio),Round(267 * $y_ratio), 1) ;button to open up repair menu
        Sleep(Random(400, 405))
    
        RandClick("left", Round(142 * $x_ratio),Round(295 * $y_ratio), 1) ;button to pay for repairs
        Sleep(Random(200, 205))
    
    	Send("{ESCAPE}")
     EndFunc   ;==>VendorLoot
    
    
    
    Func GetItemInfo()
       $gX = 0
       $gY = 0
       $Type = 0
       $CheckRing = 0
       $mousePos = MouseGetPos()
       Local $Rings[2] = ["RareRing","RareAmmy"]
       Local $MiscItems[4] = ["Crafting","Tomes","Gem","BlackSmithPlan"]
       Local $ItemQuality[8] = ["Magic","MagicRed","Rare","RareRed","Legendary","LegendaryRed","Set","SetRed"]
    
    
       For $i = 0 to Ubound($ItemQuality) -1
    	  If _ImageSearchArea($pngLoc & $ItemQuality[$i] & ".png",1, Round($mousePos[0] - 300 * $x_ratio), 0, Round($mousePos[0] + 70 * $x_ratio),900,$gX,$gY, 100) Then
    	  $Type = $ItemQuality[$i]
    		 If StringRegExp($Type,"Rare") Or StringRegExp($Type,"Legendary") Or StringRegExp($Type,"Set") Then
    		 $CheckRing = 1
    	  EndIf
    	  ExitLoop
       Else
    	  $Type = 0
    	  EndIf
       Next
    
       If $CheckRing = 1 Then
       For $i = 0 to Ubound($Rings) -1
    	  If _ImageSearchArea($pngLoc & $Rings[$i] & ".png",1, Round($mousePos[0] - 300 * $x_ratio), 0, Round($mousePos[0] + 70 * $x_ratio), $size[1],$gX,$gY, 100) Then
    		 Return $Rings[$i] & "," & $RareStashiLvl
    		 ExitLoop
    	  EndIf
       Next
       
       ElseIf $Type = 0 Then
       For $i = 0 to Ubound($MiscItems) -1
    	 If _ImageSearchArea($pngLoc & $MiscItems[$i] & ".png",1, Round($mousePos[0] - 300 * $x_ratio), 0, Round($mousePos[0] + 70 * $x_ratio), $size[1],$gX,$gY, 100) And $CheckRing = 1 Then
    		  Return $MiscItems[$i] & "," & $RareStashiLvl
    		  Exitloop	  
    		EndIf
       Next
       EndIf
    
    	If _ImageSearchArea($pngLoc & "ItemLevel800x600.png",1, Round($mousePos[0] - 300 * $x_ratio), 0, Round($mousePos[0] + 70 * $x_ratio), $size[1],$gX,$gY, 90) Then
    	$capture = _TesseractScreenCapture(0, "", 1, 11, Round($gX - 5 * $x_ratio), Round($gY - 10 * $y_ratio), Round($gX + 40 * $x_ratio), Round($gY + 10 * $y_ratio), 0)
    	$Fixed = StringRegExpReplace($capture,"Q","9")
    	$iLvl = StringRegExpReplace($Fixed,"[a-zA-Z|:;~.,»<?_=+|-]","")
    	$StringLength = StringLen($iLvl)
    	If $StringLength > 2 Then
    	   $StringLength -= 3
    	   $iLvl = StringMid($iLvl, $StringLength, 2)
        EndIF
    	Return $Type & "," & $iLvl
        Else
    	Return 0
    	EndIf
     EndFunc
    
    
    Func _ImageSearchArea($findImage, $resultPosition, $x1, $y1, $right, $bottom, ByRef $x, ByRef $y, $tolerance)
    	If $tolerance > 0 Then $findImage = "*" & $tolerance & " " & $findImage
    	$findImage = "*TRANSBLACK " & $findImage
    	If @AutoItX64 Then
    		$result = DllCall("ImageSearchDLL_x64.dll", "str", "ImageSearch", "int", $x1, "int", $y1, "int", $right, "int", $bottom, "str", $findImage)
    	Else
    		$result = DllCall("ImageSearchDLL.dll", "str", "ImageSearch", "int", $x1, "int", $y1, "int", $right, "int", $bottom, "str", $findImage)
    	EndIf
    	If $result = "0" Then
    		Return 0
    	EndIf
    
    	; Otherwise get the x,y location of the match and the size of the image to
    	; compute the centre of search
    	$array = StringSplit($result[0], "|")
    	If (UBound($array) >= 4) Then
    		$x = Int(Number($array[2]))
    		$y = Int(Number($array[3]))
    		If $resultPosition = 1 Then
    			$x = $x + Int(Number($array[4]) / 2)
    			$y = $y + Int(Number($array[5]) / 2)
    		EndIf
    		Return 1
    	EndIf
     EndFunc   ;==>_ImageSearchArea
     
    Func FindCellar()
       $CellCoord = 0
       $gY = 0
       $gX = 0 
      
       ;A precheck to the cellar search
       _ImageSearchArea($pngLoc & "Cellar.png", 1,Round(670 * $x_ratio),Round(90 * $y_ratio) ,Round(691 * $x_ratio),Round(110 * $y_ratio), $gX, $gY, 160)
       sleep($cellarCheckSleep)
       If $gX > 0 Or $gY > 0 then
    	  Do
    		 MouseMove(Round($cellarCoordx[$CellCoord] * $x_ratio), Round($cellarCoordy[$CellCoord] * $y_ratio),1) ;moves cursor over to the cellar
    		 sleep($cellarCheckSleep)
    
    		 $Pixel2 = PixelSearch(Round($cellarCoordx[$CellCoord] * $x_ratio - 65),Round($cellarCoordy[$CellCoord] * $y_ratio - 50),Round($cellarCoordx[$CellCoord] * $x_ratio + 50),Round($cellarCoordy[$CellCoord] * $x_ratio + 65), 0x375BC6, 3) ;checks for open cellar (in a 600x400 box from the top left - where it should always be)
    
    
    
    		 If Not @Error Then
    			;Msgbox("4096","found it","Found it")
    			Return 1
    		 EndIf
    		 $CellCoord += 1
    	  Until $CellCoord >= Ubound($cellarCoordx)
       Else
    	  Return 0
       EndIf
       $countMissedCellar += 1
       Call("CellarScreenShot")
       Return 0
    EndFunc
    
    Func CellarScreenShot()
       If $ScreenShot = 1 Then
    			   _ScreenCapture_SetBMPFormat(0)
    			   _ScreenCapture_Capture(@ScriptDir & "\shots\Cellar\CellarShot"& $run & "c" & $CellCoord & ".bmp")
    			EndIf
    		 EndFunc
    		 
     Func GoldPerHour()
    Send("i")
    Sleep(Random(750, 800))
    If $CurrentItems = 0 Then
       Call("ScreenShotInventory")
    EndIf
    CheckFullInventory()
    $CurrentGoldCaptured = _TesseractGoldCapture(0, "", 1,  6,544*$x_ratio, 281*$y_ratio, 607*$x_ratio, 292*$y_ratio, 0)
    Sleep(Random(190, 200))
    Send("i")
    
    $CurrentGoldInteger = ""
    
    
    For $i = 1 to stringlen($CurrentGoldCaptured)
    $chr = asc(StringMid($CurrentGoldCaptured, $i, 1))
    if $chr >= 48 And $chr <= 57 Then $CurrentGoldInteger = $CurrentGoldInteger & chr($chr)
    Next
    
    
    $trt = TimerDiff($t)
    $SecondsRan = $trt / 1000
    
    If $StartingGold <= 0 Then $StartingGold = $CurrentGoldInteger
    If $StartingGold > 0 Then $AccumulatedGold = $CurrentGoldInteger - $StartingGold
    $GPH = $AccumulatedGold / $SecondsRan * 60 * 60
    
    $GPH=(Round($GPH,0))
    
    If $GPH >= 0 and $AccumulatedGold >=0 then
      GUICtrlSetData($lblStartingG,"Staring Gold: " & $StartingGold)
      GUICtrlSetData($lblGold,$GPH & " Per Hour - Accumulated Gold: " & $AccumulatedGold)
      
    EndIf
    
    EndFunc ;==>GoldPerHour
    
    Func LeaveGame()
       GUICtrlSetData($lblStatus, "Status: Leaving Game")
    	Send("{SPACE}")
    	sleep(200)
    	Send("{Escape}")
    	RandClick("left", Round(398 * $x_ratio),Round(322 * $y_ratio), 10, 2) ;Random Click on the leave button
    	Call("CalcTime")
    	Sleep($timingGameLoad)
    EndFunc   ;==>LeaveGame
    
     
    Func TownPortal()
    GUICtrlSetData($lblStatus, "Status: Returning to Town")
       	Sleep(Random(200, 205))
    Send($Skill3)
    Sleep(Random(50, 65))
    	Send("t")
    	Call("GoldPerHour")
    	Sleep($timingTP)
    	Call("CheckRepair")
    EndFunc   ;==>TownPortal
    
    Func RandClick($clickType, $xPos, $yPos, $xOff = 5, $yOff = 5, $clicks = 1, $speed = 1)
    	If $xOff < 1 Then $xOff = 1
    	If $yOff < 1 Then $yOff = 1
    	$randX = Round(Random($xPos - ($xOff * $x_ratio), $xPos + ($xOff * $x_ratio)))
    	$randY = Round(Random($yPos - ($yOff * $y_ratio), $yPos + ($yOff * $y_ratio)))
    	MouseClick($clickType, $randX, $randY, $clicks, $speed)
    EndFunc   ;==>RandClick
     
     Func RandClick1($clickType, $xPos, $yPos, $xOff = 3, $yOff = 2, $clicks = 1, $speed = 1)
    	If $xOff < 1 Then $xOff = 1
    	If $yOff < 1 Then $yOff = 1
    	$randX = Round(Random($xPos - ($xOff * $x_ratio), $xPos + ($xOff * $x_ratio)))
    	$randY = Round(Random($yPos - ($yOff * $y_ratio), $yPos + ($yOff * $y_ratio)))
    	MouseClick($clickType, $randX, $randY, $clicks, $speed)
    EndFunc   ;==>RandClick
    
    Func RandMove($xPos, $yPos, $xOff = 10, $yOff = 10, $speed = 1)
    	$randX = Round(Random($xPos - ($xOff * $x_ratio), $xPos + ($xOff * $x_ratio)))
    	$randY = Round(Random($yPos - ($yOff * $y_ratio), $yPos + ($yOff * $y_ratio)))
    	MouseMove($randX, $randY, $speed)
    EndFunc   ;==>RandMove
    
    Func StopLog()
    If $run > 0 Then
    $repairCountPercent = $repairCount / $run
    $deathsCountPercent = $deathCount / $run
    $cellarCountPercent = $cellarCount /  $run
    $closedCellarCountPercent = ($run - $cellarCount) / $run
    $trt = TimerDiff($t)
    ;Total runtime calculation.
    $hours = Floor((($trt / 1000) / 60) / 60)
    $minutes = (($trt / 1000) / 60)
    If $minutes > 60 Then
    	While $minutes > 60
    		$minutes -= 60
    	WEnd
     EndIf
     
    _FileWriteLog("Dank Cellar Log.txt",  @CRLF & "************************************************" & @CRLF & _
    "Dank Celler" & @CRLF & @CRLF & "Stats:" & @CRLF &  _
    "Total Runtime: " & $hours & " hours, " & Ceiling($minutes) & " minutes" & @CRLF & _
    GUICtrlRead($lblLast) & @CRLF & _
    "Total Cellars Found: " & $cellarCount & " (" & Round($cellarCountPercent * 100,.00) & "%" & ")" & @CRLF & _
    "Total Cellars Not Found: " & $run - $cellarCount & " (" & Round($closedCellarCountPercent * 100,.00) & "%" & ")" & @CRLF & _
    "Total Deaths: " & $deathCount &  " (" & Round($deathsCountPercent * 100,.00) & "%" & ")" & @CRLF & _
    "Total Repairs: " & $repairCount &  " (" & Round($repairCountPercent * 100,.00) & "%" & ")" & @CRLF & @CRLF & "Loot:" & @CRLF & _
    "Magics: " & $MagicCount & " Rares: " & $RareCount & " Legendary's: " & $LegendaryCount & " Set Items: " & $setCount & @CRLF & _
    "Gems: " & $GemCount & @CRLF & _
    GUICtrlRead($lblGold) & $StartingGold &  @CRLF & _
    "************************************************")
    EndIf
    EndFunc
    
    Func Begin()
    	   If $AddDPS = 0 then 
            MsgBox(16, "First Run", "Edit your settings.")
    	 Else
    	  $AddDPS = $AddDPS * 3.25
    	  $attackTime = (170000 / $AddDPS) * 1000
    	  WinActivate("Diablo III")
    	$Go = Not $Go
    	GUICtrlSetState($mFile, $GUI_DISABLE)
    	GUICtrlSetState($mOptions, $GUI_DISABLE)
    	   EndIf
    	If Not $Go Then WinSetTitle($title, "", $title  & " - Halted")
    EndFunc   ;==>Begin
    
    Func TogglePause()
    	$Paused = Not $Paused
    	While $Paused
    		Sleep(100)
    		WinSetTitle($title, "", $title & " - Paused")
    		ToolTip('[PAUSED] - Deaths: ' & $deathCount & ' | Cellars: ' & $cellarCount, 0, 0)
    	WEnd
    	WinSetTitle($title, "", $title  & " - Running")
    	ToolTip("")
     EndFunc   ;==>TogglePause
     
     Func GameAutostart()
    If ProcessExists($gameExecutable) = 0 Then
    		GUICtrlSetData($lblStatus, "Status: Starting Game Client")
    		Run($gameDiabloIIILoc & $gameExecutable & " -launch")
    	    sleep($gameStartTime)
    		WinActivate("Diablo III")
    	    Sleep(Random(500, 505))
    
    	    Send($gamePassword)
    	    Sleep(Random(500, 505))
    
    	    Send("{ENTER}")
    	    Sleep($gameStartTime)
    		$size = WinGetClientSize("[CLASS:D3 Main Window Class]")
    		$x_ratio = $size[0] / 800
    	    $y_ratio = $size[1] / 600
    		Call("Begin")
    	 Else
    		$size = WinGetClientSize("[CLASS:D3 Main Window Class]")
    		$x_ratio = $size[0] / 800
    	    $y_ratio = $size[1] / 600
    		
    		Call("Begin")
    	 EndIf
      EndFunc
      
      Func ArrayClear(ByRef $aArray)
        Local $iCols = UBound($aArray, 2)
        Local $iDim = UBound($aArray, 0)
        Local $iRows = UBound($aArray, 1)
    
        If $iDim > 1 Then
            Local $ClearArray2D[$iRows][$iCols]
            $AnalyzedLoot = $ClearArray2D
        EndIf
     EndFunc   ;==>_ArrayClear
    
    
     Func DebugLog($DebugLine)
    	_FileWriteLog( "Debug.txt", $DebugLine )
    EndFunc
    
    
     Func ScreenShotInventory()
    
    
        _ScreenCapture_Capture("CurrentInventory.png",625 * $x_ratio,93 * $y_ratio,772 * $x_ratio,300 * $y_ratio)
       $CurrentItems = 1
    EndFunc
    
    Func Stop() ;to allow the script to stop
    	Call("StopLog")
    	Exit
     EndFunc   ;==>Stop
    
    func ShowLoot()
    	GUICtrlSetData($lblGear, "Legendary: " & $LegendaryCount & " - Set: " & $SetCount & " - Rare: " & $RareCount& " - Magic: " & $MagicCount )
    EndFunc   ;==>ShowLoot

  5. #110
    sp3tan's Avatar Member
    Reputation
    1
    Join Date
    Mar 2010
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Everything works for me perfectly except that the bot is refusing to pick up the rares/legendarys and sets(if they ever dropped on the 423 runs i did) Anyways here is a picture of it: https://i.imgur.com/pLHOT.png Am i doing something wrong here that i missed to check/fix or something?

  6. #111
    jokerssd's Avatar Member
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    8
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i keep getting status:town not found,dank cellar not found etc
    wat did i do wrong??

  7. #112
    Sanasante's Avatar Private
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I can't wait for the updated version. I was having issues due to low frames with the bot missing the cellar periodically. My speed is 25% so I believe some of the issues are due to the vaulting action losing its pathing.

  8. #113
    stealthingyew's Avatar Knight-Lieutenant
    Reputation
    12
    Join Date
    Jun 2012
    Posts
    257
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Saruman69 View Post
    Any fix for my problem? After shooting 2 cluster arrows The script keep getting stuck at shooting devouring arrow non stop. I figure out that it doesn't A) let go of the shift button and B) doesn't let go of the left mouse button which makes it to attack without stopping. Mainly the problem I think is getting stuck on B) as after i changed the stand still button to something else the scripts didn't attack non stop but it was still holding left button of the mouse. Any help would be greatly appreciated!
    What is your DPS set to in the GUI?


    Originally Posted by jokerssd View Post
    i keep getting status:town not found,dank cellar not found etc
    wat did i do wrong??
    Is it clicking the resume button then you are getting this message? It sounds like it cant read those images you might have to remake them if that is the case. If its not clicking the resume button then its definitely not reading the images and you prob need to move the DLL's to your windows and windows/system32 folder. Also make sure all your graphic settings are set to low.

    Originally Posted by sp3tan View Post
    Everything works for me perfectly except that the bot is refusing to pick up the rares/legendarys and sets(if they ever dropped on the 423 runs i did) Anyways here is a picture of it: https://i.imgur.com/pLHOT.png Am i doing something wrong here that i missed to check/fix or something?
    Its not finding the pixels for them make sure your graphics are set to low in the screenshot they look like they are set to high. If thats not the case you will need to drop each of said item on ground and send me a screenshot and I will give you the colors to add to your script to make it work for you.


    Originally Posted by Sanasante View Post
    I can't wait for the updated version. I was having issues due to low frames with the bot missing the cellar periodically. My speed is 25% so I believe some of the issues are due to the vaulting action losing its pathing.
    I run the profile with 2 different DH 1 is 25% movement speed and other is 0% and it runs fine for both of the, so the movement speed shouldnt be your issue. That said I am reworking the pathing and might use smokescreen instead of vault so the not found cellars are more safe.


    UPDATED July, 16 2012 12:22PM CST
    Download Link:http://www.mediafire.com/download.php?9n359ahian6qufj
    Pastebin: http://pastebin.com/EwFkVsSb


    The update is not for pathing or anything like that it fixed small errors in the town item information functions and added a few more coordinates for the cellar to be at.
    Last edited by stealthingyew; 07-16-2012 at 12:31 PM.

  9. #114
    sp3tan's Avatar Member
    Reputation
    1
    Join Date
    Mar 2010
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by stealthingyew View Post
    What is your DPS set to in the GUI?
    Its not finding the pixels for them make sure your graphics are set to low in the screenshot they look like they are set to high. If thats not the case you will need to drop each of said item on ground and send me a screenshot and I will give you the colors to add to your script to make it work for you.
    Nevermind i fixed the problem my opening Settings.ini and changed the settings there. Gold only was set to 1 even if it wasnt in the script so i changed that and now it will pick every magic/rare/legendary/set that gets found. So far the bot is working 100%.

  10. #115
    accnamex's Avatar Private
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    file isnt on mediafire anymore

  11. #116
    stealthingyew's Avatar Knight-Lieutenant
    Reputation
    12
    Join Date
    Jun 2012
    Posts
    257
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by accnamex View Post
    file isnt on mediafire anymore
    Sorry i left out a ] in the url code and it made the link invisible its fixed now.

  12. #117
    RayPrime's Avatar Private
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey, awesome work mate!!.. need a little help though. I Can get the bot to run really well on my computer without any problems whatsoever.. but, I am now trying to run it in VMware workstation and it can't seem to find the Cellar.. .. Bot resumes game, vaults passed all the mobs then (whether Cellar is open or not) proceeds to tp'ing to town and leaves game.. loops forever and ever ..
    So I thought might be because of the Cellar.png so I made a new one in paint.. Unfortunately it is still not detecting open Cellars..

    Another thing I noticed when the Cellar is open is that the bot will hover over the door bot then it just proceeds to tp'ing to town and exiting game.. What am I doing wrong..?..
    I even tried putting the host computer in 800x600 as well as the VMware.

  13. #118
    stealthingyew's Avatar Knight-Lieutenant
    Reputation
    12
    Join Date
    Jun 2012
    Posts
    257
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by RayPrime View Post
    Hey, awesome work mate!!.. need a little help though. I Can get the bot to run really well on my computer without any problems whatsoever.. but, I am now trying to run it in VMware workstation and it can't seem to find the Cellar.. .. Bot resumes game, vaults passed all the mobs then (whether Cellar is open or not) proceeds to tp'ing to town and leaves game.. loops forever and ever ..
    So I thought might be because of the Cellar.png so I made a new one in paint.. Unfortunately it is still not detecting open Cellars..

    Another thing I noticed when the Cellar is open is that the bot will hover over the door bot then it just proceeds to tp'ing to town and exiting game.. What am I doing wrong..?..
    I even tried putting the host computer in 800x600 as well as the VMware.
    I run and built the script on vmware 800x600 if its hoovering over it the cellar, then it knows the cellar is there but its not finding the pixel. Is your diablo settings set to low on the virtual machine?

  14. #119
    RayPrime's Avatar Private
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by stealthingyew View Post
    I run and built the script on vmware 800x600 if its hoovering over it the cellar, then it knows the cellar is there but its not finding the pixel. Is your diablo settings set to low on the virtual machine?
    Hi,

    Yes it is set to low. I tried, Texture, Shadow,Physics and Clutter all on Low (Anti Aliasing = Unchecked and Low FX = Checked) but still not detecting when open... I noticed that there is no glow when the Cellar doors are open though.. could that be the problem?.. if not, I am completely baffled at what could be wrong. I even tried putting Shadow and Clutter to OFF with no luck.

  15. #120
    jahwarrior28's Avatar Sergeant
    Reputation
    2
    Join Date
    Jul 2012
    Posts
    40
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I don't know if this is a similar problem: I've seen the script click the cellar, but never actually walk over to enter. This has happened several times while I was watching it after noticing very high closed percentages.

Page 8 of 19 FirstFirst ... 456789101112 ... LastLast

Similar Threads

  1. Replies: 4466
    Last Post: 05-07-2013, 07:39 AM
  2. Replies: 397
    Last Post: 08-11-2012, 04:48 AM
  3. Replies: 148
    Last Post: 08-03-2012, 04:19 PM
  4. Replies: 3
    Last Post: 07-31-2012, 06:54 PM
  5. Replies: 52
    Last Post: 07-01-2012, 11:01 AM
All times are GMT -5. The time now is 06:56 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search