Cytat:Napisane przez Mateusz SSJ8 - Dzisiaj 17:24
No to masz problem, bo standard RPG Makera XP nie przewiduje zależności między stanem i tym, który go wywołuje. Będziesz musiał zaprogramować klasę "Game_State" odpowiadającą za konkretny status i zaprogramować możliwość, żeby potraktowany tym stanem atakował tylko tego, kto ten stan rzucił. Trzeba będzie przerobić atak, skilla i item, bo te trzy akcje zadają jakieś stany.
Teoretycznie, tak. Nie trzeba by było aż tworzyć nowej klasy ani aliasować nie wiadomo czego. Wystarczy:
- Utworzyć umiejętność o nazwie "Prowokacja" i ustalić jego użycie jako typowe zdarzenie
- Zdobyć z Arrow_Enemy zdobytego przeciwnika i zapisać go np. do zmiennej $game_variables[x], gdzie x oznacza numer. Z tych fragmentów kodu:
# Cursor right
if Input.repeat?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
$game_troop.enemies.size.times do
@index += 1
@index %= $game_troop.enemies.size
break if self.enemy.exist?
end
end
# Cursor left
if Input.repeat?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
$game_troop.enemies.size.times do
@index += $game_troop.enemies.size - 1
@index %= $game_troop.enemies.size
break if self.enemy.exist?
end
end
Trzeba zapisać przy na końcu każdego if Input.repeat? zmienną @index do zmiennej
- Zapisać skądeś kto atakował również do której z zmiennych $game_variables[x]
- Włączyć przełącznik odpowiedzialny za jednego z 8 dostępnych podczas walki przeciwników.
- Ustalić warunek w przeciwniku: Jeżeli przełącznik [...]=PRAWDA to umiejętność, np. "Wkurzenie",
- Ustawić umiejętność przeciwnika, np. "Wkurzenie" jako kolejne zdarzenie typowe.
- Pokazać animację ataku na konkretnym bohaterze ustalonej wcześniej zmiennej i obliczyć obrażenia,
atk = siła atakującego odjąć pdef bohatera podzielić przez 2
obrażenia = atk plus 20 razy STR atakującego podzielone przez 20
- Zadać obrażenia
- Pomnożyć wszystkich przeciwników razy 8.
...i tyle, to wersja z najmniejszą liczbą kombinowania w Ruby i najmniej awaryjna.