ABS - Podstawy wymiatania mieczem



0. Zużycie paliwa:

- jeden common event
- jeden przełącznik
- cztery zmienne

1. Elo

    Witajcie w długo planowanym przeze mnie poradniku tworzenia własnego ABS'a w RPG Makerze 2000/2003. Część pierwsza będzie stosunkowo długa - w końcu musimy zrobić szablon systemu walki, na którym później będziemy pracować. Kolejne woluminy kursu będą krótsze i poświęcone konkretnym problemom: drop z potworków, używanie przedmiotów leczniczych, trafienie krytyczne itd. itp. Jestem otwarty na wszelkie propozycje i chętnie opiszę jak zrobić funkcję, którą chcielibyście zobaczyć w waszym ABS'ie. Nie wiem ile będzie części poradnika, wszystko zależy od pomysłów i Waszych podpowiedzi. Naszym głównym celem jest zrobienie rozbudowanego systemu z, przynajmniej jak na standardy RM, rozwiniętym systemem zachowań przeciwników.

    Gotowi? Zaczynajmy zatem. Wszystko co będę pisał i pokazywał na screenach/w projektach robione będzie na angielskiej wersji RM 2003 (do pobrania z TA) i w taką proponuję się zaopatrzyć.

2. Podstawy podstaw

    Szkielet systemu oparłem o ABS'a wykorzystanego przez Kamau (choć tak naprawdę nie wiadomo, kto go pierwszy wymyślił) w Curse of Silence. Efektem dzisiejszej lekcji będzie możliwość otrzymania obrażeń, zadania ich oraz zabicia przeciwnika. Rzadko będę opisywał "upiększacze" w stylu wymyślnych animacji itd. Czasami mogę o tym coś powiedzieć, ale postaram się ograniczyć do spraw prawie wyłącznie technicznych. Po wykonaniu wszystkich zaleceń będziecie już mogli chodzić i naparzać w potworka. Nie przejmujcie się, że wszystko wygląda tak prymitywnie, w następnej lekcji poprawimy ogólne wrażenie systemu.

3. Do skromnego dzieła

    Jak nietrudno się domyślić, "zużycie paliwa" informuje nas o tym, ile, hmm, nazwijmy to "pamięci operacyjnej" wykorzysta dana lekcja. Z czasem pojawi się tam poziom trudności, ale ciągle zastanawiam się nad tym pomysłem. Tak czy siak, zapraszam do skrypcenia.

    Co należy zrobić na samym początku? No tak, mapę. Zróbcie więc jedną. Pamiętajcie, żeby w drużynie w danym momencie była tylko jedna postać, bo właśnie dla samotnego wojownika będziemy projektować ABS'a. Teraz czas na nadawanie imion. Wiadomo, że nazwy możecie przypisać dowolnie. Lepiej jednak zrobić to tak jak ja, bo takimi określeniami będę się przez cały poradnik posługiwał. Common eventa nazywamy "Atak", zmienną 0001 tak samo, 0002 to "Akcja bohatera", 0021 to "HP - potwor 1", 0031 to "HP MAX - potwor 1", a przełącznik 0001 zwie się "Walka". Dlaczego taki skok w numerowaniu zmiennych? Dla porządku. Docelowo na mapce będzie maksymalnie dziesięć potworów, a takie ułożenie zmiennych nie będzie wprowadzało dodatkowego bałaganu. Dodam też, że HP MAX potwora nie ma żadnego wpływu na skrypt w tej postaci, w jakiej go dzisiaj skończymy. Zapamiętajcie jednak, że podczas skrypcenia warto myśleć przyszłościowo - unika się wtedy chaosu i ton dodatkowej pracy. Wszystko gotowe? Bierzemy się zatem za nasz pierwszy mini-skrypt.

