Gdzie są moje Pokémony?
21.07.2016 | aktual.: 25.07.2016 18:49
Patrząc ostatnio na hype związany z grą Pokémon GO, sam się w nią bardzo wkręciłem. Nigdy wcześniej nie byłem zbytnio zainteresowany postaciami jakichś 'stworków', lecz ta gra to w pewnym stopniu zmieniła. Przemierzając przez moje miasto z coomplami odnajdujemy co nowsze, lepsze postacie i się przy tym srogo męczymy. Już 1 dnia, każdy z nas dostał medal za 10 przebytych kilometrów. Traktujemy to bardziej jako zabawę na świeżym powietrzu niż przywiązanie do telefonu.
Ale do rzeczy!
Jako iż byliśmy słabo zorientowani na początku gry, to potraciliśmy wiele Poké Ball i dużą ilość 'słodyczy ulepszania'. Płacić za ich dodatkową ilość nie bardzo się opłaca, więc pozostało nam szukać 'stworzonek' po parkach, centrach i lasach. Działanie na własną rękę nie było zbytnio efektywne, więc znalazłem ciekawe rozwiązanie na GitHub.
Rozwiązaniem tym jest program, którego zadaniem jest wysyłanie wielu zapytań do API Niantic Labs (firma odpowiedzialna za Ingress oraz Pokémon GO) na temat położenia Pokémonów w danej lokalizacji.
Instalacja
Jako pierwszy krok potrzeba będzie zainstalować Python z ich oficjalnej strony (co ważne, skrypt wymaga wersji Pythona 2.7.X). Następnie, instalacja pip - menedżer paczek rozszerzeń dla Pythona.
- Pobierz get-pip.py (PPM > 'Zapisz jako...').
- Uruchom pobrany plik dwu-klikiem myszy (jeżeli nie uruchomi się i poprosi o wybranie programu - to Python nie został dobrze zainstalowany).
- Po zakończeniu wszystkich komend w terminalu, pip został skonfigurowany!
W tym momencie zalecam restart PC, aczkolwiek nie jest on konieczny we wszystkich przypadkach.
Kolejno musisz założyć konto Pokémon Club, na tej stronie. Nie musisz podawać swoich danych, a na potwierdzenie e‑mail wystarczy 10 minutowy mail. Uwaga! Konto to zakładajcie tylko w celu używania programu z GitHub, ponieważ nie wiadomo czy kiedyś Niantic nie zacznie rozdawać banów.
A teraz sam program lokalizacji Pokémonów. Pobieramy paczkę .zip z repozytoriów GitHub. Po pobraniu wypakuj folder programu w dowolną lokalizację. Otwórz folder i z pomocą Shift+PPM, wybierz opcję 'Otwórz okno polecenia tutaj'.
W oknie terminalu, wpisz:
- C:\Python27\Scripts\pip install -r requirements.txt
po poprawnie wykonanym poleceniu, wpisz następne:
- C:\Python27\python example.py -a ptc -u użytkownik -p hasło -l "współrzędne" -st 10
(np. C:\Python27\python example.py -a ptc -u sebastian -p seba123 -l "52.229829, 21.011736" -st 10)
Świetną pomocą co do współrzędnych jest Google Maps. LPM na lokalizacji, którą chcecie zbadać i na dole strony wyskakują współrzędne (przepiszcie/zbadajcie element i wklejcie do kodu).
Jeżeli wszystko zrobiliście wg. poleceń terminal powinien wam wyświetlić informację, że zaczyna szukać obiektów na mapie. Pozostało jedynie otworzyć przeglądarkę i wpisać URL: http://localhost:5000
P.S. Pamiętajcie, że za każdym razem gdy będziecie chcieli uruchomić linijkę z example.py okno terminala musi się znajdować w wypakowanym folderze aplikacji. Dodatkowo flaga -st 10 oznacza promień wyszukiwania Pokémonów.
Coś jeszcze? (opcjonalne ale raczej przydatne)
To wcale nie koniec - nie wydaje mi się. żeby każdy zabierał ze sobą laptopa ze stałym internetem na poszukiwania leśne.
Dlatego ja rozwiązałem to z użyciem Microsoft Remote Desktop. Dzięki tej aplikacji powiązałem obraz widoczny na PC z moim iPhone. Ciekawe jest to, że najnowsza wersja tej aplikacji jest tylko po Hiszpańsku - ale poradziłem sobie dzięki modyfikowaniu pakietów App Store przez proxy (kiedyś to dokładnie opiszę). Dzięki temu mam starszą wersję apki. Ważne dla nas też jest to aby obraz mógł być odbierany przez 3G dlatego potrzebujemy dostępu do panelu administracyjnego routera w domu.
Ustawienia w Windows
Wchodzimy w zakładkę System w Panelu sterowania. Po lewej stronie wybieramy 'Ustawienia zdalne' > zaznaczamy tam opcję typu radio: 'Zezwalaj na połączenia zdalne z tym komputerem' i checkbox poniżej. Zastosuj > OK.
Przekierowanie/Przekazywanie portów
Win+R > cmd > ipconfig Zaznaczamy adres 'Default Gateway' połączenia i logujemy się do panelu routera w przeglądarce (z użyciem tego adresu jako URL). Szukamy na stronie opcji w stylu: Przekierowanie/Przekazywanie portów i wpisujemy 3389 jako port publiczny i docelowy. W miejscu protokołu wybieramy opcję 'Oba'. A adres docelowy: Win+R > cmd > ipconfig i przepisujemy adres IPv4 połączenia.
Konfiguracja RD Client na telefonie
To już ostatni krok do wyświetlania tego co na PC - na telefonie. Dodajemy konto użytkownika/bądź wiele kont. Dodajemy nowy pulpit z adresem IP komputera, do którego chcemy się przyłączyć (szybko sprawdzisz ten adres np. tutaj: What Is My IP Address? - pierwszy wynik Google). Na koniec dodajesz przyjazną nazwę dla pulpitu.
Po jednym dniu, spędzonym na bieganiu w miejsca, w których wiedzieliśmy, że mają być tam Pokémony doszliśmy do wniosku: "dla podbudowy punktów i odzyskania Poké Ball opcja fantastyczna, ale tak ogólnie to psuje to zabawę". Więc zastanówcie się zanim przystąpicie do czegoś podobnego.
EDIT (22 lipca, 14:45): Na podstawie powyżej opisanego programu powstały takie strony jak - PokémonHound oraz PokéVision