[VX] Maksymalny Poziom - Wersja do druku
Ultima Forum
[VX] Maksymalny Poziom - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [VX] Maksymalny Poziom (/Thread-VX-Maksymalny-Poziom)



Maksymalny Poziom - MrCorniszon - 26-12-13 18:53

Witam. Jak ograniczyć poziom postaci? Wiem że w Ace się da ustawić to w menu ale nie widziałem takiej opcji w VX. Chcę żeby 9 poziom był maksymalnym.


RE: Maksymalny Poziom - Gorn5 - 26-12-13 20:23

Właśnie później chciałem się o to samo zapytać :)
Więc wie ktoś jak takie coś zrobić?


RE: Maksymalny Poziom - Ayene - 27-12-13 20:09

Można skorzystać z tego:
Kod:
module FINAL_LVL  
  ACTOR_FINAL_LEVEL = [] # ← NIE USUWAĆ
  
  # Konfiguracja poszczególnych bohaterów:
  # ACTOR_FINAL_LEVEL[ID postaci] = maksymalny poziom
  
  ACTOR_FINAL_LEVEL[1] = 40
  ACTOR_FINAL_LEVEL[2] = 50

  # Domyślny poziom postaci, jeśli nie skonfigurowano powyżej
  DEFAULT_FINAL_LEVEL = 50
end

#------------------------------------------------------------------------------#

#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Calculate Experience
  #--------------------------------------------------------------------------
  def make_exp_list
    @exp_list = Array.new(final_level + 2)
    @exp_list[1] = @exp_list[final_level + 1] = 0
    m = actor.exp_basis
    n = 0.75 + actor.exp_inflation / 200.0
    (2..final_level).each { |i|
      @exp_list[i] = @exp_list[i-1] + Integer(m)
      m *= 1 + n
      n *= 0.9
    }
  end
  #--------------------------------------------------------------------------
  # * Final Level
  #--------------------------------------------------------------------------
  def final_level
    n = FINAL_LVL::ACTOR_FINAL_LEVEL[self.id]
    return (n != nil ? n : FINAL_LVL::DEFAULT_FINAL_LEVEL)
  end
  #--------------------------------------------------------------------------
  # * Change Level
  #     level : new level
  #     show  : Level up display flag
  #--------------------------------------------------------------------------
  def change_level(level, show)
    level = [[level, final_level].min, 1].max
    change_exp(@exp_list[level], show)
  end
end

class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # * Read Save Data
  #     file : file object for reading (opened)
  #--------------------------------------------------------------------------
  alias read_save_data_final_lvl read_save_data
  def read_save_data(file)
    read_save_data_final_lvl(file)
    (1...$data_actors.size).each { |i|
      actor = $game_actors[i]
      actor.make_exp_list
      if actor.level > actor.final_level
        while actor.level > actor.final_level
          actor.level_down
        end
        actor.change_level(actor.final_level, false)
      end
    }
  end
end