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

[Pytanie] Mała Pomo


Rekomendowane odpowiedzi

Opublikowano

Witam. Otóż napisałem skrypt do gry Ultrasgame. Oto on :

 

Sleep(5000)
for $i=3 to 7
MouseClick("left",437,396,1,1)
MouseClick("left",447,488,1,1)
MouseClick("left",434,587,1,1)
MouseClick("left",570,383,1,1)
MouseClick("left",563,483,1,1)
MouseClick("left",574,594,1,1)
MouseClick("left",692,388,1,1)
MouseClick("left",703,493,1,1)
MouseClick("left",689,592,1,1)
MouseClick("left",834,390,1,1)
MouseClick("left",821,497,1,1)
MouseClick("left",809,583,1,1)
Sleep(1000)
MouseClick("left",820,695,1,1)
Sleep(2000)
MouseClick("left",816,533,1,1)
Sleep(1000)
MouseClick("left",821,663,1,1)
Sleep(1000)
MouseClick("left",815,553,1,1)
Sleep(1000)
Next
MouseClick("left",315,375,1,1)

 

Chodzi oto, że skrypt klika 12 obrazków, następnie potwierdza, i znowu potwierdza 3 razy. Skrypt powtarza tę czynność 5 razy po czym doładowuje energię. Chodzi oto, że co jakiś czas (losowo) w grze pojawia się pewne okno, które psuje mi całą kolej rzeczy. Czy da się ustawić tak, że podczas wyskoczenia tego okna na stronie bot wybierze coś innego ? Przedstawię zaraz to na obrazkach .

 

Link : http://i51.tinypic.com/2804ivk.png

 

Pomoże ktoś ?

ryuw.png

  • Odpowiedzi 56
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Ja w swoich początkach z autoitem użyłbym funkcji PixelGetColor dla sprawdzenia, która to sytuacja ;) (czy wyskoczyło okienko 3, czy 5)

Sprawdzenie z użyciem funkcji If

If PixelGetColor(x,y)=kolor pixela Then
MouseClick("left",x,y)  ;to gdy dany piksel ma odpowiedni kolor
Else
MouseClick("left",x2,y2)  ;to gdy kolor jest inny
endIf

 

Kolor i pozycję pixela znajdziesz w Autoit Window Info (jest w menu start, w folderze autoita)

wiz_taxer.png
Opublikowano

No ja

Nie za bardzo wiem o co chodzi. Jestem początkującym. Mógłbyś mi to dokładnie opisać jak to zrobić żeby dobrze działało ?

 

JestemHackiem

Rozwiń swoją wypowiedź bo nie wiem o co ci chodzi.

ryuw.png

Opublikowano

ImageSearch au3 to biblioteka, za pomocą której możesz znaleźć na pulpicie dany obrazek, otrzymać jego współrzędne, które możesz uzyć do kliknięcia myszką. W gotowych skryptach i bibliotekach masz Tutorial z przykładami poszukaj - 2 strony to nie 2 miliony tysięcy tematów, nie zaboli.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Przeczytałem jeden z tutoriali, ale jak już mówiłem jestem totalnym amatorem i nic z tego nie zrozumiałem. Czy ktoś może mi to dokładnie wytłumaczyć lub zrobić ?

ryuw.png

Opublikowano

Każdy ze stale tu udzielających się programistów ma misję od której zależy istnienie świata i galaktycznych bram przeskoku, nie wspominając o kwantowych zagięciach czasoprzestrzeni umożliwiających patrzenie na swoje dupsko młodsze o 10 lat! Obawiam się, że prośba o zrobienie ci tego bota spotka się ze sprzeczną opinią miejscowej starszyzny a twoje morale spadną! Jeśli nie umiesz to się ucz! nikt się za ciebie nie nauczy teraz jak i w dorosłym życiu.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Nie proszę nikogo o napisanie bota. Proszę tylko o wytłumaczenie mi lub napisanie tej części, o która proszę. Więc wytłumaczy mi ktoś jak to zrobić (dokładnie) ?

ryuw.png

Opublikowano

Czy ktoś może mi to dokładnie wytłumaczyć lub zrobić ?

 

Nie kłam! :angry:

 

Wytłumaczone masz w tutcie, dodatkowo w postach w tym temacie zostały rozwiniete niektóre aspekty. CZYTAJ!

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano
Czy ktoś może mi to dokładnie wytłumaczyć lub zrobić ?

 

Chodziło mi o zrobienie tej części, o która proszę. Nie chodziło mi o całego bota.

 

Jestem początkującym i nie do końca wszystko rozumiem, więc proszę żeby ktoś mi to dokładnie wytłumaczył jak to zrobić .

ryuw.png

Opublikowano

NIE RÓB imagesearch'em!

 

Skorzystaj z bibliotek IE.au3 lub FF.au3, ze szczególnym poleceniem tej pierwszej.

 

Wszystkie potrzebny przykłady, żeby wystartować masz w helpie.

 

