Blizzhackers

Return of the Jedi

* Login   * Register    * FAQ    * Search

Join us on IRC: #bh@irc.synirc.net (or Mibbit Web IRC)


MuleFactory


It is currently Wed Jun 19, 2013 12:56 pm


All times are UTC [ DST ]





Post new topic Reply to topic  [ 18 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 1:05 pm 
 
User
User

Joined: Thu Jun 28, 2012 12:50 pm
If you haven't been banned yet, I suggest you not run any AH bots...

I had 2 accounts, a main and a alt running AH bots that I made myself. Woke up this morning and both were banned. DH60 MNK60 WIZ60 @ 50mil Gold. 150K DPS DH.

I'm not up to date on the "Hacking World," maybe there was something I could have done to prevent this, I almost wonder if a RDP layer inbetween Autoit and Diablo would have done the trick.

One of my scripts:

;Global Variables

Global $iType1[2] = ["215","215"] ;Item Type
   Global $iArm[2] = ["215","290"] ;Sub Item Select Armor
Global $iType2[2] = ["215","235"] ;Item Sub Type
   Global $i2hand[2] = ["215","250"] ;Sub Item two-hand
Global $sArrow1[2] = ["185","330"] ;Stats Arrow 1
Global $sArrow2[2] = ["185","350"] ;Stats Arrow 2
Global $sArrow3[2] = ["185","375"] ;Stats Arrow 3
Global $pLeft[2] = ["180","420"] ;Price Left
Global $pRight[2] = ["180", "500"] ;Price Right
Global $bTop[2] = ["650","150"] ;Buyout Top
Global $bBottom[2] = ["650","485"] ;Buyout Bottom
Global $bConfirm[2] = ["330","400"] ;Buyout Confirm
Global $tItem[2] = ["650","175"] ;Top Item in Q

Global $sValueL1[2] = ["200","325"] ;Stats Value Left 1
Global $sValueR1[2] = ["225","325"] ;Stats Value Right 1

Global $sValueL2[2] = ["200","350"] ;Stats Value Left 2
Global $sValueR2[2] = ["225","350"] ;Stats Value Right 2

Global $sValueL3[2] = ["200","375"] ;Stats Value Left 3
Global $sValueR3[2] = ["225","375"] ;State Value Right 3

;_______LAG VARIABLES______________________________________________________________________
$LagValue = 1 ;Value used to slow down Search Function (1 = Fast Search, 2 = Med, 3 = Slow)
$sleepSmallFast = 20
$sleepSmallMed = 500
$sleepSmallSlow = 800
$sleepMedFast = 40
$sleepMedMed = 800
$sleepMedSlow = 1200
$sleepLargeFast = 60
$sleepLargeMed = 1000
$sleepLargeSlow = 1600
;_______END_______LAG VARIABLES____________________________________________________________

;_______STAT VARIABLES______________________________________________________________________
Global $statLocation = 1 ;1=Top 2=Middle 3=Bottom
Global $statValue = 1



statValueChangeShort()



;--------------------------------------------------------------------------------------------------------------
;-------- START ---------------- Mouse Functions, Moves and Clicks --------------------------------------------

;Moves mouse to location and click
;Parameter: Array with X and Y Values
Func MoveClick($array)
   MouseMove($array[0], $array[1], 1)
   sleep(GetLagValSmall())
   MouseClick("LEFT")
EndFunc

;Moves mouse to a location
;Parameter: Array with X and Y Values
Func Move($array)
   MouseMove($array[0], $array[1], 1)
EndFunc

;-------- TERMINATE ---------------- Mouse Functions, Moves and Clicks --------------------------------------------
;--------------------------------------------------------------------------------------------------------------

;==============================================================================================================
;======== START ================ STAT Locations, Positions, Values ============================================

;Stats Value Change Selection
;Parameters: Value=Value for Stat, Location=Location to put number... 1=top 2=middle 3=bottom
Func statValueChangeSelect($Value,$Location)

   Local $statLocArray = statLocationSelect($Location)

   ;statLocationSelect returns a n=4 array, Split the Left(x,y) Right(x,y) as follows:
   Local $leftArray[2] = [$statLocArray[0], $statLocArray[1]]
   Local $rightArray[2] = [$statLocArray[2], $statLocArray[3]]

   MSG($leftArray[0])

   Move($leftArray) ;Move mouse to left side of stats box
      Sleep(GetLagValSmall())
   MouseDown("LEFT") ;Click Mouse
      Sleep(GetLagValSmall())
   Move($rightArray) ;Move mouse to right side of stats box (This Highlights the number in box)
      Sleep(GetLagValSmall())
   MouseUp("LEFT") ;Let off of the mouse button
      Sleep(GetLagValSmall())
   Send($Value) ;Type the Value in the stats box

EndFunc

;Stats Value Change Selection
;Unlike 'statValueChangeSelect' this "Short" uses the global settings for statValue and statLocation
Func statValueChangeShort()

   Local $statLocArray = statLocationSelect($statLocation)

   ;statLocationSelect returns a n=4 array, Split the Left(x,y) Right(x,y) as follows:
   Local $leftArray[2] = [$statLocArray[0], $statLocArray[1]]
   Local $rightArray[2] = [$statLocArray[2], $statLocArray[3]]

   MSG($leftArray[0])

   Move($leftArray) ;Move mouse to left side of stats box
      Sleep(GetLagValSmall())
   MouseDown("LEFT") ;Click Mouse
      Sleep(GetLagValSmall())
   Move($rightArray) ;Move mouse to right side of stats box (This Highlights the number in box)
      Sleep(GetLagValSmall())
   MouseUp("LEFT") ;Let off of the mouse button
      Sleep(GetLagValSmall())
   Send(getStatValue()) ;Type the Value in the stats box

EndFunc


;Uses a parameter to declare Global Stats Value
;Return the value of the new Global stats value
Func statValueSelect($chooseStatValue)
   $statValue = $chooseStatValue
   Return $statValue; Same as getStatValue()
EndFunc

;Stats Value for input (Default= 5) (This prevents a faulted buy) Counts Up
;Linked to HotKey: "^=" Ctrl=
Func statValueUP()
   $statValue += 1
EndFunc

;Stats Value for input (Default= 5) (This prevents a faulted buy) Counts down
;Linked to HotKey: "^-" Ctrl-
Func statValueDOWN()
   $statValue -= 1
EndFunc

;Returns the Global Stats Value (This debugged ValueChange)
Func getStatValue()
   Return $statValue
EndFunc

;Return Array with Left and Right Value Locations ["LEFT x", "LEFT y", "RIGHT x", "LEFT y"]
;BASED ON A SELECTED CODED VARIABLE   \/
Func statLocationSelect($chooseStatLocation)

   Local $statLocArray[4] = ["LEFT x", "LEFT y", "RIGHT x", "LEFT y"]

   Switch $chooseStatLocation
      Case 0
         Local $statLocArray[4] = [$sValueL1[0], $sValueL1[1], $sValueR1[0], $sValueR1[1]]
      Case 1 ;Same as when it's 0
         Local $statLocArray[4] = [$sValueL1[0], $sValueL1[1], $sValueR1[0], $sValueR1[1]]
      Case 2
         Local $statLocArray[4] = [$sValueL2[0], $sValueL2[1], $sValueR2[0], $sValueR2[1]]
      Case 3
         Local $statLocArray[4] = [$sValueL3[0], $sValueL3[1], $sValueR3[0], $sValueR3[1]]
      Case Else
         Local $statLocArray[4] = [0,0,0,0]
   EndSwitch

   Return $statLocArray

EndFunc

;Get Stat Location Variable
;Return Array with Left and Right Value Locations
;BASED ON THE GLOBAL LOCATION VARIABLE
Func statLocationShort()

   Local $statLocVal = getStatLocation()
   Local $statLocArray[4] = ["LEFT x", "LEFT y", "RIGHT x", "LEFT y"]

   Switch $statLocVal
      Case 0
         Local $statLocArray[4] = [$sValueL1[0], $sValueL1[1], $sValueR1[0], $sValueR1[1]]
      Case 1 ;Same as when it's 0
         Local $statLocArray[4] = [$sValueL1[0], $sValueL1[1], $sValueR1[0], $sValueR1[1]]
      Case 2
         Local $statLocArray[4] = [$sValueL2[0], $sValueL2[1], $sValueR2[0], $sValueR2[1]]
      Case 3
         Local $statLocArray[4] = [$sValueL3[0], $sValueL3[1], $sValueR3[0], $sValueR3[1]]
      Case Else
         Local $statLocArray[4] = [0,0,0,0]
   EndSwitch

   Return $statLocArray

EndFunc

;Return Stats Location Variable (1-3)
Func getStatLocation()
   Return $statLocation
EndFunc

;========= TERMINATE ============== STAT Locations, Positions, Values =========================================
;==============================================================================================================

;--------------------------------------------------------------------------------------------------------------
;--------- START -------------- Lag Controllers, Returns and functions ----------------------------------------
;--------------------------------------------------------------------------------------------------------------

;Function Lag: Returns an Array with Sleep Values Small/Med/Large
;Parameter: $LagLocal a Declared Value (Default:1) decides Latency
;$LagLocal = 1(Fast) 2(Medium) 3(Slow)
;AH Search Function Doesn't Finish before loading new Stats, increase $LagLocal
Func Lag($LagLocal)

   Local $LagArray[3] = ["9999","9999","9999"]

   Switch $LagLocal
      Case 1
         $LagArray[0] = $sleepSmallFast
         $LagArray[1] = $sleepSmallMed
         $LagArray[2] = $sleepSmallSlow
      Case 2
         $LagArray[0] = $sleepMedFast
         $LagArray[1] = $sleepMedMed
         $LagArray[2] = $sleepMedSlow
      Case 3
         $LagArray[0] = $sleepLargeFast
         $LagArray[1] = $sleepLargeMed
         $LagArray[2] = $sleepLargeSlow
   EndSwitch

   Return $LagArray

EndFunc

;Return the Larger of the sleep values for lag (800,1200,1600)
Func GetLagValLarge()
      Local $LagLarge = Lag($LagValue)
      Return $LagLarge[2]
EndFunc

;Return the Medium sleep values for lag (500,800,1000)
Func GetLagValMedium()
      Local $LagMed = Lag($LagValue)
      Return $LagMed[1]
EndFunc

;Return the Smallest of the sleep values for lag (20,40,60)
Func GetLagValSmall()
      Local $LagSmall = Lag($LagValue)
      Return $LagSmall[0]
EndFunc

;Increases the Global LagValue (Making Sleep Times longer between 1-3)
;Returns the New Global Lag Value
Func LagValueUp()
   If $LagValue = 3 Then
   Else
      $LagValue += 1
   EndIf

   Return $LagValue

EndFunc

;Decreases the Global LagValue (Making Sleep Times Shorter between 1-3)
;Returns the New Global Lag Value
Func LagValueDown()
   If $LagValue = 1 Then
   Else
      $LagValue -= 1
   EndIf

   Return $LagValue

EndFunc

;Returns the Global Lag Value
Func GetLagValue()
   Return $LagValue
EndFunc


;--------------------------------------------------------------------------------------------------------------
;----------- TERMINATE ------------ Lag Controllers, Returns and functions ------------------------------------
;--------------------------------------------------------------------------------------------------------------

;Msg: Calls MsgBox to simplify debugging through output
Func Msg($Message)
   MsgBox("","",$Message)
EndFunc


Last edited by sicarios on Thu Jun 28, 2012 1:44 pm, edited 1 time in total.
Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 1:37 pm 
 
User Gold
User Gold

Joined: Mon Nov 10, 2008 6:36 pm
We all got banned mate.


Last edited by VixinG on Thu Jun 28, 2012 2:01 pm, edited 1 time in total.
Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 1:46 pm 
 
User
User

Joined: Thu Jun 28, 2012 12:50 pm
Sorry, I've always just scripted games never came to forums to do discuss. May have avoided the ban if doing so... /sigh

Anyways, I edited it to put the [code] in.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 2:01 pm 
 
User Gold
User Gold

Joined: Mon Nov 10, 2008 6:36 pm
Sorry, I've always just scripted games never came to forums to do discuss. May have avoided the ban if doing so... /sigh

Anyways, I edited it to put the [code] in.

There's a topic about bans in general discussion. This is research and dev.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 3:37 pm 
 
User
User
User avatar

Joined: Fri Jun 15, 2012 5:54 am
If you haven't been banned yet, I suggest you not run any AH bots...
[/code]


First of all, thanks for posting your code. I haven't run my AH bot much (mostly Sarkoth, recently), and did not get banned. However, I'll like comparing your code to mine, to see if some of the "humanizing" elements were worth the trouble. The only way we can learn is if people post what got banned, so we can find the similarities.

VixinG wrote:
There's a topic about bans in general discussion. This is research and dev.


I want to RESEARCH who/what go banned, so I can DEVELOP my bot to be ban-resistant.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 4:49 pm 
 
User
User

Joined: Thu Jun 28, 2012 4:37 pm
hmm. personally I don't like AH bots cause since AH bots were born I have never ever been able to find what I want at a deal price

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 6:49 pm 
 
User
User

Joined: Thu Dec 03, 2009 10:21 pm
hmm. personally I don't like AH bots cause since AH bots were born I have never ever been able to find what I want at a deal price

Thats why you need the AH bot...

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 7:52 pm 
 
User
User

Joined: Fri Jun 15, 2012 10:45 pm
If you haven't been banned yet, I suggest you not run any AH bots...
[/code]


First of all, thanks for posting your code. I haven't run my AH bot much (mostly Sarkoth, recently), and did not get banned. However, I'll like comparing your code to mine, to see if some of the "humanizing" elements were worth the trouble. The only way we can learn is if people post what got banned, so we can find the similarities.

VixinG wrote:
There's a topic about bans in general discussion. This is research and dev.


I want to RESEARCH who/what go banned, so I can DEVELOP my bot to be ban-resistant.



2 accounts, my normal play account that I run Sarkoth on when I'm at work and my secondary which alternates between Sarkoth runs and action housing on a random timer - are both in the clear.

I've got extensive human simulations integrated into all my my scripts, from randomly randomizing keydown/keypress speeds and mouse movement speeds to "idle animation" mouse cursor wandering and randomly checking UI elements like HP/Mana globes and the lagometer, random achievement screen browsing and generally things most bots avoid because it detracts from loop speed.

But I'm also not banned after having an account that runs almost 24/7 Sarkoth and auction house. It will occasionally properly quit D3 and idle for a bit before re-launching and resuming activities so it's not truly 24/7, but again it's a human simulation element that from my perspective is working and worth it.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Thu Jun 28, 2012 8:34 pm 
 
User
User

Joined: Thu Jun 28, 2012 12:50 pm
Yeah this sucks, I'm more then capable of a more advanced bot, but didn't think it would matter. (Never really involved myself in this kind of hacking didn't actually expect a bot that just plays on the AH would get banned, just figured the ones that actually play the game do.)

Everyone needs a reason to move away from the crap they call Diablo. It was only incredible fun for us because of the instant non-labor wealth to gear up and make money.

Since I was not smart enough to avoid using my main char, I'll just go back to working on my house, not being to tired to work all day and just move on and wait until the Halo/CoD drops in nov to play more games. Modded controller development makes those games a blast!

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Fri Jun 29, 2012 1:43 am 
 
User
User

Joined: Thu Jan 17, 2008 8:19 am
think ill try this script. could you post a little howto? how to set max buyout, etc. never tried an AH bot before and have no idea the mechanics behind this script...

i honestly dont mind getting banned at this point. game is pretty boring and i think im just playing for the sake of it.

appreciate it. thanks.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Fri Jun 29, 2012 3:05 am 
 
User
User
User avatar

Joined: Fri Jun 15, 2012 5:54 am
i honestly dont mind getting banned at this point. game is pretty boring and i think im just playing for the sake of it.


I feel the same way. But I have more fun botting than I do actually playing. I suggest you make your own bot in AHK, or AutoIT. I can help you if you have questions.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Fri Jun 29, 2012 4:10 am 
 
User
User

Joined: Thu Jan 17, 2008 8:19 am
Capital_D wrote:
i honestly dont mind getting banned at this point. game is pretty boring and i think im just playing for the sake of it.


I feel the same way. But I have more fun botting than I do actually playing. I suggest you make your own bot in AHK, or AutoIT. I can help you if you have questions.


I actually spent the last few days over the numerous Sarkoth autoit scripts and lightly modified it to my preferences... but I don't think I have the working knowledge yet to script from scratch. Once I understand the mechanics behind this one, I'll probably end up modifying it.

And yes, I agree as well. Having more fun watching my bot run Sarkoth than running it myself.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Fri Jun 29, 2012 2:56 pm 
 
User Gold
User Gold
User avatar

Joined: Tue Jul 09, 2002 5:39 am
Location: Arkansas
You got banned because 1) Your script wasn't random at all, 2) you probably ran it too long. For what it's worth, I'm not banned, though I didn't use mine for more than a total of 24 hours.

A little bit of randomness for click positions:
Func clickElement($button)
   Switch $button
      Case "AH"
         $xCoord = Random(70,385,1)
         $yCoord = Random(618,658,1)
      Case "Equipment"
         $xCoord = Random(70,385,1)
         $yCoord = Random(618,658,1)
      Case "ddlType"
         $xCoord = Random(615,631,1)
         $yCoord = Random(376,390,1)
      Case "Armor"
         $xCoord = Random(406,629,1)
         $yCoord = Random(506,524,1)
      Case "Quality"
         $xCoord = Random(617,633,1)
         $yCoord = Random(501,515,1)      
      Case "Rare"
         $xCoord = Random(541,629,1)
         $yCoord = Random(698,711,1)
      Case "ddlStat1"
         $xCoord = Random(570,582,1)
         $yCoord = Random(591,602,1)
      Case "scrollStat1"
         $xCoord = Random(749,759,1)
         $yCoord = Random(911,922,1)
      Case "valueBox1"
         $xCoord = Random(605,631,1)
         $yCoord = Random(587,603,1)
      Case "allResist1"
         $xCoord = Random(405,726,1)
         $yCoord = Random(690,713,1)
      Case "critDmg1"
         $xCoord = Random(407,726,1)
         $yCoord = Random(908,912,1)
      Case "ddlStat2"
         $xCoord = Random(570,582,1)
         $yCoord = Random(629,645,1)
      Case "scrollStat2"
         $xCoord = Random(750,760,1)
         $yCoord = Random(951,963,1)
      Case "valueBox2"
         $xCoord = Random(605,630,1)
         $yCoord = Random(627,642,1)
      Case "loh"
         $xCoord = Random(407,652,1)
         $yCoord = Random(943,962,1)
      Case "ddlStat3"
         $xCoord = Random(570,582,1)
         $yCoord = Random(666,681,1)
      Case "valueBox3"
         $xCoord = Random(605,629,1)
         $yCoord = Random(667,679,1)
      Case "scrollStat3"
         $xCoord = Random(674,685,1)
         $yCoord = Random(989,999,1)
      Case "intel3"
         $xCoord = Random(407,651,1)
         $yCoord = Random(926,945,1)
      Case "vitality3"
         $xCoord = Random(407,654,1)
         $yCoord = Random(989,1002,1)         
      Case "maxBuyout"
         $xCoord = Random(563,636,1)
         $yCoord = Random(752,766,1)
      Case "searchButton"
         $xCoord = Random(424,609,1)
         $yCoord = Random(829,845,1)
   EndSwitch
   MouseClick("left",$xCoord,$yCoord)
EndFunc


and a little bit of delays:
         $randNoMatches = Random(10,30,1) ; Get a random amount of no buys before taking a break
         if $noMatch > $randNoMatches then ; If we haven't hit any results after 10 tries, take a short break (3-5 minutes)
            $break = Random(60000,300000,1)
            ToolTip("Haven't found any matches in " & $noMatch & "tries... we're taking a "& $break/60000 & " minute break...starting " &_Now(),0,0)
            sleep($break)
            $noMatch = 0 ; reset our nomatch counter
         endif
         
         $extendBreak = Random(1,20,1)
         if $extendBreak == 1 then
            $extendTime = Random(900000,1800000,1) ; There's a 5% chance we're going to take an extended break between 15 and 30 minutes.
            ToolTip("To spice things up, we're taking an extended break...back in " & $extendTime/60000 & " minutes...starting " &_Now(),0,0)
            sleep($extendTime)
         endif

_________________
lord2800 wrote:
I can, but I don't want to run an AV in the first place
I'm as likely to get a virus as Bush is to shoot himself in the head, intentionally.

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Sun Jul 01, 2012 1:13 am 
 
User
User

Joined: Sun Jul 01, 2012 12:25 am
You got banned because 1) Your script wasn't random at all, 2) you probably ran it too long. For what it's worth, I'm not banned, though I didn't use mine for more than a total of 24 hours.