4. Ustawianie potworom HP

    Jest to rzecz podstawowa, którą bardzo krótko zawrzemy w jednym zdarzeniu znajdującym się na mapie, na której ma toczyć się walka. Wszystko jest tak przemyślane, by nie robić dla stu potworów w grze trzystu różnych zmiennych. Objawia się tutaj kolejna złota zasada makerowca - im krócej tym lepiej. Nie przedłużajmy jednak i bierzmy się do roboty.

    Nasze zdarzenie, które nazwiemy "Ustawianie HP", powinno w Trigger Condition mieć wybrane "Parallel Process". Czemu nie Autostart? Efekt byłby taki sam, ale nauczyłem się, że kiedy można, należy unikać autostartów - bardzo łatwo jest zawiesić grę przez złe ustawienie zmiennej czy niewłączenie przełącznika. W samym zdarzeniu znajdą się cztery komendy. Dwie pierwsze to ustawienie zmiennych HP - potwor 1 oraz HP MAX - potwor 1 na, powiedzmy, dwadzieścia. Chyba nie muszę tłumaczyć, jak to zrobić? Variable Operations z wybranym Set Equal, tak dla porządku. Trzecia komenda to zmiana przełącznika "Walka" na ON. Na sam koniec dajemy Erase Event (trzecia zakładka w komendach). Co dostaliśmy?



    Dwie pierwsze linijki ustawiają faktyczne HP potwora (które można zredukować do zera) oraz HP początkowe, maksymalne (przydatne np. przy leczeniu). Dzięki takiemu rozwiązaniu ograniczamy przymus pieprzenia się ze zmiennymi do minimum. Bo przecież to zdarzenie będzie na każdej mapie (oczywiście ze zmienionymi, w zależności od występujących tam potworów, cechami), a moby w całej grze oparte będą na tych dwudziestu zmiennych od 21 do 40. Krótko mówiąc, dzięki takiemu, a nie innemu zabiegowi, zaoszczędziliśmy kilkanaście godzin roboty i (powaga!) setki zmiennych. Następna linijka to przełącznik włączający nam common eventa (którego za chwilę zrobimy) odpowiadającego za tryb walki. Brzmi trochę zawile, ale wszystko się niedługo wyjaśni. Powiem tylko tyle, że ta komenda jest po to, by nigdy nie zapomnieć o wspomnianym zdarzeniu równoległym. Na końcu mamy "Erase Event". Dzięki niemu zdarzenie, które właśnie zrobiliśmy znika i nie będzie się powtarzało w nieskończoność. Potwory nie będą więc co chwilę odzyskiwały HP. Dlaczego jednak "Erase Event", a nie zmiana przełącznikiem? Po pierwsze - wygoda. Gdy mamy taką możliwość, skracamy do minimum, pamiętacie? Po drugie - resp, czyli odnawianie się zabitych monsterów. Z przełącznikami byłoby strasznie dużo roboty, a tak wystarczy, że wejdziemy na inną mapę i wrócimy na tę - wszystko piękne, a włożonej pracy tyle co nic.

5. Tryb walki

    Okej, czas przejść do wspomnianego common eventa, którego nazwaliśmy "Atak". W Triggerze ustawiamy "Parallel Process", a w Trigger Switch przełącznik 0001, "Walka". Ten sam, którego włączaliśmy zdarzeniem na mapie.

    Po co nam to? Ano po to, żeby sprawdzić, czy machnęliśmy mieczem. Gdy skończymy pisać "Atak", program będzie sprawdzał, czy wykonaliśmy uderzenie oraz wstawiał odpowiednie animacje (dziś ograniczymy się tylko do błysku).

    Na pierwszy ogień idzie komenda Key Input Processing (sprawdza, czy wciśnięte zostały odpowiednie przyciski). W Store Code Key In wybieramy zmienną 0001, Atak. Zostawiamy zaznaczoną opcję Wait Until Key Pressed, a na liście klawiszy zaznaczamy jedynie Decision Key (5). Następnie należy zrobić warunek, który po wciśnięciu klawisza będzie coś robił. Klikamy więc w Conditional Branch (trzecia strona zakładek) i ustawiamy tak jak na obrazku:



    W środku warunku pierwszą komendą będzie zmiana wartości zmiennej 0002 (Akcja bohatera) na 1. Dzięki temu będzie mogli aktywować stronę w zdarzeniu z potworem odpowiedzialną za to, co będzie się działo gdy uderzymy go mieczem. Następnie, jeżeli chcecie, możecie dać jakiś odgłos machania mieczem i koniecznie komendę Wait ustawioną na 0,2 sekundy. Uchroni to nas przed zamułą skryptu. Ostatnią linią w środku warunku jest zmiana wartości zmiennej "Atak" na 0. Na koniec jeszcze, ale już pod właściwym warunkiem, ustawiamy zmienną "Akcja bohatera" na 0. Tak to powinno wyglądać:



