Własny Message Box

W 2003 roku, złotej erze polskiej sceny RPG Makera, wyznacznikiem dobrej gry było umieszczenie w niej m.in. własnego okienka do wyświetlania wiadomości. Sam zrobiłem to w Fantasy, wiele innych projektów także posiadało tę opcję. Dziś przedstawię, jak ją wykonać.

Przygotowania

Przede wszystkim będziemy potrzebować jakiejś grafiki dla naszego message boxa. Proponuję taką autorstwa grupy White Screw:

Na razie zajmiemy się zwykłym okienkiem, ale po przerobieniu tego poradnika nie powinno być dla was problemem stworzenie okienka z wydzielonym miejscem na faceset.

Wszystko, co przedstawię dalej, można kopiować za każdym razem, gdy wystąpi potrzeba pokazania wiadomości w grze, ale to żmudna i męcząca praca. Dlatego, jak często w moich skryptach bywa, całość kodu wrzucimy do common eventa, który następnie będziemy tylko wywoływać odpowiednią komendą.

Kodujemy okienko

W common evencie najpierw ustawiamy dwie opcje niezwiązane bezpośrednio z message boxem – usuwamy ewentualny faceset (czasami człowiek o tym zapomina i pojawiają się twarze nie tam, gdzie chcemy) i zmieniamy Display Text Options w taki sposób, by tekst zawsze pojawiał się na dole ekranu. Ta druga komenda jest kluczowa, ponieważ jeśli wiadomość będzie przysłaniać bohatera, zgodnie z podstawowymi ustawieniami zostanie przesunięta w inne miejsce, a nasz obrazek z message boxem pozostanie tam, gdzie go ustawiliśmy.

Następnie wstawiamy warunek, czy przełącznik 0001:Message Box jest wyłączony i włączamy opcję ELSE. Robimy to dlatego, by nie tworzyć odrębnego common eventa dla opcji usunięcia obrazka z message boxem.

Teraz wewnątrz warunku pokazujemy obrazek z naszą grafiką, a następnie włączamy przełącznik Message Box. W opcji ELSE natomiast usuwamy obrazek i wspomniany przełącznik wyłączamy. Całość wygląda tak:

Jak właściwie działa skrypt? Po wywołaniu common eventa „czyścimy” ustawienia opcji wyświetlania wiadomości, a następnie sprawdzamy, czy przełącznik message boxa jest wyłączony (za pierwszym razem zawsze będzie, ponieważ nowa gra rozpoczyna ze wszystkimi przełącznikami na OFF). W takiej sytuacji pokazujemy obrazek i zmieniamy przełącznik na ON. Gdy następnym razem ten common event zostanie wywołany, jedyne co zrobi to usunie obrazek i przywróci przełącznik do ustawień początkowych.

Wywołanie zdarzenia

Struktura skryptu powinna wam już nasunąć pomysł, jak go wykorzystać w praktyce. Common eventa należy wywołać przed oraz po każdej wiadomości (lub ich serii). Z poziomu eventa, gdzie wyświetlamy tekst, nie trzeba robić nic więcej – po prostu dwa razy wywołać to zdarzenie. W praktyce wygląda to tak:

Rozwinięcie pomysłu

Z uwagi na swoją prostą budowę, skrypt jest łatwo edytowalny. Nic nie stoi na przeszkodzie, by wprowadzić specjalne okienko dla wyświetleń z facesetem, zmniejszyć jego wysokość o jeden pasek tekstu lub wprowadzić np. animacje pojawiania się. W takiej sytuacji najprościej najpierw pokazać obrazek ze 100% przezroczystością lub poza ekranem (wartości X i Y mogą być ujemne), a następnie komendą Move Picture poruszyć obrazkiem tak, by znalazł się na docelowym miejscu.

Michał „Michu” Wysocki

– Download przykładowego projektu –

2 thoughts on “Własny Message Box

  1. Ten skrypt to baza do mojego wyświetlania wiadomości, gdzie za pomocą zmiennej wyboru (1-3) ustawiam, w którym miejscu chcę postawić okno. Z dodatkowym common eventem na podstawie tego wyboru dopasowuję położenie okna, niby-okna dla imienia postaci oraz faceset.
    Tylko z pozoru brzmi skomplikowanie – ale po lekcji od Micha, takie własne dopasowanie skryptu do swoich preferencji z czasem przychodzi bez większego trudu.
    Dlatego dzięki Michu za tę lekcję!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.