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] Jak zrobić coś takiego?


Rekomendowane odpowiedzi

Opublikowano

Witam. Chciał bym zrobić coś takiego. Mam bota, a właściwie kilka botów, które się niczym nie różnią. Poprostu każdy pracuje w innej rozdzielczości ekranu. Jak zrobić coś takiego, że program się uruchamia pokazuje się okno z wyborem rozdzielczości i zależnie od wybrania rozdzielczości np. 1440x900, uruchamia się właściwy program, który w tej rozdzielczości pracuje. Chodzi o to by do (no nie wiem jak to się nazywa radio coś tam, takie kółeczka co się w nie kropki stawia xD) wybranej przez użytkownika rozdzielczości uruchamiał się dołączony do niej program. Jak to zrobić? Daję +'y (liczba mnoga :P).

Opublikowano

Nie lepiej zrobić by szukało czegoś na ekranie i porównywało z obrazkiem a potem sprawdzało współrzędne tego miejsca? By działało na każdej rozdzielczości i by mniej roboty było

space-core-o.gif

Opublikowano
$rozdzielczosc = @DesktopWidth & "x" & @DesktopHeight
If $rozdzielczosc = '1024x728' Then Run("program przy takiej rozdzialce")
If $rozdzielczosc = '1440x900' Then Run("program przy takiej rozdzialce")
;i tak dalej

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Weteran
Opublikowano

Możesz stworzyć okno wyboru (gui) , z którego można wybrać interesującą nas rozdzielczość.

 

Np. robisz dwa radia z wyborem rozdzielczosci, zaznaczasz 800x600

tworzysz button np. start

Naciskasz button znika i potem używasz funkcji

 

Ifr guictrlread($radio) = $GUI_CHECKED Then

Run("sciezka_programu")

endif

 

itd..

 

Ja złączył bym te programy w jeden na twoim miejscu, chyba, że są to programy skompilowane i nie masz dostępi do kodu ;d

1329036830-U154499.png
Opublikowano

Nie lepiej zrobić by szukało czegoś na ekranie i porównywało z obrazkiem a potem sprawdzało współrzędne tego miejsca? By działało na każdej rozdzielczości i by mniej roboty było

 

Właśnie nie bo po pierwsze obrazki mogą być chyba źle odczytywane na innych rozdzielczościach, jeżeli mam je do porównania z jednej, a po drugie to nie mogę zrobić czegoś takiego, ponieważ bot klika w tekst, który jest przeźroczysty dookoła.

Mam dostęp do kodu bo robię tego bota. Mam już na kilka rozdzielczości i robię kolejne. I właśnie up dobrze, chcę aby to wszystko było jednym spójnym programem.

Tylko właśnie jak to zrobić, żeby mi się te programy nie pomieszały jak je oddzielić i przypisać do radia?

Opublikowano

Po co chcesz robić takie pierdoły? mozolne wybieranie rozdzielczości ręcznie, skoro HeniutX_PL napisał ci jak zrobić automatyczne wykrywanie rozdzielczości, co jest dla twojego programu sto razy lepszym rozwiązaniem...

Opublikowano

Po co chcesz robić takie pierdoły? mozolne wybieranie rozdzielczości ręcznie, skoro HeniutX_PL napisał ci jak zrobić automatyczne wykrywanie rozdzielczości, co jest dla twojego programu sto razy lepszym rozwiązaniem...

 

Wcale nie, mozna napisać 1 program w wielu rozdzielczościach przy czym będzie działało to na KAŻDEJ [ na jego tylko w ustalonych] rozdzielczości...

 

Przykład Gui

$hgui = GUICreate("TITLE",@DesktopWidth/800*250,@dDesktopHeight/600*500,200,200)

Przykład funkcji

