» Forum jest obecnie w fazie testów.
Tu będzie oczywista fajna rzecz

* Bardziej zaawansowany losowy encounter walk.

Autor Wiadomość
Offline Ekhart
 Tytuł: Bardziej zaawansowany losowy encounter walk.
Post 1 kwi 2010, 13:16 
Knight
Posty: 256
Game: Kaczor Hunt 2
Skąd: Mówią, że jestem w białym pokoju bez klamek, ale to nie prawda, bo jestem na trawiastej łące...
W RMXP niektórym może brakować jednej z funkcji, którą oferował 2k3, a mianowicie ustawienia ternu, w którym losowe walki występują (oraz grup potworów, które można napotkać). Na szczęście można w dość łatwy sposób częściowo to naprawić. I to na zdarzeniach!



1. Uruchom database, zakładka "Tilesets". W ustawieniach tilesetów przejdź na "Terrain Tag". Każda kratka może zostać oznaczona numerkiem od 0 do 7. Ustaw wartości liczbowe (1 do 7) na miejscach, na których walka ma występować (dając inne ID różnym rodzajom terenu możesz ustawić, że np. na ścieżce atakują nas wilki, a w płytkim bagnie - krokodyle). Przykład:
Obrazek
Powtórz dla innych tilesetów.


2. Na mapach gdzie walka ma występować stwórz nowe zdarzenie. Nie dawaj żadnej grafiki, a Trigger ustaw na "Parallel Process".


3. Najważniejsze jest, aby zdarzenie nie było wykonywane, gdy postać jest bez ruchu. W tym celu musimy posłużyć się warunkiem script:
Kod:
$game_player.moving?

Prosta komenda sprawdzająca, czy postać jest w ruchu.
Obrazek



4. Mamy już sprawdzanie, czy postać stoi w miejscu. Jeśli się porusza, komendy zawarte wewnątrz pętli zostaną wykonane. Jednak pętla zdarzenia jest pusta. Więc trzeba ją wypełnić!
Najpierw potrzebny nam będzie współczynnik losowy. Ustalamy więc zmienną, która ma losować, czy będziemy walczyć, czy nie. Najprościej będzie zrobić to w procentach, czyli losując zmienną między 0 a 100.
Kod:
Control Variables: [0001: Losowa] = Random No. (0...100)

Oczywiście, można zmienić tą liczbę dowolnie.


5. Kolejnym krokiem jest ustalenie ID terenu na którym postać stoi. Tworzymy kolejną zmienną i dajemy jej takie parametry:
Obrazek


6. Teraz przyszła pora sprawdzić, czy walczymy. Dla różnych terenów można ustalić różne % szansy na walkę, oraz różne grupy potworów. Wystarczy zrobić odpowiednie warunki:
Kod:
# Dla % szansy zależnej od Terrain Tagu
Conditional Branch: Variable [0002: Terrain Tag] == 1
    Conditional Branch: Variable [0001: Losowa] <= 25
       #Walka z grupą potworów
    end
end

Kod:
#Procent jest stały, grupa potworów zależy od terrain tagu
Conditional Branch: Variable [0001: Losowa] <= 25
    Conditional Branch: Variable [0002: Terrain Tag] == 1
       #Walka 1
     else
       Conditional Branch: Variable [0002: Terrain Tag] == 2
          #walka 2
       end
     end
end


7. Teraz wystarczy na sam koniec zdarzenia dać komendę Wait, żeby skrypt nie zapętlał się natychmiastowo i nie powodował zbędnych lagów. Wait o wartości 10 jest wystarczający.


Wygląd zdarzenia gdy procentowa szansa walki jest zależna od terrain tag:
Obrazek

Wygląd zdarzenia, gdy procentowa szansa jest stała, a grupy potworów zmieniają się w zależności od terrain tag:
Obrazek



W ten sposób można również ustalić, że niektóre grupy potworów pojawiają się, gdy jakiś przełącznik jest uruchomiony, albo postaci są na wystarczającym poziomie. Wartości mogą się zmieniać, i jedyną wadą tego systemu jest ograniczenie do 7 różnych terrain tagów - ale to już wina programu.
Obrazek
Obrazek

Góra
Zobacz profil
Szukaj:
Strona 1 z 1 [ Posty: 1 ]
Utwórz nowy temat Odpowiedz w temacie

Sortuj wg:
Wyświetl posty nie starsze niż:
Kto przegląda forum:
Użytkownicy przeglądający ten dział: Brak zarejestrowanych użytkowników i 1 gość
Skocz do:

Sitemap