Krótki wstęp. Jak ktoś ma jeszcze rpg makera 95 to wie, że tam postacie z drużyny chodziły za bohaterem i były widoczne na ekranie. W wersji 2000 i wyżej widzimy tylko pierwszą postać z drużyny. Oczywiście można spróbować zrobić sobie tę funkcję za pomocą skryptów (nie mylić z Ruby).
Powiedziałem, że napiszę jak to się robi. No więc tak:
- robimy sobie eventa, który będzie za nami podążał
- dajemy mu grafikę, ustawiamy "priority type: common character above"
- "movement type" robimy "by its route", klikamy poniżej na create route i tam dajemy step toward hero, repeat action zostawiamy zaznaczone, move frequency dajemy na 8 (max)
- teraz jeszcze tylko zmieniamy "movement speed" na normal (z 1/2) aby nasz poplecznik nadążał za głównym bohaterem i już prawie gotowe
- na koniec warto zrobić jeszcze zabezpieczenie przed "zablokowaniem" bohatera przez ten event. Aby to zrobić trzeba zmienić event start condition na "at hero touch" i w karcie event commands dodać komendę "set chara movement" i dajemy start slip through, step toward hero, end slip through; dzięki temu kiedy "najdziemy" na podążający za nami event on niejako ustąpi nam drogi i wejdzie za nasze plecy
To tylko najprostszy sposób robienia caterpillara, dobry jedynie dla 1 podążającej postaci. No i należy pamiętać, że ten event musi być na wszystkich mapach gdzie ma za nami podążać.
Później napiszę kilka bardziej zaawansowanych tricków z caterpillarem. Na końcu zamieszczam jak to działa w praktyce (bez rpg_rt.exe bo zajmuje dużo miejsca)
http://www.sendspace.com/file/qjgwta
Caterpillar
Moderator: Moderatorzy
- BH Daimaouji
- SSJ 5
- Posty: 6009
- Rejestracja: czw gru 02, 2004 6:04 pm
A to trochę bardziej skomplikowane tworzenie caterpillara (bo wymaga znajomości zmiennych[variable]), ale za to można stworzyć tyle podążąjących postaci ile się chce.
Potrzebujemy 2 zmiennych, które śledzą pozycję bohatera na mapie (x,y) np.
Char1-X
Char1-Y
oraz tak samo 2 zmiennych dla każdego kolejnego podążającego obiektu.
Tworzymy eventa (pamiętając by zmienić jego prędkość na normal) o event start condition "parallel process". W oknie events commands dajemy
Efekt jest taki, że mamy ładnie rozwijający się rząd postaci kiedy idziemy, a kiedy stoimy wszystkie wchodzą w jedno miejsce.
Tu jest pokaz praktyczny:
http://www.sendspace.com/file/ydtxxb
--------------------------------------------------------------------------------------------------------
i na koniec kilka rzeczy, które warto mieć na uwadze przy caterpillarze:
- caterpillar a zależność od osób, które są w drużynie
- teleportowanie do innego miejsca
- używanie wehikułów
nie będę się tu rozpisywał jak sobie z nimi radzić, ale na końcu zamieszczam plik, który pokazuje zaawansowany caterpillar z rozwiązaniami tych problemów (obejrzyjcie zmienne, zdarzenia typowe itd.).
http://www.sendspace.com/file/pffhnz
Potrzebujemy 2 zmiennych, które śledzą pozycję bohatera na mapie (x,y) np.
Char1-X
Char1-Y
oraz tak samo 2 zmiennych dla każdego kolejnego podążającego obiektu.
Tworzymy eventa (pamiętając by zmienić jego prędkość na normal) o event start condition "parallel process". W oknie events commands dajemy
dla kolejnych podążających postaci (trzeciej,czwartej itd.) skrypt jest identyczny tylko, że porównujemy (Char3-X,Char3-Y) z (Char2-X,Char2-Y) itd.Cycle //mimo że to parallel process
Wait 0.1s //żeby dać przerwę procesorowi
Variable Op: Set [Char1-X] Hero X pos //śledzi pozycję bohatera
Variable Op: Set [Char1-Y] Hero Y pos
Variable Op: Set [Char2-X] this event X pos //śledzi swoją pozycję
Variable Op: Set [Char2-Y] this event Y pos
Fork Optn: Varbl [Char2-Y]-[Char1-Y] Large than //jeśli bohater jest nad nami
Set Chara's Movement: this event, StartSlipTro, Up, StopSlipTro //to idzie w górę
:End Case
Fork Optn: Varbl [Char2-X]-[Char1-X] Large than //jeśli na zachód
Set Chara's Movement: this event, StartSlipTro, Left, StopSlipTro //idzie w lewo
:End Case
Fork Optn: Varbl [Char2-X]-[Char1-X] Small than //jeśli na wschód
Set Chara's Movement: this event, StartSlipTro, Right, StopSlipTro //idzie w prawo
:End Case
Fork Optn: Varbl [Char2-Y]-[Char1-Y] Small than //jeśli pod nami
Set Chara's Movement: this event, StartSlipTro, Down, StopSlipTro //idzie w dół
:End Case
:End Cycle //koniec cyklu
Efekt jest taki, że mamy ładnie rozwijający się rząd postaci kiedy idziemy, a kiedy stoimy wszystkie wchodzą w jedno miejsce.
Tu jest pokaz praktyczny:
http://www.sendspace.com/file/ydtxxb
--------------------------------------------------------------------------------------------------------
i na koniec kilka rzeczy, które warto mieć na uwadze przy caterpillarze:
- caterpillar a zależność od osób, które są w drużynie
- teleportowanie do innego miejsca
- używanie wehikułów
nie będę się tu rozpisywał jak sobie z nimi radzić, ale na końcu zamieszczam plik, który pokazuje zaawansowany caterpillar z rozwiązaniami tych problemów (obejrzyjcie zmienne, zdarzenia typowe itd.).
http://www.sendspace.com/file/pffhnz