|
|
| Author |
Message |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#1 Posted: 02 Aug 2012 12:54 pm Post subject: Wizard AutoIt bot |
|
|
Does a1 flawlessly, Ive been getting 300k per hour. @ 100 % gf.
Coded in AutoIt, really complex to ensure the script is always running...
Wizards only!
Does the a1 cellar, kills sakans... , picks up magics, rares, walks around for gold.
Optimized to imagesearch as small as possible, it fails.
But basically, you'll get rich while maintaining your "life" if you have one..
Can run minimized* thanks to me..
it's very personable and can be changed to your preference.
pm for questions, videos, etc. |
|
| Back to top |
|
 |
FrostNova
Group: Banned Joined: 10 Aug 2011 Posts: 110 Gold: Locked

Status: Warn: Banned Reputation: 0

|
|
| Back to top |
|
 |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#3 Posted: 02 Aug 2012 01:33 pm Post subject: |
|
|
eh i dont really like sam's bot, mine doesn't salvage and all that other bullshit that'll end up getting your items lost or fucked up..
suit urself, and yes, plenty of bots there. this one is custom and you have me, a programmer to walk you through and spend one of one time with you until we have it working on your pc. so fuck you frost nova.  |
|
| Back to top |
|
 |
CheapTrader
 Group: Scammer Joined: 15 Jul 2011 Donor:  Posts: 816 Gold: Locked

Status: Warn:  Reputation: 19

