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.
Code:
;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