Jak używać AutoKey do automatyzacji gier Linux

How Use Autokey Automate Linux Games



AutoKey to narzędzie do automatyzacji pulpitu dla systemów Linux i X11, zaprogramowane w Python 3, GTK i Qt. Korzystając ze skryptów i funkcji MAKRO, możesz zautomatyzować naciśnięcia klawiszy, kliknięcia myszą i większość części interfejsu pulpitu. Jeśli szukasz alternatywy dla programu Windows AutoHotkey , AutoKey to najlepsza dostępna obecnie opcja dla użytkowników Linuksa.

Zauważ, że jest to tylko aplikacja X11, obsługa Wayland nie została dodana do aplikacji w momencie pisania tego artykułu.







Niektóre z funkcji AutoKey to:



  • Obsługuje skróty, które mogą automatycznie rozszerzać kilka znaków na dowolne z najczęściej używanych zdań i bloków tekstowych.
  • Obsługuje wysyłanie dowolnych naciśnięć klawiszy i kliknięć myszą.
  • Obsługuje określanie reguł dla określonego okna aplikacji.
  • Skrypty Pythona 3 mogą być używane do pisania reguł automatyzacji.
  • Możliwość kontrolowania funkcji okna, takich jak maksymalizacja, zmiana rozmiaru i przesuwanie.
  • Zawiera zestaw wstępnie skonfigurowanych przykładów ułatwiających pisanie skryptów.
  • Możliwość wyświetlania niestandardowych wyskakujących okienek menu z listą wyborów.
  • Możliwość nagrywania naciśnięć klawiszy i kliknięć myszą.
  • Możliwość ustawiania skrótów klawiszowych bez klawiszy modyfikujących.
  • Skrypty automatyzacji są przenośne i można je łatwo udostępniać innym użytkownikom.

Ten przewodnik pokaże Ci kilka przykładów AutoKey, które są przydatne dla graczy Linuksa. Aby rozpocząć, zainstalujmy pakiety Autokey Ubuntu z jego strony GitHub. Pobierz wymienione poniżej pliki z tutaj



  • autokey-common_x.xx.x-x_all.deb
  • autokey-gtk_x.xx.x-x_all.deb lub autokey-qt_x.xx.x-x_all.deb (pobierz tylko jeden)

Po pobraniu plików uruchom kolejno następujące polecenia:





$sudotrafnyzainstalować./autokey-common_0.95.8-0_wszystkie.deb
$sudotrafnyzainstalować./autokey-gtk_0.95.8-0_wszystkie.deb

Często zdarza się, że wiele gier na PC używa klucza do szybkiego zapisywania i szybkiego ładowania. Jednak wiele innych gier na PC, zwłaszcza porty konsolowe, ma żmudny sposób na zapisywanie gry, w którym musisz poruszać się po wielu opcjach menu. Oto krótka makieta, którą narysowałem, która to ilustruje (przepraszam moje umiejętności rysowania):



Gra chce, abyś wcisnął klawisz, aby wstrzymać grę, następnie klawisz strzałki, następnie klawisz, aby zapisać grę, a następnie klawisz ponownie, aby powrócić do gry. Cały ten proces można łatwo zautomatyzować i przypisać do klucza za pomocą AutoKey. Sprawdź poniższy kod skryptu:

importczas
keyboard.send_key('')
czas spać(0,25)
keyboard.send_key('')
czas spać(0,25)
keyboard.send_key('')
czas spać(0,25)
keyboard.send_key('')

Aby dodać ten skrypt do AutoKey, uruchom aplikację, a następnie kliknij widoczny folder lub kliknij niestandardowy folder utworzony przez siebie, aby go podświetlić. Kliknij Plik > Nowy > Skrypt opcja menu, aby utworzyć nowy skrypt w tym folderze, jak pokazano na poniższym zrzucie ekranu:

Zmień nazwę tego skryptu na Quicksave i umieść w nim powyższy kod. Następnie kliknij przycisk Hotkey na dole, jak pokazano na poniższym zrzucie ekranu:

Na następnym ekranie kliknij przycisk Naciśnij, aby ustawić, a następnie naciśnij klawisz, aby zmapować go do skryptu.

Klucz:(Nic)zmieni się na Klucz:<f5>.

Kliknij OK i naciśnij , aby zapisać skrypt. Zawsze pamiętaj, aby zapisać skrypt, w przeciwnym razie nic nie zostanie wykonane po naciśnięciu zmapowanego skrótu.

Mapowanie klawiszy szybkiego zapisu jest teraz gotowe do użycia. Następnym razem, gdy naciśniesz klawisz, seria naciśnięć klawiszy zostanie wykonana w kolejności.