|
#4 Posted: 02 Aug 2012 01:49 pm Post subject: |
|
|
| FrostNova wrote: | | http://www.d3jsp.org/viewtopic.php?t=96660 |
First off.. Most people can simply "Copy and paste" So LOL!
and autoit bots get rocked Every ban wave! Do what you want with that.
For all those of you with $10-$20bucks in paypal buy his premade ( assuming he didn't key log it)
I hope your Resolution/Color ratios Match the Imaging in his premade folders.
If they dont you can S/S and appropriate imaging accordingly.
Edit:
If you want a randomized bot let me know meng.
$100 Donation to my paypal would get you started on the true road to riches.
Last edited by CheapTrader on 02 Aug 2012 01:50 pm; edited 1 time in total _____________________ Trusted Trader here. Feel Safe.
(̅_̅_̅_̅_̅_̅м̲̅a̲̅я̲̅i̲̅j̲̅u̲̅a̲̅n̲̅a̲̅̅_̅̅_̅_̅()ڪے
Pwning the Battle threads.. |
|
| Back to top |
|
 |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#5 Posted: 02 Aug 2012 02:46 pm Post subject: |
|
|
| ^ this. but mine is $20 and it'll match ur gpu, display, and video settings perfectly. Read memory, numbers, and objects rather than images and colors. lots of tinkers that i spent TIME on that I truly think improved my bot 10 fold. sooo. lmk anyone |
|
| Back to top |
|
 |
FrostNova
Group: Banned Joined: 10 Aug 2011 Posts: 110 Gold: Locked

Status: Warn: Banned Reputation: 0

|
#6 Posted: 02 Aug 2012 02:55 pm Post subject: |
|
|
| CheapTrader wrote: | | FrostNova wrote: | | http://www.d3jsp.org/viewtopic.php?t=96660 |
First off.. Most people can simply "Copy and paste" So LOL!
and autoit bots get rocked Every ban wave! Do what you want with that.
For all those of you with $10-$20bucks in paypal buy his premade ( assuming he didn't key log it)
I hope your Resolution/Color ratios Match the Imaging in his premade folders.
If they dont you can S/S and appropriate imaging accordingly.
Edit:
If you want a randomized bot let me know meng.
$100 Donation to my paypal would get you started on the true road to riches. |
you make it seem like im trying to make profit from it. i could care less. i posted it so people can look at that one and at other on that site probably just as good as either of yours or better. its a site promotion. its a good forum and theres no reason to be a jerk about it _________________ This user's signature has been disabled |
|
| Back to top |
|
 |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#7 Posted: 02 Aug 2012 02:57 pm Post subject: |
|
|
| FrostNova wrote: | | CheapTrader wrote: | | FrostNova wrote: | | http://www.d3jsp.org/viewtopic.php?t=96660 |
First off.. Most people can simply "Copy and paste" So LOL!
and autoit bots get rocked Every ban wave! Do what you want with that.
For all those of you with $10-$20bucks in paypal buy his premade ( assuming he didn't key log it)
I hope your Resolution/Color ratios Match the Imaging in his premade folders.
If they dont you can S/S and appropriate imaging accordingly.
Edit:
If you want a randomized bot let me know meng.
$100 Donation to my paypal would get you started on the true road to riches. |
you make it seem like im trying to make profit from it. i could care less. i posted it so people can look at that one and at other on that site probably just as good as either of yours or better. its a site promotion. its a good forum and theres no reason to be a jerk about it |
you didn't do it to help or anything, hold that noise. you did it because you got exposed as a fraud on the site , now you're trying to harm anyone elses sales or profits. my bots better than every PUBLIC bot on there, bc I'm from blizzhackers, I've done work with them. I know they have private bots right now that would wipe mine up, but you'd never see the lights of them. |
|
| Back to top |
|
 |
FrostNova
Group: Banned Joined: 10 Aug 2011 Posts: 110 Gold: Locked

Status: Warn: Banned Reputation: 0

|
#8 Posted: 02 Aug 2012 03:23 pm Post subject: |
|
|
| TheKeep wrote: | | FrostNova wrote: | | CheapTrader wrote: | | FrostNova wrote: | | http://www.d3jsp.org/viewtopic.php?t=96660 |
First off.. Most people can simply "Copy and paste" So LOL!
and autoit bots get rocked Every ban wave! Do what you want with that.
For all those of you with $10-$20bucks in paypal buy his premade ( assuming he didn't key log it)
I hope your Resolution/Color ratios Match the Imaging in his premade folders.
If they dont you can S/S and appropriate imaging accordingly.
Edit:
If you want a randomized bot let me know meng.
$100 Donation to my paypal would get you started on the true road to riches. |
you make it seem like im trying to make profit from it. i could care less. i posted it so people can look at that one and at other on that site probably just as good as either of yours or better. its a site promotion. its a good forum and theres no reason to be a jerk about it |
you didn't do it to help or anything, hold that noise. you did it because you got exposed as a fraud on the site , now you're trying to harm anyone elses sales or profits. my bots better than every PUBLIC bot on there, bc I'm from blizzhackers, I've done work with them. I know they have private bots right now that would wipe mine up, but you'd never see the lights of them. |
ok? like i said before, it just opens up a new route for people to get better/cheap/w.e other
exposed as a fraud? how so? because one kid starts screamin scammer? _________________ This user's signature has been disabled |
|
| Back to top |
|
 |
Ishidon
Group: Members Joined: 17 Jun 2012 Posts: 88 Gold: 9.30
Status: Warn:  Reputation: 1
|
#9 Posted: 02 Aug 2012 03:34 pm Post subject: |
|
|
| Dont buy his bot! We negotiated a deal yesterday, i gave him 5 million gold, he put a script on my computer ran it, and it dropped all my equipped items and stole my gold! Dont trust him! Hes a scammer! |
|
| Back to top |
|
 |
FrostNova
Group: Banned Joined: 10 Aug 2011 Posts: 110 Gold: Locked

Status: Warn: Banned Reputation: 0

|
#10 Posted: 02 Aug 2012 03:44 pm Post subject: |
|
|
| Ishidon wrote: | | Dont buy his bot! We negotiated a deal yesterday, i gave him 5 million gold, he put a script on my computer ran it, and it dropped all my equipped items and stole my gold! Dont trust him! Hes a scammer! |
............. ...............  _________________ This user's signature has been disabled |
|
| Back to top |
|
 |
youshalldie
Group: Members Joined: 01 Aug 2012 Posts: 43 Gold: 2.30
Status: Warn:  Reputation: 0
|
#11 Posted: 02 Aug 2012 03:55 pm Post subject: |
|
|
| FrostNova wrote: | | Ishidon wrote: | | Dont buy his bot! We negotiated a deal yesterday, i gave him 5 million gold, he put a script on my computer ran it, and it dropped all my equipped items and stole my gold! Dont trust him! Hes a scammer! |
............. ...............  |
Says the other scammer. |
|
| Back to top |
|
 |
AceOfSpadez
 Group: Scammer Joined: 29 Jul 2011 Posts: 479 Gold: Locked

Status: Warn:  Reputation: 4

|
#12 Posted: 02 Aug 2012 06:57 pm Post subject: |
|
|
shits free you scumbag
ownedcore com
Last edited by AceOfSpadez on 02 Aug 2012 06:57 pm; edited 1 time in total |
|
| Back to top |
|
 |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#13 Posted: 03 Aug 2012 06:29 pm Post subject: |
|
|
| AceOfSpadez wrote: | shits free you scumbag
ownedcore com |
yeah go get people keylogged.
if anything use blizzhackers.cc
they're little lenient with the moderating |
|
| Back to top |
|
 |
Ishidon
Group: Members Joined: 17 Jun 2012 Posts: 88 Gold: 9.30
Status: Warn:  Reputation: 1
|
#14 Posted: 03 Aug 2012 06:30 pm Post subject: |
|
|
| Instead of having a chance of getting keylogged but having a working bot, you can have no bot and have this guy take all your gold and items! Don't trust him! |
|
| Back to top |
|
 |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#15 Posted: 03 Aug 2012 06:31 pm Post subject: |
|
|
| you're annoying. |
|
| Back to top |
|
 |
Ishidon
Group: Members Joined: 17 Jun 2012 Posts: 88 Gold: 9.30
Status: Warn:  Reputation: 1
|
#16 Posted: 03 Aug 2012 06:32 pm Post subject: |
|
|
shouldnt have stolen my stuff  |
|
| Back to top |
|
 |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#17 Posted: 03 Aug 2012 06:55 pm Post subject: |
|
|
| Ishidon wrote: | shouldnt have stolen my stuff  |
you know i couldv'e taken ur measly coins and didn't stop lying you faggot.
Last edited by TheKeep on 03 Aug 2012 06:55 pm; edited 1 time in total |
|
| Back to top |
|
 |
Ishidon
Group: Members Joined: 17 Jun 2012 Posts: 88 Gold: 9.30
Status: Warn:  Reputation: 1
|
#18 Posted: 03 Aug 2012 07:10 pm Post subject: |
|
|
| TheKeep wrote: | | Ishidon wrote: | ; Diablo 3 gold bot. Damn Blizzard for not fixing it.
; Keep it private, oh wait I dont have to tell you this
; Must be running at 800x600 full screen or window mode
; Do not run at higher resolution or it wont click at the right spots
#include <Misc>
Opt('MouseCoordMode', 2)
Opt('PixelCoordMode', 2)
Opt('MouseClickDelay', 0)
Opt('SendKeyDelay', 0)
Opt('SendKeyDownDelay', 0)
WinActivate('Diablo III')
If WinActive('Diablo III') then
StackBot1()
StackBot1() ; verification , does it twice incase of failure
itemswitchBot1()
itemswitchBot1()
itemswitchBot1() ; verification , does it twice incase of failure
sleep(500)
itemswitchBot1() ; Bot1s 1 stack
sleep(500)
itemswitchBot1() ; Bot1s 2 stack
sleep(500)
itemswitchBot1() ; ; Bot1s 10 stack
sleep(500)
itemswitchBot1() ; Bot1s 100 stack
sleep(500)
closeBot1()
EndIf
Func StackBot1()
WinActivate('Diablo III')
If WinActive('Diablo III') Then
BlockInput(1)
Send("{ENTER}")
Send("Gold Bot1 starting")
Send("{ENTER}")
MouseClick("Left", 790, 10, 1, 0) ;
MouseClick("Left", 531, 569, 1, 0) ;
w()
cf() ;;;;;;;;;;;;
r1()
cf() ;;;;;;;;;;;;
r2()
cf() ;;;;;;;;;;;;
a()
cf() ;;;;;;;;;;;;
o()
cf() ;;;;;;;;;;;;
h()
cf() ;;;;;;;;;;;;
g()
cf() ;;;;;;;;;;;;
bs()
cf() ;;;;;;;;;;;;
br()
cf() ;;;;;;;;;;;;
p()
cf() ;;;;;;;;;;;;
b()
cf() ;;;;;;;;;;;;
ar()
cf() ;;;;;;;;;;;;
s()
cf() ;;;;;;;;;;;;
Sleep(100)
EndIf
EndFunc
Func itemswitchBot1()
WinActivate('Diablo III')
Sleep(50)
MouseClick("Left", 790, 10, 1, 0)
Send("{ENTER}")
Send("Take this for all ur troubles bro, im quitting")
Send("{ENTER}")
MouseClick("Right", 27, 91, 1, 0)
MouseClick("Left", 45, 172, 1, 0)
Sleep(500)
Send("9999999999")
Sleep(100)
MouseClick("Left", 106, 492, 1, 0)
EndFunc
Func cf()
MouseClick("Left", 375, 29, 1, 0) ;
EndFunc
Func w()
MouseClick("Left", 642, 263, 1, 0) ;
EndFunc
Func r1()
MouseClick("Left", 645, 215, 1, 0)
EndFunc
Func r2()
MouseClick("Left", 752, 214, 1, 0)
EndFunc
Func a()
MouseClick("Left", 738, 128, 1, 0)
EndFunc
Func o()
MouseClick("Left", 752, 265, 1, 0)
EndFunc
Func h()
MouseClick("Left", 699, 111, 1, 0)
EndFunc
Func bs()
MouseClick("Left", 699, 270, 1, 0)
EndFunc
Func b()
MouseClick("Left", 696, 195, 1, 0)
EndFunc
Func p()
MouseClick("Left", 699, 229, 1, 0)
EndFunc
Func ar()
MouseClick("Left", 700, 157, 1, 0)
EndFunc
Func g()
MouseClick("Left", 642, 178, 1, 0)
EndFunc
Func s()
MouseClick("Left", 660, 125, 1, 0)
EndFunc
Func br()
MouseClick("Left", 755, 180, 1, 0)
EndFunc
Func closeBot1()
While 1
Send("{ENTER}")
Send("[To Console] Trade Bot1 verified and completed")
Send("{ENTER}")
WEnd
EndFunc
thats the code he gave me |
well you can use this , item drop script, or you can actually pay for the working bot that I have.
20 million per. private messages only, scammers or take backs will get ^. |
| TheKeep wrote: | | just sold to andrew @ 25 million. enjoy |
i gave you 25 million but i didnt pay for it? scammer. Dont trust this kid.
Last edited by Ishidon on 03 Aug 2012 07:13 pm; edited 1 time in total |
|
| Back to top |
|
 |
|
 |
TheKeep
Group: Members Joined: 17 Jun 2012 Posts: 110 Gold: 1.50
Status: Warn:  Reputation: 0
|
#19 Posted: 03 Aug 2012 07:30 pm Post subject: |
|
|
| TheKeep wrote: | | just sold to andrew @ 25 million. enjoy |
i gave you 25 million but i didnt pay for it? scammer. Dont trust this kid.[/quote]
lmao wtf... you are a pathological liar. |
|
| Back to top |
|
 |
AceOfSpadez
 Group: Scammer Joined: 29 Jul 2011 Posts: 479 Gold: Locked

Status: Warn:  Reputation: 4

|
#20 Posted: 04 Aug 2012 02:17 am Post subject: |
|
|
| TheKeep wrote: | | AceOfSpadez wrote: | shits free you scumbag
ownedcore com |
yeah go get people keylogged.
if anything use blizzhackers.cc
they're little lenient with the moderating |
you cant get keylogged by open source scripts that you read and compile yourself
Scam elsewhere scumbag
google search OWNEDCORE d3 gold profiles... owned core is bigger than blizzhackers, try again
;=========== DO NOT TOUCH ===========;
#RequireAdmin
#include <GUIConstantsEx>
#include <StaticConstants>
#include <WindowsConstants>
#include <SimpleTesseractColor>
#include <ScreenCapture>
Opt('MouseCoordMode', 2)
Opt('PixelCoordMode', 2)
;GUI Predeclare to prevent firing the Case statements
Global $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
Global $size = WinGetClientSize("[CLASS:D3 Main Window Class]"), $Kill = ProcessList("AutoIt3_x64.exe"), $StoredText = "",$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,$CurrentItems = 0
Global $gems[8] = ["Ru1.png", "Ru2.png", "Em1.png", "Em2.png", "To1.png", "To2.png", "Am1.png", "Am2.png"]
Global $AnalyzedLoot[10][6]
Global $StashTabs[3][2] = [[512,230], [512,360], [512,460]]
Global $structArray[10][6]
$struct = "int x;int y;bool salvage;bool vendor;char itemtype[20]"
For $i = 1 To $Kill[0][0]
$CurrentPID = @AutoItPID
If $CurrentPID <Kill> $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 either 1600x900 or 1920x1080")
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 &= " "
;=================================
;AutoUpdate Version
$ver = "8==D.7"
$VersionsInfo = "http://bit.ly/LF1Rp6"
$oldVersion = IniRead("updater.ini", "Version", "Version", $ver)
$newVersion = "0.0"
$AutoUpdate = 1
;==================================================
$totalItems = 1 ;Number of items in the pick array
;$currentArrayItem = 0x
Global $pick[$totalItems] ;DONT CHANGE THIS
;Cellar Detection
Global $cellarCoordx[6] = [255, 280, 175, 265, 315, 600]
Global $cellarCoordy[6] = [290, 302, 305, 340, 314, 435]
$cellarCheckSleep = 165
$Screenshot = 1
;AutoStart
$gameDiabloIIILoc = "C:\" ;Location of Diablo 3 executable
$gameAutoStart = 0 ; Set this to 1 to start game from desktop or recover 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
$timingMiddleDoor = 2200 ;time (in ms) to wait to use skill archon
$timingCellarClick = 750 ;time (in ms) it takes to run into the cellar
$timingWormHole = 1900 ;time (in ms) to wait to end the teleporting to 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 = 75
;==================================================
;New Loot Coords
$slot1x = 1434 ; first slot x coordinate
$slot1y = 607 ; first slot y coordinate
$offset = 48 ; offset for each slot
$slotLineTopX = 1414 ;First slot line x coordinate
$slotLineTopY = 632 ;First slot line y coordinate
$slotLineBotX = 1458 ;First slot line x coordinate
$slotLineBotY = 634 ;First slot line y coordinate
$CellMiddleTopX = 1429
$CellMiddleTopY = 604
$CellMiddleBotX = 1435
$CellMiddleBotY =609
;==================================================
;====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 $AutoUpdate = 1 Then DoUpdate()
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] / 1920
$y_ratio = $size[1] / 1080
EndIf
MainGUI()
Func MainGUI()
$frmBot = GUICreate($title & $ver & " - Updating", 270, 145, Round(0 * $x_ratio), Round(0 * $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)
$mAutoUpdate = GUICtrlCreateMenuItem("Auto Update", $mOptions)
GUISetCheck($AutoUpdate,$mAutoUpdate)
$lblRun = GUICtrlCreateLabel("Run Number: 0 - Runs Per Hour: 0", 4, 0, 280, 24)
GUICtrlSetFont(-1, 10, 600, 0, "Segoe UI")
GUICtrlSetColor(-1, 0xFF0000)
$lblLocation = GUICtrlCreateLabel("Location: Main Menu", 12, 20, 260, 17)
$lblStatus = GUICtrlCreateLabel("Status: ", 12, 35, 260, 17)
$lblRuntime = GUICtrlCreateLabel("Total Runtime: 0 hours, 0 minutes", 12, 50, 260, 17)
$lblLast = GUICtrlCreateLabel("Open Cellar Avg: 0s - Closed Cellar Avg: 0s", 12, 65, 260, 17)
$lblCellars = GUICtrlCreateLabel("Cellars Open: 0 (0%) - Cellars Closed: 0 (0%)", 12, 80, 260, 17)
$lblStats = GUICtrlCreateLabel("Deaths: 0 (0%) - Missed Cellars: 0 (0%)", 12, 95, 260, 17)
$lblGold = GUICtrlCreateLabel("0 Per Hour - Accumulated Gold: 0", 12, 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()
Case $mAutoUpdate
If IsChecked($mAutoUpdate) Then
GUICtrlSetState($mAutoUpdate,$GUI_UNCHECKED)
Else
GUICtrlSetState($mAutoUpdate,$GUI_CHECKED)
EndIf
IniWrite($settingsINI, "Additional", "Auto Update", ConvertFlag($mAutoUpdate))
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 & $ver, 443, 195, Round(0 * $x_ratio), Round(0 * $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)
$tsAnalLoot = GUICtrlCreateTabItem("Stash")
$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("Diamond Skin (Crystal Shell):", 12, 52, 139, 17)
$lblSkill2 = GUICtrlCreateLabel("Mirror Image (Duplicates):", 12, 76, 124, 17)
$lblSkill3 = GUICtrlCreateLabel("Teleport (Wormhole):", 12, 100, 103, 17)
$lblSkill4 = GUICtrlCreateLabel("Magic Weapon (Force Weapon):", 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)
$lbltimingWormHole = GUICtrlCreateLabel("Wormhole:", 12, 100, 55, 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)
$txttimingWormHole = GUICtrlCreateInput("1375", 80, 97, 41, 21)
$txttimingCellarClick = GUICtrlCreateInput("750", 80, 121, 41, 21)
$txttimingAbort = GUICtrlCreateInput("255", 206, 49, 41, 21)
$txttimingMiddleDoor = GUICtrlCreateInput("2200", 206, 73, 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("255, 175, 315, 265, 280, 600", 96, 49, 169, 21)
GUICtrlSetState($txtCellarDetectXCoords, $GUI_DISABLE)
$txtCellarDetectYCoords = GUICtrlCreateInput("290, 305, 314, 340, 302, 435", 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)
$AutoUpdate = IniRead($settingsINI, "Additional", "Auto Update", $AutoUpdate)
$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)
$timingWormHole = IniRead($SettingsINI, "Timing", "Wormhole", $timingWormHole)
$timingTP = Iniread($SettingsINI, "Timing", "Town Portal", $timingTP)
$timingCellarClick = Iniread($SettingsINI, "Timing", "Cellar Click", $timingCellarClick)
$timingMiddleDoor = Iniread($SettingsINI, "Timing", "Middle Door", $timingMiddleDoor)
$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($txttimingWormHole, $timingWormhole)
GUIUpdate($txttimingTP, $timingTP)
GUIUpdate($txttimingCellarClick, $timingCellarClick)
GUIUpdate($txttimingMiddleDoor, $timingMiddleDoor)
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, "Additional", "Auto Update", ConvertFlag($mAutoUpdate))
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", "Wormhole", GUICtrlRead($txttimingWormHole))
IniWrite($settingsINI, "Timing", "Town Portal", GUICtrlRead($txttimingTP))
IniWrite($settingsINI, "Timing", "Cellar Click", GUICtrlRead($txttimingCellarClick))
IniWrite($settingsINI, "Timing", "Middle Door", GUICtrlRead($txttimingMiddleDoor))
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> 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>DoUpdate
Func RestartRun()
If ($Go) Then
$i = 0
WinSetTitle($title, "", $title & $ver & " - Running")
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $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(860 * $x_ratio), Round(400 * $y_ratio), Round(1040 * $x_ratio), Round(450 * $y_ratio), 0.5, 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("MainMenu", "", Round(40 * $x_ratio), Round(300 * $y_ratio), Round(400 * $x_ratio), Round(450 * $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(230 * $x_ratio), Round(416 * $y_ratio), 120, 20, 1, 1) ;Random Click on the resume button
Sleep($timingGameLoad)
ElseIf CheckFor("OldRuins", "Area") Or CheckFor("NewTristram", "Area") Or CheckFor("DankCellar", "Area") Then
Call("TownPortal")
Call("LeaveGame")
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),1)
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),1)
$rand = Random(40000, 80000)
GUICtrlSetData($lblStatus, "Status: Input Limit - Waiting " & Round($rand / 1000) & " seconds.")
Sleep($rand)
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
MouseClick("middle", Round(0 * $x_ratio),Round(250 * $y_ratio),1) ;starts the main run
Send("{" & $Skill3 & " down}")
Sleep($timingWormHole)
Send("{" & $Skill3 & " up}")
send($Skill1)
sleep(250)
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)
Send($Skill2)
Sleep($timingAbort)
send("{SHIFTDOWN}")
Sleep($timingAbort)
Mouseclick("left")
Sleep($timingAbort)
send("{SHIFTUP}")
Sleep($timingAbort)
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")
RandClick("middle", Round(20 * $x_ratio),Round(708 * $y_ratio), 1, 1) ;moves to doorway leading to rare inside cellar
Sleep($timingMiddleDoor)
RandMove(Round(440 * $x_ratio),Round(80 * $y_ratio), 1, 1) ;hovers over the rare Sarkoth
sleep(250)
Send($Skill4)
sleep(200)
Send("{SHIFTDOWN}")
GUICtrlSetData($lblStatus, "Status: Attacking Sarkoth")
MouseDown("right") ;ATTACK
sleep($attackTime)
MouseUp("right")
Sleep(150)
Send("{SHIFTUP}")
RandClick("middle", Round(528* $x_ratio),Round(268* $y_ratio), 1, 1) ;fuck the loot
sleep($timingLootRun)
MouseClick("right",Round(755*$x_ratio),Round(936* $y_ratio),1) ;cancel archon
If $LootGoldOnly = 0 then
GUICtrlSetData($lblStatus, "Status: Looting")
Call("Loot")
EndIf
sleep(100)
Call("TownPortal")
Else
$countMissedCellar += 1
Call("CellarScreenShot")
Send($Skill2)
Sleep($timingAbort)
send("{SHIFTDOWN}")
Sleep($timingAbort)
Mouseclick("left")
Sleep($timingAbort)
send("{SHIFTUP}")
Sleep($timingAbort)
Call("TownPortal")
If Not CheckDead() Then
Call("ClosedCellar")
Call("LeaveGame")
EndIf
Return
EndIf
;After successful run
If Not CheckDead() Then
Sleep(300)
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(3000)
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(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")
$deathCount += 1
Call("LeaveGame")
Sleep(11000)
Sleep($timingGameLoad)
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(8500)
$repairCount += 1
If CheckDead() Then
Return
EndIf
If CheckFor("NewTristram", "Area") Then
MouseMove(Round(1530 * $x_ratio), Round(0 * $y_ratio), 1) ;begin movement towards merchant
Send("{" & $Skill3 & " down}")
Sleep(1300)
Send("{" & $Skill3 & " up}")
MouseClick("left", Round(796 * $x_ratio), Round(474 * $y_ratio), 6) ;NPC Merchant to the right of cain's home
Sleep(1000)
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(200)
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 = 1500 * $x_ratio
$startY = 0 * $y_ratio
$endX = 1920 * $x_ratio
$endY = 90 * $y_ratio
$seconds = 2.5
EndIf
$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 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(700, 1080) * $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
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(50)
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $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 = 2)
$count = 0
$Loot = PixelSearch(Round(420 * $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(50)
MouseMove(Round(Random(0, 400) * $x_ratio), Round(Random(700, 1080) * $y_ratio), 1) ;Moves mouse out of the way
sleep($timingLoot)
If $count >= 15 Then
ExitLoop
EndIf
$Loot = PixelSearch(Round(420 * $x_ratio), 0, Round(1690 * $x_ratio), Round(900 * $y_ratio), $color, $tolerance)
WEnd
EndIf
Return $count
EndFunc ;==>LootGear
Func CheckFullInventory()
If Not _ImageSearchArea($pngLoc & "FullInventory.png", 1, Round(1704 * $x_ratio),Round(778 * $y_ratio), Round(1895 * $y_ratio),Round(870 * $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", 1064 * $x_ratio, 256 * $y_ratio)
sleep(1600)
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(817 * $x_ratio),Round(132 * $y_ratio), Round(912 * $y_ratio),Round(157 * $x_ratio), $gX, $gY, 140) Then
If $StashSelectedTab <2>= 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>= $MagicStashiLvl Then
MouseClick("Right", Round(($slot1x + $i * $offset) * $x_ratio), Round(($slot1y + $j * $offset) * $y_ratio), 1)
DllStructSetData($myStruct, "vendor", true)
DllStructSetData($myStruct, "salvage", false)
DllStructSetData($myStruct, "itemtype", "Magic")
Elseif $ItemInfo[2] <MagicSalvageiLvl> $MagicVendoriLvl Then
DllStructSetData($myStruct, "vendor", false)
DllStructSetData($myStruct, "salvage", true)
DllStructSetData($myStruct, "itemtype", "Magic")
$AnalSalvage = 1
Elseif $ItemInfo[2] <= $MagicVendoriLvl Then
DllStructSetData($myStruct, "vendor", true)
DllStructSetData($myStruct, "salvage", false)
DllStructSetData($myStruct, "itemtype", "Magic")
$AnalVendor = 1
EndIf
EndIf
ElseIf StringRegExp($ItemInfo[1],"Rare") Then
DebugLog("Rare Item Found iLvl=" &$ItemInfo[2]&" @ Cell " & $i & "," & $j)
If $ItemInfo[2] <0>= $RareStashiLvl Then
MouseClick("Right", Round(($slot1x + $i * $offset) * $x_ratio), Round(($slot1y + $j * $offset) * $y_ratio), 1)
Elseif $ItemInfo[2] <RareSalvageiLvl> $RareVendoriLvl Then
DllStructSetData($myStruct, "vendor", false)
DllStructSetData($myStruct, "salvage", true)
DllStructSetData($myStruct, "itemtype", "Rare")
$AnalSalvage = 1
ElseIf $ItemInfo[2] <RareVendoriLvl>AnalLoot
Func DoIdentify()
$rt = TimerInit()
DebugLog("Identifying Rare Items" & @CRLF & _
"****************************************************")
Send("i")
For $i = 0 To 9
For $j = 0 To 5
$tmp = $structArray[$i][$j]
$type = DllStructGetData($tmp, "itemtype")
$shouldVendor = DllStructGetData($tmp, "vendor")
If $type = "Rare" And $shouldVendor = True Then
$xpos = DllStructGetData($tmp, "x")
$ypos = DllStructGetData($tmp, "y")
DebugLog("Rare to Identify " & $i & "," & $j)
ConsoleWrite($xpos&","&$ypos&" iDENT" & @CRLF)
MouseClick("Right",$xpos,$ypos,1)
Sleep(Random(2800, 3000))
EndIF
$tmp = 0
Next
Next
Send("i")
$AnalRareIdentify = 0
$srt = TimerDiff($rt)
$AnalTime = Round($srt / 1000, 2)
DebugLog(@CRLF & "Identifying Rares Took " & $AnalTime & " Seconds" & @CRLF & _
"****************************************************")
EndFunc
Func DoSalvage()
$rt = TimerInit()
DebugLog("Salvaging Items" & @CRLF & _
"****************************************************")
MouseClick("Left",Round(1860* $x_ratio),Round(301 * $y_ratio),1)
sleep(2200)
MouseClick("Left",Round(523 * $x_ratio),Round(484 * $y_ratio),1)
sleep(300)
MouseClick("Left",Round(265 * $x_ratio),Round(290 * $y_ratio),1)
If Not _ImageSearchArea("CurrentInventory.png", 1, Round(1603 * $x_ratio), Round(164 * $y_ratio), Round(1870 * $x_ratio), Round(542 * $y_ratio), $gX, $gY, 0) Then
GUICtrlSetData($lblStatus, "Status: Frozen to prevent vendor of worn item, sorry....")
TogglePause()
EndIf
For $i = 0 To 9
For $j = 0 To 5
$tmp = $structArray[$i][$j]
$shouldSalvage = DllStructGetData($tmp, "salvage")
If $shouldSalvage = True Then
DebugLog("Item to Salvage " & $i & "," & $j)
$xpos = DllStructGetData($tmp, "x")
$ypos = DllStructGetData($tmp, "y")
$type = DllStructGetData($tmp, "itemtype")
ConsoleWrite($xpos&","&$ypos&" Salvage" & @CRLF)
MouseClick("Left",$xpos,$ypos,1)
If $type = "Rare" Then
Send("{Enter}")
EndIf
sleep(150)
EndIF
$tmp = 0
Next
Next
Send("{Space}")
$srt = TimerDiff($rt)
$AnalTime = Round($srt / 1000, 2)
DebugLog(@CRLF & "Salvaging Items Took " & $AnalTime & " Seconds" & @CRLF & _
"****************************************************")
$StoredText = ""
EndFunc
Func VendorLoot()
$rt = TimerInit()
DebugLog("Vendoring Items" & @CRLF & _
"****************************************************")
If $AnalSalvage = 1 Then
MouseClick("left",Round(1078 * $x_ratio), Round(41 * $y_ratio), 6) ;NPC Merchant to the right of cain's home
sleep(2200)
MouseClick("left",Round(889 * $x_ratio), Round(398 * $y_ratio), 6) ;NPC Merchant to the right of cain's home
sleep(500)
Else
Sleep(Random(300, 500))
MouseMove(1525 * $x_ratio, 70 * $y_ratio)
Send("{" & $Skill3 & " down}")
Sleep($timingWormHole)
Send("{" & $Skill3 & " up}")
MouseClick("left", Round(796 * $x_ratio), Round(474 * $y_ratio), 6) ;NPC Merchant to the right of cain's
EndIf
sleep(300)
$arr = 0
If Not _ImageSearchArea("CurrentInventory.png", 1, Round(1603 * $x_ratio), Round(164 * $y_ratio), Round(1870 * $x_ratio), Round(542 * $y_ratio), $gX, $gY, 0) Then
GUICtrlSetData($lblStatus, "Status: Frozen to prevent salvage of worn item, sorry....")
TogglePause()
EndIf
For $i = 0 To 9
For $j = 0 To 5
$tmp = $structArray[$i][$j]
$shouldVendor = DllStructGetData($tmp, "vendor")
If $shouldVendor = True Then
DebugLog("Item to Vendor " & $i & "," & $j)
$xpos = DllStructGetData($tmp, "x")
$ypos = DllStructGetData($tmp, "y")
ConsoleWrite($xpos&","&$ypos&" Vendor" & @CRLF)
MouseClick("Right",$xpos,$ypos,1)
EndIf
$tmp = 0
Next
Next
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)
Send("{ESCAPE}")
$srt = TimerDiff($rt)
$AnalTime = Round($srt / 1000, 2)
DebugLog(@CRLF & "Vendoring Items Took " & $AnalTime & " Seconds" & @CRLF & _
"****************************************************")
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] - 400 * $x_ratio), 625 * $y_ratio , Round($mousePos[0] - 100 * $x_ratio),850 * $y_ratio,$gX,$gY, 30) 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] - 400 * $x_ratio), 625 * $y_ratio , Round($mousePos[0] - 100 * $x_ratio), 850 * $y_ratio,$gX,$gY, 90) 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] - 400 * $x_ratio), 625 * $y_ratio , Round($mousePos[0] - 100 * $x_ratio), 850 * $y_ratio,$gX,$gY, 90) Then
Return $MiscItems[$i] & "," & $RareStashiLvl
ExitLoop
EndIf
Next
EndIf
If _ImageSearchArea($pngLoc & "ItemLevel1920x1080.png",1, $mousePos[0]-470*$x_ratio, 750 * $y_ratio, $mousePos[0] - 275 * $x_ratio, 1025 * $y_ratio,$gX,$gY, 90) Then
$capture = _TesseractScreenCapture(0, "", 1, 4, Round($gX-5 * $x_ratio), Round($gY-10 * $y_ratio), Round($gX + 80 * $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(1672 * $x_ratio),Round(175 * $y_ratio),Round(1717 * $x_ratio),Round(209 * $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)
If $CellCoord <6>= 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(200)
If $CurrentItems = 0 Then
Call("ScreenShotInventory")
EndIf
CheckFullInventory()
$CurrentGold = _TesseractScreenCapture(0, "", 1, 2, 1450*$x_ratio, 504*$y_ratio, 1570*$x_ratio, 530*$y_ratio, 0)
Sleep(200)
Send("i")
$CurrentGold = StringRegExpReplace($CurrentGold, "[^0-9]", "")
$trt = TimerDiff($t)
If $StartingGold <0> 0 Then $AccumulatedGold = $CurrentGold - $StartingGold
$GPH = $AccumulatedGold / ($trt / 1000) * 3600
If $GPH >= 0 and $AccumulatedGold >=0 then
If $GPH > 1000000 Then
$GPH = Round($GPH/1000000,2) & "M"
ElseIf $GPH > 1000 Then
$GPH = Round($GPH/1000) & "K"
EndIF
If $AccumulatedGold > 1000000 Then
$AccumulatedGold = Round($AccumulatedGold/1000000,2) & "M"
ElseIf $AccumulatedGold > 1000 Then
$AccumulatedGold = Round($AccumulatedGold/1000) & "K"
EndIF
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(956 * $x_ratio), Round(579 * $y_ratio), 120, 2) ;Random Click on the leave button
Call("CalcTime")
Sleep($timingGameLoad)
EndFunc ;==>LeaveGame
Func TownPortal()
GUICtrlSetData($lblStatus, "Status: Returning to Town")
sleep(200)
Send("t")
Call("GoldPerHour")
Sleep($timingTP)
Call("CheckRepair")
EndFunc ;==>TownPortal
Func RandClick($clickType, $xPos, $yPos, $xOff = 10, $yOff = 10, $clicks = 1, $speed = 1)
If $xOff < 1 Then $xOff = 1
If $yOff <1>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 & _
"Chancity's 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 & _
"Rares: " & $RareCount & " Legendary's: " & $LegendaryCount & " Set Items: " & $setCount & " Gems: " & $GemCount & @CRLF & _
GUICtrlRead($lblGold) & @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 WinSetTit
Last edited by AceOfSpadez on 04 Aug 2012 02:18 am; edited 1 time in total |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum
|
D3jsp is proudly powered by phpBB © 2.0 Theme and Forum by tramway
|