Python a mobilní hry: Jak si více užít hraní her

Většinou to jsou právě mobilní hry, které jsou v některých úsecích prostě nuda. Ať už jde o nějaký neustále se opakující úkol nebo dlouhé čekání na různá vylepšení. To vše můžeme nějakým způsobem urychlit a nudné segmenty přeskočit. Tato strategie, kdy musíte čekat a dělat otravné úkoly, abyste se ve hře posunuli, je podle mě docela chytrý způsob, jak z hráčů dostat peníze. Často jdou totiž nudné části hry jednoduše přeskočit tím, že vývojáři zaplatíte. Za peníze si můžete koupit například různá zrychlení, kterými jdou nudné části hry přeskočit. Placená nabídka se skoro vždy vyplatí, protože je vývojáři dělají výhodné za účelem si vydělat peníze. V některých hrách jsou makra a různé automatizace zakázány. Hra, pro kterou budeme dělat makra, patří obrovské čínské společnosti Lilith a jestli někdo podvádí nebo ne je nezajímá. Jmenuje se Rise of Kingdoms.

Bez notebooku nebo počítače se skoro neobejdeme. Vlastně vůbec… Budeme pracovat s programovacím jazykem Python, takže pokud nemáte na vašem počítači Python, musíte ho stáhnout (ideálně vyberte nejnovější verzi, kterou najdete zde: https://www.python.org/downloads/. K Pythonu budeme potřebovat i program na stahování balíčků pro náš projekt, abychom nemuseli znovu vynalézat kolo… K tomuto účelu poslouží Pip, který můžeme stáhnout tady: https://pip.pypa.io/en/stable/installation/

Teď když máme Python a Pip, měli bychom si vybrat vhodný program pro psaní kódu. Pro Windows a Mac stačí VS Code a pokud máte Linux, můžete používat třeba Vim nebo Nano. Pokud jste se rozhodli pro VS Code, nastavte si ho podle svých představ a můžeme pokračovat.

Nakonec musíme nainstalovat samotnou hru: https://rok.lilith.com/en. Založte si účet a projděte tutoriál, kterému se stejně nevyhnete. Tutoriál totiž vysvětluje základní principy hry.

Ještě než začneme, zde je video ukázka toho, co můžeme vytvořit 🙂

Programování makra

Vše potřebné už máme a teď se můžeme pustit do vytváření makra:
Je důležité pochopit a počítat s tím, že hra může kdykoliv udělat něco nečekaného a to může rozhodit celé makro.

Nejprve musíme nainstalovat všechny balíky, proto otevřeme terminál. Na Windows a Mac to je Ctrl+Shift+; a na Linuxu stačí otevřít obyčejný terminál tam, kde se nachází vaše zatím prázdná složka s projektem.

pip3 install pyautogui Pillow opencv-python
pokud tento příkaz nefunguje, použijte tento příkaz:
sudo pip3 install pyautogui Pillow opencv-python

Ve složce našeho projektu vytvoříme soubor, který se bude jmenovat třeba main.py. V tomto souboru se bude nacházet naše první automatizace. Jedna z mechanik hry Rise of Kingdoms je sbírat suroviny kliknutím na farmu resp. ikonku suroviny, která se nachází nad farmou.

Stačí kliknout na jednu ikonu od každé suroviny, abychom surovinu vyzvednuli.

Pro kliknutí budeme používat nainstalovanou knihovnu, která se jmenuje pyautogui. Můžeme začít přidávat kód do našeho souboru třeba takhle:

Aby toto makro fungovalo správně, musíme vytvořit složku, která se jmenuje image a do ní udělat snímek obrazovky, na kterém bude ikonka kamene. Po detekovaní bude potom na místě obrázku simulováno stisknutí levého tlačítka. Pokud chceme kliknout na specifické souřadnice na obrazovce, můžeme použít pyautogui.click() funkci a do závorky vložit souřadnice, které zjistíme použitím programu níže. Stačí spustit skript a jenom co nejrychleji se dostat na pozici, jejíž souřadnice chceme zjistit. Musíme být ale trpěliví, protože skript zjistí současnou souřadnici kurzoru až po té, co uběhne časový interval tří sekund. Počet sekund, které chceme čekat, si můžeme upravit tím, že upravíme hodnotu v závorce u funkce time.sleep(3), která je v našem případě 3.

Teď když známe souřadnice, na které chceme, aby makro klikalo, můžeme je použít na jakémkoliv zařízení, protože z nějakého důvodu knihovna pyautogui u všech monitorů a počítačů (minimálně u těch, které jsem testoval) ukazuje stejné souřadnice. Jen si to zkuste. Moje souřadnice, které skript po spuštění ukáže, když je kurzor úplně v levém dolním rohu obrazovky jsou x=1919 a y=1079. Dobře, musíte mít Full HD rozlišení (1920×1080), ale toto rozlišení by teoreticky mělo jít nastavit na každém zařízení, které není sto let staré. Zkrátka když počítač utáhne Python, půjde na něm změnit rozlišení.

Klikání levým tlačítkem nemusí ale vždy stačit, proto je knihovna pyautogui schopná simulace stisknutí kláves, a dokonce i provedení klávesových zkratek. Všechny ostatní funkce jsou k nalazení v pyautogui dokumentaci.

Závěr

Pyautogui společně s OpenCV jsou skvělé knihovny, které jsou pro tyto projekty perfektní. Pokud by přece jenom základní rozpoznávání obrázků nestačilo, můžeme natrénovat třeba tzv. Image Recognition Model. To je umělá inteligence rozpoznávající obrázky pomocí obrázků, které mu ukážete, nejvíce se mi líbí YOLOv8, ale o tom zas někdy příště!


Uveřejněno

v

od

Komentáře

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *