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]Bot PixelSearch


Rekomendowane odpowiedzi

Opublikowano

Siemka,

Mam takie pytanie, chcę napisać bota, który polega na:

 

Moja postać ma np. kolor pixel 0x292929

Postać wroga, którą bot ma bić ma kolor 0x485FA6

 

Da się na PixelSearch napisać bota do gry?

Jeżeli pixel mojej postaci będzie znajdować się koło pixelu postaci wroga to program zacznie naciskać przycisk ataku?

 

Mysle ze moze to byc troche skomplikowane, bo raczej nie da sie w AI odliczyc odleglosc pixeli od pixela drugiego...

 

@Bo jeżeli tak się nie da to jak inaczej napisać?... ImageSearch? Trochę dziwnie działa ta funkcja bo często przestaje działać, albo zmieni się rozdzielczosć albo w grze tak jakby teksturka sie odswieza...

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

Hmm... z jedno tutoriala przerobiłem sobie kod na inną gierkę, nie metina...

Chociaż funkcje są przystosowane do metina.

Chciałbym aby zamiast myszką klikać na kolor (w tej grze jest sterowanie WSAD i V - atak B - skok N - obrona).

Gra wygląda tak (jest też w niej sterowanie w gore i dol)

Nie wiem jak zrobić aby moja postać skierowała się na wroga...

72643495.jpg

 

 

HotKeySet("F8", "EXIT")
Opt("WinWaitDelay", 100)
Opt("WinTitleMatchMode", 4)
Opt("WinDetectHiddenText", 1)
Opt("PixelCoordMode", 2)
Opt("MouseCoordMode", 2)
WinWait("Hero Fighter v0.70", "")
If Not WinActive("Hero Fighter v0.70", "") Then WinActivate("Hero Fighter v0.70", "")
WinWaitActive("Hero Fighter v0.70", "")
TrayTip("HeroFighter Bot","Bot aktywny, możesz iść afk",30)
WinWait("Hero Fighter v0.70", "")
If Not WinActive("Hero Fighter v0.70", "") Then WinActivate("Hero Fighter v0.70", "")
WinWaitActive("Hero Fighter v0.70", "")
;TrayTip("Bot aktywny, możesz isć odpocząć ;-)",30)
$metin = "Hero Fighter v0.70"
$Pickup = 0
Global $cross
While $Pickup = 0
$cross = Pixelgetcolor( 575, 53, $metin)
IF $cross <> 0xfffbff Then
mobsearch()
EndIf
IF $cross = 0xfffbff Then
fight()
Endif

WEnd

;Funkcje

;Mobsearch
Func mobsearch()
$coord = PixelSearch(958, 228, 960, 551, 0x460000, 50, 10)
If Not @error Then
MouseMove($coord[0],$coord[1],0)
MouseClick("left",$coord[0],$coord[1])
Sleep(1000)
Call ("fight")

EndIf
EndFunc


Func fight()

Send("{v}")
Sleep(200)
Send("{v}")
Sleep(200)
Send("{v}")
Sleep(200)
Send("{v}")
Sleep(200)
Send("{v}")

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

A czemu się nie da? PixelSearch zwróci Ci kordy pixeli a tobie pozostaje obliczyć różnice między nimi. Jak to obliczyć to powinieneś ze szkoły wiedzieć.

ciekawe bo u mnie nigdy nie uczyli jak obliczyć różnice między kolorami

a jedyna prosta alternatywa wg mnie to hsl którego w normalnych szkołach się nie uczy

$nColor = 0x8090ff

$aColor = _ColorGetRGB( $nColor )

_ColorConvertRGBtoHSL

http://pl.wikipedia.org/wiki/HSL

H: Hue ? (z ang. odcień, barwa), o wartościach z przedziału: od 0 do 360 stopni.

 

hsl_top.jpg

 

 

 

@edit

aa, popierdoliło mi się xD

no to kilka ifów, i np. jeżeli twój kord(np +5) jest mniejszy od kordu potwora to D, a jeżeli na odwrót to A(kord x) no i w+s też tak zrób na kordzie y

@down

slepy jestem, wybacz :<

Opublikowano

