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 z warunkiem szukającym obrazek


Rekomendowane odpowiedzi

Opublikowano

Czesc! 

Wczoraj powrocilem do AutoIT i powoli powoli przypominam sobie strukture dzialania kodu, ale bez waszej pomocy utkne na dluzej, a zalezy mi na czasie a nie jakichs tam umiejetnosciach.

Zalozylem sobie cel stworzenia czegos przydatnego i to robie.

No to tak, bot dziala prawidlowo do momentu dojscia do szukania obrazka "OBRAZEK11.bmp"

Kod błędu w linii 78, że nie zadeklarowałem...

 

Chodzi mi w tym kawałku kodu by zrobić: 

If nie widzisz OBRAZEK11 (nie chodzi o lokalizacje, lecz obrazek na ekranie za pomoca ImageSearch) Then

MouseClick( "PRIMARY", 295, 683 )

Else (jesli widzi)

MsgBox ( 1, "Mam", "Znalazlem obrazek!" )

 

 

 

 

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ImageSearch.au3>
#include <GUIConstantsEx.au3>
#Region ### START Koda GUI section ### Form=d:\program files (x86)\autoit3\forms\form1.kxf
$Form1 = GUICreate("ANTY BUGOWANIE BOTA", 241, 129, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("SZUKAJ X LUB PTASZKA", 44, 24, 161, 33)
$Button1 = GUICtrlCreateButton("START BOT", 80, 72, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
 
 
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Checkbox1
While 2
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
global $y = 0, $x = 0
Local $search = _ImageSearch('x3.bmp', 1, $x, $y, 0)
   If $search = 1 Then
   MouseMove ($x, $y, 0.10)
   MouseClick( "PRIMARY", $x, $y)
EndIf
Local $search = _ImageSearch('x6.bmp', 1, $x, $y, 0)
   If $search = 1 Then
   MouseMove ($x, $y, 0.10)
   MouseClick( "PRIMARY", $x, $y)
EndIf
Local $search = _ImageSearch('x5.bmp', 1, $x, $y, 0)
   If $search = 1 Then
   MouseMove ($x, $y, 0.10)
   MouseClick( "PRIMARY", $x, $y)
EndIf
EndIf
WEnd
Case $Button1
#comments-start
PODCZEPIAM POD OKNO GRY
#comments-end
If $Button1 Then
  WinActivate ("Google Chrome - gra")
Else
  MsgBox( 1, "Nie znaleziono", "Nie znalazłem okna!" )
EndIf
 
  MouseClick( "PRIMARY", 260, 675 )
  MouseClick( "PRIMARY", 648, 489 )
 
  MouseClick( "PRIMARY", 688, 493 )
  Sleep( 1000 )
  MouseClick( "PRIMARY", 690, 463 )
  MouseDown( "PRIMARY" )
  MouseMove( 900, 458, 10 )
  MouseUp( "PRIMARY" )
  MouseClick( "PRIMARY", 810, 576 )
  MouseClick( "PRIMARY", 479, 383 )
  MouseClick( "PRIMARY", 813, 622 )
  Sleep ( 6100 )
 
  MouseClick( "PRIMARY", 708, 408 )
  MouseClick( "PRIMARY", 756, 436 )
  MouseClick( "PRIMARY", 787, 538 )
 
While 5
  MouseClick( "PRIMARY", 295, 683 )
  global $y = 0, $x = 0
  Local $search = _ImageSearch('OBRAZEK11.bmp', 1, $x, $y, 0)
  If $search = 1 Then
  MouseMove ($x, $y, 0.10)
  Else
  MouseClick( "PRIMARY", 295, 683 )
EndIf
EndIf
WEnd
 
 
EndSwitch
WEnd
A i jeszcze jedno, jak wcisnę najpierw Checkbox to potem już START BOT i wyłączenie programu nie reaguje. :(

 

Edit 1 - Wystarczyło to... :D

			   While 6
			   global $y = 0, $x = 0
			   Local $search = _ImageSearch('OBRAZEK11.bmp', 1, $x, $y, 0)
			   If $search = 1 Then
			   MouseMove ($x, $y, 0.10)
			Else
			   MouseClick( "PRIMARY", 295, 683 )
			   Sleep ( 600 )
			EndIf
Edit 2 - tylko jak chce zrobić teraz by po else już nie było pętli tylko dużo kodu rozegrało się raz to nie wiem jak...

 

While 6
  global $y = 0, $x = 0
  Local $search = _ImageSearch('DOWODCA11.bmp', 1, $x, $y, 0)
If $search = 0 Then
  MouseClick( "PRIMARY", 295, 683 )
  Sleep ( 800 )
Else
tutaj nie ma być pętli
  MouseMove ($x, $y, 0.10)
 
EndIf
WEnd
Zrobiłem z jump to function, lecz to samo, while odgrywa się cały czas, cały czas działa MouseMove :/.

			While 6
			   global $y = 0, $x = 0
			   Local $search = _ImageSearch('OBRAZEK11', 1, $x, $y, 0)
			If $search = 0 Then
			   MouseClick( "PRIMARY", 295, 683 )
			   Sleep ( 800 )
			Else
			   atakuj()
			EndIf
			WEnd

			Func atakuj()
			    MouseMove ($x, $y, 0.10)
			EndFunc
Wystarczyło Exit loop po atakuj() ^^

Wszystkie poradniki w "O mnie" i na moim profilu YouTube.


51dd70965ae71.png


!!!HIT!!! -- Pełno klientów na DT nawet na najstarszym kompie bez zamuły!


!!!HIT!!! -- Nowa modyfikacja do Metina FastKill


World of Metin2


Opublikowano

Podstawy się kłaniają , poczytaj o pętli While bo ty NUMERUJESZ pętle a nie ustawiasz do działania. 

np While 1 działa czały czas , while 2 działa dwa razy , while 3 działa 3 razy ... 

 

Najpierw popraw błędy i brakujące funkcje, switche endy itp bo to aż razi po oczach bez sprawdzenia w programie ! Nie chce się mi sprawdzać ręcznie gdzie masz co wstawić , na linuxie nie działa autoit by to zrobić. 

Mózg to nie mydło; nie ubędzie Ci go, gdy go użyjesz.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...