Spersonalizowany sklep

RPG Maker 2000 i 2003 nie dają mnóstwa pola do zmian, jeśli chodzi o wygląd sklepiku – jednak dla niektórych projektów nie warto angażować się w walkę z tworzeniem własnych systemów, by poprawić ich wygląd.

Samo rozwiązanie, które omówimy w dzisiejszym tutorialu, zaczerpnęłam przez longplay japońskiego projektu stworzonego w RM2000, Final Fantasy? FFhatena, mimo korzystania z domyślnego sklepiku, doskonale wkomponował go w estetykę znaną nam ze SNES-owych Finali. Wszystko przez zmianę grafiki postaci na czas kupowania – tak proste, a jak efektowne!

Dzięki jednemu przełącznikowi i dołączeniu typowego zdarzenia nasza drużyna będzie wyglądać bardziej epicko podczas zakupów!

Mała teoria sklepikowa

RPG Maker 2000 i 2003 w okienku sklepu korzysta z charsetu ustawionego dla bohatera, skierowanego w dół.

Jeśli przedmiot zaznaczono przy imieniu postaci w bazie danych Items jako „Usable by X”, jego grafika będzie miała włączoną animację oraz standardowe kolory.

Bez ustawienia tej opcji przy bohaterze, jego charset jest nieruchomy oraz ma wyzerowany poziom intensywności koloru. Dzięki temu jako twórcy nie wgrywamy dedykowanej grafiki dla niespełnionego warunku „Usable by X” – program automatycznie wyszarza podstawowy charset.

Dla ekwipunku (przedmiotów w kategorii Weapon, Shield, Body, Head i Accessory) oprócz tego po prawej stronie grafiki postaci pojawia się dodatkowa ikonka.

Nie mogłam doszukać się szczegółów w dokumentacji, ale po testach na potrzeby poradnika zauważyłam, że RPG Maker porównuje sumę wszystkich 4 statystyk założonego ekwipunku z sumą wszystkich 4 statystyk ekwipunku w sklepiku.

  • A = ekwipunek ze sklepu(Attack + Defense + Mind + Agility)
  • B = ekwipunek założony przez postać(Attack + Defense + Mind + Agility)

Ikonki są wgrywane w grafikę System. Konkretniej chodzi o prawy dolny róg z rzędem 4 ikon, które są pokazywane w sklepie dla sytuacji:

  • dla wzrostu statystyk
    (A > B)
  • dla takiej samej wartości statystyk, gdzie porównujemy 2 różne przedmioty
    (A = B & ekwipunek ze sklepu != ekwipunek założony przez postać)
  • dla spadku statystyk
    (A < B)
  • dla założonego ekwipunku. (ekwipunek ze sklepu = ekwipunek założony przez postać)

Każda ikonka ma 4 klatki o wielkości 8x8px. Całość setu niezbędnego dla naszego sklepiku zamyka się w wymiarach 32x32px.

(Powyższa grafika jest powiększona 3x, a reszta systemu przyciemniona na potrzeby naszego tutoriala)

Po takiej szybkiej teorii jako zadanie domowe do naszego skryptu potrzebujemy odpowiedniego charsetu dla każdej postaci, skierowanego w dół, a który chcemy pokazywać w naszym sklepie.

(VIPRPG odpowiada doskonale na moje potrzeby – każda animacja, jaką widzicie w naszym spersonalizowanym sklepiku, jest ustawiona dokładnie jako pozycję Down. Dzięki temu nie musiałam nic edytować w programie ani dopasować do dalszych kroków. Grafiki możecie znaleźć w zasobach RMteki z linkami do źródeł.)

(Powyższa grafika jest powiększona 2x, a reszta charsetów przyciemniona, by wskazać, w których polach dodajecie sklepikowe pozy)

Budowa skryptu

Sam skrypt bazuje na podobnym założeniu, jakie Michu zastosował dla własnego message boxa – jeśli daliście sobie z nim radę, ta lekcja również będzie dla Was pestką.

Wchodzimy w bazę danych do zakładki Common events i nazywamy nowe zdarzenie 0001:Wyglad sklepu. Pozostawiamy Trigger na opcji None.

Tworzymy w zdarzeniu warunek dla nowego przełącznika, 0001:Sklep? == OFF, do którego zaznaczamy dodatkową opcję ELSE. (Event Command, lista 3, Conditional Branch)