6. Mój pierwszy potwór

    W porządku, rzeczy typowo systemowe mamy już za sobą. Co nam zostało? Mobek, oczywiście. Na początek będzie całkowicie uproszczony, dopiero wraz z kolejnymi częściami tutoriala będziemy pracować nad jego zachowaniem.

    Tworzymy zatem zdarzenie na mapie, na której wcześniej pracowaliśmy. Pierwsza strona eventa będzie odpowiadała za to, co dzieje się, gdy potwór nas zaatakuje. Ustawiamy jakąś grafikę z poruszającym się monsterem, Movement Type dajemy na "Toward Hero" z szybkością 8. Trigger Condition to "Collision with Hero". Same komendy nie są skomplikowane. Najpierw odgrywamy dźwięk ataku, później przy pomocy Change Character HP odejmujemy bohaterowi punkty życia (pamiętajcie, by zaznaczyć HP reduction can kill target!), następnie używając "Move Event" zatrzymujemy zdarzenie na chwilę (dwa razy "Wait"), by ostatecznie wykorzystać komendę "Flash Sprite" - dzięki temu pokażemy, że heros otrzymał obrażenia. Całość prezentuje się następująco:



    Dobra, teraz czas na drugą stronę, która będzie aktywowana wspominaną zmienną "Akcja bohatera". W Preconditions nowej strony wybieramy więc Variable - Akcja bohatera - Equal to - 1. Movement Type pozostaje taki sam, a Trigger Condition zmieniamy na "Action Key". W samych komendach znowu banały. Najpierw odgłos otrzymania obrażeń, później zachowanie potwora po dostaniu w japę (dowolne, ale najlepiej, żeby się od nas odsunął - nie ważne co wybierzemy, zrobimy to przy pomocy Move Event). Na koniec zabieramy przeciwnikowi HP odejmując od zmiennej "HP - potwor 1" jakąś liczbę. Oto przykład:



    Czas na ostatnią stronę w zdarzeniu potwora. Będzie ona odpowiadać za to, co dzieje się, gdy już pokonamy bestię. Treść komend jest całkowicie dowolna, obowiązkowe jest jedynie końcowe "Erase Event". Strona aktywuje się tylko, gdy HP monstrum spadnie do 0 lub mniej, u mnie wygląda to tak (pamiętajcie o tym, żeby ustawić odpowiednie Preconditions i Trigger Condition):



7. To tyle, na dobry początek.

    Jak w tytule, to już koniec skryptu. Teraz, gdy odpalicie grę, będziecie mogli przy pomocy klawisza akcji (Enter, Spacja) usiec wilka. Chyba, że on pierwszy usiecze was. Było ciężko? Wcale nie, na oko 5 minut roboty. To jest podstawa, w oparciu o którą będziemy dalej rozwijać ABS'a. Do zobaczenia w następnej części.

Download

Michu
Logowanie/Rejestracja

Login:
Hasło:
Zapamiętaj mnie
zarejestruj się
Do zespołowej pracy nad grą w RM najbardziej skłoniłby mnie:
Odpowiedni projekt
Właściwi ludzie
Komercyjny charakter produkcji
Wersja Makera
Coś innego
Nie interesuje mnie praca w zespole
zobacz wyniki | archiwum ankiet
1. Gromada
2. Tale of Exile: Akt I
3. Septerra Core: Dream About The Past
4. Qmai World 1
5. Wrota Arkany 2
6. Asgun
7. Komnata
8. Manga Carta
9. Dark Dawn
10. 8 Bit Quest
» Scenę zabił Discord?
» ACE dwa skrypt
» [MV] Marthisia
» [VXA]Teatr Arymana
» [VX] ABS by Rahim
» EDEN [XP]
» Podziemia: Kraina Cieni [XP]
» Pogromca II: Złodziej Kamienia [XP]
» [XP] Atak, Obrona, Czary i Przedmioty tam gdzie walka i ucieczka
» Opowieści z Edorii: Edycja Cesarska [XP]
Nadzieja by Adams the Red
wersja
Demo,
RM 2000
rok wydania
2003
ocena
3.0/10
RPG Maker Zone Kroniki Fallathanu - Prawdziwy mmoRPG w przeglšdarce Muzeum w Raccoon City: Resident Evil HQ Pokemon Valhalla
© Tsukuru Archive 2006-2016 | Używamy plików cookie.