Otwórz plik IE.au3 i zobacz jak to działa. Następnie poucz się trochę o javascripcie, szczególnie o metodach oddziaływania na DOM ( obiektowy model dokumentu HTML ).

 

google.pl/search?q=kurs%20javascript

 

 

- - - -

 

Na pytania typu "Jak TO zrobić?" nie mamy zwyczaju odpowiadać.

 

 

- - - - -

 

I używając IE.au3, sprawdzenie czy wyskoczyło okno numer 2, czy numer 4 (zero-indexed :P, zgodnie ze zdjęciem z linka) jest tak proste jak

$oIE.document.location.page

albo

$oIE.document.getElementsByTagName('select').elements(0).chilNodes.length ;// elements albo items, nie jestem pewny atm

Ale musisz najpierw zacząć z przykladami z Helpa.

Ta sygnatura jest pusta.

Opublikowano

Można wiedzieć o co ci chodzi ? Proszę o obszerną odpowiedź jak to zrobić, a nie o jakieś niepotrzebne posty.

 

Spróbowałem sposobem No ja i mi nie działa. Oto kod :

Sleep(5000)
If PixelGetColor(837,463)=0xC14A46 Then
MouseClick(401,461,1,1)
MouseClick(833,516,1,1)
Else
For $i=3 to 7
MouseClick("left",437,396,1,1)
MouseClick("left",447,488,1,1)
MouseClick("left",434,587,1,1)
MouseClick("left",570,383,1,1)
MouseClick("left",563,483,1,1)
MouseClick("left",574,594,1,1)
MouseClick("left",692,388,1,1)
MouseClick("left",703,493,1,1)
MouseClick("left",689,592,1,1)
MouseClick("left",834,390,1,1)
MouseClick("left",821,497,1,1)
MouseClick("left",809,583,1,1)
Sleep(1000)
MouseClick("left",820,695,1,1)
Sleep(2000)
MouseClick("left",816,533,1,1)
Sleep(1000)
MouseClick("left",821,663,1,1)
Sleep(1000)
MouseClick("left",815,553,1,1)
Sleep(1000)
Next
MouseClick("left",315,375,1,1)
Sleep(1000)
EndIf

 

Skrypt się włącza i po kilku sekundach wyłącza. Czy mógłby mi ktoś powiedzieć gdzie wstawić funkcję "If" i gdzie ją zakończyć. Dodam, że chce jeszcze dodać pętlę, która będzie wszystko powtarzała w nieskończoność. I mam pytanie czy ta funkcja "If" będzie działała cały czas czy tylko na samym początku ? Chce, aby ona sprawdzała to cały czas .

ryuw.png

Opublikowano

Jeśli nie rozumiesz, że najlepiej zrobić to za pomocą UDFa IE.au3, to jedyną inną metodą będzie założenie hooka na strcpy.

 

Mam nadzieję, że pomogłem.

Ta sygnatura jest pusta.

Opublikowano

Nadal nic nie rozumiem. A jeśli chodzi oto co napisałem. Da się to jakoś przerobić żeby działało ?

 

Czy ten kod będzie działał poprawnie ?

Sleep(5000)
If PixelGetColor(837,463)=0xC14A46 Then
       MouseClick("left"401,461,1,1)
       MouseClick("left"833,516,1,1)
       Else
For $i=3 to 7
MouseClick("left",437,396,1,1)
MouseClick("left",447,488,1,1)
MouseClick("left",434,587,1,1)
MouseClick("left",570,383,1,1)
MouseClick("left",563,483,1,1)
MouseClick("left",574,594,1,1)
MouseClick("left",692,388,1,1)
MouseClick("left",703,493,1,1)
MouseClick("left",689,592,1,1)
MouseClick("left",834,390,1,1)
MouseClick("left",821,497,1,1)
MouseClick("left",809,583,1,1)
Sleep(1000)
MouseClick("left",820,695,1,1)
Sleep(2000)
MouseClick("left",816,533,1,1)
Sleep(1000)
MouseClick("left",821,663,1,1)
Sleep(1000)
MouseClick("left",815,553,1,1)
Sleep(1000)
Next
MouseClick("left",315,375,1,1)
Sleep(1000)
EndIf

 

Chodzi tutaj oto, żeby funkcja sprawdzała czy dany pixel jest danego kolor. Jeżeli jest wykonuje dane akcje i wraca do rutyny. Czy to zadziała ? Czy funkcja "If" będzie działała cały czas czy tylko na początku ?

 

@edit 2

Zrobiłem jeszcze coś takiego.

 

