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

Zamulone warunki


Rekomendowane odpowiedzi

Opublikowano

Witam,

Ja z moimi problemami jak zawsze. :P

Jak zawsze z udf ImageSearch, lecz tutaj raczej chodzi tylko o warunki, które "zamulają".

 

Może nie do końca wiem, jak te warunki i gdzie powinny się znajdować.

Oto kod

 

#include <imagesearch.au3>
HotKeySet ( "{NUMPAD1}", wsparcie)
HotKeySet( "q", nothing)
Func nothing()
   Exit
EndFunc
While 1
   Sleep (15)
WEnd
 
Func wsparcie()
 
   Global $x = 0, $y = 0
   Global $x1 = 0, $y1 = 0 ;wsparcie
   Global $x2 = 0, $y2 = 0 ;wsparcie szare podczas wczytywania
   Global $x3 = 0, $y3 = 0 ;plan
   While 1
   Local $szukaj_wsparcia = _ImageSearch ('wsparcie.bmp', 90, $x, $y, 99)
   Local $szukaj_wsparcia_wczytywanie = _ImageSearch ('wsparciewczytywanie.bmp', 90, $x1, $y1, 99)
   Local $PRZEWIN = _ImageSearch ('PRZEWIN.bmp', 90, $x2, $y2, 99)
   Local $ZAMKNIJ = _ImageSearch ('zamknij.bmp', 90, $x3, $y3, 99)
   
   If $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 1 Then ; jest WSPARCIE
 MouseClick ("primary", $x, $y, 1, 1)
   ElseIf $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 0 Then ; nie ma wsparć i siwych wsparć!
 MouseClick ("primary", $x2, $y2, 1, 1)
   ElseIf $ZAMKNIJ = 1 Then ; zdobyłem plan!
 MouseClick ("primary", $x3, $y3, 1, 1)
   ElseIf $szukaj_wsparcia = 0 Then ;23123123
 MouseClick ("primary", $x2, $y2, 1, 1);123123
 ;Sleep ( 350 )
 
   EndIf
   WEnd
EndFunc

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

 

Witam,

Ja z moimi problemami jak zawsze. :P

Jak zawsze z udf ImageSearch, lecz tutaj raczej chodzi tylko o warunki, które "zamulają".

 

Może nie do końca wiem, jak te warunki i gdzie powinny się znajdować.

Oto kod

#include <imagesearch.au3>
HotKeySet ( "{NUMPAD1}", wsparcie)
HotKeySet( "q", nothing)
Func nothing()
   Exit
EndFunc
While 1
   Sleep (15)
WEnd
 
Func wsparcie()
 
   Global $x = 0, $y = 0
   Global $x1 = 0, $y1 = 0 ;wsparcie
   Global $x2 = 0, $y2 = 0 ;wsparcie szare podczas wczytywania
   Global $x3 = 0, $y3 = 0 ;plan
   While 1
   Local $szukaj_wsparcia = _ImageSearch ('wsparcie.bmp', 90, $x, $y, 99)
   Local $szukaj_wsparcia_wczytywanie = _ImageSearch ('wsparciewczytywanie.bmp', 90, $x1, $y1, 99)
   Local $PRZEWIN = _ImageSearch ('PRZEWIN.bmp', 90, $x2, $y2, 99)
   Local $ZAMKNIJ = _ImageSearch ('zamknij.bmp', 90, $x3, $y3, 99)
   
   If $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 1 Then ; jest WSPARCIE
 MouseClick ("primary", $x, $y, 1, 1)
   ElseIf $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 0 Then ; nie ma wsparć i siwych wsparć!
 MouseClick ("primary", $x2, $y2, 1, 1)
   ElseIf $ZAMKNIJ = 1 Then ; zdobyłem plan!
 MouseClick ("primary", $x3, $y3, 1, 1)
   ElseIf $szukaj_wsparcia = 0 Then ;23123123
 MouseClick ("primary", $x2, $y2, 1, 1);123123
 ;Sleep ( 350 )
 
   EndIf
   WEnd
EndFunc

nie dziwie sie ze kod zamula :) Nie potrzebnie ladujesz co klikniecie NUMPAD_1 swoje resources. Wystarczy jak bys raz je zaladowal i ustawil jak zmienne globalne const.

Opublikowano

 

 

Witam,

Ja z moimi problemami jak zawsze. :P

Jak zawsze z udf ImageSearch, lecz tutaj raczej chodzi tylko o warunki, które "zamulają".

 

Może nie do końca wiem, jak te warunki i gdzie powinny się znajdować.

Oto kod

#include <imagesearch.au3>
HotKeySet ( "{NUMPAD1}", wsparcie)
HotKeySet( "q", nothing)
Func nothing()
   Exit
EndFunc
While 1
   Sleep (15)
WEnd
 
Func wsparcie()
 
   Global $x = 0, $y = 0
   Global $x1 = 0, $y1 = 0 ;wsparcie
   Global $x2 = 0, $y2 = 0 ;wsparcie szare podczas wczytywania
   Global $x3 = 0, $y3 = 0 ;plan
   While 1
   Local $szukaj_wsparcia = _ImageSearch ('wsparcie.bmp', 90, $x, $y, 99)
   Local $szukaj_wsparcia_wczytywanie = _ImageSearch ('wsparciewczytywanie.bmp', 90, $x1, $y1, 99)
   Local $PRZEWIN = _ImageSearch ('PRZEWIN.bmp', 90, $x2, $y2, 99)
   Local $ZAMKNIJ = _ImageSearch ('zamknij.bmp', 90, $x3, $y3, 99)
   
   If $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 1 Then ; jest WSPARCIE
 MouseClick ("primary", $x, $y, 1, 1)
   ElseIf $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 0 Then ; nie ma wsparć i siwych wsparć!
 MouseClick ("primary", $x2, $y2, 1, 1)
   ElseIf $ZAMKNIJ = 1 Then ; zdobyłem plan!
 MouseClick ("primary", $x3, $y3, 1, 1)
   ElseIf $szukaj_wsparcia = 0 Then ;23123123
 MouseClick ("primary", $x2, $y2, 1, 1);123123
 ;Sleep ( 350 )
 
   EndIf
   WEnd
EndFunc

nie dziwie sie ze kod zamula :) Nie potrzebnie ladujesz co klikniecie NUMPAD_1 swoje resources. Wystarczy jak bys raz je zaladowal i ustawil jak zmienne globalne const.

 

Próbowałem na wiele sposobów, ale zawsze był błąd albo mysz zapętliła się na kordach 0, 0. 

Zrobiłem wszystko na local'ach, i chodzi jak chodzi, troszkę wolno, ale ważne, że działa, chociaż dla własnej wiedzy chciałbym się dowiedzieć czy rzeczywiście da się to przyśpieszyć, czy to po prostu udf ma w sobie takie duże sleep'y.

 

 

#include <imagesearch.au3>
HotKeySet ( "{NUMPAD1}", wsparcie)
HotKeySet( "q", nothing)
 
 
 
 
Func nothing()
   Exit
EndFunc
While 1
   Sleep (15)
WEnd
 
Func wsparcie()
 
While 1
   Local $x = 0, $y = 0
   Local $x1 = 0, $y1 = 0 ;wsparcie
   Local $x2 = 0, $y2 = 0 ;wsparcie szare podczas wczytywania
   Local $x3 = 0, $y3 = 0 ;plan
   Local $szukaj_wsparcia = _ImageSearch ('wsparcie.bmp', 90, $x, $y, 99)
   Local $szukaj_wsparcia_wczytywanie = _ImageSearch ('wsparciewczytywanie.bmp', 90, $x1, $y1, 99)
   Local $PRZEWIN = _ImageSearch ('PRZEWIN.bmp', 90, $x2, $y2, 99)
   Local $ZAMKNIJ = _ImageSearch ('zamknij.bmp', 90, $x3, $y3, 99)
   Select
   Case $szukaj_wsparcia = 1 ; jest WSPARCIE
 MouseClick ("primary", $x, $y, 1, 1)
   Case $szukaj_wsparcia = 0; nie ma wsparć i siwych wsparć!
 MouseClick ("primary", $x2, $y2, 1, 1)
 Sleep ( 1000 )
   Case $ZAMKNIJ = 1 Then ; zdobyłem plan!
 MouseClick ("primary", $x3, $y3, 1, 1)
   Case $szukaj_wsparcia = 0 ;23123123
 MouseClick ("primary", $x2, $y2, 1, 1);123123
 ;Sleep ( 350 )
   EndSelect
WEnd
EndFunc

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

 

 

 

Witam,

Ja z moimi problemami jak zawsze. :P

Jak zawsze z udf ImageSearch, lecz tutaj raczej chodzi tylko o warunki, które "zamulają".

 

Może nie do końca wiem, jak te warunki i gdzie powinny się znajdować.

Oto kod

#include <imagesearch.au3>
HotKeySet ( "{NUMPAD1}", wsparcie)
HotKeySet( "q", nothing)
Func nothing()
   Exit
EndFunc
While 1
   Sleep (15)
WEnd
 
