Что нового

[TimeZero] Bot

dmdtip

Новичок
Сообщения
6
Репутация
0
Код:
#region ---Au3Recorder generated code Start ---
Opt("WinWaitDelay",100)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")

_WinWaitActivate("инфа","")
while 1

qwqw(202, 86, 957, 445,0xFEAE2C,20)
WEnd 
Func qwqw($x1, $y1, $x2, $y2, $col, $shade)
   For $y = $y1 To $y2 Step 1
      For $x = $x1 To $x2 Step 15 ; так будет проверяться не каждая (вертикальная строчка?)!
         PixelSearch($x, $y, $x, $y, "0x"&Hex($col,6), $shade)
       if not @error Then
            MouseClick("left", $x, $y, 1, 30)
            EndIf 
      Next
   Next
EndFunc

Func TogglePause()
$Paused = NOT $Paused
While $Paused
 sleep(100)
 ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc

Func Terminate()
Exit 0
EndFunc

#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---

#endregion --- Au3Recorder generated code End ---


Хотелось бы сделать бота кликера по монстрам в бою TimeZero....Но так и не смог заставить кликать по всем монстрам,а не по одному....Делал через поиск цвета по пиксилю..но не вышло ничего...вот скрип боя


Заранее благодарен за помощь....


Добавлено:
Сообщение автоматически объединено:

Код:
#region ---Au3Recorder generated code Start ---
Opt("WinWaitDelay",100)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")

_WinWaitActivate("","")
while 1
sleep(700)
 ;~MouseClick(24, 177)
 ;~MouseClick(1118,491)

$coord = PixelSearch ( 24, 177, 1100, 491, 0x262626 ,20)
$coord = PixelSearch ( 10, 92, 1112, 570, 0x262626 ,10)
if not @error Then ;если крыса обнаружена

MouseClick("left",$coord[0] ,$coord[1] ,10)
MouseClick("left",$coord[0]+40 ,$coord[1]+30 ,1)
MouseClick("left", $coord[0]+40 ,$coord[1]+30 ,7)
sleep(100)

ElseIf @error Then ;если крыса необнаружена

EndIf
WEnd

Func TogglePause()
$Paused = NOT $Paused
While $Paused
 sleep(100)
 ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc

Func Terminate()
Exit 0
EndFunc

#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---

#endregion --- Au3Recorder generated code End ---


А вот такой код,работает,даже кликает по монстру,но кликает на одного и того же ....А нужно делать клики по разным монстрам.....Вот и задался вопросом Как?! в Бою их может быть до 30 штук....


Добавлено:
Сообщение автоматически объединено:

:(
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
напиши pixelsearch не прерывающийся на первом совпадении а лишь сохраняющем результат в массив и после просмотра всей заданной области возвращающий набор координат всех совпадений
 

gigobait

Новичок
Сообщения
17
Репутация
1
хотелось бы увидеть пример! если несложно зарение спасибо!
 

DeLeTeSHift

Знающий
Сообщения
46
Репутация
9
Как делать через массив не знаю(предполагаю что схожим образом, но записывая данные в многомерный массив), однако могу предложить вот эту функцию:
Код:
PixelSearchMore( 10, 92, 1112, 570, 0x262626 ,10)


Func PixelSearchMore($X1, $Y1, $X2, $Y2, $color, $variation)
While $X1<$X2 And $Y1<$Y2 
   $X1old  = $X1
   $Y1old  = $Y1     
   $coord  = PixelSearch($X1, $Y1, $X2, $Y2, $color, $variation)
   If Not @error Then ;если крыса обнаружена
      MouseClick("left",$coord[0] ,$coord[1] ,10)
      MouseClick("left",$coord[0]+40 ,$coord[1]+30 ,1)
      MouseClick("left", $coord[0]+40 ,$coord[1]+30 ,7)
      Sleep(100)
   $X1 = $coord[0] 
   $Y1 = $coord[1]+1 ; что бы не искал тот же пиксель
   ElseIf @error Then ;если крыса не обнаружена

   EndIf
   If  $X1old  == $X1 And $Y1old  == $Y1 Then
      ExitLoop
   EndIf	  
WEnd  
EndFunc



Добавлено:
Сообщение автоматически объединено:

Хотя в начале можно просто
Код:
While 1
Просто я зразу думал что это будет условием выхода, а потом сделал другое, но это не убрал, хотя так тоже можно оставить, но это будет хоть и очень слабо, но зря есть оперативу
 
Верх