Detection Des Item Bleu Lvl 63 Et Mise Au Coffre
#21
Posté 07 July 2012 - 09:33
#22
Posté 08 July 2012 - 15:53
J'ai modifié le code pour qu'il ne prenne que les rares 60 et + mais je n'arrive pas à mettre la bonne couleur de pixel...
Je reprends la couleur de détection de base ( du Sark0th original ) mais il ne détecte pas les objets...
Je ne sais pas quoi mettre :
$array= PixelSearch(1457 + $tj, 632 + $ti, 1459 + $tj, 634+$ti, [COULEUR 1] , 5)
If Not @error Then
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, [COULEUR 2], 20)
If Not @error Then
MouseMove( $StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 3)
Sleep(random(50,80))
If _ImageSearchArea($pngLoc & "lvl63.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
EndIf
EndIf
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, [COULEUR 3], 20)
If Not @error ThenJe vois dans ton code que "Couleur 1", "Couleur 2" et "Couleur 3" sont différents, ils correspondent à quoi dans l'image/à quel pixel ?
#23
Posté 08 July 2012 - 19:25
Merci ton code fonctionne super bien !! Je les un peut modifier et j'utilise aussi une version pour les rare pour qu'il me garde juste les 62 et 63 après les avoir identifier a chaque 10 a 12 run accomplie
Merci encore !
Tu pourrais m'aider et me dire quel code de couleur as-tu utilisé ? Merci
#24
Posté 08 July 2012 - 20:11
Alors voilà pour ceux qui voudraient intégrer le rangement des Gold de Level >= 60
Manipulations :
- Mettre les .PNG dans votre dossier de pics
- Editer le code :
[code]Func StashLoot()
GUICtrlSetData($lblStatus, "Status: Putting Items in Stash")
MouseClick("left", 1064 * $x_ratio, 256 * $y_ratio)
Moving(1600)
;Tomes
While $StashTomes == True
Sleep(Random(100, 300))
If _ImageSearchArea($pngLoc & "TomeIcon.png", 1, 1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 888 * $y_ratio, $gX, $gY, 140) Then
GUICtrlSetData($lblStatus, "Status: Stashing Tomes")
MouseClick("left", 500 * $x_ratio, 360 * $y_ratio, 1, 4)
MouseClick("right", $gX, $gY, 1, 4)
Sleep(80)
MouseClick("left", 500 * $x_ratio, 200 * $y_ratio, 1, 4)
Else
ExitLoop
EndIf
WEnd
If $StashLegendary == True Then
StashItems(0xFF7F00, 0)
StashItems(0x8F5C25, 1)
EndIf
If $StashRare == True Then
call ("StashRareItems") ;
EndIf
If $StashMagic == True Then
call ("StashMagicItems") ; Fonction StashMagicItem = rangement d'objets magiques lvl 63
EndIf
;Gems (DOESN'T STASH BOTTOM ROW!)
If $StashGems == True Then
GUICtrlSetData($lblStatus, "Status: Stashing Gems")
MouseClick("left", 500 * $x_ratio, 200 * $y_ratio, 1, 4)
Sleep(Random(20, 100))
For $i = 0 To 7
If _ImageSearchArea($pngLoc & $gems[$i], 1, 1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 820 * $y_ratio, $gX, $gY, 140) Then
MouseClick("right", $gX, $gY, 1, 3)
EndIf
Next
EndIf
Sleep(Random(1000, 1500))
Send("{SPACE}")
EndFunc ;==>StashLoot[/code]
Remplacer : [code]If $StashRare == True Then
StashItems(0x4A3C0B, 1)[/code]
Par : [code]If $StashRare == True Then
call ("StashRareItems")[/code]
Ajouter dans le code ( entre deux fonctions donc pas insérer la fonction dans une autre ! ) :
[code]Func StashRareItems()
$i = 0
MouseClick("left", random (490,520) * $x_ratio, random (165,270) * $y_ratio)
While $i<=5
$ti=48*$i
$j=0
While $j<=9
$tj=48*$j
If Not @error Then
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, 0x948820, 3)
If Not @error Then
MouseMove( $StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 3)
Sleep(random(50,80))
If _ImageSearchArea($pngLoc & "lvl60.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
If _ImageSearchArea($pngLoc & "lvl61.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
If _ImageSearchArea($pngLoc & "lvl62.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
If _ImageSearchArea($pngLoc & "lvl63.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
$j+=1
WEnd
MouseMove(Round(Random(600, 1200) * $x_ratio), Round(Random(700, 1080) * $y_ratio), 3)
$i+=1
WEnd
EndFunc
#25
Posté 08 July 2012 - 21:10
#26
Posté 09 July 2012 - 09:26
call ("StashRareItems")a remplacer par<br class="Apple-interchange-newline">
StashRareItems()c'est plus propre, et ça permet de passer des arguments beaucoup plus facilement (et plus proprement
Aucun support ne sera fait en privé. Si vous avez un problème, faites un post.
Ne pas hésiter à mettre un petit (+) si mon post vous plait ou vous a servi !
#27
Posté 09 July 2012 - 12:54
#28
Posté 09 July 2012 - 15:08
Par contre je ne désire pas garder les items de lvl <63, est-ce que ça les prend aussi ?
Merci d'avance, Ornys
#29
Posté 09 July 2012 - 17:12
#30
Posté 09 July 2012 - 19:41
#31
Posté 09 July 2012 - 20:37
Global $Paused
HotKeySet("=","Leave")
HotKeySet("-", "Pause")
HotKeySet("x", "Stop")
$default_resolutionX = 800
$default_resolutionY = 600
$Amethyst = 0xA56DF1
$Ruby = 0xFA8078
$Emerald = 0x51965B
$Topaz = 0xFFFF59
$Left = 150
$Top = 175
$Right = 750
$Bottom = 550
$Color = 0xFFFF00 ;rare color code
$Color2 = 0x6969FF ;blue color code
$Color3 = 0xBF642F ;legendary color code
$Color4 = 0x00FF00 ;SET color
$go = True
$Leave = False
While $go
if($Leave) Then
$Pixel1 = PixelSearch(562,38,593,83,0xFFF000) ;searches top right screen for yellow of broken armor
If Not @error Then
Send("t")
Sleep(8000)
MouseClick("left", 700, 147) ;begin movement towards merchant
Sleep(Random(2500, 2750))
MouseClick("left", 531, 51) ;moves to get merchant in screen
Sleep(Random(3000, 3250))
MouseClick("left", 294, 296) ;button to open up repair menu
Sleep(Random(1000, 1250))
MouseClick("left", 186, 326) ;button to pay for repairs
Sleep(Random(1000, 1250))
MouseClick("left", 291,39)
Sleep(Random(1000, 1500))
MouseClick("left",333,480)
Sleep(Random(2500, 2750))
MouseClick("left",261,439)
Sleep(Random(2500, 2750))
Send("{ESCAPE}") ;menu
MouseClick("left",406,354) ;button to leave game
Sleep(13000)
MouseClick("left",141,260) ;button to resume game from main menu
Sleep(8000)
Else
MouseClick("left",225,224) ;starts the main run
Sleep(3000)
MouseClick("left",17,242)
Sleep(3700)
MouseClick("left",13,276) ;middle of area outside of cellar
Sleep(3000)
MouseClick("left",28,309) ;don't ask
Sleep(2000)
MouseMove(258,135,1) ;moves cursor over to the cellar so the proper blue pixel becomes highlighted
Sleep(2000)
$Pixel2 = PixelSearch(320,151,0,0,0x3B62E3,7) ;searches for the specific blue pixel that only occurs when mouse hovers over open cellar
$Pixel2 = PixelSearch(320,151,0,0,0x425EAA,7)
If Not @error Then
MouseClick("left",258,135) ;Entrance to cellar
Sleep(3700)
Send("4")
Sleep(1000)
MouseClick("left",25,552)
Sleep(4000)
MouseClick("middle",186,184)
Sleep(1700)
MouseClick("right",291,182)
Sleep(500)
MouseClick("left",286,230)
Sleep(50)
Send("2")
Send("{SHIFTDOWN}")
Sleep(100)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
MouseClick("left",170,92)
Sleep(200)
Send("{SHIFTUP}")
Sleep(3000)
Sleep(7000)
MouseClick("left",268,195) ;location of sarkoth after death
Sleep(3500)
MouseClick("left",679,217) ;moves to right top corner for gold
Sleep(2000)
MouseClick("left",477,418) ;moves to bottom middle for gold
Sleep(2000)
MouseClick("left",41,537) ;moves to left top corner for gold
Sleep(2500)
MouseClick("left",232,199) ;moves to shut the fuck up
Sleep(1500)
MouseClick("left",781,472) ;whoopie
Sleep(1500)
FindItem()
Sleep(Random(250, 400))
Send("t")
Sleep(6200)
Send("{Escape}") ;menu
MouseClick("left",406,354) ;button to leave game
Sleep(8000)
MouseClick("left",141,260) ;button to resume game from main menu
Sleep(7000)
Else
Send("3")
Send("t")
Sleep(8200)
Send("{ESCAPE}") ;menu
MouseClick("left",406,354) ;button to leave game
Sleep(13000)
MouseClick("left",141,260) ;button to resume game from main menu
Sleep(8000)
EndIf
EndIf
EndIf
WEnd
Func Pause()
$Leave = False
EndFunc
Func Stop() ;to allow the script to stop
Exit
EndFunc
Func Leave()
$Leave = True
EndFunc
Func FindItem()
Sleep(Random(200, 300))
Send("{ALTDOWN}")
$SearchResult = PixelSearch(150, 175, $Right, $Bottom, $Color) ;Searches for Rares.
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 175, $Right, $Bottom, $Color3 ) ;Searches for Legendarys
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 175, $Right, $Bottom, $Color4) ;Searches for Sets
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 200, 700, 400, 0x05E204, 8) ;Set loot
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10)
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 200, 700, 400, 0xBF642F, 3) ;Legendary loot
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 200, 700, 400, 0xFFFF00, 3) ;Rare loot (darker for compatibility)
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(700, 400, 150, 200, 0x05E204, 8) ;Set loot
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 200, 700, 400, 0x05E204, 8) ;Set loot
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(700, 400, 150, 200, 0xBF642F, 3) ;Legendary loot
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 200, 700, 400, 0xBF642F, 3) ;Legendary loot
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(700, 400, 150, 200, 0xFFFF00, 3) ; Rare loot (darker for compatibility)
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
$SearchResult = PixelSearch(150, 200, 700, 400, 0xFFFF00, 2) ; Rare loot (darker for compatibility)
If Not @error Then
MouseClick("left", $SearchResult[0], $SearchResult[1], 1, 10) ;Pickup
Sleep(Random(300, 500))
EndIf
Send("{ALTUP}")
EndFunc
#32
Posté 09 July 2012 - 22:52
Des fois, le bot ne détecte pas qu'il y a des rares et ne les analyse pas...
Bidoche/Wave, quels codes de couleurs as-tu utilisé ?
Vous pouvez m'aider ?
#33
Posté 10 July 2012 - 07:16
Quelqun aurait plusieurs couleurs pour les objets Rares ?
Des fois, le bot ne détecte pas qu'il y a des rares et ne les analyse pas...
Bidoche/Wave, quels codes de couleurs as-tu utilisé ?
Vous pouvez m'aider ?
$array= PixelSearch(1457 + $tj, 632 + $ti, 1459 + $tj, 634+$ti, 0x241913,5)
If Not @error Then
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, 0x4A3C0B, 20)Sinon le script au complet pour barbare
;tofuartist, LATM & BlackSack's Barbarian Script
;notAres' Sarkoth Gold Script - 6/16/2012
;YOU MUST START THE BOT AT THE RESUME GAME SCREEN!
;Thread: http://www.ownedcore.com/forums/diablo-3/diablo-3-bots-programs/d3-gold-profiles/355316-goldfarming-barbarian-sarkoth-goldfarming-script-autoit-script-1920x1080.html
;;;;;
;WONT WORK UNLESS MOVE IS BOUND TO MIDDLE MOUSE (Mouse 3) -- NOT MOVE/INTERACT
;Required build: http://us.battle.net/d3/en/calculator/barbarian#TUXgkj!ghV!bYabZa
;Required display mode for cellar detection: "FULLSCREEN WINDOWED"
;Official supported resolution: 1920x1080
;;;;;
;Original by mackus101 @ ownedcore
;ImageSearch contributions by rvbfreak, goofinator, and asuRob
;Refactoring and additional functions by Shimizoki
;=========== DO NOT TOUCH ===========;
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt('MouseCoordMode', 2)
Opt('PixelCoordMode', 2)
Global $size = WinGetClientSize("[CLASS:D3 Main Window Class]"), $ver = "1.9", $ini = "tf-Barbarian.ini", $hFont = 0, $title, $Paused, $Go = False, $i = 0, $gX = 0, $gY = 0, $LegendaryCount = 0, $SetCount = 0, $RareCount = 0, $MagicCount = 0, $GemCount = 0, $TomeCount = 0, $t = TimerInit(), $rt = 0, $run = 0, $yellow = 0xFFF000, $red = 0xD90000, $lblRun, $lblLocation, $lblStatus, $lblLast, $lblRuntime, $lblGear, $lblItems
For $i = 0 To Random(3, 6, 1)
$title &= Chr(Random(97, 122, 1))
Next
For $i = 0 To Random(4, 8, 1)
$title &= Chr(Random(65, 90, 1))
Next
$title &= " "
Global $gems[8] = ["Ru1.png", "Ru2.png", "Em1.png", "Em2.png", "To1.png", "To2.png", "Am1.png", "Am2.png"]
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!")
If $size = 0 Then
MsgBox(16, "Error", "Diablo III is not running, cannot grab resolution!" & @CRLF & "Exiting...")
Exit
EndIf
;====================================;
;============= SETTINGS =============;
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
$movementSpeed = 0 ;This is the % increase movement speed you have. 25 = 25%, 0 = 0%, 50 = 50%
;Custom Loot
$pngLoc = "C:\Program Files (x86)\AutoIt3\pics\" ;Location of the .PNGs (NO SUBFOLDERS - ALL PNGS GO HERE)
$totalItems = 1 ;Number of items in the pick array
Global $pick[$totalItems] ;DONT CHANGE THIS
;Array of items to loot (GEMS AND TOMES ALREADY INCLUDED)
$pick[0] = "mythic.png|40" ;png|Tolerance
;$pick[1] = "item2.png|0"
;$pick[2] = "item3.png|0"
;Looting
$LootSets = "True" ;True if you want to pick up Sets
$LootLegendaries = "True" ;True if you want to pick up Legendaries
$LootRares = "True" ;True if you want to pick up Rares
$LootMagic = "True" ;True if you want to pick up Magic
$LootGems = "True" ;True if you want to pick up Gems
$LootTomes = "True" ;True if you want to pick up Tome of Secrets
$LootCustom = "False" ;True if you want to pick up Custom Items (The items in the $pick array above)
;Manage Loot
$mLoot = 5 ;Nuber of successful runs until Stash and Vendor
$mLootOff = 2 ;Stash and Vendor after mLoot +- X number of runs (Variability)
;Stashing
$StashLoot = "True" ;True if you want to store Items in the stash
$IdentifyItems = "True" ;True if you want to identify Items before stashing
;---
$StashLegendary = "True";True if you want to store Legendary items in the stash
$StashRare = "True" ;True if you want to store Rare items in the stash
$StashMagic = "False" ;True if you want to store Magic items in the stash
$StashTomes = "True" ;True if you want to store Tomes items in the stash
$StashGems = "True" ;True if you want to store Gems items in the stash
$GemTab = 2 ;Tab to put gems and tombs in
$ItemTab = 1 ;Tab to put any items in
$NextItemTab = 3 ;Next Tab to put any items in when first one is full
;Vendoring ==NEW SETTINGS==
$VendorLoot = "True" ;True if you want to vendor anything
;---
$VendorRare = "False" ;True if you want to vendor Rares
$VendorMagic = "True" ;True if you want to vendor Magic
$vendorAll = "False" ;True if you want to right click all items when talking to vendor
$vendorRows = 6 ;# of rows to vendor, starting from the top (default = 5: bottom row is safe)
$vendorCols = 10 ;# of columns to vendor, starting from left
;Variability ==NEW SETTINGS==
$Timer = "True" ;True and the bot will add random sleep intervals
;---
$walktime = 2400 ;Time (in ms) the script waits for you to enter and load the cellar. Slow this down for slower move speeds and loading times
$loadtime = 3400 ;Time (in ms) the script waits for the game to load before it starts pathfinding. Slow this down for slower hard drives
$tptime = 6900 ;Time (in ms) the script waits for teleport before exiting the game
;====================================;
$x_ratio = $size[0] / 1920
$y_ratio = $size[1] / 1080
If FileExists($ini) Then
Call("ReadINI")
Call("CreateINI")
Else
Call("CreateINI")
EndIf
$mLootIn = $mLoot ;DO NOT CHANGE, how many more runs till next manage
$movementSpeed = 1 + ($movementSpeed / 100)
$VersionsInfo = "http://dl.dropbox.com/u/9955791/version.ini"
$oldVersion = IniRead("updater.ini", "Version", "Version", $ver)
$newVersion = "0.0"
If Not FileExists($pngLoc & "MainMenu.png") Then
MsgBox(16, "Fatal Error", "FATAL ERROR: Cannot find: " & $pngLoc & "MainMenu.png" & @CRLF & "Make sure your directory is set properly in the script")
Exit
EndIf
Call("SetupGUI")
While 1
Call("RestartRun")
WEnd
Func RestartRun()
If ($Go) Then
$i = 0
Send("{SPACE}")
Sleep(100)
WinSetTitle($title, "", $title & $ver & " - Running")
RandMove(Round(Random(10, 230) * $x_ratio), Round(Random(11, 286) * $y_ratio), 120, 20);Moves mouse out of the way
;Checks if the player is Dead/Logout/Window, then in Old Ruins, then if in Main Menu, etc.
If CheckDead() Then
Return
ElseIf CheckFor("OldRuins", "", 1500 * $x_ratio, 0 * $y_ratio, 1920 * $x_ratio, 80 * $y_ratio, 1, 140) Then
Call("TownPortal")
Call("LeaveGame")
Return
ElseIf CheckFor("MainMenu", "", Round(40 * $x_ratio), Round(300 * $y_ratio), Round(400 * $x_ratio), Round(450 * $y_ratio), 7, 140) Then
GUICtrlSetData($lblRun, "Run Number: " & $run & " - Runs till vendor: " & $mLootIn)
GUICtrlSetData($lblLocation, "Location: Main Menu")
GUICtrlSetData($lblStatus, "Status: Starting Game")
Send("{SPACE}")
Sleep(100)
RandClick("left", Round(230 * $x_ratio), Round(416 * $y_ratio), 120, 20, 1, 6) ;Random Click on the resume button
$rt = TimerInit()
$run += 1
ElseIf CheckFor("ExitGame", "", Round(700 * $x_ratio), Round(340 * $y_ratio), Round(1200 * $x_ratio), Round(420 * $y_ratio), 1, 140) Then
GUICtrlSetData($lblStatus, "Status: Exit window up")
MouseClick("left", Round(1064 * $x_ratio), Round(632 * $y_ratio))
Sleep(100)
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))
$rand = Random(40000, 80000)
GUICtrlSetData($lblStatus, "Status: Input Limit - Waiting " & Round($rand / 1000) & " seconds.")
Sleep($rand)
Send("{SPACE}")
Return
ElseIf CheckFor("Disconnect", "", Round(700 * $x_ratio), Round(340 * $y_ratio), Round(1200 * $x_ratio), Round(600 * $y_ratio), 1, 140) Then
GUICtrlSetData($lblStatus, "Status: Network Disconnect window up")
MouseClick("left", Round(960 * $x_ratio), Round(632 * $y_ratio))
Sleep(100)
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", 1500 * $x_ratio, 0 * $y_ratio, 1920 * $x_ratio, 80 * $y_ratio, 6, 180) Then
GUICtrlSetData($lblLocation, "Location: Old Ruins")
;Check if player needs to repair
Call("CheckRepair")
;Start Run
RandClick("middle", Round(587 * $x_ratio),Round(333 * $y_ratio), 2, 2) ;starts the main run
Sleep(Random(990,1140))
RandMove(Round(96*$x_ratio),Round(383*$y_ratio), 2, 2)
Sleep(Random(5, 10))
Send("1")
Sleep(300)
Send("3")
Sleep(360)
RandClick("right",Round(210*$x_ratio),Round(12*$y_ratio), 10, 10)
RandClick("middle", Round(56 * $x_ratio),Round(360 * $y_ratio), 1, 1)
Sleep(Random(2300, 2500))
;RandMove(Round(348*$x_ratio),Round(179*$y_ratio), 2, 2) ;moves cursor over to the cellar so the proper blue pixel becomes highlighted
$celx = 348
$cely = 179
MouseMove(Round($celx*$x_ratio),Round($cely*$y_ratio), 1) ;moves cursor over to the cellar
Sleep(200)
$Pixel2 = PixelSearch(0,0, Round(600*$x_ratio), Round(600*$y_ratio),0x334FB7,3) ;checks for open cellar (in a 600x400 box from the top left - where it should always be)
If @error Then
$celx = 309
$cely = 224
MouseMove(Round($celx*$x_ratio),Round($cely*$y_ratio),1) ;moves cursor over to the cellar
Sleep(200)
$Pixel2 = PixelSearch(0,0, Round(600*$x_ratio), Round(600*$y_ratio),0x334FB7,3) ;checks for open cellar (in a 600x400 box from the top left - where it should always be)
EndIf
$celerr = @error
Sleep(10)
If Call("CheckDead") Then
Return
EndIf
;Checks if Dank Cellar is Open
;$Pixel2 = PixelSearch(0, 0, Round(600 * $x_ratio), Round(600 * $y_ratio), 0x334FB7, 3)
If Not $celerr Then
GUICtrlSetData($lblStatus, "Status: Cellar - Found")
Sleep(10)
RandClick("right",Round(15*$x_ratio),Round(1055*$y_ratio), 10, 10)
RandClick("left",Round($celx*$x_ratio),Round($cely*$y_ratio), 1) ;Entrance to cellar
Sleep(Random(1400, 1600))
Moving($walktime)
Else ;ABORT RUN
GUICtrlSetData($lblStatus, "Status: Cellar - Not Found" & @CRLF)
Sleep(10)
Send("{SHIFTDOWN}")
RandClick("left", Round(900*$x_ratio), Round(600*$y_ratio), 100, 100) ;earthquake
Send("{SHIFTUP}")
Sleep(620)
Call("TownPortal")
If Not Call("CheckDead") Then
Call("LeaveGame")
EndIf
Return
EndIf
Else
Call("TownPortal")
If Not Call("CheckDead") Then
Call("LeaveGame")
EndIf
Return
EndIf
;Checks that the player is in the Dank Cellar
If CheckFor("DankCellar", "Area", 1500 * $x_ratio, 0 * $y_ratio, 1920 * $x_ratio, 80 * $y_ratio, 6, 180) Then
GUICtrlSetData($lblLocation, "Location: Dank Cellar")
Call("CheckDead")
RandClick("middle",Round(80*$x_ratio),Round(830*$y_ratio), 1, 1) ;moves to doorway leading to rare inside cellar
Sleep(Random(2000, 2400))
GUICtrlSetData($lblStatus, "Status: Attacking Sarkoth")
RandMove(Round(350*$x_ratio),Round(60*$y_ratio),1) ;hovers over the rare Sarkoth
Send("1")
Sleep(200)
Send("{SHIFTDOWN}")
RandClick("left", Round(11*$x_ratio), Round(1037*$y_ratio), 10, 10) ;earthquake
Send("{SHIFTUP}")
Sleep(200)
Send("{SHIFTDOWN}")
RandClick("left", Round(11*$x_ratio), Round(1037*$y_ratio), 10, 10) ;earthquake
Send("{SHIFTUP}")
Sleep(1300)
Send("4")
Sleep(140)
Send("4")
Sleep(140)
Send("4")
Sleep(140)
Send("4")
Sleep(140)
Send("4")
Sleep(100)
Send("2")
Sleep(100)
Send("2")
Sleep(100)
Send("2")
Sleep(Random(1000, 1400))
RandClick("middle",Round(730*$x_ratio),Round(585*$y_ratio), 1, 1) ;move to left top corner for gold
Sleep(Random(425, 675))
RandClick("middle",Round(1205*$x_ratio),Round(380*$y_ratio), 1, 1) ;move to right top corner for gold
Sleep(Random(450, 700))
RandClick("middle",Round(1121*$x_ratio),Round(805*$y_ratio), 1, 1) ;move to middle before looting
Sleep(Random(1000, 1160))
Call("CheckDead")
GUICtrlSetData($lblStatus, "Status: Looting")
Call("Loot")
RandSleep(0, 5, 25)
Call("CheckDead")
Call("TownPortal")
Else
Sleep(10)
Send("{SHIFTDOWN}")
RandClick("left", Round(900*$x_ratio), Round(600*$y_ratio), 100, 100) ;earthquake
Send("{SHIFTUP}")
Sleep(620)
Call("TownPortal")
If Not Call("CheckDead") Then
Call("LeaveGame")
EndIf
Return
EndIf
;After successful run
If Not Call("CheckDead") Then
Sleep(600)
If $mLootIn = 1 And CheckFor("NewTristram", "Area", 1500 * $x_ratio, 0 * $y_ratio, 1920 * $x_ratio, 80 * $y_ratio, 4, 200) Then ;If its time to manage loot and we are in town
If $IdentifyItems == "True" Then
Call("Identify")
EndIf
If $StashLoot == "True" Then
Call("StashLoot")
EndIf
If $VendorLoot == "True" Then
Call("VendorLoot")
EndIf
$mLootIn = Round(Random($mLoot - $mLootOff, $mLoot + $mLootOff)) ;Reset Counter
ElseIf Not CheckFor("NewTristram", "Area", 1500 * $x_ratio, 0 * $y_ratio, 1920 * $x_ratio, 80 * $y_ratio, 1, 200) Then
GUICtrlSetData($lblStatus, "Status: Skipping vendor, not in New Tristram")
Sleep(3000)
Else
$mLootIn -= 1
EndIf
If Not Call("CheckDead") Then
Call("LeaveGame")
EndIf
Return
Else
Return
EndIf
EndIf
EndFunc ;==>RestartRun
;Helper Functions
Func SetupGUI()
$frmBot = GUICreate($title & $ver & " - Updating", 280, 121, Round(1540 * $x_ratio), Round(920 * $y_ratio), -1, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW), 0)
GUISetBkColor(0xC0C0C0)
$lblRun = GUICtrlCreateLabel("Run Number: 0 - Runs till vendor: 0", 4, 0, 280, 24)
GUICtrlSetFont(-1, 10, 600, 0, "Segoe UI")
GUICtrlSetColor(-1, 0xFF0000)
$lblLocation = GUICtrlCreateLabel("Location: Main Menu", 12, 20, 240, 17)
$lblStatus = GUICtrlCreateLabel("Status: ", 12, 35, 240, 17)
$lblLast = GUICtrlCreateLabel("Last Runtime: 0 seconds", 12, 50, 240, 17)
$lblRuntime = GUICtrlCreateLabel("Total Runtime: 0 hours, 0 minutes", 12, 65, 240, 17)
$lblGear = GUICtrlCreateLabel("Legendary: 0 - Set: 0 - Rare: 0", 12, 80, 240, 17)
$lblItems = GUICtrlCreateLabel("Magic: 0 - Gems: 0 - Tomes: 0", 12, 95, 240, 17)
GUISetState(@SW_SHOW)
EndFunc ;==>SetupGUI
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($loadtime)
Return 1
EndIf
$YouHaveDied = PixelSearch(Round(620 * $x_ratio), Round(325 * $y_ratio), Round(625 * $x_ratio), Round(330 * $y_ratio), 0xFFFFFF) ; checks for white text "YOU HAVE DIED"
If Not @error Then
GUICtrlSetData($lblStatus, "Status: Dead")
Call("LeaveGame")
Sleep(11000)
Sleep($loadtime)
Return 1
Else
Return 0
EndIf
EndFunc ;==>CheckDead
Func CheckRepair()
$RepairArea = PixelSearch(Round(1480 * $x_ratio), 0, Round(1570 * $x_ratio), Round(100 * $y_ratio), $yellow)
If Not @error Then
Call("DoRepair")
EndIf
$RepairAreaRed = PixelSearch(Round(1480 * $x_ratio), 0, Round(1570 * $x_ratio), Round(100 * $y_ratio), $red)
If Not @error Then
Call("DoRepair")
EndIf
EndFunc ;==>CheckRepair
Func DoRepair()
Sleep(Random(75, 150))
Call("TownPortal")
If Call("CheckDead") Then
Return
EndIf
If CheckFor("NewTristram", "Area", 1500 * $x_ratio, 0 * $y_ratio, 1920 * $x_ratio, 80 * $y_ratio, 6, 180) Then
RandClick("left", Round(1480 * $x_ratio), Round(281 * $y_ratio), 1, 1) ;begin movement towards merchant
Moving(1875)
RandClick("left", Round(1316 * $x_ratio), Round(206 * $y_ratio), 1, 1) ;moves to get merchant in screen
Moving(1875)
RandClick("left", Round(845 * $x_ratio), Round(225 * $y_ratio), 1, 1) ;NPC Merchant to the right of cain's home
Sleep(1200)
RandClick("left", Round(521 * $x_ratio), Round(506 * $y_ratio), 1, 1) ;button to open up repair menu
Sleep(400)
RandClick("left", Round(260 * $x_ratio), Round(595 * $y_ratio), 1, 1) ;button to pay for repairs
Sleep(Random(1000, 2000)
Send("{Escape}")
If Not Call("CheckDead") Then
Call("LeaveGame")
EndIf
EndIf
EndFunc ;==>DoRepair
Func CalcTime()
$srt = TimerDiff($rt)
GUICtrlSetData($lblLast, "Last Runtime: " & Round($srt / 1000, 2) & " seconds.")
$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
GUICtrlSetData($lblRuntime, "Total Runtime: " & $hours & " hours, " & Ceiling($minutes) & " minutes")
EndFunc ;==>CalcTime
Func CheckFor($img, $type = "", $startX = 0, $startY = 0, $endX = @DesktopWidth, $endY = @DesktopHeight, $seconds = 5, $tolerance = 130)
$c = 0
$string = $pngLoc & $img & ".png"
Do
$c += 1
Sleep(100)
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 False
EndIf
Until _ImageSearchArea($string, 1, $startX, $startY, $endX, $endY, $gX, $gY, $tolerance)
Return True
EndFunc ;==>CheckFor
Func Loot()
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $y_ratio), 3) ;Moves mouse out of the way
If $LootCustom == "True" Then
Call("LootCustom")
EndIf
If $LootTomes == "True" Then
Call("LootTomes")
EndIf
If $LootSets == "True" Then
$SetCount += LootGear(0x02CE01, 2)
EndIf
If $LootLegendaries == "True" Then
$LegendaryCount += LootGear(0xBF642F, 0)
EndIf
If $LootRares == "True" Then
$RareCount += LootGear(0xBBBB00, 2)
EndIf
If $LootGems == "True" Then
Call("LootGems")
EndIf
If $LootMagic == "True" Then
$MagicCount += LootGear(0x6969FF, 2)
EndIf
Call("ShowLoot")
EndFunc ;==>Loot
Func LootGear($color, $tolerance = 2)
$count = 0
$Loot = PixelSearch(Round(400 * $x_ratio), 0, Round(1690 * $x_ratio), Round(900 * $y_ratio), $color, $tolerance)
If Not @error Then
While Not @error
$count += 1
MouseClick('left', $Loot[0], $Loot[1], 1, 3)
Sleep(Random(400,600))
;Run at max 10 times per quality
If $count >= 10 Then
ExitLoop
EndIf
$Loot = PixelSearch(Round(400 * $x_ratio), 0, Round(1690 * $x_ratio), Round(900 * $y_ratio), $color, $tolerance)
WEnd
EndIf
Return $count
EndFunc ;==>LootGear
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
While _ImageSearchArea($pngLoc & $file, 1, 0, 0, @DesktopWidth, @DesktopHeight, $gX, $gY, $accuracy)
$count += 1
Sleep(Random(75, 150))
MouseClick("left", $gX, $gY, 1, 1)
Sleep(Random(800, 1200))
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $y_ratio), 3) ;Moves mouse out of the way
If $count >= 10 Then
ExitLoop
EndIf
WEnd
Next
EndFunc ;==>LootCustom
Func LootGems()
$count = 0
$gX = 0
$gY = 0
While _ImageSearchArea($pngLoc & "square.png", 1, 0, 0, @DesktopWidth, @DesktopHeight, $gX, $gY, 90)
$count += 1
Sleep(Random(75, 150))
MouseClick("left", $gX, $gY - 3, 1, 3)
$GemCount += 1
Sleep(Random(400, 600))
If $count >= 10 Then
ExitLoop
EndIf
WEnd
EndFunc ;==>LootGems
Func LootTomes()
$count = 0
$gX = 0
$gY = 0
While _ImageSearchArea($pngLoc & "tome.png", 1, 0, 0, @DesktopWidth, @DesktopHeight, $gX, $gY, 90)
$count += 1
Sleep(Random(75, 150))
MouseClick("left", $gX, $gY - 3, 1, 3)
$TomeCount += 1
Sleep(Random(400, 600))
If $count >= 10 Then
ExitLoop
EndIf
WEnd
EndFunc ;==>LootTomes
Func Identify()
Send("i")
Sleep(1300)
While _ImageSearchArea($pngLoc & "unidentified.png", 1, 1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 888 * $y_ratio, $gX, $gY, 120)
GUICtrlSetData($lblStatus, "Status: Identifying")
Sleep(Random(200, 300))
MouseClick("right", $gX, $gY, 1)
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $y_ratio), 3) ;Moves mouse out of the way
Sleep(Random(3000, 3500))
WEnd
Send("i")
Sleep(600)
EndFunc ;==>Identify
Func ClickTab($Tabno)
if $Tabno = 1 then RandClick("left", Round(517 * $x_ratio), Round(229 * $y_ratio), 3, 4)
if $Tabno = 2 then RandClick("left", Round(517 * $x_ratio), Round(361 * $y_ratio), 3, 4)
if $Tabno = 3 then RandClick("left", Round(517 * $x_ratio), Round(486 * $y_ratio), 3, 4)
Sleep(Random(100, 200))
EndFunc ;==>ClickTab
Func UseNextTab()
if $ItemTab = $NextItemTab then
$StashLegendary = "False"
$StashRare = "False"
$StashMagic = "False"
Else
$ItemTab = $NextItemTab
EndIf
EndFunc ;==>UseNextTab
Func StashLoot()
GUICtrlSetData($lblStatus, "Status: Putting Items in Stash")
Sleep(Random(1000, 1500))
MouseClick("left", 1064 * $x_ratio, 256 * $y_ratio)
Sleep(Random(1500, 2000))
$c = 0
$i = 0
While $i<=5
$ti=48*$i
$j=0
While $j<=9
$tj=48*$j
MouseMove(1448 + $tj - random (5,30), 626 + $ti - random (5,30), 3)
Sleep(random(5,15))
$j+=1
WEnd
$i+=2
WEnd
;Legendaries
If $StashLegendary == "True" then
ClickTab($ItemTab)
$sc = 0
While $sc < 5
Sleep(Random(200, 300))
$LegendPixel = PixelSearch(1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 888 * $y_ratio, 0x4D2C0D, 1)
If Not @error Then
GUICtrlSetData($lblStatus, "Status: Stashing Legendaries")
MouseClick("right", $LegendPixel[0], $LegendPixel[1], 1, 4)
Else
ExitLoop
EndIf
$sc += 1
WEnd
if $sc = 5 then
Call("UseNextTab")
endif
EndIf
;Magic
if $StashMagic == "True" then
ClickTab($ItemTab)
$c = 0
$i = 0
While $i<=5
$ti=48*$i
$j=0
While $j<=9
$tj=48*$j
$array= PixelSearch(1457 + $tj, 632 + $ti, 1459 + $tj, 634+$ti, 0x241913,5)
If Not @error Then
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, 0x3C576C,20)
If Not @error Then
MouseMove( $StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 3)
Sleep(random(50,80))
If _ImageSearchArea($pngLoc & "lvl63.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
EndIf
EndIf
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, 0x3A4670,20)
If Not @error Then
MouseMove( $StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 3)
Sleep(random(50,80))
If _ImageSearchArea($pngLoc & "lvl63.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
EndIf
EndIf
EndIf
$j+=1
WEnd
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $y_ratio), 3) ;Moves mouse out of the way
$i+=1
WEnd
if $sc = 20 then
Call("UseNextTab")
endif
EndIf
;Rares
if $StashRare == "True" then
ClickTab($ItemTab)
$c = 0
$i = 0
MouseClick("left", random (508,520) * $x_ratio, random (460,520) * $y_ratio)
While $i<=5
$ti=48*$i
$j=0
While $j<=9
$tj=48*$j
$array= PixelSearch(1457 + $tj, 632 + $ti, 1459 + $tj, 634+$ti, 0x241913,5)
If Not @error Then
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, 0x4A3C0B, 20)
If Not @error Then
MouseMove( $StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 3)
Sleep(random(50,80))
If _ImageSearchArea($pngLoc & "lvl63.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
EndIf
EndIf
$StashPixel = PixelSearch(1448 + $tj, 626 + $ti, 1458 + $tj, 631+$ti, 0x4A3C0B, 20)
If Not @error Then
MouseMove( $StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 3)
Sleep(random(50,80))
If _ImageSearchArea($pngLoc & "lvl62.png", 1, 1448 + $tj - 475, 430, 1448 + $tj, 1050, $gX, $gY, 140) Then
MouseClick("right",$StashPixel[0] - random (5,30),$StashPixel[1] - random (5,30), 1, 3)
EndIf
EndIf
EndIf
$j+=1
WEnd
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $y_ratio), 3) ;Moves mouse out of the way
$i+=1
WEnd
if $sc = 10 then
Call("UseNextTab")
endif
EndIf
;Tomes
If $StashTomes == "True" Then
If _ImageSearchArea($pngLoc & "TomeIcon.png", 1, 1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 888 * $y_ratio, $gX, $gY, 140) Then
GUICtrlSetData($lblStatus, "Status: Stashing Tomes")
ClickTab($GemTab)
MouseClick("right", $gX, $gY, 1, 4)
Sleep(80)
EndIf
EndIf
;Gems (DOESN'T STASH BOTTOM ROW!)
if $StashGems == "True" Then
ClickTab($GemTab)
GUICtrlSetData($lblStatus, "Status: Stashing Gems")
For $i = 0 To 7
If _ImageSearchArea($pngLoc & $gems[$i], 1, 1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 820 * $y_ratio, $gX, $gY, 140) Then
MouseClick("right", $gX, $gY, 1, 4)
Sleep(Random(400, 600))
EndIf
Next
EndIf
Sleep(Random(1000, 3000))
Send("{SPACE}")
EndFunc ;==>StashLoot
Func VendorLoot()
GUICtrlSetData($lblStatus, "Status: Vendoring Items")
If Not $StashLoot == "True" Then ;Move from TP towards vendor
Sleep(Random(300, 500))
MouseClick("middle", 1565 * $x_ratio, 50 * $y_ratio)
Else ;Move from Stash towards vendor
Sleep(Random(300, 500))
MouseClick("middle", 1560 * $x_ratio, 120 * $y_ratio)
EndIf
Sleep(3000)
MouseClick("left", 1030 * $x_ratio, 210 * $y_ratio) ;Talk to vendor
Sleep(3000)
;All
If $vendorAll == "True" Then
For $c = 1 To $vendorCols
For $r = 1 To $vendorRows
RandClick("right", (((($c - 1) * 50) + 32 + 1400) * $x_ratio), (((($r - 1) * 51) + 32 + 580) * $y_ratio), 2, 2, 1, 2.5)
Next
Next
EndIf
;Rares
If $VendorRare == "True" Then
$c = 0
While $c <= 10
Sleep(Random(100, 300))
$RarePixel = PixelSearch(1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 888 * $y_ratio, 0x4A3C0B, 1)
If Not @error Then
MouseClick("right", $RarePixel[0], $RarePixel[1], 1, 4)
Sleep(Random(400, 600))
$c += 1
Else
ExitLoop
EndIf
WEnd
EndIf
;Magic
If $VendorMagic == "True" Then
$c = 0
While $c <= 25
Sleep(Random(100, 300))
$MagicPixel = PixelSearch(1400 * $x_ratio, 580 * $y_ratio, 1914 * $x_ratio, 888 * $y_ratio, 0x182037, 1)
If Not @error Then
MouseClick("right", $MagicPixel[0], $MagicPixel[1], 1, 4)
Sleep(Random(400, 600))
$c += 1
Else
ExitLoop
EndIf
WEnd
EndIf
Sleep(200)
RandClick("left", Round(521 * $x_ratio), Round(506 * $y_ratio), 1, 1) ;button to open up repair menu
Sleep(300)
RandClick("left", Round(260 * $x_ratio), Round(595 * $y_ratio), 1, 1) ;button to pay for repairs
Sleep(200)
Sleep(Random(1000, 2000))
GUICtrlSetData($lblStatus, "Status: Done With Vendor")
Send("{ESCAPE}")
EndFunc ;==>VendorLoot
Func DoUpdate()
$ini = InetGet($VersionsInfo, @ScriptDir & "\version.ini") ;download version.ini
If $ini = 0 Then ;was the download of version.ini successful?
MsgBox(16, "Fatal Error", "The server seems to be offline. No update will be done.")
Else
$newVersion = IniRead(@ScriptDir & "\version.ini", "Version", "Version", "") ;reads the new version out of version.ini
If $newVersion = $oldVersion Then ;compare old and new
;MsgBox (0,"No update","There is no update available!")
FileDelete(@ScriptDir & "\version.ini")
Else
$msg = MsgBox(68, "Update", "A new version is available: " & $newVersion & "! Current version: " & $oldVersion & @CRLF & "Do you want to download the new version?")
If $msg = 7 Then ;No was pressed
FileDelete(@ScriptDir & "\version.ini")
ElseIf $msg = 6 Then ;OK was pressed
$downloadLink = IniRead(@ScriptDir & "\version.ini", "Version", "download", "NotFound")
$dlhandle = InetGet($downloadLink, @ScriptDir & "\Update_" & $newVersion & ".zip", 1, 1)
ProgressOn("Update", "Downloading Updates", "", -1, -1, 16) ;creates a progressbar
$size = InetGetSize($downloadLink, 1) ;get the size of the update
While Not InetGetInfo($dlhandle, 2)
$Percent = Round((InetGetInfo($dlhandle, 0) / $size) * 100)
ProgressSet($Percent, $Percent & "%") ;update progressbar
Sleep(1)
WEnd
ProgressSet(100, "Done", "Complete") ;show complete progressbar
Sleep(500)
ProgressOff() ;close progress window
IniWrite("updater.ini", "version", "version", $newVersion)
InetClose($dlhandle)
$iniMsg = IniRead(@ScriptDir & "\version.ini", "Version", "message", "Exiting...")
MsgBox(64, "Success", "Download Complete!" & @CRLF & "Please restart the bot by extracting the Au3 from Update_" & $newVersion & ".zip" & @CRLF & $iniMsg)
FileDelete(@ScriptDir & "\version.ini")
Exit
EndIf
EndIf
EndIf
WinSetTitle($title, "", $title & $ver & " - Waiting")
EndFunc ;==>DoUpdate
Func ReadINI()
$pngLoc = IniRead($ini, "Custom Loot", "PNG Location", $pngLoc)
$totalItems = IniRead($ini, "Custom Loot", "Total Items", $totalItems)
$movementSpeed = IniRead($ini, "Additional", "Movement Speed", $movementSpeed)
$walktime = IniRead($ini, "Additional", "Walk Time", $walktime)
$loadtime = IniRead($ini, "Additional", "Load Time", $loadtime)
$tptime = IniRead($ini, "Additional", "Teleport Time", $tptime)
$LootSets = IniRead($ini, "Looting", "Sets", $LootSets)
$LootLegendaries = IniRead($ini, "Looting", "Legendaries", $LootLegendaries)
$LootRares = IniRead($ini, "Looting", "Rares", $LootRares)
$LootMagic = IniRead($ini, "Looting", "Magic", $LootMagic)
$LootGems = IniRead($ini, "Looting", "Gems", $LootGems)
$LootTomes = IniRead($ini, "Looting", "Tomes", $LootTomes)
$LootCustom = IniRead($ini, "Looting", "Custom", $LootCustom)
$mLoot = IniRead($ini, "ManageLoot", "Every", $mLoot)
$StashLoot = IniRead($ini, "Stashing", "Loot", $StashLoot)
$StashLegendary = IniRead($ini, "Stashing", "Legendaries", $StashLegendary)
$StashRare = IniRead($ini, "Stashing", "Rares", $StashRare)
$StashMagic = IniRead($ini, "Stashing", "Magic", $StashMagic)
$StashTomes = IniRead($ini, "Stashing", "Tomes", $StashTomes)
$StashGems = IniRead($ini, "Stashing", "Gems", $StashGems)
$VendorLoot = IniRead($ini, "Vendoring", "Loot", $VendorLoot)
$VendorRare = IniRead($ini, "Vendoring", "Rares", $VendorRare)
$VendorMagic = IniRead($ini, "Vendoring", "Magic", $VendorMagic)
$vendorAll = IniRead($ini, "Vendoring", "All", $vendorAll)
$vendorRows = IniRead($ini, "Vendoring", "All-Rows", $vendorRows)
$vendorCols = IniRead($ini, "Vendoring", "All-Cols", $vendorCols)
$Timer = IniRead($ini, "Variability", "Timer", $Timer)
$mLootOff = IniRead($ini, "Variability", "Manage Off By", $mLootOff)
EndFunc ;==>ReadINI
Func CreateINI()
IniWrite($ini, "Custom Loot", "PNG Location", $pngLoc)
IniWrite($ini, "Custom Loot", "Total Items", $totalItems)
IniWrite($ini, "Additional", "Movement Speed", $movementSpeed)
IniWrite($ini, "Additional", "Walk Time", $walktime)
IniWrite($ini, "Additional", "Load Time", $loadtime)
IniWrite($ini, "Additional", "Teleport Time", $tptime)
IniWrite($ini, "Looting", "Sets", $LootSets)
IniWrite($ini, "Looting", "Legendaries", $LootLegendaries)
IniWrite($ini, "Looting", "Rares", $LootRares)
IniWrite($ini, "Looting", "Magic", $LootMagic)
IniWrite($ini, "Looting", "Gems", $LootGems)
IniWrite($ini, "Looting", "Tomes", $LootTomes)
IniWrite($ini, "Looting", "Custom", $LootCustom)
IniWrite($ini, "ManageLoot", "Every", $mLoot)
IniWrite($ini, "Stashing", "Loot", $StashLoot)
IniWrite($ini, "Stashing", "Legendaries", $StashLegendary)
IniWrite($ini, "Stashing", "Rares", $StashRare)
IniWrite($ini, "Stashing", "Magic", $StashMagic)
IniWrite($ini, "Stashing", "Tomes", $StashTomes)
IniWrite($ini, "Stashing", "Gems", $StashGems)
IniWrite($ini, "Vendoring", "Loot", $VendorLoot)
IniWrite($ini, "Vendoring", "Rares", $VendorRare)
IniWrite($ini, "Vendoring", "Magic", $VendorMagic)
IniWrite($ini, "Vendoring", "All", $vendorAll)
IniWrite($ini, "Vendoring", "All-Rows", $vendorRows)
IniWrite($ini, "Vendoring", "All-Cols", $vendorCols)
IniWrite($ini, "Variability", "Timer", $Timer)
IniWrite($ini, "Variability", "Manage Off By", $mLootOff)
EndFunc ;==>CreateINI
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 LeaveGame()
Call("RandSleep")
GUICtrlSetData($lblStatus, "Status: Leaving Game")
Sleep(120)
Send("{Escape}")
Sleep(Random(200, 500))
RandClick("left", Round(956 * $x_ratio), Round(579 * $y_ratio), 120, 20) ;Random Click on the leave button
RandMove(Round(Random(10, 230) * $x_ratio), Round(Random(11, 286) * $y_ratio), 120, 20)
Call("CalcTime")
EndFunc ;==>LeaveGame
Func TownPortal()
GUICtrlSetData($lblStatus, "Status: Returning to Town")
Send("t")
Sleep(Random($tptime, $tptime + 500))
EndFunc ;==>TownPortal
Func Moving($time)
Sleep($time / $movementSpeed)
EndFunc ;==>Moving
Func RandClick($clickType, $xPos, $yPos, $xOff = 10, $yOff = 10, $clicks = 1, $speed = 4)
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 = 20, $yOff = 10)
$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)
EndFunc ;==>RandMove
Func RandSleep($min = 15, $max = 30, $chance = 3)
$randNum = Round(Random(1, 100))
If $Timer == "True" And $randNum <= $chance Then
$sleepTime = Random($min * 1000, $max * 1000)
GUICtrlSetData($lblStatus, "Status: Random Sleep - " & Round($sleepTime / 1000) & " secs")
For $c = 0 To 10
Sleep($sleepTime / 10)
Next
EndIf
EndFunc ;==>RandSleep
;Hotkey Functions
Func Begin()
$Go = Not $Go
If Not $Go Then WinSetTitle($title, "", $title & $ver & " - Halted")
EndFunc ;==>Begin
Func TogglePause()
$Paused = Not $Paused
While $Paused
Sleep(100)
WinSetTitle($title, "", $title & $ver & " - Paused")
ToolTip('Script is "Paused"', 0, 0)
WEnd
WinSetTitle($title, "", $title & $ver & " - Running")
ToolTip("")
EndFunc ;==>TogglePause
Func ShowLoot()
GUICtrlSetData($lblGear, "Legendary: " & $LegendaryCount & " - Set: " & $SetCount & " - Rare: " & $RareCount)
GUICtrlSetData($lblItems, "Magic: " & $MagicCount & " - Gems: " & $GemCount & " - Tomes: " & $TomeCount)
EndFunc ;==>ShowLoot
Func Stop() ;to allow the script to stop
Exit
EndFunc ;==>Stop
#34
Posté 10 July 2012 - 08:01
M enfin revenons a nos moutons
#35
Posté 13 July 2012 - 02:12
#36
Posté 13 July 2012 - 03:20
comment l'ajouter a un bot ? pour ceux qui si connaisse pas trop ^^
Salut,
Ca depend de ton bot.
Pour faire des modifs a la main, tout seul, faut commencer a s'y connaitre.
Donc, pour repondre a ta question, tu peux pas, si tu n'y connais rien
Mat

#37
Posté 13 July 2012 - 12:33
Si t'es motivé, installe NotePad++ et analyse le code
- Skd aime ceci
#38
Posté 13 July 2012 - 13:12
Je confirmeMoi je n'y connaissais, et je n'y connais rien... Si tu es un peu futé, tu comprendras vite le fonctionnement du code/script et tu pourras modifier celui-ci...Si t'es motivé, installe NotePad++ et analyse le code
+1 pour la motivation de notre Speedy
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
#39
Posté 13 July 2012 - 22:54
#40
Posté 14 July 2012 - 18:42
=> Capture d'écran
=> Modifier avec Paint si besoin
=> Enregistrer en .png
=> Glisser dans le dossier des pngs (pics)


Ce sujet est fermé

