class Game_Actor < Game_Battler
alias ayene_setup setup
def setup(actor_id)
ayene_setup(actor_id)
if SKILLE_POWYŻEJ.include?(self.id)
for i in 0..SKILLE_POWYŻEJ[self.id].size-1
if SKILLE_POWYŻEJ[self.id][i][0] == self.level
learn_skill(SKILLE_POWYŻEJ[self.id][i][1])
end
end
end
end
def new_final_level
lv = BASE_FINAL_LEVEL
# określenie limitu poziomu dla poszczególnych bohaterów
# 1, 2 i 8 z poniższego przykładu to ID bohaterów
# Przykład:
# case self.id
# when 1
# lv = 255
# when 2
# lv = 999
# when 8
# lv = 15600
# end
# Czyli dla bohatera z ID 1 maksymalny poziom to 255, dla bohatera 2 to 999,
# zaś dla 8 - 15600
return lv
end
def make_exp_list
actor = $data_actors[@actor_id]
@exp_list = Array.new(new_final_level + 2)
@exp_list[1] = 0
pow_i = 2.4 + actor.exp_inflation / 100.0
for i in 2..new_final_level + 1
if i > new_final_level
@exp_list[i] = 0
else
n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
@exp_list[i] = @exp_list[i-1] + Integer(n)
end
end
end
def maxhp
n = [[base_maxhp + @maxhp_plus, 1].max, MAXHP_LIMIT].min
for i in @states
n *= $data_states[i].maxhp_rate / 100.0
end
n = [[Integer(n), 1].max, MAXHP_LIMIT].min
return n
end
def base_maxhp
n = $data_actors[@actor_id].parameters[0, 1]
n += $data_actors[@actor_id].parameters[0, 2] * @level
return n
end
def base_maxsp
n = $data_actors[@actor_id].parameters[1, 1]
n += $data_actors[@actor_id].parameters[1, 2] * @level
return n
end
def base_str
n = $data_actors[@actor_id].parameters[2, 1]
n += $data_actors[@actor_id].parameters[2, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.str_plus : 0
n += armor1 != nil ? armor1.str_plus : 0
n += armor2 != nil ? armor2.str_plus : 0
n += armor3 != nil ? armor3.str_plus : 0
n += armor4 != nil ? armor4.str_plus : 0
return [[n, 1].max, STR_LIMIT].min
end
def base_dex
n = $data_actors[@actor_id].parameters[3, 1]
n += $data_actors[@actor_id].parameters[3, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.dex_plus : 0
n += armor1 != nil ? armor1.dex_plus : 0
n += armor2 != nil ? armor2.dex_plus : 0
n += armor3 != nil ? armor3.dex_plus : 0
n += armor4 != nil ? armor4.dex_plus : 0
return [[n, 1].max, DEX_LIMIT].min
end
def base_agi
n = $data_actors[@actor_id].parameters[4, 1]
n += $data_actors[@actor_id].parameters[4, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.agi_plus : 0
n += armor1 != nil ? armor1.agi_plus : 0
n += armor2 != nil ? armor2.agi_plus : 0
n += armor3 != nil ? armor3.agi_plus : 0
n += armor4 != nil ? armor4.agi_plus : 0
return [[n, 1].max, AGI_LIMIT].min
end
def base_int
n = $data_actors[@actor_id].parameters[5, 1]
n += $data_actors[@actor_id].parameters[5, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.int_plus : 0
n += armor1 != nil ? armor1.int_plus : 0
n += armor2 != nil ? armor2.int_plus : 0
n += armor3 != nil ? armor3.int_plus : 0
n += armor4 != nil ? armor4.int_plus : 0
return [[n, 1].max, INT_LIMIT].min
end
def exp=(exp)
@exp = [exp, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
if SKILLE_POWYŻEJ.include?(self.id)
for i in 0..SKILLE_POWYŻEJ[self.id].size-1
if SKILLE_POWYŻEJ[self.id][i][0] == self.level
learn_skill(SKILLE_POWYŻEJ[self.id][i][1])
end
end
end
end
while @exp < @exp_list[@level]
@level -= 1
end
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
def level=(level)
level = [[level, new_final_level].min, 1].max
self.exp = @exp_list[level]
end
end
class Game_Battler
def maxsp
n = [[base_maxsp + @maxsp_plus, 0].max, MAXSP_LIMIT].min
for i in @states
n *= $data_states[i].maxsp_rate / 100.0
end
n = [[Integer(n), 0].max, MAXSP_LIMIT].min
return n
end
def str
n = [[base_str + @str_plus, 1].max, STR_LIMIT].min
for i in @states
n *= $data_states[i].str_rate / 100.0
end
n = [[Integer(n), 1].max, STR_LIMIT].min
return n
end
def dex
n = [[base_dex + @dex_plus, 1].max, DEX_LIMIT].min
for i in @states
n *= $data_states[i].dex_rate / 100.0
end
n = [[Integer(n), 1].max, DEX_LIMIT].min
return n
end
def agi
n = [[base_agi + @agi_plus, 1].max, AGI_LIMIT].min
for i in @states
n *= $data_states[i].agi_rate / 100.0
end
n = [[Integer(n), 1].max, AGI_LIMIT].min
return n
end
def int
n = [[base_int + @int_plus, 1].max, INT_LIMIT].min
for i in @states
n *= $data_states[i].int_rate / 100.0
end
n = [[Integer(n), 1].max, INT_LIMIT].min
return n
end
def maxhp=(maxhp)
@maxhp_plus += maxhp - self.maxhp
@maxhp_plus = [[@maxhp_plus, -MAXHP_LIMIT].max, MAXHP_LIMIT].min
@hp = [@hp, self.maxhp].min
end
def maxsp=(maxsp)
@maxsp_plus += maxsp - self.maxsp
@maxsp_plus = [[@maxsp_plus, -MAXSP_LIMIT].max, MAXSP_LIMIT].min
@sp = [@sp, self.maxsp].min
end
def str=(str)
@str_plus += str - self.str
@str_plus = [[@str_plus, -STR_LIMIT].max, STR_LIMIT].min
end
def dex=(dex)
@dex_plus += dex - self.dex
@dex_plus = [[@dex_plus, -DEX_LIMIT].max, DEX_LIMIT].min
end
def agi=(agi)
@agi_plus += agi - self.agi
@agi_plus = [[@agi_plus, -AGI_LIMIT].max, AGI_LIMIT].min
end
def int=(int)
@int_plus += int - self.int
@int_plus = [[@int_plus, -INT_LIMIT].max, INT_LIMIT].min
end
end
Demo
niepotrzebne
Screenshot
Spoiler:
Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.
Piszcie w razie problemów.dominikos - Pon 01 Mar, 2010 15:04 Mogłabyś to zamieścić w demie?Firestorm109 - Sob 06 Mar, 2010 21:19 Dała byś demo albo wyjaśniła jak go edytować bo u mnie jakby nie działaBezel - Sob 10 Kwi, 2010 13:49 na co wam demo jest wyjaśnione w skrypcie!
[ Dodano: Wto 13 Kwi, 2010 13:53 ]
łapcie demo http://www.mediafire.com/?zjfjmmdyldjTida - Sro 21 Kwi, 2010 15:27 Ten skrypt fajny tylko trochę niedopracowany powinno w database się robić że np. 999 lvl
ustawiasz a nie demonn124 - Sob 29 Maj, 2010 10:07 ma ktoś taki sam tylko na vx ??? Nevrax - Czw 16 Gru, 2010 19:33 Czy może ktoś zrobić tak by można było w database ogarnąć ile na jaki poziom przybywa hp itd.? Ogólnie jakoś to zmienia tą ilość hp co ustawiłem na lvle. Miałem np 9700 hp ustawione na lvl 99 a jak miałem lvl 99 to miałem ponad 10k hp i tak samo miałem już ponad limit str i innych statystyk.rpgmigara - Pią 24 Gru, 2010 14:27 Mi tylko do 99lvl wchodzi nei wyzejrpgmigara - Pią 24 Gru, 2010 14:38 podajcie przykład tego do 255lvl bo nic mi nie daje jak to skopiuje do sktrypuNevrax - Pią 24 Gru, 2010 20:14 w database nie zmienia, ale jak będziesz mieć 99 i wbijesz odpowiednią ilość xp to będziesz mieć 100, tylko nie możesz sprawdzać na savach sprzed wrzucenia skryptu bo nie będzie działać. Mnie w tym skrypcie przeszkadza to że wartości strasznie się zmieniają i nie ma sensu ten skrypt...rpgmigara - Nie 26 Gru, 2010 16:13 Już działą :Dmlynarz - Pon 17 Sty, 2011 09:14 thx działa ;]]] sirbiroes - Pią 04 Lut, 2011 20:17 Czyli jak tamten skrypt skopiuje bez poprawek to będzie działał Czeliosss - Pią 04 Lut, 2011 20:38 Tak, jak dodasz będzie działało, chyba że...
coś tam pomieszasz.scene_fu - Nie 27 Mar, 2011 18:47 nie działa
Kongo21 - Wto 03 Maj, 2011 08:03 Spoko wykonanie ale jest jedno ale !
Chciałem zobaczyć max lv. Wpisuje 214 (max ustawiłem na 215) no to zatwierdzam a tu żeby wpisać liczbę całkowitą między 1 a 98. No to dobra daje 98 używam zdarzenia (ustawione na przycisk). Patrze na status i mam 215 lv.Ayene - Wto 03 Maj, 2011 11:12 Kongo21, dlatego że ten skrypt nie łamie ograniczeń w bazie danych, wówczas musiałby 'krakować' program, tylko umożliwia uzyskanie większego poziomu podczas samej gry. To i tak wiele Garod37 - Pon 25 Lip, 2011 16:31 skrypt super na tyle że założyłem konto na forum Zazombik - Sob 01 Paź, 2011 10:58 Thx za wyjaśnienie, bo już miałem prosić o pomoc.