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

PixelSearch - jeśli nie ma piksela wykonaj inna funkcje


Rekomendowane odpowiedzi

Opublikowano


Func Przyklad()




Local $aCoord = PixelSearch(476, 970, 520, 986, 0x7A2419)
; ---------------------------------------------------------------------------
If Not @ Then
MouseClick("left", 623,978,1,4)


INNAFUNKCJA()
;---------------------------------------------------------------------------


EndIf
EndFunc


 

a jak zrobić żeby sprawdził czy dany piksel jest, i jeśli go nie ma to ma wykonać inną funkcje

  • 2 tygodnie później...
Opublikowano

Dziękuję działa

A gdybym chciał żeby w danym obszarze cord np 100,100,200,200 jesli pojawi sie tu piksel A, lub B, lub C chociaz jeden z nich to wykonal funkcje X

Opublikowano

To samo 3x 

 

if 1 kolor

     funkcjaX()

elseif

     drugi kolor

     funkcjaX()

elseif 

     trzeci kolor

     funkcjaX()

else

     kiedy nie ma żadnego koloru 

     innafunkcja_albo_nic()

endif

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

Opublikowano

Na przykład coś takiego, ale można to zrobić na różne sposoby:

;definicje kolorów, wstawić swoje kody kolorów
Dim $iColorA = 0xFF0000, $iColorB = 0x00FF00, $iColorC = 0x0000FF

PixelSearch(476, 970, 520, 986, $iColorA)
If Not @ Then
   funkcja_X()
Else
   PixelSearch(476, 970, 520, 986, $iColorB)
   If Not @ Then
      funkcja_X()
   Else
      PixelSearch(476, 970, 520, 986, $iColorC)
      If Not @ Then funkcja_X()
   EndIf
EndIf



;definicja funkcji
Func funkcja_X()
   ;tu treść funkcji
EndFunc
Opublikowano


$ColorA = PixelSearch(100, 100, 200, 200, 0xFF0000)

$ColorB = PixelSearch(100, 100, 200, 200, 0x00FF00)

$ColorC = PixelSearch(100, 100, 200, 200, 0x0000FF)

 

If IsArray($ColorA) Or IsArray($ColorB) Or IsArray($ColorC) Then

FuncX()

EndIf

 

 

  • 2 tygodnie później...
Opublikowano

Na przykład tak:

#include "FastFind.au3"

Dim $iColorA = 0xFF0000, $iColorB = 0x00FF00, $iColorC = 0x00E9E9E9 ;definicje kolorów, wstawić swoje kody kolorów
Dim $iXP = 476, $iXK = 520, $iYP = 970, $iYK = 986 ;definicje obszaru przeszukiwania

_PixelSearch($iXP, $iYP, $iXK, $iYK, $iColorA)
If Not @ Then
   funkcja_X()
Else
   _PixelSearch($iXP, $iYP, $iXK, $iYK, $iColorB)
   If Not @ Then
      funkcja_X()
   Else
      _PixelSearch($iXP, $iYP, $iXK, $iYK, $iColorC)
      If Not @ Then funkcja_X()
   EndIf
EndIf

;----------------------------------------------------------------------
Func funkcja_X()
   ;tu treść funkcji
EndFunc

;----------------------------------------------------------------------
Func _PixelSearch($iXP, $iYP, $iXK, $iYK, $iPixelColor)
   FFSnapShot($iXP, $iYP, $iXK, $iYK)
   For $j = $iYP To $iYK
      For $i = $iXP To $iXK
         If FFGetPixel($i, $j) = $iPixelColor Then
	    Local $aResult[2] = [$i, $j]
	    SetError(0)
	    Return $aResult
         EndIf
      Next
   Next
   SetError(1)
   Return 0
EndFunc

Napisałem własną funkcję _PixelSearch, która jest zgodna ze standardową funkcją PixelSearch (bez tolerancji koloru).

Dzięki temu łatwo można zmodyfikować skrypt, bez jego przerabiania (wystarczy dodać #Include i podkreślenie przed nazwą funkcji.

Opublikowano

Wasta a próbowałeś może kompilować skrypt z ude-fem fastfind

mi kompiluje, ale przy próbie uruchomienia skompilowanego pliku .exe wyskakuje błąd

 

"Failed to load FastFind.dll, application probably' won't properly work.

Check if the file FastFind.dlls installed near this script"

 

w AutoIt skrypt działa po kompilacji nie. 

Opublikowano

Skompilowany skrypt melduje ci, że nie ma dostępu do biblioteki FastFind.dll.

Prawdopodobnie skompilowany skrypt przeniosłeś w inne miejsce na dysku, a bibliotekę nie.

Możesz przenieść skrypt, ale razem z biblioteką (!!!), bo to ona w zasadzie wykonuje całą robotę.

 

Pozdrawiam

Opublikowano

Najlepiej by była razem z programem po skomplikowaniu w tym samym katalogu. 

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ę...