[VX] Stany - konkretna wartość - Wersja do druku
Ultima Forum
[VX] Stany - konkretna wartość - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [VX] Stany - konkretna wartość (/Thread-VX-Stany-konkretna-warto%C5%9B%C4%87)



Stany - konkretna wartość - aron155 - 15-12-13 23:09

Witam.
W zakładce ,,Stan" chcę zrobić zwiększenie obrony. Jednak mogę to zrobić tylko poprzez zmianę procentową obecnej wartości. Czy można zrobić tak, aby obrona zwiększała się o konkretną wartość?
Kolejne pytanie dotyczy przydzielenia stanu do umiejętności. Jest ,,+" oraz ,,-". Od czego jest ,,-"?


RE: Stany - konkretna wartość - Ayene - 15-12-13 23:48

Jest "-", bo są umiejętności, które zdejmują przecież "stany".

Co do procentów. Musiałbyś edytować skrypt, dokładniej Game_Battler dla definicji "atk" "def" "spi" i "agi", np. masz tam dla definicji "atk" linijkę:
Kod:
for state in states do n *= state.atk_rate / 100.0 end
którą musiałbyś edytować, np:
Kod:
for state in states do n += state.atk_rate end
I tak dla pozostałych definicji. Dobrze przetestuj.


RE: Stany - konkretna wartość - aron155 - 16-12-13 09:30

Po wstępnych testach sprawdza się, dzięki ;)

Kontynuując wątek - jak stworzyć stan zwiększający HP/MP?


RE: Stany - konkretna wartość - Ayene - 21-12-13 15:39

Możesz ustawić warunek w Troopsach, że jeżeli actor ten i ten ma określony status to zwiększ HP.
Ewentualnie można skorzystać ze skryptu:
Kod:
class Game_Battler
  def maxhp    
    n = [[base_maxhp + @maxhp_plus, 1].max, maxhp_limit].min            
    for state in states do      
      state.note.split(/[\r\n]+/).each { |line|
      if line =~ /<(?:HP)\s*(\d+)>/i
        n += $1.to_i
      end
      }      
    end          
    n = [[Integer(n), 1].max, maxhp_limit].min
    return n        
  end
  
  def maxmp    
    n = [[base_maxmp + @maxmp_plus, 1].max, 999].min            
    for state in states do      
      state.note.split(/[\r\n]+/).each { |line|
      if line =~ /<(?:MP)\s*(\d+)>/i
        n += $1.to_i
      end
      }      
    end          
    n = [[Integer(n), 1].max, 999].min
    return n        
  end
end
Wpisując w oknie notatek Statusu: <HP 60> zwiększysz Maksymalne HP o 60. Podobnie z <MP 60>.