Sleep(5000)
While 1
For $i=3 to 7
If PixelGetColor(837,463)=0xC14A46 Then
MouseClick("left",401,461,1,1)
MouseClick("left",833,516,1,1)
Else
MouseClick("left",437,396,1,1)
MouseClick("left",447,488,1,1)
MouseClick("left",434,587,1,1)
MouseClick("left",570,383,1,1)
MouseClick("left",563,483,1,1)
MouseClick("left",574,594,1,1)
MouseClick("left",692,388,1,1)
MouseClick("left",703,493,1,1)
MouseClick("left",689,592,1,1)
MouseClick("left",834,390,1,1)
MouseClick("left",821,497,1,1)
MouseClick("left",809,583,1,1)
Sleep(1000)
MouseClick("left",820,695,1,1)
Sleep(2000)
MouseClick("left",816,533,1,1)
Sleep(1000)
EndIf
If PixelGetColor(837,463)=0xC14A46 Then
MouseClick("left",401,461,1,1)
MouseClick("left",833,516,1,1)
Else
Sleep(1000)
MouseClick("left",821,663,1,1)
Sleep(1000)
MouseClick("left",815,553,1,1)
Sleep(1000)
EndIf
Next
MouseClick("left",315,375,1,1)
Sleep(1000)
WEnd

 

Myślicie, że to zadziała ?

ryuw.png

Opublikowano

Po pierwsze - rób wcięcia, ułatwia to czytanie programu

 

Po drugie - warunek nigdy nie będzie spełniony:

nigdy tej funkcji nie używałem, ale z helpa widzę, że zwraca ona kolor w zwykłych cyferkach.

Dlatego musi być:

If Hex(PixelGetColor(837,463),6)=C14A46 Then

Hex zmienia zwracaną liczbę na liczbę hexadecymalną (czyli taką jak potrzebujemy)

 

Po trzecie - ten warunek jest sprawdzany 2 razy, nie wiem czy tu nie masz błędu

 

Po czwarte - jak powyżej już powiedziano, lepiej byłoby wykonać to w FF albo IE, mógłby wtedy program działać zminimalizowany, oraz wydaje mi się, że byłby nieco dokładniejszy.

 

na razie tyle ;)

 

Opublikowano

Dzięki za pomoc. Funkcja "If" ma być dwa razy. Zauważyłem, że może wyskoczyć w dwóch miejscach.

 

Z chęcią bym to zrobił w FF albo IE, ale ja tego nie ogarniam ... ;/

 

@edit

Da ktoś link do jakiegoś dobego poradnika jak obsługiwać FF lub IE ?

ryuw.png

Opublikowano

Ściągnąłem FF-Page Analyzer z tej strony LINK, a także MozRepl, lecz po włączeniu tego programu i po kliknięciu "Analyze" wyskakują mi błędy, takie jak napisał użytkownik w 3 poście (nick : Peeja x6) w temacie umieszczonym wcześniej.

 

Pomoże ktoś ?

ryuw.png

Opublikowano

Hex zmienia zwracaną liczbę na liczbę hexadecymalną (czyli taką jak potrzebujemy)

 

Sorry ale czy czasem dla procesora to nie jest jeden chuj w jakim systemie zapiszemy liczbę (binarny, dziesiątkowy czy szesnastkowy)? Przecież każdy zapis przedstawia tę samą wartość:

11111011011

0x0007DB

0xDB070000

2011

 

To wszystko znaczy chyba jedno?

 

@UP, włączyłeś MozRepl w firefoxie?

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

nigdy tej funkcji nie używałem, ale z helpa widzę, że zwraca ona kolor w zwykłych cyferkach.

Dlatego musi być:

If Hex(PixelGetColor(837,463),6)=C14A46 Then

 

Hex zmienia zwracaną liczbę na liczbę hexadecymalną (czyli taką jak potrzebujemy)

 

A gówno prawda.

 

Wartość koloru to wartość koloru, notacja nie ma znaczenia.

 

Czy liczbę dwanaście zapiszesz jako

12
0xC
tuzin
1100b
014

 

Wartość jest taka sama.

 

Co więcej, kompilator nie przepuści "C14A46" poniewż nie jest to nawet dobra notacja (podobnie nie przepuści słowa "tuzin" jako liczby. Ani nie będzie wiedział, że 1100b to binarne, gdyż AutoIt nie wspiera takiej notacji (z literką 'b' na końcu). Wspiera ją już natomiast C, C++, java, php, javascript [z tymi się styknąłem], podobnie w wypadku liczb ósemkowych, w AutoIcie nie ma tak prostej notacji [zero rozpoczynające] ).

Prawidłową notacją liczb hex (w tym wypadku) byłoby "0xC14A46". Co i tak nie robi znaczenia, gdyż notacja to tylko sposób zapisu najczytelniejszy dla programisty. Procesor i tak przekłada wszystko na binarkę.

 

 

 

- - - - - - - - - - - - - - - - - - - -

 

 

@Topic:

 

Korzystaj z IE.au3.

- Łatwiej (obiektowość)

- Szybciej (brak komunikacji przez TCP)

- Dużo pomocy (w Helpie masz przykłady każdej funkcji, oraz domyślne, proste strony testowe na których możesz ćwiczyć)

 

Generalnie: [F1]. I po kolei przerabiaj przykłady funkcji _IE*

Ta sygnatura jest pusta.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...