dikamilo.net

Kolejny blog w sieci...

Minecraft GameSave Editor

Jako iż ostatnio mam trochę wolnego czasu, semestr skończony, nic nie uciska, nic nie uwiera i można się zająć swoimi sprawami, postanowiłem napisać mały programik w Javie do edycji ustawień środowiska gry Minecraft. Program skupia się na edycji ustawień świata gry oraz samego gracza. Zainspirowany niektórymi wypowiedziami na forach o Minecraft powstał mały i prosty w obsłudze Minecraft GameSave Editor. Program może zostać potraktowany jako cheat ułatwiajacy rozgrywkę, ale został stworzony głównie z myślą o osobach które tworzą na przykład mapy i potrzebują zmienić ustawienia które nie są dostępne z poziomu samej gry.

Minecraft GameSave Editor

Testy zostały przeprowadzone na plikach wygenerowanych przez bieżącą, finalną wersję Minecrarfa (1.0) ale nie powinno być problemów z działaniem na starszych wersjach gry. Program stara się automatycznie ustawić ścieżkę do światów gry jeżeli folder .minecraft znajduje się w domyślnej lokalizacji.

Jak już wspomniałem na wstępie, całość została napisana w Javie. Do stworzenia interfejsu użytkownika użyłem Swing'a, samo GUI zostało stworzone w wizualnym edytorze (Netbeans). Lokalizacja programu została zapisana w zewnętrznym pliku properties co znacznie ułatwia tłumaczenie interfejsu na inne języki (obecnie tylko angielski). Plik properties ma zawartość w postaci klucz - wartość.

Plik level.dat jest zapisany w postaci skompresowanej (gzip) struktury NBT (Named Binary Tag). Opis struktury można znaleźć tutaj. Do dekodowania struktury NBT został napisany pakiet klas (poszczególne tagi, klasa pomocnicza do wczytywania i zapisywania oraz klasa NBT która w łatwy sposób pozwala na ustawienie już konkretnych atrybutów w strukturze np. poziom gracza).

Program pozwala na zmianę oraz edycję szeregu różnych opcji:

  • Zmiana poziomu gracza (wartość wyświetlana przy pasku doświadczenia - używana to polepszania itemów)
  • Edycja poziomu paska jedzenia (standardowo 20, im większa wartość tym wolniej stajemy się głodni)
  • Edycja ilości życia (standardowo 20)
  • Zmiana ilości punktów doświadczenia / końcowy wynik gry
  • Edycja aktualnej pozycja gracza
  • Edycja spawn point
  • Zmiana typu aktualnego świata (normlany, nether, the end)
  • Możliwość edycji noszonej zbroi (możliwość wywalenie aktualnej noszonej zbroi oraz zmiana na inną)
  • Czyszczenie ekwipunku (wywala wszystkie przedmioty z ekwipunku - bez slotów na zbroje)
  • Zmiana nazwy świata
  • Zmiana seed'u świata
  • Zmiana pora dnia (dzień, zachód słońca, noc, wschód słońca)
  • Zmiana typu gry (survival, creative)
  • Włączenie / wyłączenie generowania struktur (kopalnie, wioski, twierdze)
  • Włączenie / wyłączenie trybu hardcore

Kilka wyjaśnień odnośnie poziomu jedzenia oraz ilości życia. Po ustawieniu tych opcji na niestandardową wartość z czasami zresetują się one do standardowej wartości np. ustawiamy ilość życia na 1000, jeżeli życie zejdzie nam do 0 to po odnowieniu życia do pełna maksymalna wartość będzie standardowo 20, tak samo z paskiem jedzenia.

Pozycja gracza oraz spawn point - Minecraft używa wartości zmiennoprzecinkowych, w MGSE są to wartości całkowite dlatego może się tak zdarzyć że postać zacznie tracić życie bo pojawi się kolizja z klockiem. Należy uważać jakie koordynaty się ustawia, jeżeli ustawimy pozycje w której są bloki, nasza postać zginie :)

Program można pobrać tutaj (plik jar, 42KB).

Tagi