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

Pomoc w dokończeniu skryptu


Rekomendowane odpowiedzi

Opublikowano

Witam mam problem, otóż mam taki skrypt, polega on na znalezieniu danego koloru i wykonaniu danych sekwencji przypisanych do danego kolory (czarny, czerwony i zielony). Skrypt wyszukuje kolor robi sekwencje lecz gdy po tym kolorze (powiedzmy że był czerwony) jest znowu czerwony pomija sekwencje które ponownie powinien wykonać bo znowu jest czerwony i wykonuje dopiero jak pojawi się czarny lub zielony (dołączam zdjęcie). Chciałbym aby ktos poprawił mi ten skrypt.

 

66719157718125286487.png

HotKeySet("{Esc}", "end")
 
;definicje poszukiwanych kolorów (wstawić właściwe)
$iGreen = 0x449D44
$iBlack = 0x444444
$iRed = 0xC9302C
 
;identyfikator ostatnio znalezionego koloru
$iIC = -1
 
Run("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", "C:\Program Files (x86)\Google\Chrome\Application")
Sleep (2000)
Send ( "{LWINDOWN}" )
Send ( "{UP}" )
Sleep (1000)
send ("{LWINUP}" )
Sleep (1000)
MouseClick("left", 308, 62)
Send("ruletka.skinsproject.pl")
Sleep(2000)
Send("{ENTER}")
Sleep(5000)
 
MouseClick ("left", 1824, 529)
Send ( "{BS 10}")
Send ( "1" )
 
While True
Tabela1()
Sleep(2000)
Tabela2()
Sleep(2000)
Tabela3()
Sleep(2000)
Tabela4()
Sleep(2000)
Tabela5()
Sleep(2000)
Tabela6()
Sleep(2000)
Tabela7()
Sleep(2000)
Tabela8()
Sleep(2000)
Tabela9()
Sleep(2000)
Tabela10()
Sleep(2000)
WEnd
 
 
Func Tabela1()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(747, 661)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
 
Func Tabela2()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(830, 666)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela3()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(914, 663)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela4()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(1006, 672)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela5()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(1099, 666)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela6()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(1180, 673)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela7()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(1270, 669)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela8()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(1353, 671)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela9()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(1438, 669)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
Func Tabela10()
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(1526, 677)
If $iColor = $iBlack And $iIC <> $iBlack Then
$iIC = $iBlack
Sleep (1000)
IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
$iIC = $iGreen
Sleep (1000)
IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
$iIC = $iRed
Sleep (1000)
IsRed()
EndIf
EndFunc
 
 
 
 
;-------------------------------------------------------
Func IsGreen()
MouseClick ( "left", 1000, 788)
Sleep (42000)
If PixelGetColor (1245, 434) = 0x8CBF4C Then MouseClick ( "left", 1847, 526)
Send ( "{BS 10}" )
Send ( "10")
If PixelGetColor (1245, 434) = 0x363636 Then MouseClick ("left", 1455, 662)
If PixelGetColor (1245, 434) = 0xF16262 Then MouseClick ("left", 1455, 662)
 
 
EndFunc   ;==>IsGreen
 
Func IsBlack()
MouseClick ( "left", 1594, 786)
Sleep (42000)
 
If PixelGetColor (1245, 434) = 0x8CBF4C Then MouseClick ("left", 1455, 662)
If PixelGetColor (1245, 434) = 0x363636 Then MouseClick ("left", 1847, 526)
Send ( "{BS 10}" )
Send ( "10")
If PixelGetColor (1245, 434) = 0xF16262 Then MouseClick ("left", 1455, 662)
 
 
EndFunc   ;==>IsBlack
 
Func IsRed()
MouseClick ( "left", 370, 786)
Sleep (42000)
 
If PixelGetColor (1245, 434) = 0x8CBF4C Then MouseClick ("left", 1455, 662)
If PixelGetColor (1245, 434) = 0x363636 Then MouseClick ("left", 1455, 662)
If PixelGetColor (1245, 434) = 0xF16262 Then MouseClick ("left", 1847, 526)
Send ( "{BS 10}" )
Send ( "10")
 
EndFunc   ;==>IsRed
 
Func end()
Exit
EndFunc   ;==>end
Opublikowano

Myślę, że wystarczy zresetować identyfikator ostatnio znalezionego koloru po każdym wywołaniu funkcji Tabela...

Poniżej fragment kodu gdzie to należy wprowadzić.

While True
   Tabela1()
   $iIC = -1 ;resetowanie identyfikatora ostatnio znalezionego koloru
   Sleep(2000)
   Tabela2()
   $iIC = -1
   Sleep(2000)
   Tabela3()
   $iIC = -1
   Sleep(2000)
   Tabela4()
   $iIC = -1
   Sleep(2000)
   Tabela5()
   $iIC = -1
   Sleep(2000)
   Tabela6()
   $iIC = -1
   Sleep(2000)
   Tabela7()
   $iIC = -1
   Sleep(2000)
   Tabela8()
   $iIC = -1
   Sleep(2000)
   Tabela9()
   $iIC = -1
   Sleep(2000)
   Tabela10()
   $iIC = -1
   Sleep(2000)
WEnd
 
 
Func Tabela1()
   MouseClick ( "left", 2138, 149)
   $iColor = PixelGetColor(747, 661)
   If $iColor = $iBlack And $iIC <> $iBlack Then
	  $iIC = $iBlack
	  Sleep (1000)
	  IsBlack()
   EndIf
   If $iColor = $iGreen And $iIC <> $iGreen Then
	  $iIC = $iGreen
	  Sleep (1000)
	  IsGreen()
   EndIf
   If $iColor = $iRed And $iIC <> $iRed Then
	  $iIC = $iRed
	  Sleep (1000)
	  IsRed()
   EndIf
EndFunc

Rób wcięcia w definicjach funkcji, instrukcjach warunkowych i pętlach, bo bez tego analiza kodu to droga przez mękę.

Specjalnie pozostawiłem definicję jednej funkcji, abyś widział jak to powinno wyglądać.

Jeżeli nie będziesz pisał porządnie, to w końcu sam się pogubisz we własnym kodzie.

Zajrzyj też tutaj: https://pl.wikibooks.org/wiki/AutoIt/Biblioteki

Opublikowano

Nie bardzo wiem w jakim momencie to resetowanie miałoby następować.

Przeszukujesz 10 pozycji w poszukiwaniu koloru i w zależności co znajdziesz wykonujesz jakieś działania w funkcjach IsBlack(), IsGreen() lub IsRed().

Czy resetowanie ma być po przeszukaniu wszystkich pozycji czy po każdej, jeżeli któryś z kolorów zostanie znaleziony?

Opisz to dokładniej, bo w tej chwili nie wiem co mam ci poradzić.

Opublikowano

Wpadłem na pomysł żeby może zrobić wyszukiwanie obrazu, gdy pojawi pewien obraz wtedy skrypt cos robi. Wiesz może jak to zrobić ? najlepiej byłoby w to miejsce to wsadzić:

 

 

Func Tabela1()
 
TUTAJ
 
MouseClick ( "left", 2138, 149)
$iColor = PixelGetColor(747, 661)
If $iColor = $iBlack And $iIC <> $iBlack Then
     $iIC = $iBlack
     Sleep (1000)
     IsBlack()
EndIf
If $iColor = $iGreen And $iIC <> $iGreen Then
     $iIC = $iGreen
     Sleep (1000)
     IsGreen()
EndIf
If $iColor = $iRed And $iIC <> $iRed Then
     $iIC = $iRed
     Sleep (1000)
     IsRed()
EndIf
EndFunc

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...