Lekcja 18 – Karczmy, gospody, inny

Bardzo ważnym elementem każdej gry RPG jest umożliwienie graczowi przeżycia na tyle długo, by mógł ją ukończyć. Wydaje się to truizmem, ale cała masa problemów z trudnością projektu i balansem rozgrywki sprowadza się do niewłaściwego zarządzania HP gracza.

Zarządzanie HP gracza

Kilka lekcji temu pisałem o zarządzaniu dostępem gracza, które miało polegać na takim projektowaniu gry, by odbiorca nie mógł naruszyć związków przyczynowo-skutkowych fabuły. Zarządzanie HP gracza polega trochę na czymś innym.

Dobre zarządzanie musi sprawić, że gra będzie wymagająca, ale gracz będzie miał możliwość odnawiania swojego życia. Przykładem kompletnego skopania tej sprawy jest Demonologia Rahima, który wprowadził do swojej gry walki, ale nie umożliwił graczowi jakiegokolwiek leczenia. Przez takie rozwiązanie tylko wyjątkowe zrządzenie losu (tj. że wszyscy przeciwnicy kilkadziesiąt razy z rzędu chybią) może sprawić, iż gra zostanie ukończona.

Z drugiej strony błąd w zarządzaniu leczeniem może też polegać na tym, że jest ono za łatwe. Jeśli gracz będzie miał w plecaku przedmiot, który całą drużynę może uleczyć nieskończoną liczbę razy, gra praktycznie przestaje być wyzwaniem.

Najbardziej popularnym sposobem leczenia w grach RPG są przedmioty (już je poznaliśmy) oraz karczmy (gospody, inny), w których za odpowiednią kwotę cała nasza drużyna zostanie wyleczona. Dość często spotyka się także leczące źródełka/posągi lub łóżka, najczęściej w domach bohaterów. Rozwiązaniem na wyższym poziomie zaawansowania, zastosowanym choćby w Ostatniej Łzie, jest stworzenie skryptu, który będzie odnawiał konkretną liczbę lub procent HP po każdej walce.

Podstawowa gospoda

Praktyczną część lekcji zaczynamy od stworzenia na mapie wioski budynku karczmy, następnie nowej mapy z wnętrzem i połączenia ich obu teleportami. Dla celów ćwiczenia stworzymy dwa zupełnie różne sposoby leczenia drużyny.

Pierwszy sposób polega na wykorzystaniu wbudowanej opcji Inn Processing (druga strona komend, trzecia pozycja od góry po lewej).

W Message Type wybieramy tekst, jaki ma usłyszeć nasza postać po podejściu do lady, Cost to oczywiście koszt noclegu, a opcja If Player stayed… umożliwia wprowadzenie komend, które wyświetlą się, gdy skorzystamy z gościny. Skorzystajmy z tej opcji i stwórzmy podstawową karczmę:

Tak ustawione zdarzenie najpierw wywołuje okienko gospody z możliwością noclegu za 40 sztuk złota, a jeśli gracz się na to zdecyduje – gospodyni dziękuje nam za pobyt.

Nocleg uzależniony od liczby członków drużyny

W niektórych grach jRPG gospoda została zmodyfikowana w taki sposób, że cena noclegu uzależniona jest od liczby postaci w drużynie. Poniżej kod całego skryptu, który następnie sobie omówimy:

Pierwsze dwie komendy to przypisanie zmiennej o ID 6 wartości równej liczbie członków naszej drużyny (póki co wciąż znajdują się tam 4 osoby). Następnie liczbę powyższą mnożymy przez 15, ponieważ taką ustaliliśmy sobie cenę za osobę. Na tym etapie w zmiennej Liczba drużyny znajduje się więc wartość 60 (4 x 15).

Kolejne komendy to wyświetlenie powitania naszej gospodyni, która od razu wyświetla liczbę złota potrzebną do skorzystania z noclegu. Po tej wiadomości dajemy graczowi wybór – może skorzystać z noclegu, albo zrezygnować. W tym drugim przypadku nie wstawiamy już żadnych komend, zdarzenie może się zakończyć.

Jeśli gracz zdecyduje się jednak na nocleg, musimy sprawdzić, czy ma wymaganą liczbę złota. Dlatego pod komendą „: When [Skorzystaj z noclegu]” wstawiamy komendę Control Variables i nowej zmiennej 0007 przypisujemy wartość posiadanego przez gracza złota. Następnie wstawiamy nowy warunek, w którym sprawdzamy, czy zmienna 0007:Złoto jest większa lub równa zmiennej 0006:Liczba druzyny. Jeśli tak, wykonujemy następujące czynności:

  1. zabieramy graczowi wcześniej obliczoną liczbę złota przy pomocy komendy Change Gold;
  2. ściemniamy ekran przy pomocy komendy Tint Screen (druga strona, pierwsza od góry po prawej);
  3. odgrywamy jakiś dźwięk;
  4. leczymy całą drużynę komendą Recover All (pierwsza strona, piąta od góry poprawej);
  5. czekamy 1,5 sekundy, żeby dźwięk miał szansę się odegrać do końca;
  6. rozjaśniamy ekran znaną już komendą Tint Screen.

Jeśli natomiast zmienna Złoto jest mniejsza niż koszt naszego noclegu, w polach pod Else ustawiamy informację o tym fakcie.

Leczący posąg

Jako ostatni przygotujemy leczący posąg, który czasami pojawia się w wyjątkowo długich dungeonach. Nasza jaskinia ma co prawda tylko jedną średniej wielkości mapkę, ale i tak postawmy tam posąg. Na bazie powyższych przykładów spróbujcie sami wykonać leczenie. Jeśli już skończyliście albo nie wiecie, jak to ugryźć, poniżej mój event:

To tyle na dziś. Zadanie domowe – sprawić, by łóżko w domu bohatera leczyło drużynę!

ŚCIĄGNIJ PROJEKT Z LEKCJI

Michał „Michu” Wysocki

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.