Zauważ, że zmieniliśmy funkcjonalność klucza globalnie w całym systemie operacyjnym, o ile AutoKey jest uruchomiony i zadokowany do zasobnika systemowego. Aby ograniczyć go do konkretnego okna lub aplikacji, musisz określić reguły okna, klikając przycisk Filtr okien na dole.

Możesz użyć tego samego skryptu powyżej, aby utworzyć skrypt do szybkiego ładowania. Musisz tylko usunąć linię dla klawisza strzałki, a następnie zmapować skrypt na klawisz.

Jeśli szukasz poprawnych nazw klawiszy do użycia w skryptach AutoKey Python 3, możesz znaleźć listę wszystkich specjalnych kodów klawiszy używanych w AutoKey tutaj . Każdy klucz niewymieniony na powyższej stronie można wstawić za pomocą pojedynczego lub podwójnego cudzysłowu. Przykład: keyboard.send_key('5'), keyboard.send_key('p') i tak dalej.

Przykład 2: Wypij dwie mikstury zdrowia z rzędu w grze fabularnej

Zakładając, że skrótem klawiszowym do wypicia mikstury zdrowia w grze jest , skrypt będzie wyglądał następująco:

keyboard.send_key('h',powtarzać=2)

Wartość zmiennej powtarzalnej można również zmienić na dowolną inną liczbę. Możesz wykonać kroki opisane w pierwszym przykładzie, aby zmapować skrypt do żądanego skrótu.

Przykład 3: tryb serii dla broni palnej w strzelance

Korzystając z poniższego kodu, możesz zmapować klucz, aby strzelić z pistoletu trzy razy z rzędu. Oryginalnym sposobem strzelania w grze jest jednokrotne naciśnięcie lewego przycisku myszy.

# przyciski myszy: lewo=1, środek=2, prawo=3
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)

Powyższy skrypt wykona trzykrotne kliknięcie lewym przyciskiem myszy. Dodatkowe instrukcje można dodać, jeśli chcesz wykonać kliknięcie lewym przyciskiem więcej niż trzy razy.

Możesz wykonać kroki z pierwszego przykładu, aby zmapować skrypt na skrót.

Przykład 4: Stwórz własne menu gry / Zmień grę czasu rzeczywistego w grę turową

Korzystając z funkcji menu listy AutoKey, pokażemy menu jako nakładkę na uruchomioną grę. To menu wykradnie fokus z gry i zwróci go po kliknięciu myszą na jednym z elementów menu. Po zwróceniu fokusa zostanie wykonane automatyczne naciśnięcie klawisza, które wywołuje funkcję w grze.

Spójrz na to zdjęcie:

W folderze GameMenu utworzyłem podfolder o nazwie Show. Zarówno GameMenu, jak i folder Show mają elementy podrzędne. Oto kod, który umieściłem w każdym elemencie podrzędnym:

  • Zapasy: keyboard.send_key(‘i’)
  • Mapa: keyboard.send_key('m')
  • Powrót do gry: keyboard.send_key(‘’)
  • Przełącz na karabin szturmowy: keyboard.send_key('2')
  • Przełącz się na SMG: keyboard.send_key('1')

Tutaj folder GameMenu jest zmapowany do klucza i tak wygląda w uruchomionej grze:

Każda pozycja menu ma przedrostek przed etykietą. Możesz wywołać dowolny element menu, naciskając odpowiedni klawisz numeryczny na klawiaturze. Na przykład wciśnięcie tutaj klawisza spowoduje przełączenie broni na karabin szturmowy.

Małe demo GIF tego przykładu (kliknij obraz lub kliknij prawym przyciskiem myszy i otwórz GIF w nowej karcie, jeśli animacja zatrzyma się poniżej):

Ta metoda może nie działać we wszystkich grach, w zależności od sposobu, w jaki obsługują renderowanie w oknie i na pełnym ekranie. Niektóre gry nie są wstrzymywane, gdy fokus zostanie skradziony, podczas gdy inne to robią. Jeśli gra zostanie zatrzymana po utracie koncentracji, zasadniczo przekształciłeś grę czasu rzeczywistego w grę turową za pomocą tego skryptu AutoKey.

Ten przykład będzie działał z grami w poszczególnych przypadkach. Jednak w moich testach osiągnąłem całkiem dobre wyniki zarówno w grach natywnych, jak i Steam Proton / Wine.

Wniosek

Wszystkie wymienione tutaj przykłady są podstawowe, przeznaczone głównie dla graczy linuksowych. Obejmują one tylko część potężnego interfejsu API AutoKey. AutoKey może zautomatyzować wiele pracy, korzystając z funkcji skryptów również dla codziennego lub złożonego oprogramowania. Kilka innych przykładów jest dostępnych w oficjalna dokumentacja aplikacji.