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 14: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 15: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 21: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 12: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 10: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 19: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 00: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