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] "bot" niby działa a jednak nie.


Rekomendowane odpowiedzi

Opublikowano

siemka, więc tak, od wczoraj zacząłem bawić się autoit, no i zrobiłem botka do nostale który używa ImageSearch, wiadomo klika w obrazek przypisany mu. A więc do sedna o co mi chodzi:

 

otóż, gdy włączam bota i startuje powinien wskazać i kliknąć ten obrazek który mu przypisałem ( od razu mówię, że jest mały a nie jakiś zrzut ekranu ), gdy wchodzę w nostale ( tryb okienkowy ), i tak:

- gdy tylko klikne w "start" nic a nic nie robi

- gdy kliknę lewym w grze ( żeby aktywować okienko ), bot nic a nic nie robi

- gdy kliknę na pulpit wskazuje na ten mini obrazek, ale go nie klika, potem wskazuje kolejny obrazek i też go nie klika

 

 

a nawet podam urywek kodu, bo w zasadzie wszystko się powtarza w kółko:

 

HotKeySet("{END}", "Koniec") 
Func Koniec()
    Exit
 EndFunc   
 
 $gra = "NosTale"
 
#include <GUIConstants.au3>
 
$Form1 = GUICreate("GrochBot", 180, 80, 150, 82)
$Button1 = GUICtrlCreateButton("START", 8, 8, 100, 50, 0)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUISetState(@SW_HIDE, $Form1)
TrayTip("Bot","versja xxx",2,1)
Sleep(2000)
TrayTip("Bot","Start za 3 s.",2,1)
Sleep(1000)
TrayTip("Bot","Start za 2 s.",2,1)
Sleep(1000)
TrayTip("Bot","Start za 1 s.",2,1)
Sleep(1000)
TrayTip("Bot","Startuje",2,1)
While 2
   TrayTip("Bot","Atakuje !",2,1)
    $gra = "NosTale"
   #include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep(1000)
#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep(1000)
#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep(1000)
TrayTip("GrochBot","atakuje xxxx",2,1)
#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Sleep(1500)
WEnd
EndSwitch
WEnd 

 

Proszę o pomoc, naprawdę ważne.

Dziękuje za próby pomocy i Pozdrawiam :)

Opublikowano

Wystarczy raz na początku kodu dać include nie za każdym użyciem, spieszę się wieć tylko spytam czy ciągle szukasz jednego obrazka?

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

Na początek:

HotKeySet("{END}", "Koniec")

Func Koniec()
	Exit
EndFunc

$gra = "NosTale"
Global $x, $y

#include <GUIConstants.au3>
#include <ImageSearch.au3>

$Form1 = GUICreate("GrochBot", 180, 80, 150, 82)
$Button1 = GUICtrlCreateButton("START", 8, 8, 100, 50, 0)

GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			GUISetState(@SW_HIDE, $Form1)
			
			TrayTip("Bot", "versja xxx", 2, 1)
			Sleep(2000)
			exit
			For $i = 3 To 0
				TrayTip( "Bot", "Start za " & $i & " s.", 2, 1 )
				Sleep(1000)
			Next
		
			TrayTip("Bot", "Startuje", 2, 1)
			
			While 1
				TrayTip("Bot", "Atakuje !", 2, 1)

				For $i = 0 To 3
					$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
					If $result = 1 Then
						MouseClick("left", $x, $y)
					EndIf
					
					Send("{Space}")
					Sleep(1000)
				Next
				
				TrayTip("GrochBot", "atakuje xxxx", 2, 1)

				$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
				
				If $result = 1 Then
					MouseClick("left", $x, $y)
				EndIf
				
				Sleep(1500)
			WEnd
	EndSwitch
WEnd

"gdy tylko klikne w "start" nic a nic nie robi" - skoro klikasz start i nic nie robi, to w jaki sposób ustalałeś kolejne obserwacje? Dla mnie skrypt jest w porządku.

WSZYSTKIE PLIKI W CHMURZE DLA MPCFORUM ZOSTAŁY USUNIĘTE. NIE KORZYSTAĆ Z MOICH PROGRAMÓW.

Proszę nie ingerować w moje posty/tematy, w razie potrzeby usunąć całą zawartość. Nie pomagam.

Opublikowano

@2up

 

jeśli dobrze zrozumiałem pytanie, to nie jednego a dokładnie mam 4 ustawione

 

@up

 

bo on cały czas działa w ukryciu tak, więc jak mam go włączone, bo na początku on klika w obrazek 3 razy, ( 3 takie same ), potem ma 3 inne, ale ich nie widzi bo nie "zabił" poprzedniego obiektu na zdj 1, więc gdy chwile poczekałem to na nowo jechał od pierwszego obrazku, to mogłem zaobserwować w jakiej sytuacji jak działa, po nadto, gdy otwieram folder img, zawierający te mini obrazki to bot działa wspaniale klika na obrazek następnie spacje, potem kolejny obrazek itd.

 

( mam na dzieje, że da się to jakoś zrozumieć :P )

Opublikowano

@ref i

 

zrobiłem całkowicie od nowa 2 kody, na 2 różne sposoby:

 

a) na funkcje:

 

#include <ImageSearch.au3>

HotKeySet("{END}", "Koniec")
 
Func Koniec()
    Exit
 EndFunc   
 
 $gra = "NosTale" 
 
$Sleep = "2000" ; 2s
$Slep = "1000" ; 1s

TrayTip("Bot", "Atak za 3s", 5, 1)
Sleep(3000)
TrayTip("bot", "Atak !", 5, 1)

While 1
   
   atak()
   atakk()
   atakkk()

WEnd

Func atak()
   
TrayTip("bot", "Atakuje ", 5, 1)

Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Slep)
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Slep)
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Slep)

EndFunc

Func atakk()
   
   TrayTip("bot", "Atakuje ", 5, 1)
   
   Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Sleep)
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Sleep)
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Sleep)
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Sleep)

EndFunc

Func atakkk()
   TrayTip("bot", "Atakuje ", 5, 1)
   
   Global $x, $y
$result = _ImageSearch("img/obrazek3.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Sleep)
Global $x, $y
$result = _ImageSearch("img/obrazek3.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Sleep)
Global $x, $y
$result = _ImageSearch("img/obrazek3.bmp", 1, $x, $y, 100)
If $result = 1 Then
    MouseClick("left", $x, $y)
 EndIf
Send("{Space}")
Sleep($Sleep)

EndFunc

B) najprościej jak mogłem:

 


TrayTip("Bot","Startuje za 3s",2,1)
Sleep(3000)


While 1

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek1.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek1.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek1.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek1.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)

WEnd
EndSwitch
WEnd

1) wiem #include <ImageSearch.au3> nie musze za każdym razem, ale wole z :P

 

Może ktoś jakoś z tym pomóc bo te boty wgl nie działają, nie klikają nic.

 

oto błędy gdy uruchomię

a) gdy uruchomię bota zapisanego jako bot.au3, bez kompilacji do .exe

Line 44 (File "C:\Program Files
(x86)\AutoIt3\Include\ImageSearch.au3"):

if $result[0]="0" then return 0
if $result^ERROR

Error: Subscipt used with non-Array varible.

B) tak samo .au3 bez kompilacji do .exe

 

Line 33 (File "C:\Program Files
(x86)\AutoIt3\Include\ImageSearch.au3"):

Func _ImageSearch($findImage,$resultPosition,ByRef $x, ByRef
$y,$tolerance,$transparency=0)

Error: "While" statement has not matching "Wend" statement.

Obojętne który bd działać, Ważne żeby działał !

 

Naprawdę proszę o pomoc, :)

Opublikowano
TrayTip("Bot","Startuje za 3s",2,1)
Sleep(3000)
Global $x, $y
#include <ImageSearch.au3>
While 1
For $i = 1 To 3
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)
Next
For $i = 1 To 4
$result = _ImageSearch("img/obrazek1.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)
Next
For $i = 1 To 4
$result = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result = 1 Then
        MouseClick("left", $x, $y)
	 EndIf
Send("{Space}")
Sleep(2000)
Next
WEnd
EndSwitch
WEnd

To jest usprawnienie kodu.

 

A rozwiązanie problemu to

http://uploading.com/files/b514f2ab/%255BUDF%255D%2BImageSearh.rar/

https://www.virustotal.com/pl/url/93ac58799a679a9539d56ad63392c8e1823f2c2a3e2ef1d45b57c7e09b10dfbf/analysis/1379158348/

Pobierz to i plik dll wrzuć do WINDOWS.

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

Sory, ale NAWET ja wiem o co chodzi xD

 

Jak jakieś błędy to mów, z komórki piszę ...

 

 

 

 

HotKeySet("{END}", "Koniec")

;zmienne deklarujemy TYLKO raz
$gra = "NosTale"
;koniec zmiennych

;lubisz include porozrzucane weź w jedno miejsce mniej muli to skrypt
#include <GUIConstants.au3>
#include <ImageSearch.au3>
;koniec include


$Form1 = GUICreate("GrochBot", 180, 80, 150, 82)
$Button1 = GUICtrlCreateButton("START", 8, 8, 100, 50, 0)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUISetState(@SW_HIDE, $Form1)
TrayTip("Bot","versja xxx",2,1)
Sleep(2000)
TrayTip("Bot","Start za 3 s.",2,1)
Sleep(1000)
TrayTip("Bot","Start za 2 s.",2,1)
Sleep(1000)
TrayTip("Bot","Start za 1 s.",2,1)
Sleep(1000)
TrayTip("Bot","Startuje",2,1)
TrayTip("Bot","Atakuje !",2,1)

;While 1 wystarczy 
While 1


Global $x, $y
$result = _ImageSearch("img/obrazek.bmp", 1, $x, $y, 100)
;
If $result = 1 Then
MouseClick("left", $x, $y)
Send("{Space}")
Sleep(1000)
EndIf

Sleep (300) ;lekki sleep



;szukanie drugiego obrazka
TrayTip("GrochBot","atakuje xxxx",2,1)
Global $x, $y
$result2 = _ImageSearch("img/obrazek2.bmp", 1, $x, $y, 100)
If $result2 = 1 Then
MouseClick("left", $x, $y)
Send ("{Space}")
Sleep (1000)
EndIf

WEnd
EndSwitch
WEnd
;funkcje deklarujemy na końcu
Func Koniec()
Exit
EndFunc

 

A z błędem masz ImageSearch.dll w WINDOWS? Jak nie to weź tam wsadź tego dll

 

Pozdro

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Opublikowano

Sory, ale NAWET ja wiem o co chodzi xDNo skoro on by wiedział by tego nie pisał. Dziwne żebyś nie wiedział jak podałeś identyczną odpowiedz z błędnym kodem.

A z błędem masz ImageSearch.dll w WINDOWS? Jak nie to weź tam wsadź tego dll

Pozdro

 

 

 

 

+ popatrz na jego kod a na twój. Zamiast

 

1*1*1+2*2*2+3*3*3+*1*1*1+2*2*2+....

 

Jest

 

1*2*3+1*2*3+1*2*3+1*2*3+1*2*3+...

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

No robiłem jak pisaliście i w zasadzie nic, zero efektu.

 

Gdy włączam bota, to czasami( czasami bo nie zawsze, nie wiem od czego to zależy, ale jak zaznaczam okienko, to nie działa, a jak przesunę na pulpit myszkę lub jak kliknę na pulpit to rusza myszką) "zajarzy" i przesuwa myszkę w kierunku danego obrazka, ale i tak go nie klika. ( w grze )

 

Gdy odpalę bota, z otwartym folderem gdzie są te obrazki, no w 100% działa, przesuwa mysz, klika lewy, spacja i kolejny obrazek...

Opublikowano

Probowałem u siebie ( na swoich obrazkach) i wszystko dobrze działa. A na pewno na ekranie jest taki sam obraz co podany w skrypcie? Nawet jeśli dasz myszke "na obraz" to już go nie znajdzie bo na ss nie ma myszki, może być to jeśli masz na ss jakieś okno i jest aktywowane/nieaktywowane? Najlepiej jakbyś pokazał co to za obrazki.

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

@up, ja nie dawałem myszki na np strączek, bot sam najeżdżał na niego )

 

Nie chętnie ( bo chciałbym go tu opublikować jako już gotowy bot, żeby inny mogli się też tak pobawić, a nie chętnie bo, domyślam się, że nie jeden może bd chciał zrobić jakiegoś "swojego" bota, wzorując się na moim, bo narazie takiego jeszcze niewidziałem :P ), ale jak trzeba, to tak:

 

tak wygląda folder z obrazkami:

 

82057663351259081809.png

 

 

a tak zrzut ekranu jak mniej więcej ustawiam kamerę w grze.

 

12467487749999089103.png

 

Opublikowano

Zobacz czasem czy nie masz tego u siebie:

tgic.jpg

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

Chodzi Ci oto, że ja sam przesuwam myszkę na strączek, i bot tego nie widzi?

odp: Tak nie robie. :P

 

u mnie to wygląda tak: kropka pokazuje, gdzie klikam lewy myszki i puszczam myszę, po chwili sam najeżdża na strączek i potem na drugi, potem spowrotem na pierwszy, i tak w kółko, ale nie klika.

 

 

79002674069814969682.png

 

Opublikowano

Czyli prościej, chodzi Ci o to że wyszukuje obrazek (to działa), najezdza myszką na niego (to działa) i ma kliknąć (NIE działa)?

Jeśli tak to zrób nowy skrypt,wpisz nim MouseClick i podaj mu kordy na ten obiekt i zobacz czy zadziała. Ma to na celu sprawdzenie czy w ogóle gra reaguje na MouseClick ,możliwe że zabezpieczenia gry mu nie pozwalają.

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano
MouseClick("left",588, 397)

zrobiłem sobie taki skrypt, dokładnie na strączek, przesuwa myszkę ale go nie klika ;/

 

więc chyba, jest to zablokowane, ale jednak to mało możliwe, bo 3 dni temu z 2 razy odpaliłem bota, i działał w 100%, potem przestał ;/

Opublikowano

Ten wątek można już zamknąć, wyszło na to, że rozwiązaniem było uruchamianie bota poprzez " uruchom jako administrator " :D

Pozdrawiam ;) i danke hehe7, za pomoc

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...