Func wsparcie()
 
   Global $x = 0, $y = 0
   Global $x1 = 0, $y1 = 0 ;wsparcie
   Global $x2 = 0, $y2 = 0 ;wsparcie szare podczas wczytywania
   Global $x3 = 0, $y3 = 0 ;plan
   While 1
   Local $szukaj_wsparcia = _ImageSearch ('wsparcie.bmp', 90, $x, $y, 99)
   Local $szukaj_wsparcia_wczytywanie = _ImageSearch ('wsparciewczytywanie.bmp', 90, $x1, $y1, 99)
   Local $PRZEWIN = _ImageSearch ('PRZEWIN.bmp', 90, $x2, $y2, 99)
   Local $ZAMKNIJ = _ImageSearch ('zamknij.bmp', 90, $x3, $y3, 99)
   
   If $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 1 Then ; jest WSPARCIE
 MouseClick ("primary", $x, $y, 1, 1)
   ElseIf $szukaj_wsparcia AND $szukaj_wsparcia_wczytywanie = 0 Then ; nie ma wsparć i siwych wsparć!
 MouseClick ("primary", $x2, $y2, 1, 1)
   ElseIf $ZAMKNIJ = 1 Then ; zdobyłem plan!
 MouseClick ("primary", $x3, $y3, 1, 1)
   ElseIf $szukaj_wsparcia = 0 Then ;23123123
 MouseClick ("primary", $x2, $y2, 1, 1);123123
 ;Sleep ( 350 )
 
   EndIf
   WEnd
EndFunc

nie dziwie sie ze kod zamula :) Nie potrzebnie ladujesz co klikniecie NUMPAD_1 swoje resources. Wystarczy jak bys raz je zaladowal i ustawil jak zmienne globalne const.

 

Próbowałem na wiele sposobów, ale zawsze był błąd albo mysz zapętliła się na kordach 0, 0. 

Zrobiłem wszystko na local'ach, i chodzi jak chodzi, troszkę wolno, ale ważne, że działa, chociaż dla własnej wiedzy chciałbym się dowiedzieć czy rzeczywiście da się to przyśpieszyć, czy to po prostu udf ma w sobie takie duże sleep'y.

 

 

#include <imagesearch.au3>
HotKeySet ( "{NUMPAD1}", wsparcie)
HotKeySet( "q", nothing)
 
 
 
 
Func nothing()
   Exit
EndFunc
While 1
   Sleep (15)
WEnd
 
Func wsparcie()
 
While 1
   Local $x = 0, $y = 0
   Local $x1 = 0, $y1 = 0 ;wsparcie
   Local $x2 = 0, $y2 = 0 ;wsparcie szare podczas wczytywania
   Local $x3 = 0, $y3 = 0 ;plan
   Local $szukaj_wsparcia = _ImageSearch ('wsparcie.bmp', 90, $x, $y, 99)
   Local $szukaj_wsparcia_wczytywanie = _ImageSearch ('wsparciewczytywanie.bmp', 90, $x1, $y1, 99)
   Local $PRZEWIN = _ImageSearch ('PRZEWIN.bmp', 90, $x2, $y2, 99)
   Local $ZAMKNIJ = _ImageSearch ('zamknij.bmp', 90, $x3, $y3, 99)
   Select
   Case $szukaj_wsparcia = 1 ; jest WSPARCIE
 MouseClick ("primary", $x, $y, 1, 1)
   Case $szukaj_wsparcia = 0; nie ma wsparć i siwych wsparć!
 MouseClick ("primary", $x2, $y2, 1, 1)
 Sleep ( 1000 )
   Case $ZAMKNIJ = 1 Then ; zdobyłem plan!
 MouseClick ("primary", $x3, $y3, 1, 1)
   Case $szukaj_wsparcia = 0 ;23123123
 MouseClick ("primary", $x2, $y2, 1, 1);123123
 ;Sleep ( 350 )
   EndSelect
WEnd
EndFunc

 

Witam, staram się unikać deklaracji zmiennych w petlach i robie to zawsze na początku programu tylko raz np:

 

#include <imagesearch.au3>

HotKeySet ( "{NUMPAD1}", wsparcie)

HotKeySet( "q", nothing)

 

$x = 0  ;deklaracja zmiennej

$y = 0  ;deklaracja zmiennej

 

$szukaj_wsparcia = @ScriptDir & "wsparcie.bmp"  ; deklaracja zmiennej z obrazkiem

 

 

func wsparcie()    ; nastepnie juz w funkcj w pętlii operuję na tych zdeklarowanych wczesniej zmiennych $x,$y oraz $szukaj_wsparcia np;

 

 while 1

 

       $result = _ImageSearch($szukaj_wsparcia,90, $x, $y, 99)

 

 wend

 

endfunc

 

Nie wiem czy to bedzie działać dobrze lecz mysle że to dobry trop.Dodam jeszcze że staram sie unikać _ImageSearch oraz _ImageSearchArea ponieważ one mogą znacząco spowalniać skrypty.Teoretycznie można by je umieszczać w tak zwanych podprogramach które w osobnych nie zależnych już wątkach procesowych mogłyby coś szukać i po znalezieniu oznajmiać głowny nasz program (skrypt) w jakiś tam wymyślony przez nas sposób.Nasz głowny skrypt miałby tylko instrukcje warunkową if-then , która by czekała na tą informację z tego podprogramu.If then działa znacznie szybciej niż  _ImageSearch :makka:

Opublikowano

A jak mogę zrobić by progressbar się odliczał  z $TIMEOUT?

 

 

Func PaliSie()
 
   Global $TIMER = TimerInit()
   Local $TIMEOUT = 380000;470000; czas
 
   $Form1 = GUICreate("Czas", 160, 20, 1208, 709, BitOR($WS_SYSMENU,$WS_POPUP))
   $Progress1 = GUICtrlCreateProgress(0, 2, 158, 17, BitOR($PBS_SMOOTH,$WS_BORDER))
   GUISetState(@SW_SHOW)
   GUICtrlSetData($Progress1, ($TIMEOUT))
 
 
While 1
       global $y100 = 0, $x100 = 0
  Local $searchPALISIE1 = _ImageSearch('PALISIE.bmp', 80, $x100, $y100, 99)
 
  global $y101 = 0, $x101 = 0
  Local $searchNAGRODY1 = _ImageSearch('NAGRODY.bmp', 80, $x101, $y101, 99)
 
  global $y105 = 0, $x105 = 0
  Local $searchZAMKNIJ1 = _ImageSearch('zamknij.bmp', 80, $x105, $y105, 99)
 
  global $y106 = 0, $x106 = 0
  Local $searchZAMKNIJ2 = _ImageSearch('zamknijatak.bmp', 80, $x106, $y106, 99)
  Sleep ( 15 )
If $searchPALISIE1 AND $searchNAGRODY1 = 1 Then
Sleep ( 550 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 3 ) ; tutaj naciskam na ptaszka nagród zdobytych
  Sleep ( 60 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 3 )
  Sleep ( 70 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 3 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 ) ; tutaj już gaszę obóz
  Sleep ( 100 )
  MouseClick( "PRIMARY", 770, 422, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 830, 377, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 622, 414, 1, 1 )
  Sleep ( 200 )
  MouseClick( "PRIMARY", 446, 420, 2, 1 )
  Sleep ( 380 )
  MouseClick( "PRIMARY", 620, 416, 1, 1 )
  Sleep ( 850 )
  MouseClick( "PRIMARY", 905, 245, 1, 1 )
  Sleep ( 100 )
ElseIf $searchNAGRODY1 = 0 AND $searchPALISIE1 = 1 Then
  Sleep ( 550 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 770, 422, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 830, 377, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 622, 414, 1, 1 )
  Sleep ( 200 )
  MouseClick( "PRIMARY", 446, 420, 2, 1 )
  Sleep ( 380 )
  MouseClick( "PRIMARY", 620, 416, 1, 1 )
  Sleep ( 850 )
  MouseClick( "PRIMARY", 905, 245, 1, 1 )
  Sleep ( 100 )
ElseIf $searchNAGRODY1 = 1 Then
Sleep ( 50 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 3 ) ; tutaj naciskam na ptaszka nagród zdobytych
  Sleep ( 60 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 3 )
  Sleep ( 70 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 3 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 ) ; tutaj już gaszę obóz
ElseIf $searchZAMKNIJ1 = 1 Then
  MouseClick( "PRIMARY", $x105, $y105, 1, 1 )
ElseIf $searchZAMKNIJ2 = 1 Then
  MouseClick( "PRIMARY", $x106, $y106, 1, 1 )
ElseIf TimerDiff($TIMER) >= $TIMEOUT Then
  Rozpocznij_00()
  ExitLoop
EndIf
WEnd
 EndFunc

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

Witam @Tieru jak nie obczaiłeś to sprawdz to może ?:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>

$A = 0
$B = 1000 ; tu można dodać zmienic np. $B = $TIMEOUT
Global $g_bPaused = False

HotKeySet("{PAUSE}", "pauza")
HotKeySet("{Esc}", "koniec")
HotKeySet("{f9}", "start")

$Form1 = GUICreate("Progressbar", 161, 70, 192, 146)
$Progress1 = GUICtrlCreateProgress(1, 8, 158, 17, BitOR($PBS_SMOOTH,$WS_BORDER))
GUICtrlSetData($Progress1, 100)
$Label = GUICtrlCreateLabel("",10, 38, 158, 17 )
GUISetState(@SW_SHOW)

While 1
 Sleep(10)
WEnd

func start()
	Sleep(10)
	pro()
 endfunc

