Spis treści
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



To jest fakt i sentyment i inspiracja taki wlasny pasek pod napisami.
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ę!