normalnie odczytasz kordy przecież funkcja zwraca koordynaty, reszta to matematyka

masz swoją pozycję, pozycje wroga i już możesz sterować do woli tylko napisać algorytm kierujący ( wystarczy odejmowanie, dodawanie, większy, mniejszy i równy , operatory najzwyklejsze i proste )

 

zajmuj się odczytem pamięci i pointami, masz nomada ( nomadmemory.au3 ) , tylko to daje taką możliwość, wtedy to nawet pixel ci już nie będzie potrzebny

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Możesz mi wytłumaczyć jak otrzymać kordy postaci?

Nie wiem, uczę się AutoIT'a parę dni, nie wiem czy nie mam czasem zrobić tego w CE?

 

@Edit - aha, no funkcja ps przecież zwraca kordy, hmm... poczytam jeszcze moze znajde.

 

Mam próbki koloru czerwonego, jak go widzi wciska klawisz V ale nie wiem jak zrobić aby wiedział jak podejsć do tego koloru i potem wciskać V ;(.


;Mobsearch
Func mobsearch()
$coord = PixelSearch(958, 228, 960, 551, 0x460000, 50, 10)
$coord = PixelSearch(958, 228, 960, 551, 0x4C0F16, 50, 10)

If Not @error Then
MouseMove($coord[0],$coord[1],0)
MouseClick("left",$coord[0],$coord[1])
Sleep(1000)
Call ("fight")

EndIf
EndFunc



Func fight()

Send("{v}")
Sleep(200)
Send("{v}")
Sleep(200)
Send("{v}")
Sleep(200)
Send("{v}")
Sleep(200)
Send("{v}")

Endfunc

 

Cały kod

 

HotKeySet("F8", "EXIT")
Opt("WinWaitDelay", 100)
Opt("WinTitleMatchMode", 4)
Opt("WinDetectHiddenText", 1)
Opt("PixelCoordMode", 2)
Opt("MouseCoordMode", 2)
WinWait("Hero Fighter v0.70", "")
If Not WinActive("Hero Fighter v0.70", "") Then WinActivate("Hero Fighter v0.70", "")
WinWaitActive("Hero Fighter v0.70", "")
TrayTip("HeroFighter Bot","Bot aktywny, możesz iść afk",30)
WinWait("Hero Fighter v0.70", "")
If Not WinActive("Hero Fighter v0.70", "") Then WinActivate("Hero Fighter v0.70", "")
WinWaitActive("Hero Fighter v0.70", "")
;TrayTip("Bot aktywny, możesz isć odpocząć ;-)",30)
$metin = "Hero Fighter v0.70"
$Pickup = 0
Global $cross
While $Pickup = 0
  $cross = Pixelgetcolor( 961, 562, $metin)
   IF $cross <> 0xfffbff  Then
  mobsearch()
EndIf
IF $cross = 0xfffbff Then
  fight()
  Endif

  WEnd   

;Funkcje

;Mobsearch
Func mobsearch()
$coord = PixelSearch(958, 228, 960, 551, 0x460000, 50, 10)
$coord = PixelSearch(958, 228, 960, 551, 0x4C0F16, 50, 10)

If Not @error Then
     MouseMove($coord[0],$coord[1],0)
     MouseClick("left",$coord[0],$coord[1])
  Sleep(1000)
     Call ("fight")

  EndIf
  EndFunc


Func fight()

  Send("{v}")
  Sleep(150)
  Send("{v}")
  Sleep(150)
  Send("{v}")
  Sleep(150)
  Send("{v}")
  Sleep(150)
  Send("{v}")

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

No ale jak mamy Ci pomóc? Nauczyć cię mamy odejmować czy co bo nie rozumiem...

 

Przykład:

Twoja postać jest na kordach 100, 100. Przeciwnik na 200, 400. Obliczasz różnice między tymi punktami (100, 300). Przyjmijmy że jedno naciśnięcie klawisza D przesuwa cię o 100 w prawo więc twój bot musi kliknąć 3razy D( i raz W do góry). Oto cała filozofia...

Opublikowano

Nie wiem jak się za to zabrać ;/, nie wiem jak uzyskać kordy postaci bo chyba samo pixelsearch nie wystarczy?

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ę...