Pierwsza połowa, czyli warunek spełniony, składa się z 3 punktów:

  • Zgaszenie ekranu – w 0.1 sekundy ekran zyskuje kolory 0, 0, 0, 0. Ważne, by zaznaczyć tutaj opcję WAIT – by pozostałe komendy czekały, aż nasz ekran „zgaśnie”. (Event Command, lista 2, Tint Screen)
  • Ustawiamy dla każdej postaci komendę zmiany grafiki na animację, którą chcemy pokazać w naszym sklepiku. (Event Command, lista 1, Change Actor Graphic)
  • Na koniec ustawiamy przełącznik 0001:Sklep? = ON. (Event Command, lista 1, Control Switches)

Druga połowa, czyli warunek niespełniony, dotyczy:

  • zmian charsetów z powrotem na grafiki domyślne postaci (Event Command, lista 1, Change Actor Graphic)
  • przywrócenia poprawnych kolorów dla ekranu (Event Command, lista 2, Tint Screen)
  • ustawienia przełącznika 0001:Sklep? = OFF (Event Command, lista 1, Control Switches)

Wywołanie skryptu

To najprostsza część tego skryptu! W zdarzeniu z NPC, który ma oferować możliwość handlu, wywołujemy sklep za pomocą 3 komend:

  • Wywołujemy Common Event 0001:Wyglad sklepu. (Event Command, lista 3, Call Event)
  • Ustawiamy standardowy sklep, wybierając interesujące nas przedmioty i jedną z opcji dialogowych. (Event Command, lista 2, Shop Processing)
  • Ponownie wywołujemy Common Event 0001:Wyglad sklepu. (Event Command, lista 3, Call Event)

Podsumowanie

Na dzisiaj to wszystko!

Sam skrypt nie ma ustalonego warunku wywoływania (Trigger:None), więc nie włączy się samoistnie podczas gry. Błędy nie powinny występować, jeśli będziemy pamiętać o podwójnym wywołaniu common eventu – przed i po wprowadzeniu sklepiku do gry. Dzięki temu jest dobry dla osób początkujących.

Oczywiście nie jest to skrypt idealny – bardziej zaawansowani twórcy z pewnością zauważą, że brakuje tu założeń, które uwzględniają zmiany podczas gry dla wizerunku postaci czy odcieni ekranu. Z tego powodu zaproponowane rozwiązanie nie jest w obecnej formie kompatybilne ze wszystkimi skryptami, proponowanymi przez Micha (np. Zmiana wyglądu bohatera przez ekwipunek lub System dnia i nocy). Jednocześnie nic nie broni tego, aby powyższą bazę odpowiednio dopasować do swoich potrzeb… a fani Maniac Patcha z pewnością zacierają rączki, jak z pomocą TPC można łatwo uniknąć tego problemu.

puniek

– Download przykładowego projektu –

2 thoughts on “Spersonalizowany sklep

  1. Super pomysł! Proste rozwiązania faktycznie potrafią być najlepsze. Wezmę to pod uwagę następnym razem przy tworzeniu sklepu. Od razu przychodzą mi na myśl jeszcze inne wariacje tej koncepcji – chociażby gra z jednym lub dwoma bohaterami, która wykorzystuje dwa pozostałe miejsca na jakieś informacyjne sklepowe ikonki…

    (Moim ulubionym „sprytnym prostym rozwiązaniem” jest chyba menu główne i menu zapisu Komnaty – wygląda jak coś totalnie customowego, a to tylko podmianka graficzna…)

    1. Cieszę się, że poradnik pobudził kreatywność do szukania prostych, ale efektywnych rozwiązań! Przyznam, że chciałam zaproponować nawet w podsumowaniu patent z wykorzystaniem dodatkowych bohaterów pod informacyjne ikonki, dobre dla innych gatunków gier – może jakiś Pacman z dodatkowymi statystykami by się sprawdził wtedy idealnie. Uznałam jednak, że dam innym szansę do szukania tego rozwiązania, więc cieszy mnie, że ktoś tak szybko o tym pomyślał.
      Moje ulubione podmianki graficzne to wykorzystywanie facesetów jako pola do pokazywania systemu limit breaks, inspirowanego z FF7. Niby niewiele, a jak robi wrażenie i – co ważniejsze – działa. Koniec końców, o to powinno chodzić w makerówkach, że nie zawsze proste jest złe!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.