Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Przekroczenie limitu poziomów [XP]
Autor Wiadomość
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 10 Lut, 2010 12:21
Przekroczenie limitu poziomów [XP]
~ Przekroczenie limitu poziomów [XP] ~

Krótki opis
Skrypt pozwala na zwiększenie limitu poziomu i poszczególnych statystyk bohaterów.

Autor skryptu do XP
momomomo

Tłumaczenie
Ayene [yurika@o2.pl]

Kompatybilność
Tylko XP

Skrypt
Spoiler:

Kod:

# -------------------------------------------------------
# Przekroczenie limitu poziomów [XP]
# Autor: momomomo
# Tłumaczenie i poprawki: Ayene
# Wersja 2.0 - dodana opcja przyporządkowania umiejętności zdobywanychh po 99 poziomie.
# Umieść skrypt nad Main
# -------------------------------------------------------
# KONFIGURACJA
  BASE_FINAL_LEVEL = 9999   # Maksymalny limit (domyślny dla wszystkich, jeśli
  # chcesz go dostosować dla konkretnej postaci przejdź niżej)
  MAXHP_LIMIT = 99999999    # Limit HP
  MAXSP_LIMIT = 99999999    # Limit SP
  STR_LIMIT   = 999999      # Limit STR (Siła)
  DEX_LIMIT   = 999999      # Limit DEX (Zręczność / Sprawność)
  AGI_LIMIT   = 999999      # Limit AGI (Szybkość / Zwinność)
  INT_LIMIT   = 999999      # Limit INT (Inteligencja)
 
  SKILLE_POWYŻEJ = {# id bohatera => [[lv, skill], [lv, skill], itd.]
  1 => [[110,5], [140,6]],
  2 => [[110,8], [155,10], [195,6]],
  3 => [[120,12]],
  4 => [[120,11], [145,12], [185,13], [205,14]],
  } 
 
# -------------------------------------------------------

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 




Preferowany:
RPG Maker XP

Dołączył: 15 Lut 2010
Posty: 24
Wysłany: Pon 01 Mar, 2010 15:04
Mogłabyś to zamieścić w demie?
________________________
(\_/)
(o.o)
(><)
 
 
Firestorm109 



Dołączyła: 28 Lut 2010
Posty: 66
Skąd: Polska a jak :D
Wysłany: Sob 06 Mar, 2010 21:19
Dała byś demo albo wyjaśniła jak go edytować bo u mnie jakby nie działa
 
 
 
Bezel 




Dołączył: 08 Lis 2009
Posty: 84
Wysłany: 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/?zjfjmmdyldj
________________________
 
 
Tida 



Dołączył: 15 Kwi 2010
Posty: 1
Skąd: Zielona Góa
Wysłany: Sro 21 Kwi, 2010 15:27
Ten skrypt fajny tylko trochę niedopracowany powinno w database się robić że np. 999 lvl
ustawiasz a nie :cry:
 
 
demonn124 



Dołączył: 28 Maj 2010
Posty: 1
Wysłany: Sob 29 Maj, 2010 10:07
ma ktoś taki sam tylko na vx ??? :-?
 
 
Nevrax 




Preferowany:
RPG Maker XP

Dołączył: 16 Gru 2010
Posty: 4
Wysłany: 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 



Preferowany:
RPG Maker XP

Dołączył: 23 Gru 2010
Posty: 39
Wysłany: Pią 24 Gru, 2010 14:27
Mi tylko do 99lvl wchodzi nei wyzej
________________________
Tworze gre potrzbuje pomocy przy skryptach .
 
 
rpgmigara 



Preferowany:
RPG Maker XP

Dołączył: 23 Gru 2010
Posty: 39
Wysłany: Pią 24 Gru, 2010 14:38
podajcie przykład tego do 255lvl bo nic mi nie daje jak to skopiuje do sktrypu
________________________
Tworze gre potrzbuje pomocy przy skryptach .
 
 
Nevrax 




Preferowany:
RPG Maker XP

Dołączył: 16 Gru 2010
Posty: 4
Wysłany: 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 



Preferowany:
RPG Maker XP

Dołączył: 23 Gru 2010
Posty: 39
Wysłany: Nie 26 Gru, 2010 16:13
Już działą :D
________________________
Tworze gre potrzbuje pomocy przy skryptach .
 
 
mlynarz 




Preferowany:
RPG Maker XP

Dołączył: 16 Sty 2011
Posty: 44
Skąd: W RPGMAKER XP :]
Wysłany: Pon 17 Sty, 2011 09:14
thx działa ;]]] :lol: :przytul:
________________________
Aktualny projekt: AlkadiA - Gra Online

Wiencej info na PW :)
 
 
 
sirbiroes 



Preferowany:
RPG Maker XP

Dołączył: 19 Lip 2010
Posty: 7
Wysłany: Pią 04 Lut, 2011 20:17
Czyli jak tamten skrypt skopiuje bez poprawek to będzie działał :?: :?: :?:
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Pią 04 Lut, 2011 20:38
Tak, jak dodasz będzie działało, chyba że...
coś tam pomieszasz.
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
 
 
scene_fu 



Preferowany:
RPG Maker XP

Dołączył: 27 Mar 2011
Posty: 1
Skąd: tychy
Wysłany: Nie 27 Mar, 2011 18:47
nie działa
:cry:
________________________
RPG XP
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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