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

Szaman Bot Na Zminilizowanym Oknie W Metin2


Rekomendowane odpowiedzi

Opublikowano

Szukam konkretnych odpowiedzi na temat wysyłania kliknięć klawiszy do okna zminimalizowanego metin2.Wiem że są to operacje na pamieci .Wiem ze są też odpowiednie funkcje.Chodzi mi o zadziałanie takiej funkcji wysyłajacej np klawisz F1 do zminimalizowanego lub nie aktywnego okna gry metin2.Z tego linku co tu nie umiem rozgyzć dokładnie o co tam biega (ktora funkcja odpowiada za wysyłanie klawisza , nie wiem jak to wyodrebnić) bo jestem początkującym programistą AutoIt.W wypowiedziach z róznych tematów widze cwaniaków ktorzy piszą ze do rozwiazania tego problemu potrzebna jest znajomosc asm itd. ale ja przeciez chce programowac w AutoIt i szukam konkretych przykładów bo wiem ze w AutoIt tez mozna to zrobić.Nie szukam odpowiedzi typu "naucz sie programowac" oraz linków do stron jak sie programuje w AutoIt.Szukam przykładów ktore działają ( np. wysłanie jednego klawisza do nie aktywnego okna metin2 np. F1),Jak dotąd moja nauka programowania polega własnie na działajacych przykładach.

Kocham mpcforum.pl!!!

18706.png

Opublikowano

co za problem tu widzisz, wszystko opisane !

 

sciagasz - KeySend Final.rar

KeySend.au3 kopiujesz do include

KeySend.dll do katalogu ze skryptem który piszesz , w razie błędów do katalogu windows albo windows\system

 

do skryptu dopisujesz

#include KeySend.au3
$Handle = WinGetProcess("METIN2")

 

 

wszyskir komendy wysyłajce klikniecia klawiszy zastępujesz KeySend czyli : ControlSend zamieniasz na _SendKey

 

SKŁADNIA :

 

_SendKey($Handle, $Key) - np _SendKey($Handle, $30) - wyśle do okna wcisniecie klawisza 0

 

Handle- nazwa okna programu

Key - klawisz , ponizej tabela klawiszy, każdy kod klawisza poprzedzamy $

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Wielkie dzieki za zainteresowanie i za próbe pomocy w moim temacie ,lecz po zastosowaniu jak zwykle nie działa. :(

Global $PAUSE

Global $START

HotKeySet("{F5}", "start")

HotKeySet("{F6}", "pause")

#include <KeySend.au3>

$Handle = WinGetProcess("METIN2")

 

 

While 1

Sleep(50)

WEnd

 

Func START()

While 1

Sleep(1000)

_KeySend($Handle, $70)

Sleep(10000)

_KeySend($Handle, $71)

Sleep(10000)

_KeySend($Handle, $72)

Sleep(10000)

WEnd

EndFunc

 

 

Func PAUSE()

$PAUSE = Not $PAUSE

While $PAUSE

Sleep(1000)

WEnd

EndFunc

 

 

wywala bład :

C:\Documents and Settings\-\\-\szmanbuff3.au3 (16) : ==> Variable used without being declared.:

_KeySend($Handle, $70)

_KeySend($Handle, ^ ERROR

 

Zaznaczam ze uznaję zasadę - "proste jest piekne" (kod nie jest skomplikowany i taki powinien być ,szkoda ze nie działa) ;).Co mam w nim żle? .

Kocham mpcforum.pl!!!

18706.png

Opublikowano

Piszesz że AutoIt nie rozróżnia małych/duzych liter a nie przetestowałes tego,wklejasz tu swoje kody, a nie przetestowałes tego.Twój kod dziala na oknie metin2 ale wysyła klawisze tylko do okna czatu (ControlSend tez to robi),a nie o to mi chodzi chyba wiesz.Moj prosty kod działa ale tylko na aktywnym oknie i nie wazne są małe czy duze litery ,wazne ze działa.

 

Global $PAUSE

Global $START

HotKeySet("{F5}", "start")

HotKeySet("{F6}", "pause")

While 1

Sleep(50)

WEnd

 

Func START()

While 1

Send("{1}")

Sleep(10)

Send("{z}")

Sleep(10)

WEnd

EndFunc

 

 

Func PAUSE()

$PAUSE = Not $PAUSE

While $PAUSE

Sleep(50)

WEnd

EndFunc

 

 

To jest prosty kod przydany np do expienia na polimorfii (znawcy tematu wiedza o co chodzi).Działa na aktywnym oknie metin2 (czyli na kazdym aktywnym ,notepad tez ;) ).Na razie widze ze nic nie testujesz ale próbujesz pomóc i za to dzieki :).Moze w końcu zapodasz jakiś przetestowany sposób oraz odpowiedz na mój pierwszy post ?.