and a little bit of delays:
         $randNoMatches = Random(10,30,1) ; Get a random amount of no buys before taking a break
         if $noMatch > $randNoMatches then ; If we haven't hit any results after 10 tries, take a short break (3-5 minutes)
            $break = Random(60000,300000,1)
            ToolTip("Haven't found any matches in " & $noMatch & "tries... we're taking a "& $break/60000 & " minute break...starting " &_Now(),0,0)
            sleep($break)
            $noMatch = 0 ; reset our nomatch counter
         endif
         
         $extendBreak = Random(1,20,1)
         if $extendBreak == 1 then
            $extendTime = Random(900000,1800000,1) ; There's a 5% chance we're going to take an extended break between 15 and 30 minutes.
            ToolTip("To spice things up, we're taking an extended break...back in " & $extendTime/60000 & " minutes...starting " &_Now(),0,0)
            sleep($extendTime)
         endif


nomatch isnt defined here so this wont work right?

Top
 Profile  
 Post subject: Re: AH Buyout Ban
PostPosted: Sun Jul 01, 2012 1:47 am 
 
User
User

Joined: Sun Sep 05, 2010 8:55 am
I'm willing to bet there's a cap on AH queries per minute or something to that effect.

The way to bot reliably without hammering the AH is to watch items and bid snipe, way higher potential than running for days and getting accidental good loot.

_________________
"Elegance is not a dispensable luxury but a quality that decides between success and failure."

Top
 Profile  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 18 posts ]  Go to page 1, 2  Next

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


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

Search for:
Jump to:  
cron