Locked Home » Forums » Legacy & Archived » Archived Content » Darkfall Online » DFO - Bots / Macros / Hacks

Darkfall Pixel Detection Bot : DFO - Bots / Macros / Hacks

Posted: March 15th, 2011
User avatar
administrator
Total Posts:29920 Joined:2002
This was a request for a member so i found some different things around for him.
it really easy to make it a one button script you define the area to search with printscreen for the left top corner and pause for the right bottom .
with the auto it info you can take the color of the item you want to loot , there is a protection against looping on the same item too.
Read the comment into the script.
;Author cyberheter0


Opt("MouseCoordMode", 0) ; relative coord to the active windows
Opt("MouseClickDragDelay", 250) ; drag speed

If Not FileExists(@ScriptDir&"\Bcoord.ini") Then
IniWrite(@ScriptDir&"\Bcoord.ini","Bcoord","X","0")
IniWrite(@ScriptDir&"\Bcoord.ini","Bcoord","Y","0")
Sleep(500)
EndIf

Global $bpCoordSetX = IniRead(@ScriptDir&"\Bcoord.ini","Bcoord","X","0")
Global $bpCoordSetY = IniRead(@ScriptDir&"\Bcoord.ini","Bcoord","Y","0")
Global $pKP = 0
Global $aPKP = 0
Global $xyRB
Global $xyLT
Global $pSX
Global $pSY
Global $count
Global $zcount
Global $error

HotKeySet("{F1}","setBCoord") ;set the coordinate bag
HotKeySet("{PRINTSCREEN}","lTGetCoord") ;left top x, y
HotKeySet("{PAUSE}","rBGetCoord") ; right bottom x, y
HotKeySet("{END}","Terminate")



WinWaitActive("Darkfall Online")



while 1
if ($aPKP == 1) AND ($pKP == 1) then
$getRB= StringSplit($xyRB, '_', 2)
$getLT= StringSplit($xyLT, '_', 2)
$pColor = "0x757878_0xB6BCBC_0xB9C986_0x8B8F8F" ;separate each value by an underscore color value of item
$color= StringSplit($pColor, '_', 2)
;MsgBox(0, "X and Y are LT :", $color[0] & "," & $color[1])
;MsgBox(0, "X and Y are RB :", $getRB[0] & "," & $getRB[1])
$count = 0
Do
;MsgBox(0, "count ", $count & "," & $color[$count])
$zcount = 0
Do
$coord = PixelSearch( $getLT[0], $getLT[1], $getRB[0], $getRB[1], $color[$count], 30, 1) ;0x757878 ;0xB6BCBC 0xb9c986 $getLT[0]+303, $getLT[1]+225
If Not @error Then
;if (($coord[0] <> $pSX) And ($coord[1] <> $pSY)) Then
MouseClickDrag("left", $coord[0], $coord[1], $bpCoordSetX+Random(10,20,1), $bpCoordSetY+Random(10,20,1), 0)
MouseMove($getLT[0], $getLT[1], 0)
$pSX = $coord[0]
$pSY = $coord[1]
$zcount += 1
;MsgBox(0, "count ", $zcount)
$error = @error
if ($coord[0] == $pSX) And ($coord[1] == $pSY) And ($zcount ==1) Then
$error = 1
;MsgBox(0, "count ", "in the loop")
EndIf

;MsgBox(0, "Coord check", $coord[0] & "," & $coord[1])
EndIf
;if @error Then
;MsgBox(0, "Attention", "ERROR")
;EndIf

Until $error = 1
$count += 1
;MsgBox(0, "Attention", "passe le controle d'Erreur")
Until $count = UBound($color)
MsgBox(0, "Attention", "STOP")
$pKP = 0
$aPKP = 0
EndIf
WEnd

Func setBCoord()
$getPos = MouseGetPos()
IniWrite(@ScriptDir&"\Bcoord.ini","Bcoord","X", $getPos[0])
IniWrite(@ScriptDir&"\Bcoord.ini","Bcoord","Y", $getPos[1])
$bpCoordSetX = $getPos[0]
$bpCoordSetY = $getPos[1]
EndFunc

Func rBGetCoord()
Sleep(100)
ToolTip("the right bottom coord", 0, 0)
Sleep(200)
ToolTip("")
$posRB = MouseGetPos()
$xyRB = $posRB[0] & "_" & $posRB[1]
$pKP = 1
return $xyRB
EndFunc

Func lTGetCoord()
Sleep(100)
ToolTip("the left top coord", 0, 0)
Sleep(200)
$posLT = MouseGetPos()
$xyLT = $posLT[0] & "_" & $posLT[1]
$aPKP = 1
return $xyLT
EndFunc

Func Terminate()
Sleep(100)
ToolTip("script terminated", 0, 0)
Sleep(200)
Exit 0
EndFunc
That was an example autoit darkfall bot for someone using pixel search. Now if you are after some more depth for pixel searching here ya go.

Register to unlock hidden link
Posted: March 19th, 2011
Total Posts:10 Joined:2005
would it be possible for a little more specified help towards detecting the hp bar and when it reaches a certain %, this is abit much for me.
Ready to join the community? Click here and see all of the benefits!
blue large dotWho is online
Users browsing this forum: No registered users and 1 guest
Locked