Kocham mpcforum.pl!!!

18706.png

Opublikowano

Metin2 to chytre okienko i widze ze te przyklady nie wyślą wcisnietego klawisza do zminimalizowanej gry (za piekne by to było :) ).Pozostają operacje na pamieci (odczyt ,zapis).robem masz jakiś przykładowy kod działający , moze to rozwiąże mój problem ?.

Kocham mpcforum.pl!!!

18706.png

Opublikowano

Jeśli wysyła to znaczy że działa właściwie i to wina gry że tak współpracuje ze skryptem a nie błędnego skryptu

 

mówisz o operacja na pamięci , a jak myślisz co robi skrypt jak nie odczytuje i wysyła klawisze poprzez pamięć po to został zmodyfikowany.

 

to w metina nie mozna grac w okienku czy co że go minimalizujesz ?

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Chodzi o to że w oknie gry jest okno czatu i gdy sie je otworzy to Twoj skrypt wysyła do nie go klawisze, natomiast samo okno bez czatu tych klawiszy nie odbiera :( .Obojetnie czy jest aktywne czy nie aktywne(zminimalizowane).

Kocham mpcforum.pl!!!

18706.png

Opublikowano

to działa jak należy i wysyła klawisze !!

coś ty chciał działającego bota i w trakcie kiedy on bije moby rozmawiac na chacie ?? LOL nie mam takiej możliwości w żadnej grze klawiatura jest jedna do obsługi gry

 

co do uzycia dll, działa ;),

chciałes objaśnień działania to dostałes a ze komenda jest inna to chyba sam wcale nie zerknołes na temat na tamtym forum. komenda wystłania klawiszy jest nie _KeySend jak sugeruje skrypt a _SendKey

 

jednak bedzie problem z metinem sposób obsługi klawiatury i w prosty sposób tego nie obejdzie w autoit, w innych językach tak bo są juz działające programy

nomadmemory przydało się w pewnej części :) jednak do obsługi potrzebny jest bezpośredni zapis do pamięci a do tego raczej nie chce mi się pisać funkcji od podstaw i grzebać w offsetach

zresztą zniechęca mnie postawa niektórych ludzi , maja wszystko gotowe ale najwięcej narzekają że nie działa

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

I tu widzisz wyszło szydło z worka.Na początku tematu wyraźnie piszę że zalezy mi na funkcji wysyłającej wcisniecie klawsza F1 do zminimalizowanego okna METIN2.Okazało sie że te przykłady ktore podałeś są typu kopiuj/wklej a I TAK TO NIE DZIALA.Wniosek jaki mi się nasuwa to że jestes kolejnym cwaniaczkiem i nabijaczem postów ktorych spotkałem setki.Jesli nie umiesz pomóc w konkretnej sprawie to nie pisz bzdur ze bym chcial grac i pisac na klawiaturze bo taka mozliwosc jest chocby tutaj na tym bocie DA RADY http://www.mpcforum.pl/topic/150639-tuteasymetin2-dziala-na-nowym-patchu/ .W ogóle nie pisz że coś umiesz jak czegoś nie przetestowałeś bo tylko zaśmiecasz forum i zgłoszę to do admina .Nic mi nie pomogłeś a próbujesz mi wmówić że tak.

Kocham mpcforum.pl!!!

18706.png

Opublikowano

nie rzucaj mi tu jakiś zastrzeżeń , sam nie potrafisz to zwalasz wine na mnie o niedziałanie

