Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem ze skryptem imagesearch


Rekomendowane odpowiedzi

Opublikowano

Witam. Chciałem spróbować napisać własnego bota. Miał on klikać wchodzić w link z listy, klikać button i zamykać kartę. Wszystko było ok ale zacząłem robić zapętlenie i coś pokiełbasiłem. Ostatecznie staneło na tym, że skrypt klika kiedy $result wynosi 0 i nie idzie dalej. Możecie sprawdzić co jest nie tak?

 

Local $logowanie = MsgBox(4, "Autoclick Beta" , "Czy uruchamomić skrypt? ")
#RequireAdmin
#include <ImageSearch.au3>

Global $x, $y, $result

HotKeySet("{DELETE}", "Exitt")

If $result = 0 Then
MouseClick("left", 632, 282)
EndIf

While 1
$result = _ImageSearch(@ScriptDir & "\obrazek.bmp", 1, $x, $y, 20)
If $result = 1 Then
MouseClick("left", $x, $y)
Sleep(1000)
Else
Sleep(1000)
EndIf
WEnd



Func Exitt()
Exit
EndFunc








Opublikowano

nie rozumialem ani jednego slowa, ale sadze ze chyba o to ci chodzi?

 

 

 

While 1

 

If $result = 0 Then

MouseClick("left", 632, 282)

EndIf

$result = _ImageSearch(@ScriptDir & "\lubie to.bmp", 1, $x, $y, 20)

If $result = 1 Then

MouseClick("left", $x, $y)

Sleep(1000)

Else

Sleep(1000)

EndIf

WEnd

Opublikowano

Chodzi mi o to że bot wcześniej po kliknięciu szukał tego obrazka na który ma kliknąć a teraz przestał.

 

EDIT:

Zmieniłem kod. Teraz błąd wyskakuje:

 

a02yc1.jpg

Opublikowano

Nie dopisałeś "While 1" na początku.

Naucz się angielskiego.

Oszczędzi ci to wielu problemów.

Opublikowano

W sumie skrypt mam poprawiony ale chciałbym jeszcze cos zmienic.

Jak mu napisać żeby po zrobieniu $result = 0 poczekał i jeśli znajdzie obrazek którego szuka zacznie $result = 1 a nie robił result = 0 od początku.

 

Ostatecznie skrypt wygląda tak.


#RequireAdmin
#include <ImageSearch.au3>
Local $logowanie = MsgBox(4, " Autoclick Beta" , "Czy uruchamomić skrypt? ")

Global $x, $y, $result
If $logowanie = 7 Then
Msgbox(0, "Autoclick Beta", "Wyłączyłes program.")
Exit
EndIf

Func Exitt()
Exit
EndFunc

HotKeySet("{DELETE}", "Exitt")
$i=0
While $i<5
$result = _ImageSearch(@ScriptDir & "\obrazek.bmp", 1, $x, $y, 20)

If $result = 1 Then
MouseClick("left", $x, $y)
Sleep(4000)
MouseClick("left", 423, 13)
$i+=1
EndIf

If $result = 0 Then
MouseClick("left", 646, 283)
Sleep(8000)


EndIf
WEnd

Opublikowano

#RequireAdmin
#include <ImageSearch.au3>
Local $logowanie = MsgBox(4, " Autoclick Beta" , "Czy uruchamomić skrypt? ")
Global $x, $y, $result
If $logowanie = 7 Then
Msgbox(0, "Autoclick Beta", "Wyłączyłes program.")
Exit
EndIf
Func Exitt()
Exit
EndFunc
HotKeySet("{DELETE}", "Exitt")
$i=0
While $i<5
$result = _ImageSearch(@ScriptDir & "\obrazek.bmp", 1, $x, $y, 20)
If $result = 1 Then
MouseClick("left", $x, $y)
Sleep(4000)
MouseClick("left", 423, 13)
$i+=1
ElseIf $result = 0 Then
MouseClick("left", 646, 283)
Sleep(8000)
EndIf
WEnd

Nie rozumiem o co ci chodzi. Działanie jest takie: sprawdza czy jest obraz, jak tak to klika i $i ++, jak nie to klika i czeka, a robi to dopóki 5 razy nie znajdzie obrazka.

Opublikowano

Chodzi mi o to, że jeżeli skrypt nie znajdzie obrazka to klika i tak 5 razy, nawet jeśli obrazek się pojawi. Czyli nie zaczyna wykonywać tego z pod result$ = 1 tylko kończy result$ = 0.

A chciałbym żeby on:

1. Kliknął w pozycje. (646, 283)

2. Sprawdził czy obrazek jest.

3. Kliknął obrazek.

4. Kliknął w pozycje (423, 13)

i zrobił pętle.

Opublikowano
#RequireAdmin
#include <ImageSearch.au3>
Local $logowanie = MsgBox(4, " Autoclick Beta" , "Czy uruchamomić skrypt? ")
Global $x, $y, $result
If $logowanie = 7 Then
Msgbox(0, "Autoclick Beta", "Wyłączyłes program.")
Exit
EndIf
Func Exitt()
Exit
EndFunc
HotKeySet("{DELETE}", "Exitt")
$i=0
While $i
MouseClick("primary", 646, 283)
$result = _ImageSearch(@ScriptDir & "\obrazek.bmp", 1, $x, $y, 20)
If $result Then
$i += 1
MouseClick("primary", $x, $y)
MouseClick("primary", 423, 13)
EndIf
Sleep(1000)
WEnd

Opublikowano

Dziwna sprawa ale po tym jak go trochę zmodyfikowałem (ten który podałeś nie działał) to działa ale tylko bez pętli.

#RequireAdmin
#include <ImageSearch.au3>
Local $logowanie = MsgBox(4, " Autoclick Beta" , "Czy uruchamomić skrypt? ")
Global $x, $y, $result
If $logowanie = 7 Then
Msgbox(0, "Autoclick Beta", "Wyłączyłes program.")
Exit
EndIf
Func Exitt()
Exit
EndFunc
HotKeySet("{DELETE}", "Exitt")
$i=0
While $i
MouseClick("primary", 646, 283)
Sleep(5000)
$result = _ImageSearch(@ScriptDir & "\obrazek.bmp", 1, $x, $y, 20)
If $result = 1 Then
$i += 1
MouseClick("primary", $x, $y)
MouseClick("primary", 423, 13)
EndIf
Sleep(1000)
WEnd

Opublikowano

Dziwna sprawa ale po tym jak go trochę zmodyfikowałem (ten który podałeś nie działał) to działa ale tylko bez pętli.

#RequireAdmin
#include <ImageSearch.au3>
Local $logowanie = MsgBox(4, " Autoclick Beta" , "Czy uruchamomić skrypt? ")
Global $x, $y, $result
If $logowanie = 7 Then
Msgbox(0, "Autoclick Beta", "Wyłączyłes program.")
Exit
EndIf
Func Exitt()
Exit
EndFunc
HotKeySet("{DELETE}", "Exitt")
$i=0
While $i
MouseClick("primary", 646, 283)
Sleep(5000)
$result = _ImageSearch(@ScriptDir & "\obrazek.bmp", 1, $x, $y, 20)
If $result = 1 Then
$i += 1
MouseClick("primary", $x, $y)
MouseClick("primary", 423, 13)
EndIf
Sleep(1000)
WEnd

Mędrcu, zwróć uwagę na to że

$i = 0
While $i

więc pętla nigdy się nie wykona...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...