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

GUI + wywolanie funkcji


Rekomendowane odpowiedzi

Opublikowano

Witam, jestem początkujący więc prosiłbym o pomoc.. Od niedawna zacząłem zabawę z AutoIT. Chciałbym się dowiedzieć jak połączyć pewna funkcje z GUI.

 

Func af()
$search = _ImageSearch('C:\Users\xxx\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ; OBRAZEK Z SZABLONEM AF
If $search = 1 Then
MouseClick("left", $x, $y, 1, 5)
EndIf
    Sleep(500)


$search1 = _ImageSearchArea('C:\Users\xxx\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1224, 575, 1347, 628, $x, $y, 0) ; OBRAZEK Z SZABLONEM
For $repeat = 1 To 20; ; USTAWIANIE ILOSCI POWTORZEN KLIKNIECIA W SZABLON
If $search1 = 1 Then
MouseClick("left", $x, $y, 1, 5)
Sleep(500)
EndIf
Next
Endfun

 Ta funkcje chciałbym podpiąć pod buttona guziczek1.

#include <GUIConstantsEx.au3>

GUICreate ("PROGRAM NR 1", 120, 100)

$guziczek1 = GUICtrlCreateButton("Uruchom af", 10, 20, 100,30)
$guziczek2 = GUICtrlCreateButton("Anuluj", 10, 50 ,100,30)

GUISetState()

While 1

$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop

If $msg = $guziczek1 Then
EndIf


If $msg = $guziczek2 Then
Exit
EndIf

WEnd

Jak wstawić funkcje? Pomoże ktoś? Oraz przy okazji zapytam, jak zrobić, żeby w _imagesearch nie podawać całej ścieżki do obrazu? widziałem, że istnieje komenda "@ScriptDir &" ale nie umiem tego zastosowac ;/

Z góry dziękuje za zainteresowanie.

 

 

 

 

EDIT

połączyłem to tak:

czy to jest poprawna forma? Jakies rady/sugesie?

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "ImageSearch.au3"
#include <GUIConstantsEx.au3>

GUICreate ("Aplikacja 1", 120, 100)

$guziczek1 = GUICtrlCreateButton("Uruchom af", 10, 20, 100,30)
$guziczek2 = GUICtrlCreateButton("Anuluj", 10, 50 ,100,30)

GUISetState()




While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $guziczek1
			AdlibRegister("START1", "1000")
		Case $guziczek2
			AdlibUnRegister("START1")
	EndSwitch
 WEnd


 Func START1()
	Global $x = 0
    Global $y = 0
 		 $sea		rch = _ImageSearch('C:\Users\xxx\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ; OBRAZEK Z SZABLONEM AF
		 If $search = 1 Then
		 MouseClick("left", $x, $y, 1, 5)
		 EndIf
	     Sleep(500)


		 $search1 = _ImageSearchArea('C:\Users\xxx\esDktop\AutoIT\obrazy\szabb.bmp', 1, 1224, 575, 1347, 628, $x, $y, 0) ; OBRAZEK Z SZABLONEM
		 For $repeat = 1 To 20; ; USTAWIANIE ILOSCI POWTORZEN KLIKNIECIA W SZABLON
		 If $search1 = 1 Then
		 MouseClick("left", $x, $y, 1, 5)
		 Sleep(500)
		 EndIf
		 Next
EndFunc
Opublikowano

Trzy małe błędy:

1. Drugi parametr funkcji AdlibRegister powinien być liczbą.

2. Rozjechała ci się nazwa zmiennej: $sea        rch

3. Jeżeli funkcja _ImageSearch znajdzie obrazek to zwraca wartość True, więc zamiast "If $search=1 Then ..." pewniej jest napisać "If $search Then ...". To samo z _Image SearchArea.

 

Zmienne globalne lepiej definiować w segmencie głównym skryptu, a nie w funkcji. Łatwiej wtedy zapanować nad nimi.

Zmieniłem też pętlę główną, bo w twojej wersji nie można było zakończyć skryptu z jego wnętrza.

Piszesz też trochę bałaganiarsko. Wcięcia jakoś dziwnie zrobione.

Po poprawkach było by tak:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "ImageSearch.au3"
#include <GUIConstantsEx.au3>

Global $x = 0, $y = 0

GUICreate ("Aplikacja 1", 120, 100)
$guziczek1 = GUICtrlCreateButton("Uruchom af", 10, 20, 100,30)
$guziczek2 = GUICtrlCreateButton("Anuluj", 10, 50 ,100,30)
GUISetState()

Do
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $guziczek1
         AdlibRegister("START1", 1000)  ;drugi parametr musi być liczbą
      Case $guziczek2
         AdlibUnRegister("START1")
   EndSwitch
Until $nMsg = $GUI_EVENT_CLOSE

;-----------------------------------------------------------
Func START1()
   Local $search, $search1
   $search = _ImageSearch('C:\Users\xxx\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ; OBRAZEK Z SZABLONEM AF
   If $search Then MouseClick("left", $x, $y, 1, 5)
   $search1 = _ImageSearchArea('C:\Users\xxx\esDktop\AutoIT\obrazy\szabb.bmp', 1, 1224, 575, 1347, 628, $x, $y, 0) ; OBRAZEK Z SZABLONEM
   For $repeat = 1 To 20; ; USTAWIANIE ILOSCI POWTORZEN KLIKNIECIA W SZABLON
      If $search1 Then
         MouseClick("left", $x, $y, 1, 5)
         Sleep(500)
      EndIf
   Next
EndFunc

W tej formie program jest formalnie poprawny, ale czy będzie się zachowywał tak jak zaplanowałeś to nie wiem.

Powodzenia.

Opublikowano

Dziękuję za sugestię wezmę je do siebie.

Wszystko ładnie działa. Teraz chciałbym przerobić ten skrypt i chciałbym osiągnąć:

1. Żeby nie podawać ilości stałych powtórzeń kliknięć w szablon, ale żeby np: wyskoczy obrazek to go kliknie tyle razy ile wyskoczy po czym zamknie pętle.

(teraz dział tak, że np obrazek wyskakuje i on klika mi w niego 20 razy - możne nie tak w niego jak w te miejsce co był) A chciałbym, żeby klikał dotąd dopóki obrazek widzi. Czyli załóżmy, obrazek jest klika - obrazek znika - on kończy klikanie i "wychodzi z pętli" - załącza się funkcja przerwa()

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "ImageSearch.au3"
#include <GUIConstantsEx.au3>
HotKeySet("{F4}", "koniec")

Global $x = 0, $y = 0

GUICreate ("Aplikacja 1", 120, 100)
$guziczek1 = GUICtrlCreateButton("Uruchom af", 10, 20, 100,30)
$guziczek2 = GUICtrlCreateButton("Anuluj", 10, 50 ,100,30)
GUISetState()

Do
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $guziczek1
         AdlibRegister("START1", 1000)  ;drugi parametr musi być liczbą
      Case $guziczek2
         AdlibRegister("koniec")
   EndSwitch
Until $nMsg = $GUI_EVENT_CLOSE

;-----------------------------------------------------------
Func START1()
   Local $search, $search1
   $search = _ImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ; OBRAZEK Z SZABLONEM AF
   If $search Then MouseClick("left", $x, $y, 1, 5)
   Sleep(1000)
   $search1 = _ImageSearchArea('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1224, 575, 1347, 628, $x, $y, 0) ; OBRAZEK Z SZABLONEM

	  If $search1 = 1 Then
		 MouseClick("left", $x, $y, 1, 5)
	  Else
		 przerwa()
	  EndIf
EndFunc





Func przerwa()
   For $czas = 400 To 0 Step -1   ; USTAWIANIE ZEGARA
	   Sleep (1000)
	   ToolTip($czas&"s", 0, 0, "Bot wlaczy sie:", 0)
	Next
 EndFunc

 Func koniec() ; zatrzymanie programu
	Exit
EndFunc
Opublikowano

 

Dziękuję za sugestię wezmę je do siebie.

Wszystko ładnie działa. Teraz chciałbym przerobić ten skrypt i chciałbym osiągnąć:

1. Żeby nie podawać ilości stałych powtórzeń kliknięć w szablon, ale żeby np: wyskoczy obrazek to go kliknie tyle razy ile wyskoczy po czym zamknie pętle.

(teraz dział tak, że np obrazek wyskakuje i on klika mi w niego 20 razy - możne nie tak w niego jak w te miejsce co był) A chciałbym, żeby klikał dotąd dopóki obrazek widzi. Czyli załóżmy, obrazek jest klika - obrazek znika - on kończy klikanie i "wychodzi z pętli" - załącza się funkcja przerwa()

Jak to zapętlić-  o.O

pierwsze pętla będzie na - powtórzenia (klikniecia w obrazek) - a druga, żeby po przerwie włączyła się funkcja od początku...

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "ImageSearch.au3"
#include <GUIConstantsEx.au3>
HotKeySet("{F4}", "koniec")

Global $x = 0, $y = 0

GUICreate ("Aplikacja 1", 120, 100)
$guziczek1 = GUICtrlCreateButton("Uruchom af", 10, 20, 100,30)
$guziczek2 = GUICtrlCreateButton("Anuluj", 10, 50 ,100,30)
GUISetState()

Do
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $guziczek1
         AdlibRegister("START1", 1000)  ;drugi parametr musi być liczbą
      Case $guziczek2
         AdlibRegister("koniec")
   EndSwitch
Until $nMsg = $GUI_EVENT_CLOSE

;-----------------------------------------------------------
Func START1()
   Local $search, $search1
   $search = _ImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ; OBRAZEK Z SZABLONEM AF
   If $search Then MouseClick("left", $x, $y, 1, 5)
   Sleep(1000)
   $search1 = _ImageSearchArea('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1224, 575, 1347, 628, $x, $y, 0) ; OBRAZEK Z SZABLONEM
   If $search1 = 1 Then
	  MouseClick("left", $x, $y, 1, 5)
   Else
	  przerwa()
   EndIf
EndFunc





Func przerwa()
   For $czas = 400 To 0 Step -1   ; USTAWIANIE ZEGARA
	   Sleep (1000)
	   ToolTip($czas&"s", 0, 0, "Bot wlaczy sie:", 0)
	Next
 EndFunc

 Func koniec() ; zatrzymanie programu
	Exit
EndFunc
Opublikowano


#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_UseX64=y

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include "ImageSearch.au3"

#include <GUIConstantsEx.au3>

HotKeySet("{F4}", "koniec")

 

Global $x = 0, $y = 0

 

GUICreate("Aplikacja 1", 120, 100)

$guziczek1 = GUICtrlCreateButton("Uruchom af", 10, 20, 100, 30)

$guziczek2 = GUICtrlCreateButton("Anuluj", 10, 50, 100, 30)

GUISetState(@SW_SHOW)

 

Do

$nMsg = GUIGetMsg()

Switch $nMsg

Case $guziczek1

START1()

Case $guziczek2

koniec()

EndSwitch

Until $nMsg = $GUI_EVENT_CLOSE

 

;-----------------------------------------------------------

Func START1()

Local $search, $search1

Do

$search = _ImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ; OBRAZEK Z SZABLONEM AF

If $search = 1 Then MouseClick("left", $x, $y, 1, 5)

Sleep(1000)

$search1 = _ImageSearchArea('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1224, 575, 1347, 628, $x, $y, 0) ; OBRAZEK Z SZABLONEM

If $search1 = 1 Then MouseClick("left", $x, $y, 1, 5)

Until $search1 = 0

przerwa()

EndFunc ;==>START1

 

Func przerwa()

For $czas = 400 To 0 Step -1 ; USTAWIANIE ZEGARA

Sleep(1000)

ToolTip($czas & "s", 0, 0, "Bot wlaczy sie:", 0)

Next

START1()

EndFunc ;==>przerwa

 

Func koniec() ; zatrzymanie programu

Exit

EndFunc ;==>koniec

 

 

 

Opublikowano

Pawellek dziekuje za zainteresowanie. Bot wg Twojej poprawy robi tak, że:

1. Klika w obrazek AF, pózniej w SZABB i tak cały czas dopóki nie wyskoczy SZABB to przerwa

 

2. Czy istnieje możliwość zrobienia tak, że: Klika raz w obrazek AF, pozniej w SZABB do tej pory aż się pojawia, nie pojawia - przerwa

 

Próbowałem pętle przenieść troche niżej, ale klika raz w SZABB i przerwa.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "ImageSearch.au3"
#include <GUIConstantsEx.au3>
HotKeySet("{F4}", "koniec")

Global $x = 0, $y = 0

GUICreate("Aplikacja 1", 120, 100)
$guziczek1 = GUICtrlCreateButton("Uruchom af", 10, 20, 100, 30)
$guziczek2 = GUICtrlCreateButton("Anuluj", 10, 50, 100, 30)
GUISetState(@SW_SHOW)

Do
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $guziczek1
			START1()
		Case $guziczek2
			koniec()
	EndSwitch
Until $nMsg = $GUI_EVENT_CLOSE

;-----------------------------------------------------------
Func START1()
	Local $search, $search1

		$search = _ImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ; OBRAZEK Z SZABLONEM AF
		If $search = 1 Then MouseClick("left", $x, $y, 1, 5)
		Sleep(1000)
	Do
		$search1 = _ImageSearchArea('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1224, 575, 1347, 628, $x, $y, 0) ; OBRAZEK Z SZABLONEM
		If $search1 = 1 Then MouseClick("left", $x, $y, 1, 5)
	Until $search1 = 0
	przerwa()
EndFunc   ;==>START1

Func przerwa()
	For $czas = 20 To 0 Step -1 ; USTAWIANIE ZEGARA
		Sleep(1000)
		ToolTip($czas & "s", 0, 0, "Bot wlaczy sie:", 0)
	Next
	START1()
EndFunc   ;==>przerwa

Func koniec() ; zatrzymanie programu
	Exit
EndFunc   ;==>koniec

EDIT: rozwiązaniem tego problemu było: zmiana tolerancji koloru obrazka. Pierwsze kliknięcie w SZABB normalnie się odbywało, a kolejne się nie udawało - chociaż skrypt był dobrze napisany.. Nie wziąłem jednego pod uwagę, że jak myszka najechała na obrazek on robił się ciemniejszy... czyli skrypt nie wykrywał SZABB i załączał przerwe.

Teraz jest jak chciałem. Na chwile obecną dziękuje bardzo za pomoc.

 

 

EDIT 2: Wytłumaczył by mi ktoś jak zrobić, żeby z każdego poziomu można było zamknąć skrypt? Poprzez klikniecie BUTTTON Anuluj

Opublikowano
Func start1()

	Local $search, $search1
	  $search = _ImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ;==> OBRAZEK Z SZABLONEM AF
	  If $search = 1 Then MouseClick("left", $x, $y, 1, 5)
	  Sleep(1000)
	; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              Do
		$search1 = _ImageSearchArea('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1221, 574, 1275, 672, $x, $y, 90) ;==> OBRAZEK Z SZABLONEM
		If $search1 = 1 Then MouseClick("left", $x, $y, 1, 5)
		   Sleep(200)
		Until $search1 = 0
	  WinMinimizeAll()
		 przerwa()
EndFunc  

Jak ustawić w tej funkcji, że jak znajdzie obrazek SZABB kliknie w niego, po czym wyskoczy inny(nazwijmy go szabA)  to włączy przerwę?

Opublikowano

 

EDIT 2: Wytłumaczył by mi ktoś jak zrobić, żeby z każdego poziomu można było zamknąć skrypt? Poprzez klikniecie BUTTTON Anuluj

https://www.autoitscript.com/forum/topic/112182-button-stop-dont-work-when-function-is-active/

 

 

Func start1()

	Local $search, $search1
	  $search = _ImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ;==> OBRAZEK Z SZABLONEM AF
	  If $search = 1 Then MouseClick("left", $x, $y, 1, 5)
	  Sleep(1000)
	; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              Do
		$search1 = _ImageSearchArea('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1221, 574, 1275, 672, $x, $y, 90) ;==> OBRAZEK Z SZABLONEM
		If $search1 = 1 Then MouseClick("left", $x, $y, 1, 5)
		   Sleep(200)
		Until $search1 = 0
	  WinMinimizeAll()
		 przerwa()
EndFunc  

Jak ustawić w tej funkcji, że jak znajdzie obrazek SZABB kliknie w niego, po czym wyskoczy inny(nazwijmy go szabA)  to włączy przerwę?

 

Func start1()

	Local $search, $search1
	$search = _ImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp', 0, $x, $y, 5) ;==> OBRAZEK Z SZABLONEM AF
	If $search = 1 Then MouseClick("left", $x, $y, 1, 5)
	Sleep(1000)
	; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Do
		$search1 = _ImageSearchArea('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp', 1, 1221, 574, 1275, 672, $x, $y, 90) ;==> OBRAZEK Z SZABLONEM
		If $search1 = 1 Then
			MouseClick("left", $x, $y, 1, 5)
			If _WaitForImageSearch('C:\Users\MieCho\Desktop\AutoIT\obrazy\szabA.bmp', 2, 0, $x, $y, 5) = 1 Then ExitLoop
		EndIf
		Sleep(200)
	Until $search1 = 0
	WinMinimizeAll()
	przerwa()
EndFunc   ;==>start1

 

 

Opublikowano

nie działa ;/ cały czas klika w SZABB, probowałem zmienić czas wyskoczenia obrazka oraz tolerancje i nic.

 

EDIT1:

Po przyglądaniu się jak działa skrypt wychodzi na to: Że dopóki widzi obrazek SZABB nie zwraca w ogóle uwagi na SZABA.

Jak ustawić priorytet?

 

EDIT2:

Skrypt dobrze napisany - po raz kolejny dziękuje Pawellek.

Rozwiązanie: zmiana przestrzeni wyszukiwania obrazka.

Opublikowano

Witam, napotykam kolejny problem. Mianowicie:

 

1. Jak zrobić, jak mam w przeglądarce kilka zakładek - żeby wybrał tą właściwą. 

Działa tak: Jak mam na poprawnej zakładce - działa normalnie, ale jak zmienię na inna zakładkę i odpalę bota to on po prostu minimalizuje i włącza przerwę. Wykonuje po prostu;

   WinMinimizeAll()
   przerwa()
EndFunc   ;==>start1

(Jak mam zminimalizowane okna - poprawna zakładka - działa normalnie. Jak mam zminimalizowane okna - zła zakładka - to maksymalizuje okno po czym minimalizuje i przerwa )

Func start0()
   ShellExecute("https://www.xxx.pl/xxxxx;379")   ;==> odpalenie strony
   Sleep(4000)
   MouseClick("left", 1186, 421, 1, 5)
   Sleep(2000)
   START1()
EndFunc

Func start1()
$tytul = "bla bla bla"
$lap = WinGetHandle($tytul);==> przejmowanie okna
Opt("MouseCoordMode", 2) ;==> odczytywanie kordow z clienta
WinActivate($lap) ;==> aktywowanie okna

	Local $obrazekAF, $obrazekSZABB
	$obrazekAF = _ImageSearch("C:\Users\MieCho\Desktop\AutoIT\obrazy\af.bmp", 0, $x, $y, 5) ;==> OBRAZEK Z SZABLONEM AF
	If $obrazekAF = 1 Then MouseClick("left", $x, $y, 1, 5)
	Sleep(1000)

   Do
	  $obrazekSZABB = _ImageSearchArea("C:\Users\MieCho\Desktop\AutoIT\obrazy\szabb.bmp", 1, 730, 263, 1352, 637, $x, $y, 90) ;==> OBRAZEK Z SZABLONEM B
	  If $obrazekSZABB = 1 Then
		 MouseClick("left", $x, $y, 1, 5)
	  If _WaitForImageSearch("C:\Users\MieCho\Desktop\AutoIT\obrazy\brakj.bmp", 0.1, 0, $x, $y, 100) = 1 Then ExitLoop ;==> OBRAZEK BRAK WOJSK
	  EndIf
   Until $obrazekSZABB = 0
   WinMinimizeAll()
   przerwa()
EndFunc   ;==>start1

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...