Wsparcie [XP] - Zmiana odporności na dany element w trakcie rozgrywki
BloodEye - Czw 03 Maj, 2012 16:09 Temat postu: Zmiana odporności na dany element w trakcie rozgrywkiChodzi 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 - 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ć ale niektórym się nie chce.BloodEye - 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 - 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 - 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 - Wto 08 Maj, 2012 01:44 Jaki magiczny skrypt ja też dziękuję!