skrypt działa doskonale tylko nie w aktualnym, Metinie2 który ma całkowicie inny sposób obsługi klawiszy i co zapomniałeś dodać ostatnie uaktualnienie gry całkowicie to uniemożliwiło .

To że nie gram i nie sprawdzam działania nie znaczy ze jest zły, 90% porad to własnie dla takich jak ty co zada temat i nawet nieumi zabrać się do sprawy z konkretnej strony jak narzekanie.

Wcale nie mam obowiązku grania w gre udzielem informacji na podstawie tego co napisałeś a nie napisałeś o zabezpieczeniach gry. Skoro tyle masz pretensji nie ma sensu publikować nastepnych jak i sposobu na rozwiązanie tego , a szkoda bo rozwiązanie jest bardzo proste

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Twoje działajace przyklady nic nowego nie wniosły bo NIE ZOSTAŁY PRZEZ CIEBIE SPRAWDZONE ANI PRZETESTOWANE NA ZMINIMALIZOWANYM OKNIE METIN2,a wyraznie napisałem ze szukam dzialajacej funkcji wysyłajacej klawisz F1 do zminimalizowanego okna METIN2.Twoim skryptem mozna wysyłac klawisze do do notatnika itp. a po za tym po uruchomieniu skryptu okno staje sie aktywne.Ten nowy patch do metin2 mozna ominac wiec mi tu nie pisz znowu jak cos nie sprawdziles.Natomiast ja sprawdziłem _SendKey i _KeySend ktore zaproponowałes też NIE DZIALAJA .To niby jak mi pomogłes jak nic nie działa ?

Kocham mpcforum.pl!!!

18706.png

Opublikowano

jak można ominąć to sobie omiń to bedzie ci działało, jak juz napisałem nie będe dla byle dzieciaka instalował gry by sprawdzić działanie jego skryptu , podaje informacje ogulnodostępne a że tobie nie chciało się togo zrobić samemu to twój problem . kiedyś zrozumisz ze sposobem na znalezienie rozwiazania właściwego jest przetestowanie wszystkic możliwości, a ty po dwóch próbach już walisz błotem po ludziach

 

skrypty kasuje jak nieprzydatne

 

temat do zamknięcia , jak widać rozwiązania nie ma

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Jak piszesz o testowaniu "stary", to zapodam mój kod ktory robi to samo co twoj z tym ze wysyla klawisz "1" do okna w tle lub nie w tle.Skrypt jest PRZETESTOWANY :D .Mozna go wykorzystać do wysyłania klawiszy do innych aplikacji.Okno METIN2 jak zwykle tego klawisza nie widzi ale czat w tym oknie owszem.

 

 

#include <WindowsConstants.au3>

Global $PAUSE

Global $user32 = DllOpen("user32.dll")

Global $WindowName = "METIN2" ; nazwa okienka

HotKeySet("{F9}", "START")

HotKeySet("{F10}", "PAUSE")

 

While 1

Sleep(50)

WEnd

 

Func START()

While 1

Sleep(1000)

KeySend("1", $WindowName)

WEnd

EndFunc

 

 

Func PAUSE()

$PAUSE = Not $PAUSE

While $PAUSE

Sleep(1000)

WEnd

EndFunc

DllClose($user32)

 

 

Func KeySend($inkey,$hwnd)

$key = DllCall($user32, "int", "VkKeyScan", "int", Asc(StringLower($inkey)))

$skey = $key[0]

$ret = DllCall($user32, "int", "MapVirtualKey", "int", $skey, "int", 0)

$lparam = BitShift($ret[0], -16)

$lparam = BitOr($lparam, 1)

DllCall($user32, "int", "PostMessage", "hwnd", WinGetHandle($hwnd), "int", $WM_KEYDOWN, "int", $skey, "long", $lparam)

Sleep(2000)

DllCall($user32, "int", "PostMessage", "hwnd", WinGetHandle($hwnd), "int", $WM_KEYUP, "int", $skey, "long", BitOR($lparam, 0xC0000000))

EndFunc

 

 

Moze ktos to rozwinie i zapoda jakis pomysl aby nie tylko okno czatu odbieralo ta "1" ?

Kocham mpcforum.pl!!!

18706.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...