func pro()
   for $A = 1 to $B
   sleep(10)
   GUICtrlSetData($progress1, (100 - ($A*(100/$)))
   GUICtrlSetData($Label,$A)
   next
endfunc

Func pauza()
   GUICtrlSetData($Label,"Pauza")
   $g_bPaused = Not $g_bPaused
    While $g_bPaused
        Sleep(100)
    WEnd
EndFunc

func koniec()
   GUICtrlSetData($Label,"koniec")
   Sleep(1000)
   Exit 0
EndFunc

Opublikowano

 

Witam @Tieru jak nie obczaiłeś to sprawdz to może ?:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>

$A = 0
$B = 1000 ; tu można dodać zmienic np. $B = $TIMEOUT
Global $g_bPaused = False

HotKeySet("{PAUSE}", "pauza")
HotKeySet("{Esc}", "koniec")
HotKeySet("{f9}", "start")

$Form1 = GUICreate("Progressbar", 161, 70, 192, 146)
$Progress1 = GUICtrlCreateProgress(1, 8, 158, 17, BitOR($PBS_SMOOTH,$WS_BORDER))
GUICtrlSetData($Progress1, 100)
$Label = GUICtrlCreateLabel("",10, 38, 158, 17 )
GUISetState(@SW_SHOW)

While 1
 Sleep(10)
WEnd

func start()
	Sleep(10)
	pro()
 endfunc

func pro()
   for $A = 1 to $B
   sleep(10)
   GUICtrlSetData($progress1, (100 - ($A*(100/$)))
   GUICtrlSetData($Label,$A)
   next
endfunc

Func pauza()
   GUICtrlSetData($Label,"Pauza")
   $g_bPaused = Not $g_bPaused
    While $g_bPaused
        Sleep(100)
    WEnd
EndFunc

func koniec()
   GUICtrlSetData($Label,"koniec")
   Sleep(1000)
   Exit 0
EndFunc

Dziękuję Ci bardzo, ale mam problem jak to umieścić w tym kodzie

(Funkcje z warunkami mają ciągle działać w czasie gdy jest odliczany czas timeout i progressbar.

Func PaliSie()
 
   Global $TIMER = TimerInit()
   Local $TIMEOUT = 237000;470000; czas
 
$A = 0
$B = $TIMEOUT ; tu można dodać zmienic np. $B = $TIMEOUT
$Form1 = GUICreate("Progressbar", 161, 70, 192, 146)
$Progress1 = GUICtrlCreateProgress(1, 8, 158, 17, BitOR($PBS_SMOOTH,$WS_BORDER))
GUICtrlSetData($Progress1, 100)
$Label = GUICtrlCreateLabel("",10, 38, 158, 17 )
GUISetState(@SW_SHOW)
   for $A = 1 to $B
   sleep(10)
   GUICtrlSetData($progress1, (100 - ($A*(100/$)))
   GUICtrlSetData($Label,$A)
   next
 
While 1
 
       global $y100 = 0, $x100 = 0
  Local $searchPALISIE1 = _ImageSearch('PALISIE.bmp', 80, $x100, $y100, 99)
 
  global $y101 = 0, $x101 = 0
  Local $searchNAGRODY1 = _ImageSearch('NAGRODY.bmp', 80, $x101, $y101, 99)
 
  global $y105 = 0, $x105 = 0
  Local $searchZAMKNIJ1 = _ImageSearch('zamknij.bmp', 80, $x105, $y105, 99)
 
  global $y106 = 0, $x106 = 0
  Local $searchZAMKNIJ2 = _ImageSearch('zamknijatak.bmp', 80, $x106, $y106, 99)
  Sleep ( 15 )
If $searchPALISIE1 AND $searchNAGRODY1 = 1 Then
Sleep ( 550 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 1 ) ; tutaj naciskam na ptaszka nagród zdobytych
  Sleep ( 100 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 ) ; tutaj już gaszę obóz
  Sleep ( 100 )
  MouseClick( "PRIMARY", 770, 422, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 830, 377, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 838, 420, 1, 1 )
  Sleep ( 200 )
  Sleep ( 850 )
  MouseClick( "PRIMARY", 905, 245, 1, 1 )
  Sleep ( 100 )
ElseIf $searchNAGRODY1 = 0 AND $searchPALISIE1 = 1 Then
  Sleep ( 550 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 770, 422, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 830, 377, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 838, 420, 1, 1 )
  Sleep ( 200 )
  Sleep ( 850 )
  MouseClick( "PRIMARY", 905, 245, 1, 1 )
  Sleep ( 100 )
ElseIf $searchNAGRODY1 = 1 Then
Sleep ( 50 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 1 ) ; tutaj naciskam na ptaszka nagród zdobytych
  Sleep ( 60 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 ) ; tutaj już gaszę obóz
ElseIf $searchZAMKNIJ1 = 1 Then
  MouseClick( "PRIMARY", $x105, $y105, 1, 1 )
ElseIf $searchZAMKNIJ2 = 1 Then
  MouseClick( "PRIMARY", $x106, $y106, 1, 1 )
ElseIf TimerDiff($TIMER) >= $TIMEOUT Then
  Rozpocznij_00()
  ExitLoop
EndIf
WEnd
 EndFunc

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

Zapodaj cały kod to się dowiemy  co w trawie piszczy :) .

Pytasz gdzie to wstawić - najlepiej w pętli while 1, a robisz to mniej wiecej tak (nie znam całego kodu więc zgaduję):

 

kopiuj wklej gdzieś tą funkcję

func pro()
;for $A = 1 to $B ; masz w swoim kodzie ElseIf TimerDiff($TIMER) >= $TIMEOUT Then a po tym exitLoop  więc to nie potrzebne
w Twoim kodzie nie moze być for - next więc trzeba to jakoś zastapić

$A = $A + 1 ;chodzi o zwiekszenie tej $A1 co pętla o 1

sleep(10)
GUICtrlSetData($progress1, (100 - ($A*(100/$B)))) ; tu bedzie ona zmniejszala ten progressbar o srednią ze zmiennej $B
GUICtrlSetData($Label,$A)
;next
endfunc

Następnie w  petli while odwołujesz się do tej funkcji np.

 

while 1

pro()

Tu Twój kod

wend

 

Nie mogę tego sprawdzić czy zadziała bo nie znam całego kodu - sorki teoretycznie powinno :lenny: .

Opublikowano

Zapodaj cały kod to się dowiemy  co w trawie piszczy :) .

Pytasz gdzie to wstawić - najlepiej w pętli while 1, a robisz to mniej wiecej tak (nie znam całego kodu więc zgaduję):

 

kopiuj wklej gdzieś tą funkcję

func pro()

;for $A = 1 to $B ; masz w swoim kodzie ElseIf TimerDiff($TIMER) >= $TIMEOUT Then a po tym exitLoop  więc to nie potrzebne

w Twoim kodzie nie moze być for - next więc trzeba to jakoś zastapić

$A = $A + 1 ;chodzi o zwiekszenie tej $A1 co pętla o 1

sleep(10)

GUICtrlSetData($progress1, (100 - ($A*(100/$ B)))) ; tu bedzie ona zmniejszala ten progressbar o srednią ze zmiennej $B

GUICtrlSetData($Label,$A)

;next

endfunc

Następnie w  petli while odwołujesz się do tej funkcji np.

 

while 1

pro()

Tu Twój kod

wend

 

Nie mogę tego sprawdzić czy zadziała bo nie znam całego kodu - sorki teoretycznie powinno :lenny: .

Jestem pod wrażeniem Twojej wiedzy i umiejętności ;o, rzeczywiście ruszyło się.

 

To jest funkcja w której wszystko się dzieje, po czasie $timeout ona przeskakuje do początku (startu)(kodu nie podałem),a ten progressbar jest mi potrzebny po prostu bym widział po jakim czasie wrócić do gry. :D

 

edit - hmm ale to nalicza chyba pętle a nie czas timeout, bo wolno leci.

edit2 - ok ustawilem np, 10 s na timeout no i progressbar zle liczy i nawet jego poziom nie spada :(

 

Sekwencja kodu jest taka 

####################################################################

Odliczam 4 minuty. (Tutaj chciałbym również by timer odliczał te minuty)

Szukam obrazka1,obrazka2,obrazka3, jesli je znajde to wykonuje If & ElseIf, działa to na While, gdyż określenie skończenia tego jest tylko poprzez czas 4 minut.

Przeskakuje po $Timeout >= 4 minuty do funkcji Rozpocznij00000001....

####################################################################

 

 

Może dlatego mi nie działa?

"Ogólnie czym jest wielowątkowosc?

Wielowątkowośc to inaczej obsługiwanie wiecej niż jedna funkcja na raz. Autoit sam w sobie jest jedno wątkowy."

http://www.mpcforum.pl/topic/259918-timersau3wielowtkowosc-autoit/#entry1781683

 

Próbuję teraz tak...

 

ElseIf TimerDiff($TIMER) >= 180000 Then ; liczy 3 minuty
  TrayTip( "Pozostało", "60 sekund!", 500)
ElseIf TimerDiff($TIMER) = 230000 Then ; 3 minuty 50 sek
  TrayTip( "Pozostało", "10 sekund!", 500)
ElseIf TimerDiff($TIMER) >= $TIMEOUT Then
 
  Rozpocznij_00()
  ExitLoop
EndIf
Pokazuje ze pozostalo 60 sek, ale dalej juz nie wychodzi z tego ani nie przechodzi do pozostalo 10 sek, robiac znaki == to nawet nie sie pojawi ze pozostalo tyle i tyle...

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

A gdyby coś takiego @Tieru ?

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <imagesearch.au3>

$TIMER = TimerInit()
$c = TimerDiff($TIMER)
$TIMEOUT = 70000
$d = 0



Global $g_bPaused = False

HotKeySet("{PAUSE}", "pauza") ;dodałem hotkeye do testu
HotKeySet("{Esc}", "koniec")
HotKeySet("{f9}", "PaliSie")

$Form1 = GUICreate("progressbar test", 500, 20, 200,566)
$Label = GUICtrlCreateLabel("", 500, 20, 200,566)
 $Progress1 = GUICtrlCreateProgress(0, 2, 500, 17, BitOR($PBS_SMOOTH,$WS_BORDER))
   GUICtrlSetData($Progress1, 100)
   GUISetState(@SW_SHOW)

while 1 ; to jest aby hotkeye dzialaly
sleep(100)
wend

Func PaliSie()
While 1
sleep(100)
 $c = TimerDiff($TIMER)
   $d = int($c)
GUICtrlSetData($progress1, (100 - ($d*(100/$TIMEOUT))))
; tu sobie dajesz jakiś swój kod
if $d > $TIMEOUT then
 sleep(100)
  koniec() ; zamiast koniec() mozna dać inna funkcje np. Rozpocznij_00()
 ExitLoop
EndIf
WEnd
EndFunc

Func pauza()

   $g_bPaused = Not $g_bPaused
    While $g_bPaused
        Sleep(100)
    WEnd
EndFunc

func koniec()

   Sleep(1000)
   Exit 0
EndFunc

lub z $TIMER = @HOUR & @min & @Sec

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <imagesearch.au3>

$TIMER = @HOUR & @ & @
$d = 0
$time2 = 0
$TIMEOUT = 100

Global $g_bPaused = False

HotKeySet("{PAUSE}", "pauza") ;dodałem hotkeye do testu
HotKeySet("{Esc}", "koniec")
HotKeySet("{f9}", "PaliSie")

$Form1 = GUICreate("progressbar test", 500, 20, 200,566)
$Label = GUICtrlCreateLabel("", 500, 20, 200,566)
 $Progress1 = GUICtrlCreateProgress(0, 2, 500, 17, BitOR($PBS_SMOOTH,$WS_BORDER))
   GUICtrlSetData($Progress1, 100)
   GUISetState(@SW_SHOW)

while 1 ; to jest aby hotkeye dzialaly
sleep(10)
wend

Func PaliSie()
While 1
sleep(10)
$time2 = @HOUR & @ & @
   $d = $time2 - $TIMER
   GUICtrlSetData($progress1, (100 - ($d*(100/$TIMEOUT))))
; tu sobie dajesz jakiś swój kod
if $d > $TIMEOUT then
 sleep(100)
  koniec() ; zamiast koniec() mozna dać inna funkcje np. Rozpocznij_00()
 ExitLoop
EndIf
WEnd
EndFunc

Func pauza()
   $g_bPaused = Not $g_bPaused
    While $g_bPaused
        Sleep(100)
    WEnd
EndFunc

func koniec()
 Sleep(500)
   Exit 0
EndFunc

Wielowątkowość jest to wywołanie paru funkcji które działają od siebie nie zależnie i mozna to uzyskać w autoit na kilka sposobów.

Jednym z nich jest AdlibRegister a innym Timers.au3.

Mozna tez zrobic tak ze głowny program robi sobie cos tam i sprawdza czy jest cos w np. schowku systemowym, a drugi program w tym samym czasie szuka np. obrazka  i jak znajdzie to zapisuje cos do schowka.W takim przypadku ten drugi program szukający obrazka nie zamula tego pierwszego.

;zapis do schowka
ClipPut("Test obsługi schowka systemowego." & @LF & _
		         "Wszystko działa prawidłowo!")
MsgBox(0,"Wprowadzenie tekstu do schowka","")
;odczyt ze schowka
$sTxt = ClipGet()
MsgBox(0, "Zawartość schowka:", $sTxt)

Sa jeszcze inne sposoby ale o tym kiedys moze ?

Opublikowano

@metinplayer - nie wiem co bez Ciebie bym zrobił... nic. Dzięki Ci bardzo za mnóstwo pracy, rzadko spotyka się taką osobę co poświęca się dla innych za nic, wszystko świetnie, teraz tylko pogłowić się muszę, żeby nie po 60 sekundach ten Rozpocznij00() się odpalał tylko 4 minutach. ^^

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

W $TIMEOUT ten czas może ?

Hmm, $timeout = 100, a jest 60 sekund, więc muszę kalkulatorem odpowiednio sobie wyliczyć ile to 4 minuty tak? :P

 

Gdy ustawilem timeout na 40, to po 30 sekundach z polowy progressbaru wylaczyl sie i przeszedl do funkcji Rozpocznij.

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

 

W $TIMEOUT ten czas może ?

Hmm, $timeout = 100, a jest 60 sekund, więc muszę kalkulatorem odpowiednio sobie wyliczyć ile to 4 minuty tak? :P

 

Gdy ustawilem timeout na 40, to po 30 sekundach z polowy progressbaru wylaczyl sie i przeszedl do funkcji Rozpocznij.

 

Raczej nie rób $timeout > niż 100 .Po testuj sobie mniej wiecej  ile dodac aby było 4 min.

Opublikowano

 

 

W $TIMEOUT ten czas może ?

Hmm, $timeout = 100, a jest 60 sekund, więc muszę kalkulatorem odpowiednio sobie wyliczyć ile to 4 minuty tak? :P

 

Gdy ustawilem timeout na 40, to po 30 sekundach z polowy progressbaru wylaczyl sie i przeszedl do funkcji Rozpocznij.

 

Raczej nie rób $timeout > niż 100 .Po testuj sobie mniej wiecej  ile dodac aby było 4 min.

 

Wszystko pięknie działa, zamykam.

A to kod

 

Func PaliSie()
 
 
$TIMER = TimerInit()
$c = TimerDiff($TIMER)
$TIMEOUT = 237000
$d = 0
 
$Form1 = GUICreate("progressbar test", 500, 20, 200,566)
$Label = GUICreate("Czas", 160, 20, 1208, 709, BitOR($WS_SYSMENU,$WS_POPUP), BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
$Progress1 = GUICtrlCreateProgress(0, 2, 158, 17, BitOR($PBS_SMOOTH,$WS_BORDER))
GUICtrlSetData($Progress1, 100)
GUISetState(@SW_SHOW)
 
While 1
$c = TimerDiff($TIMER)
$d = int($c)
GUICtrlSetData($progress1, (100 - ($d*(100/$TIMEOUT))))
 
       global $y100 = 0, $x100 = 0
  Local $searchPALISIE1 = _ImageSearch('PALISIE.bmp', 80, $x100, $y100, 99)
 
  global $y101 = 0, $x101 = 0
  Local $searchNAGRODY1 = _ImageSearch('NAGRODY.bmp', 80, $x101, $y101, 99)
 
  global $y105 = 0, $x105 = 0
  Local $searchZAMKNIJ1 = _ImageSearch('zamknij.bmp', 80, $x105, $y105, 99)
 
  global $y106 = 0, $x106 = 0
  Local $searchZAMKNIJ2 = _ImageSearch('zamknijatak.bmp', 80, $x106, $y106, 99)
  Sleep ( 15 )
If $searchPALISIE1 AND $searchNAGRODY1 = 1 Then
Sleep ( 550 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 1 ) ; tutaj naciskam na ptaszka nagród zdobytych
  Sleep ( 100 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 ) ; tutaj już gaszę obóz
  Sleep ( 100 )
  MouseClick( "PRIMARY", 770, 422, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 830, 377, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 838, 420, 1, 1 )
  Sleep ( 200 )
  Sleep ( 850 )
  MouseClick( "PRIMARY", 905, 245, 1, 1 )
  Sleep ( 100 )
ElseIf $searchNAGRODY1 = 0 AND $searchPALISIE1 = 1 Then
  Sleep ( 550 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 770, 422, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 830, 377, 1, 1 )
  Sleep ( 100 )
  MouseClick( "PRIMARY", 838, 420, 1, 1 )
  Sleep ( 200 )
  Sleep ( 850 )
  MouseClick( "PRIMARY", 905, 245, 1, 1 )
  Sleep ( 100 )
ElseIf $searchNAGRODY1 = 1 Then
Sleep ( 50 )
  MouseClick( "PRIMARY", $x101, $y101, 1, 1 ) ; tutaj naciskam na ptaszka nagród zdobytych
  Sleep ( 60 )
  MouseClick( "PRIMARY", $x100, $y100, 1, 1 ) ; tutaj już gaszę obóz
ElseIf $searchZAMKNIJ1 = 1 Then
  MouseClick( "PRIMARY", $x105, $y105, 1, 1 )
ElseIf $searchZAMKNIJ2 = 1 Then
  MouseClick( "PRIMARY", $x106, $y106, 1, 1 )
ElseIf $d >= $TIMEOUT Then
  Rozpocznij_00()
  ExitLoop
EndIf
WEnd
 
 EndFunc

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


Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...