Ogłoszenie 

Uwaga! To forum jest w trybie offline.
WszelkÄ… pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: Ayene
Wto 08 Maj, 2012 15:09
Zmiana odporności na dany element w trakcie rozgrywki
Autor Wiadomo¶ć
BloodEye 



Pomógł: 1 raz
Doł±czył: 04 Sie 2011
Posty: 23
Wysłany: Czw 03 Maj, 2012 16:09
Zmiana odporności na dany element w trakcie rozgrywki
Chodzi mi o to aby modyfikować klasę w takcie gry. Np nasz bohater przejdzie jakieś szkolenie i od tego czasu ma większa odporność na ogień , za kilka lvl następne szkolenie na inny element itp. Da się coś takiego zrobić ;d ?
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Doł±czył: 24 Lut 2010
Posty: 751
Wysłany: Czw 03 Maj, 2012 22:17
Zdaje się, że mam rozwiązanie twojego problemu. Jednak jako że zwykle rozwiązuję własne problemy na zdarzeniach, to mogą one ci się wydać niepotrzebnie skomplikowane. Niestety nie znam się na skryptach.

Odpowiedzią są Stany(States). Możesz ustawić graczowi dowolny stan na całą grę, albo po prostu dać mu pasywnego Skilla. Jedynym minusem tej 'metody' jest to, że gracz na pierwszym poziomie tego Skilla(odporność na ogień) ma już dwukrotnie większą odporność na ataki ogniste i nie jestem pewien czy da się to obniżyć.

Tworzysz powiedzmy 2 Stany, pierwszy "Odporność na Ogień 1" i "Odporność na Ogień 2". W każdym z tych Stanów zaznaczasz Ogień(Fire) w kolumnie po prawej. Teraz, jeżeli nadasz graczowi tylko jeden z tych stanów(obojętnie) to będzie miał już 100% większą odporność na ogień. Jeżeli nadasz mu oba, będzie to 200% i tak dalej...
Mi ta metoda pasuje, ale być może znajdzie się ktoś kto pomoże ci robiąc to na skryptach, lub znajdzie lepszy sposób. ;-)

Generalnie wystarczy potestować :roll: ale niektórym się nie chce.
 
 
BloodEye 



Pomógł: 1 raz
Doł±czył: 04 Sie 2011
Posty: 23
Wysłany: Sob 05 Maj, 2012 13:52
To ja wiem :P Ale nie da się tego zmienić w trakcie rozgrywki , c'nie ? Na samym początku mogę mu ustawić odporność na ogień , jednak gdy będą chciał , żeby na np 10 lvl nauczył się odporności na ziemie , a do 10 lvl żył bez tej odporności , to nie jestem w stanie tego zrobić bez odpowiedniego skryptu ;/
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Doł±czyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 06 Maj, 2012 11:06
SprĂłbuj moĹĽe tego:
Spoiler:

Kod:
# by Ayene
# Instrukcja
# KorzystajÄ…c z polecenia "Script" w zdarzeniu wpisz:

#   change_rate(actor_id, element_id, value)

# gdzie:
#   actor_id - ID bohatera w bazie danych
#   element_id - ID elementu w bazie danych
#   value - wartość elementu, zgodnie ze wzorem:
#          1: A, 2: B, 3: C, 4: D, 5: E, 6: F

# Przykład:
# Aby zmienić Aluxowi element Fire na wartość F (absorb):
#  change_rate(1, 1, 6)

# Aby zmienić Estelle element Darkness na wartość A (słabość):
#  change_rate(5, 8, 1)

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Setup
  #     actor_id : actor ID
  #--------------------------------------------------------------------------
  alias aye_gamact_setup setup
  def setup(actor_id)   
    aye_gamact_setup(actor_id)
    @new_elements = {}   
  end
  #--------------------------------------------------------------------------
  # * Change Actor Element Revision Value
  #     element_id : element ID
  #          value : value
  #--------------------------------------------------------------------------
  def change_actor_element(element_id, value)
    @new_elements[element_id] = value
  end
  #--------------------------------------------------------------------------
  # * Get Element Revision Value
  #     element_id : element ID
  #--------------------------------------------------------------------------
  def element_rate(element_id)
    table = [0,200,150,100,50,0,-100]
    if @new_elements.include?(element_id)
      result = table[@new_elements[element_id]]
    else
      result = table[$data_classes[@class_id].element_ranks[element_id]]
    end   
    for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
      armor = $data_armors[i]
      if armor != nil and armor.guard_element_set.include?(element_id)
        result /= 2
      end
    end
    for i in @states
      if $data_states[i].guard_element_set.include?(element_id)
        result /= 2
      end
    end
    return result
  end
end

class Interpreter
  #--------------------------------------------------------------------------
  # * Change Actor Element Revision Value
  #--------------------------------------------------------------------------
  def change_rate(actor_id, element_id, value)
    $game_actors[actor_id].change_actor_element(element_id, value)   
  end
end

________________________


 
 
 
BloodEye 



Pomógł: 1 raz
Doł±czył: 04 Sie 2011
Posty: 23
Wysłany: Pon 07 Maj, 2012 20:27
Nie wiem czy ktoś ci to mówił , ale jesteś rpg makerowym bogiem :D
Mam nowy problem , moĹĽe teĹĽ mi pomoĹĽesz :>
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Doł±czył: 24 Lut 2010
Posty: 751
Wysłany: Wto 08 Maj, 2012 01:44
Jaki magiczny skrypt :lala: ja też dziękuję!
 
 
Wy¶wietl posty z ostatnich:   
Ten temat jest zablokowany bez możliwo¶ci zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz zał±czać plików na tym forum
Możesz ¶ci±gać zał±czniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene