[XP] Zmiana statystyk wroga - Wersja do druku
Ultima Forum
[XP] Zmiana statystyk wroga - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [XP] Zmiana statystyk wroga (/Thread-XP-Zmiana-statystyk-wroga)

Strony: 1 2


Zmiana statystyk wroga - Kaneki - 07-02-15 17:21

Cześć, chciałem się zapytać czy jest możliwość zmiany statystyk wroga podczas gry, jeżeli taka istnieje to prosiłbym o wytłumaczenie jak to zrobić :)


RE: Zmiana statystyk wroga - Venesard - 07-02-15 17:55

Chyba najprościej będzie stworzyć w bazie danych kilku identycznych przeciwników różniących się po prostu statystykami. Chyba że chodzi ci o zmianę statystyk w trakcie walki?


RE: Zmiana statystyk wroga - Kaneki - 07-02-15 18:04

Dokładniej mówiąc chciałbym robić to na zdarzeniach:
tworzę jednego wroga w bazie danych, następnie ten sam wróg na jednej mapie ma przykładowo 100HP a na innej 200.
Myślę o tym czy możliwe jest na bieżąco modyfikowanie statystyk wroga.


RE: Zmiana statystyk wroga - Avaron - 08-02-15 01:21

Nie jestem pewny aczkolwiek może to pomoże:
Tworzysz na mapie zdarzenie w jakimś niedostępnym miejscu, ustawiasz na równoległe zdarzenie
teraz w tym zdarzeniu bierzesz zmień HP (oczywiście przeciwnika) na 200, na innej mapie robisz to samo z tym że na 100.


RE: Zmiana statystyk wroga - Mateusz SSJ8 - 08-02-15 13:45

Cytat:Tworzysz na mapie zdarzenie w jakimś niedostępnym miejscu, ustawiasz na równoległe zdarzenie
teraz w tym zdarzeniu bierzesz zmień HP (oczywiście przeciwnika) na 200, na innej mapie robisz to samo z tym że na 100.

To nie zadziała, Avaron. Wiesz, dlaczego? Polecenie zdarzenia "Zmień HP" zmienia tylko aktualny zapas energii, a nie jej limit. Poza tym standardowo klasa "Game_Battler" na w obiekcie funkcję "hp=(n)" napisaną tak, że jeśli ilość HP tego obiektu przekroczy wartość zwróconą przez funkcję "maxhp" tego obiektu, to automatycznie zresetuje ci na to, co zwóciła funkcja "maxhp".

Dlatego, jesli twoja rada MA zadziałać, to najpierw LIMIT, potem zapasy.


RE: Zmiana statystyk wroga - Avaron - 08-02-15 19:28

Mateusz tak więc tworzymy w bazie danych przeciwników mających np 1000hp a potem na mapie ustawiamy zdarzenie zmniejszenia hp o 800 wtedy przeciwnik będzie miał 200 hp a na innej mapie odejmij 700 to wtedy będzie miał 300


RE: Zmiana statystyk wroga - Kaneki - 08-02-15 19:43

@Avaron
wiem że mam ustawić zdarzenie ale nie wiem co w nim :/

@Mateusz SSJ8
Wytłumaczył byś mi albo napisał w jaki sposób odjąć HP potworowi o ID1(w bazie danych)
polecenie zmiana HP potwora nie działa


RE: Zmiana statystyk wroga - Venesard - 08-02-15 21:28

Kaneki, myślę ze mimo wszystko najprostszym sposobem będzie ten o którym pisałem, kilka identycznych potworów o różnych statystykach. To kwestia Ctrl+C i Ctrl+V w bazie danych z podmianą kilku wartości.


RE: Zmiana statystyk wroga - Mateusz SSJ8 - 08-02-15 22:18

Cytat:Mateusz tak więc tworzymy w bazie danych przeciwników mających np 1000hp a potem na mapie ustawiamy zdarzenie zmniejszenia hp o 800 wtedy przeciwnik będzie miał 200 hp a na innej mapie odejmij 700 to wtedy będzie miał 300
Powiem ci, czemu to nie zadziała, Avaron. Polecenia zdarzenia "Zmień HP" i "Zmień SP" odnoszą się do zapasu energii, jaką postać, do której się odnoszą, dysponuje W TEJ CHWILI, a nie do tego, ile tej energii ma, kiedy jest całkowicie wypoczęta. Poza tym te odnoszące się do potwora mogą zostać użyte wyłącznie w walce. Na mapie nie będą działać.

Cytat:Wytłumaczył byś mi albo napisał w jaki sposób odjąć HP potworowi o ID1(w bazie danych)
polecenie zmiana HP potwora nie działa
I nie będzie działać, Kaneki, bo ta komenda jest dla walki, a ty jesteś na mapie. Musisz wykorzystać komendę zdarzenia "Wywołaj skrypt". W tym celu musisz przeanalizować uważnie skrypt wstawiający potwora na mapę. Jeśli potwór jest algorytmem, to już wszystko zepsułeś. Dobrą praktyką byłoby napisanie specjalnego modułu, klasy, albo obiektu, który przechowywałby wszystkie potwory z danej mapy. I dopiero, kiedy potwory już są, możesz próbować ustawić je zdarzeniami.


RE: Zmiana statystyk wroga - Ayene - 10-02-15 19:24

Jeśli chcesz dodać każdemu przeciwnikowi HP, zależnie od ID mapy to możesz skorzystać z tego
Kod:
class RPG::Enemy
  alias ayene_enemy_maxhp maxhp
  #--------------------------------------------------------------------------
  # * Enemy MaxHP
  #--------------------------------------------------------------------------
  def maxhp
    map_id = $game_map.map_id
    hp_plus = {
      # ID mapy => +HP
      1 => 100,
      2 => 200,
    }
    result = ayene_enemy_maxhp + (hp_plus.include?(map_id) ? hp_plus[map_id] : 0)
    return result.round
  end
end
Wewnątrz kodu masz tzw. hp_plus, któremu przyporządkuj wartości zależnie od ID mapy.
Jeśli potrzebujesz innej wariacji tego skryptu, np. aby dotyczył również wybranych stworów, nie dodawał a mnożył, itd. daj znać.