Standardowy System Walki – Summon

Jedną z dość popularnych technik postaci władających magią jest summon, czyli możliwość przyzywania w trakcie walki różnych towarzyszy. Jeśli chcemy to zrobić tak jak w Final Fantasy V, sprawa jest prosta – to normalne czary, które po prostu w animacji mają dodatkową postać. Nam jednak będzie dziś chodziło o coś innego – o przywołanie rzeczywistej postaci, którą będzie można w trakcie potyczki sterować.

Założenia

Nasze podstawowe założenie jest takie – summony będą stworzone jako bohaterowie w zakładce Hero w bazie danych. W związku z tym, że maksymalna liczba postaci w drużynie to 4, by przyzwać summona zawsze będziemy musieli mieć co najmniej jedno miejsce puste.

Drugie założenie jest takie, że nie chcemy robić osobnych stron w grupach potworów dla każdego czaru przywołującego różnych towarzyszy. Dlatego naszą pracę musimy zacząć od stworzenia klasy postaci w zakładce Classes. W Battle Commands tworzymy nową komendę o nazwie Summon, której Settings ustawiamy na Skills. Dzięki temu wszystkie umiejętności jakiejś postaci, której damy komendę Summon, będę wyświetlały się po wybraniu tej właśnie opcji. Moglibyśmy się obejść bez tego kroku, ale znacznie poprawi on przejrzystość całego skryptu. Dlaczego nie wybraliśmy opcji Skills (Specific), która wyświetlałaby tylko umiejętności z konkretnej kategorii? Bo nasze skille będą działały na przełącznikach, więc nie mogą być przyporządkowane do innych kategorii.

Przygotowanie summona

Nasze summony będą tworzone tak jak normalni bohaterowie, dlatego wybieramy sobie jakieś grafiki w zakładce Actors. Ja stworzyłem Umarłego Woja. Warto tutaj pamiętać o tym, by Max level ustawić na 1, jeśli nie chcecie, by wasze summony zdobywały doświadczenie. Z drugiej strony, możliwość wbijania doświadczenia przez takich towarzyszy może uatrakcyjnić wasz projekt.

W zakładce Skills natomiast tworzymy odpowiednią umiejętność, w Skill Type wskazując Switch, a w okienku Toggle ON/OFF wybierając przełącznik dla każdego z naszych summonów z osobna. Pamiętajcie, by poniżej odznaczyć opcję Field i zaznaczyć Battle!

Na koniec przechodzimy do naszego bohatera i nadajemy mu wcześniej przygotowaną klasę oraz umiejętność przywoływania Umarłego Woja.

Mechanizm przywoływania

Teraz czas na właściwy skrypt. W zakładce Troops w polu Conditions wybieramy Battle Command i sprawdzamy, czy nasz heros użył komendy Summon. W środku odsyłamy do przygotowanego za chwilę common eventa.

W common evencie wstawiamy warunek i sprawdzamy, czy przełącznik odpowiedzialny za naszego summona jest włączony. Jeśli tak – dodajemy go do drużyny i wyłączamy przełącznik. Jeśli postać już będzie w ekipie lub nie będzie miejsca na jej przyzwanie, nic się nie stanie. Bohater straci jedynie MP potrzebne do wykonania zaklęcia. Można uniknąć straty punktów magii w takiej sytuacji, ale to zostawiam już wam – można to zrobić na różne, przeważnie niezbyt skomplikowane sposoby.

Czemu wyłączamy przełącznik na końcu common eventa? Żeby nie narobić syfu, ponieważ skille z grupy przełączników nie działają w ten sposób, że zawsze włączają przełącznik, ale zmieniają jego wartość. Jeśli więc raz już użylibyśmy naszej techniki, ale z jakiegoś powodu summon by się nie pojawił, a po jakimś czasie byłaby opcja go przywołać, skrypt się nie wykona, bo umiejętność zmieni przełącznik na OFF. Dlatego robimy to sami i mamy pewność, że switch zawsze będzie przez skilla włączany.

Usuwanie summona

Pozostała nam już tylko jedna newralgiczna kwestia – po walce przyzwany summon nie znika magicznie z drużyny. Musimy go sami usunąć. Jeśli walki wywołujemy komendą, najprostszy sposób to po każdej walce dać wywołanie nowego common eventa, który będzie czyścił drużynę z sumonów.

Jeśli natomiast korzystasz z losowych walk, proponuję taki trick. Na początku każdej walki włączasz przełącznik odpowiadający za czyszczenie postaci.

Następnie tworzysz common event aktywowany na ten przełącznik i tam czyścisz postacie, a na koniec wyłączasz przełącznik. Dzięki temu po każdej walce skrypt wykona się tylko raz.

Wiedząc, które postacie są summonami, możesz wykonać szereg ciekawych skryptów dotyczących np. technik, na które reagują tylko summony.

Michał „Michu” Wysocki

– Download przykładowego projektu –

2 thoughts on “Standardowy System Walki – Summon

  1. Ciekawy pomysł na tutorial! Mam jednak kilka uwag i wątpliwości co do kilku punktów:

    – Nie do końca widzę zastosowanie w tym przypadku 3 przełączników do skryptu. Myślę, że powinien wystarczyć nawet jeden na summona.

    – Przy okazji nie sądzę, że w przypadku tego skryptu wywoływanie komend bezpośrednio z walki było koniecznie. Umiejętność jest na switch – można w tym przypadku wywołać przywołanie za pomocą tego, indywidualnego dla każdego summona, przełącznika przez zdarzenie globalne.
    Sama ostatnio zredukowałam jeden skrypt warunkowy właśnie, by nie musieć na każdą walkę kopiować odpowiednich warunków, redukuje to ilość potencjalnych bugów.

    – Warunek postawiony dla usuwania summona też nie do końca uważam za najlepsze rozwiązanie – summon będzie się usuwać z początkiem każdej walki, nie będzie znikać automatycznie po powrocie na mapy.
    Z chwilowych rozwiązań jakie przychodzą mi na myśl – narzucenie z przywołaniem summonowi statusu typu „Summon”, który będzie przypisany pupilowi. Powinien znikać automatycznie po walce. W tym czasie parallel mógłby działać ze sprawdzaniem warunkowym, czy summon jest w drużynie i czy ma ten status – bez tego statusu powinien być usunięty z druzyny.

    Powyższe rozwiązania to szybkie gdybanie, więc pewnie i to wymaga kilku testów. Z inspiracji myślę też, że takie rozwiązanie to świetna baza pod rozwiązanie z FFX – które ustawia tylko przywołującego z naszym summonem na polu bitwy.

  2. No, nie wydaje mi się, żeby w RPG Makerze 2003 istniał jakikolwiek inny sposób tworzenia chowańców, niż to. Ale w RPG Makerze XP już możliwe jest wydzielenie miejsc w drużynie, na których pojawiają się przyzwańcy, a do tego można ich odpowiednio oznaczyć.

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.