MouseClick("left","@DesktopWidth/800*25,@DesktopHeight/600*50)

Oddajcie minusy! :(

Opublikowano

@2UP Ty nie rozumiesz... To wykrywa rozdzielczość pulpitu tak?? A mi jest ten bot potrzebny do gry w trybie FullScreen. Zresztą on mi napisał na uruchamianie zupełnie oddzielnych programów. Ja już sobie poradzę. Tylko jak zrobić, żeby to wszystko było jednym programem. Da się zrobić coś takiego jak funkcja w funkcji?

 

@EDIT Dobra już chyba sobie z tym poradzę.

 

@EDIT2 Potrzeba mi jednak coś takiego jak funkcja w funkcji. Nie wiem czy tak się da :(.

Opublikowano

a co ma rozdzielczosc obrazka do rozielczości ekranu ?

 

obrazek ZAWSZE będzie miał tą samą bez względu na rozdzielczość ekranu , przecież nagle na większym ekranie nie zwiększy się rozdzielczość obrazka

jęsli ma on np. 100x100 to zawsze będzie miał 100x100 czy to przy rozdzielczości 1024x728 czy też 1440x900

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

@robem

 

Też prawda, ale np, w grach tekstura X pozostaje taka sama, lecz gdy X jest daleko jest inny układ pikseli jak X jest blisko

Podobnie jest na fullscreenie przy różnych rozdzielczościach...

na ekranie 800x600 x będzie miał wymiar 400x300

a na ekranie 1680x1050 będzie miał wymiar 840x525

 

 

Funkcje w funkcji chyba się da zrobić

Func ABC()
Msgbox(0,"","abc")
Endfunc


Func ABCD()
If $x = 1 then
ABC()
else
Msgbox(0,"","brak")
Endif
Endfunc

Oddajcie minusy! :(

Opublikowano

@UP Zaraz sprawdzę czy działa.

@2XUP Może i tak ale ja korzystam także z MouseClick.

 

@EDIT Ok już sobie poradzę dzięki za pomoc :).

Opublikowano

Mam kolejny problem. Jak zrobić coś takiego, że: Jeżeli zobaczy jeden obrazek to ma wtedy kliknąć w drugi? Bo takie coś mi nie działa:

 

Global $xx, $yy ;Do czegoś musiałem wrzucić współrzędne zmiennej "$Neutralny"
Global $x2, $y2 ;Dało by rade bez tych zmiennych "Global" jakoś? 
$Neutralny = _ImageSearch("C:\neutralny.bmp", 1, $xx, $yy, 1)  ;No gdzieś musiałem chyba wjebać te współrzędne nie?
If $Neutralny = 1 Then ;Po prostu jeżeli taki obrazek zaistnieje na ekranie to ma kliknąć w obrazek podany niżej
$Fasolka = _ImageSearch("C:\fasolka_all", 1, $x2, $y2, 1)
       If $Fasolka = 1 Then
MouseClick("right", $x2, $y2)
EndIf
EndIf

Opublikowano

Mam kolejny problem. Jak zrobić coś takiego, że: Jeżeli zobaczy jeden obrazek to ma wtedy kliknąć w drugi? Bo takie coś mi nie działa:

 

Global $xx, $yy ;Do czegoś musiałem wrzucić współrzędne zmiennej "$Neutralny"
Global $x2, $y2 ;Dało by rade bez tych zmiennych "Global" jakoś? 
$Neutralny = _ImageSearch("C:\neutralny.bmp", 1, $xx, $yy, 1)  ;No gdzieś musiałem chyba wjebać te współrzędne nie?
If $Neutralny = 1 Then ;Po prostu jeżeli taki obrazek zaistnieje na ekranie to ma kliknąć w obrazek podany niżej
$Fasolka = _ImageSearch("C:\fasolka_all", 1, $x2, $y2, 1)
       If $Fasolka = 1 Then
MouseClick("right", $x2, $y2)
EndIf
EndIf

 

Tak nie lepiej?

Global $x2, $y2, $xx, $yy
$Neutralny = _ImageSearch("C:\neutralny.bmp", 1, $xx, $yy, 1)
$Fasolka = _ImageSearch("C:\fasolka_all.rozszerzenie", 1, $x2, $y2, 1)
If $Neutralny = 1 And $Fasolka = 1 Then MouseClick("right", $x2, $y2)

 

Nie wpisałeś rozszerzenie fasolka_all.

//Zakaz gifów-Dektored

Opublikowano

Dzięki, rzeczywiście zapomniałem o rozszerzeniu. Masz +, teraz mam coś takiego:

 

Func Start()
;--------------------------------------------------------------------------------------------------------------
Sleep(100)
Send("{F3}")
Sleep(100)
Send("{F4}")
;--------------------------------------------------------------------------------------------------------------
Global $xpd, $ypd, $xranga, $yranga, $xf, $yf
;--------------------------------------------------------------------------------------------------------------
   Sleep(100)
$PD = _ImageSearch("C:\wymagane-pd.bmp", 1, $xpd, $ypd, 1)
$Neutralny = _ImageSearch("C:\neutralny.bmp", 1, $xranga, $yranga, 1)
$Agresywny = _ImageSearch("C:\agresywny.bmp", 1, $xranga, $yranga, 1)
$Nieuczciwy = _ImageSearch("C:\nieuczciwy.bmp", 1, $xranga, $yranga, 1)
$Zlosliwy = _ImageSearch("C:\zlosliwy.bmp", 1, $xranga, $yranga, 1)
$Okrutny = _ImageSearch("C:\okrutny.bmp", 1, $xranga, $yranga, 1)
$Fasolka = _ImageSearch("C:\fasolka_all.bmp", 1, $xf, $yf, 1)
If $PD = 1 Then MouseMove($xpd, $ypd - 29)
If $Neutralny = 1 And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Agresywny = 1 And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Nieuczciwy = 1 And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Zlosliwy = 1 And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Okrutny = 1 And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
;--------------------------------------------------------------------------------------------------------------
EndFunc

 

I dzieje się coś takiego: Najeżdża na współrzędne PD (y-29px), po czym sprawdza który z obrazków istnieje (tutaj bot się zatrzymuje), jeżeli, któryś z nich (Neutralny, Agresywny itd.) istnieje to ma kliknąć w fasolkę i na tym bot się zatrzymuje. Tzn. Dodam, że funkcję uruchamiam pod klawiszem F10 i w momencie kiedy się zatrzymuje i kliknę po raz kolejny F10, wtedy bot rusza dalej. Czemu tak się dzieje?

Weteran
Opublikowano

Tak to napisałeś, że nie wiem o co ci chodzi.Podaj treść błędu, a nie całe działanie bota.

 

Widzę, żę bot do metina ;)

1329036830-U154499.png
Opublikowano

Nie mam żadnego błędu jak uruchamiam bota wszystko niby działa. Tylko jest coś takiego. Bot sprawdza rangę i w zależności od rangi wie ile fasolek ma kliknąć, narazie klika po jednej bo to na próbę ma być. Więc klikam F10 bot zaczyna pracę, klika F3, F4 najeżdża na rangę i w tym momencie właśnie się tak jak by pauzuje i jak kliknę F10 znowu to działa dalej i klika w fasolkę. Czemu się tak dzieje?

Weteran
Opublikowano

Nie wiem czy cię dobrze zrozumiałem..chodzi ci o to czemu bot nie robi tego ciągle tylko jeden raz ?

Jeżeli tak to dodaj go w pętle While - WEnd, gdy chcesz aby powtarzał funkcje w nieskończoność

 

A jeśli chcesz wyznaczyć ilość powtórzeń to daj pętle For To Next

 

While 
co ma robic
WEnd

For $zmienna = 0 To $ilosc razy
co ma robic
Next

 

@ EDIT

Zajażyłem..

Źle używasz komendy And

 

Napisz tak

If $zmienna And $zmiennax = 1 Then MouseClick...itd

1329036830-U154499.png
Opublikowano

Nie wiem czy mnie zrozumiałeś jutro dam ss'y. Zmiana nic nie pomogła dalej się pauzuje w środku pracy i dopiero po wciśnięciu klawisza odpowiadającego za rozpoczęcie funkcji rusza dalej.

Opublikowano

while 1

start()

wend

 

Nie rozumiem jak mam to wstawić?

 

Tak dalej jest to samo:

#include <ImageSearch.au3>
While 1
WEnd
Func Start()
;--------------------------------------------------------------------------------------------------------------
Sleep(100)
Send("{F3}")
Sleep(100)
Send("{F4}")
;--------------------------------------------------------------------------------------------------------------
Global $xpd, $ypd, $xr, $yr, $xf, $yf
;--------------------------------------------------------------------------------------------------------------
   Sleep(100)
$PD = _ImageSearch("C:\wymagane-pd.bmp", 1, $xpd, $ypd, 1)
$Neutralny = _ImageSearch("C:\neutralny.bmp", 1, $xr, $yr, 1)
$Agresywny = _ImageSearch("C:\agresywny.bmp", 1, $xr, $yr, 1)
$Nieuczciwy = _ImageSearch("C:\nieuczciwy.bmp", 1, $xr, $yr, 1)
$Zlosliwy = _ImageSearch("C:\zlosliwy.bmp", 1, $xr, $yr, 1)
$Okrutny = _ImageSearch("C:\okrutny.bmp", 1, $xr, $yr, 1)
$Fasolka = _ImageSearch("C:\fasolka_all.bmp", 1, $xf, $yf, 1)
If $PD = 1 Then MouseMove($xpd, $ypd - 29)
If $Neutralny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Agresywny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Nieuczciwy And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Zlosliwy And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Okrutny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
;--------------------------------------------------------------------------------------------------------------
EndFunc

 

 

Tak wywala błędy jak chce odpalić program:

 

#include <ImageSearch.au3>
While 1
Func Start()
;--------------------------------------------------------------------------------------------------------------
Sleep(100)
Send("{F3}")
Sleep(100)
Send("{F4}")
;--------------------------------------------------------------------------------------------------------------
Global $xpd, $ypd, $xr, $yr, $xf, $yf
;--------------------------------------------------------------------------------------------------------------
   Sleep(100)
$PD = _ImageSearch("C:\wymagane-pd.bmp", 1, $xpd, $ypd, 1)
$Neutralny = _ImageSearch("C:\neutralny.bmp", 1, $xr, $yr, 1)
$Agresywny = _ImageSearch("C:\agresywny.bmp", 1, $xr, $yr, 1)
$Nieuczciwy = _ImageSearch("C:\nieuczciwy.bmp", 1, $xr, $yr, 1)
$Zlosliwy = _ImageSearch("C:\zlosliwy.bmp", 1, $xr, $yr, 1)
$Okrutny = _ImageSearch("C:\okrutny.bmp", 1, $xr, $yr, 1)
$Fasolka = _ImageSearch("C:\fasolka_all.bmp", 1, $xf, $yf, 1)
If $PD = 1 Then MouseMove($xpd, $ypd - 29)
If $Neutralny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Agresywny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Nieuczciwy And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Zlosliwy And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
If $Okrutny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
;--------------------------------------------------------------------------------------------------------------
EndFunc
WEnd

Opublikowano

jaja sobie robisz?

#include <ImageSearch.au3>
While 1
start()
WEnd
Func Start()
       ;--------------------------------------------------------------------------------------------------------------
       Sleep(100)
       Send("{F3}")
       Sleep(100)
       Send("{F4}")
       ;--------------------------------------------------------------------------------------------------------------
       Global $xpd, $ypd, $xr, $yr, $xf, $yf
       ;--------------------------------------------------------------------------------------------------------------
   Sleep(100)
       $PD = _ImageSearch("C:\wymagane-pd.bmp", 1, $xpd, $ypd, 1)
       $Neutralny = _ImageSearch("C:\neutralny.bmp", 1, $xr, $yr, 1)
       $Agresywny = _ImageSearch("C:\agresywny.bmp", 1, $xr, $yr, 1)
       $Nieuczciwy = _ImageSearch("C:\nieuczciwy.bmp", 1, $xr, $yr, 1)
       $Zlosliwy = _ImageSearch("C:\zlosliwy.bmp", 1, $xr, $yr, 1)
       $Okrutny = _ImageSearch("C:\okrutny.bmp", 1, $xr, $yr, 1)
       $Fasolka = _ImageSearch("C:\fasolka_all.bmp", 1, $xf, $yf, 1)
       If $PD = 1 Then MouseMove($xpd, $ypd - 29)
       If $Neutralny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
       If $Agresywny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
       If $Nieuczciwy And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
       If $Zlosliwy And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
       If $Okrutny And $Fasolka = 1 Then MouseClick("right", $xf, $yf)
       ;--------------------------------------------------------------------------------------------------------------
EndFunc

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...