Ace 스크립트

#==============================================================================
#
# ▼ Yanfly Engine Ace - Adjust Limits v1.00
# -- Last Updated: 2011.12.03
# -- Level: Normal
# -- Requires: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-AdjustLimits"] = true

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.03 - Finished Script.
# 2011.12.02 - Started Script.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# There exists some limitations in RPG Maker VX Ace that not everybody's fond
# of. With this script, you can easily adjust the limits of each limitation.
# Here's the list of various limits that can be changed:
#
# - Gold Max  - Have more than 99,999,999 gold.
# - Item Max  - Have more than 99 items. Customizable per item, too.
# - Level Max - Exceed 99 levels. Parameters are automatically calculated based
#               on the level 99 and level 98 stats in the class parameters.
# - Stat Max  - Stats can exceed 999. Does not adjust for current formulas.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
# -----------------------------------------------------------------------------
# Actor Notetags - These notetags go in the actors notebox in the database.
# -----------------------------------------------------------------------------
# <initial level: x>
# Sets the initial level for the specific actor. Can go above level 99 as long
# as the max level is higher than 99. Default initial level limit is 99.
#
# <max level: x>
# Sets the max level for the specific actor. Can go above level 99 as long as
# the higher limit is defined in the module. Default max level is level 99.
#
# -----------------------------------------------------------------------------
# Class Notetags - These notetags go in the class notebox in the database.
# -----------------------------------------------------------------------------
# <learn at level: x>
# This actually goes inside of the skill learning "notes" box. Replace x with
# the level you wish for the class to learn the skill at. This enables classes
# to learn new skills past level 99.
#
# -----------------------------------------------------------------------------
# Item Notetags - These notetags go in the items notebox in the database.
# -----------------------------------------------------------------------------
# <max limit: x>
# Changes the maximum number of items that can be held from whatever the
# normal amount that can be held. Default amount is 99.
#
# <price: x>
# Changes the price of the item to x. Allows you to go over the price of
# 999,999 gold if your maximum gold exceeds that amount. Default maximum gold
# is 99,999,999 gold.
#
# -----------------------------------------------------------------------------
# Weapon Notetags - These notetags go in the weapons notebox in the database.
# -----------------------------------------------------------------------------
# <max limit: x>
# Changes the maximum number of items that can be held from whatever the
# normal amount that can be held. Default amount is 99.
#
# <price: x>
# Changes the price of the item to x. Allows you to go over the price of
# 999,999 gold if your maximum gold exceeds that amount. Default maximum gold
# is 99,999,999 gold.
#
# <stat: +x>
# <stat: -x>
# Changes the stat bonus of the piece of equipment to yield +x or -x. Allows
# bonus to go over +500 and under -500. Replace stat with one of the following:
# MAXHP, MAXMP, ATK, DEF, MAT, MDF, AGI, LUK
#
# -----------------------------------------------------------------------------
# Armour Notetags - These notetags go in the armours notebox in the database.
# -----------------------------------------------------------------------------
# <max limit: x>
# Changes the maximum number of items that can be held from whatever the
# normal amount that can be held. Default amount is 99.
#
# <price: x>
# Changes the price of the item to x. Allows you to go over the price of
# 999,999 gold if your maximum gold exceeds that amount. Default maximum gold
# is 99,999,999 gold.
#
# <stat: +x>
# <stat: -x>
# Changes the stat bonus of the piece of equipment to yield +x or -x. Allows
# bonus to go over +500 and under -500. Replace stat with one of the following:
# MAXHP, MAXMP, ATK, DEF, MAT, MDF, AGI, LUK
#
# -----------------------------------------------------------------------------
# Enemy Notetags - These notetags go in the enemy notebox in the database.
# -----------------------------------------------------------------------------
# <stat: x>
# Changes the stat of the enemy to x value. Allows going over the database max
# values. Replace stat with one of the following:
# MAXHP, MAXMP, ATK, DEF, MAT, MDF, AGI, LUK, EXP, GOLD
#
# -----------------------------------------------------------------------------
# Script Calls - These commands are used with script calls.
# -----------------------------------------------------------------------------
# gain_gold(x)
# lose_gold(x)
# Causes the player to gain/lose x gold. Allows you to go over 9,999,999 gold.
# Default maximum gold is 99,999,999.
#
# gain_item(x, y)
# lose_item(x, y)
# gain_weapon(x, y)
# lose_weapon(x, y)
# gain_armour(x, y)
# lose_armour(x, y)
# Causes the player to gain/lose x item in y amount. Allows you to go over 99
# quantity. Default quantity is 99.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================

module YEA
  module LIMIT
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Gold Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Adjust gold settings here. You can change the maximum amount of gold to
    # whatever you want. In addition to that, you can also adjust whether or
    # not you wish for your gold display to show an icon instead, (and change
    # the font size if needed). If there's too much gold that's to be displayed
    # then you can change the text shown in place of that.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    GOLD_MAX  = 999999999999999  # Maximum gold.
    GOLD_ICON = 0              # Icon used for gold. Use 0 for text currency.
    GOLD_FONT = 20               # Font size used to display gold.
    TOO_MUCH_GOLD = "A lotta gold!"   # Text used when gold cannot fit.
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Item Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Adjust item settings here. You can change the maximum number of items
    # held from 99 to whatever you want. In addition to that, change the prefix
    # used for items when shown in the item display menu (and the font size if
    # needed). Items can have individual maximums through usage of the
    # <max limit: x> notetag.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    ITEM_MAX  = 999     # The default maximum number of items held each.
    ITEM_FONT = 20      # Font size used to display item quantity.
    SHOP_FONT = 20      # Font size used for shop item costs.
    ITEM_PREFIX = "×%s" # Prefix used for item quantity in item lists.
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Parameter Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Adjust the limits for each of the various stats (for MaxHP, MaxMP, ATK,
    # DEF, MAT, and more). Adjust them as you see fit.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    LEVEL_MAX = 99      # Sets max level to x for those with 99 level limit.
    MAXHP_MAX = 9999999 # Sets MaxHP to something higher than 9999.
    MAXMP_MAX = 9999999 # Sets MaxMP to something higher than 9999.
    PARAM_MAX = 99999   # Sets stat max for something higher than 999.
    EQUIP_FONT = 20     # Changes the default equip window font size.
   
  end # LIMIT
end # YEA

#==============================================================================
# ▼ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================

module YEA
  module REGEXP
  module ACTOR
   
    MAX_LEVEL = /<(?:MAX_LEVEL|max level):[ ](\d+)>/i
    INI_LEVEL = /<(?:INITIAL_LEVEL|initial level):[ ](\d+)>/i
   
  end # ACTOR
  module CLASS
   
    LEARN_AT_LV = /<(?:LEARN_AT_LEVEL|learn at level):[ ](\d+)>/i
   
  end # CLASS
  module BASEITEM
   
    PRICE     = /<(?:GOLD|price|COST):[ ](\d+)>/i
    MAX_LIMIT = /<(?:MAX_LIMIT|max limit):[ ](\d+)>/i
    STAT_SET  = /<(.*):[ ]*([\+\-]\d+)>/i
   
  end # BASEITEM
  module ENEMY
   
    STAT_SET  = /<(.*):[ ]*(\d+)>/i
   
  end # ENEMY
  end # REGEXP
end # YEA

#==============================================================================
# ■ Icon
#==============================================================================

module Icon
 
  #--------------------------------------------------------------------------
  # self.gold
  #--------------------------------------------------------------------------
  def self.gold; return YEA::LIMIT::GOLD_ICON; end
   
end # Icon
 
#==============================================================================
# ■ Numeric
#==============================================================================

class Numeric
 
  #--------------------------------------------------------------------------
  # new method: group_digits
  #--------------------------------------------------------------------------
  unless $imported["YEA-CoreEngine"]
  def group; return self.to_s; end
  end # $imported["YEA-CoreEngine"]
   
end # Numeric

#==============================================================================
# ■ DataManager
#==============================================================================

module DataManager
 
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias load_database_al load_database; end
  def self.load_database
    load_database_al
    load_notetags_al
  end
 
  #--------------------------------------------------------------------------
  # new method: load_notetags_al
  #--------------------------------------------------------------------------
  def self.load_notetags_al
    groups = [$data_actors, $data_items, $data_weapons, $data_armors,
      $data_enemies, $data_classes]
    for group in groups
      for obj in group
        next if obj.nil?
        obj.load_notetags_al
      end
    end
  end
 
end # DataManager

#==============================================================================
# ■ RPG::Actor
#==============================================================================

class RPG::Actor < RPG::BaseItem
 
  #--------------------------------------------------------------------------
  # common cache: load_notetags_al
  #--------------------------------------------------------------------------
  def load_notetags_al
    @max_level = YEA::LIMIT::LEVEL_MAX if @max_level == 99
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::ACTOR::MAX_LEVEL
        @max_level = [[$1.to_i, 1].max, YEA::LIMIT::LEVEL_MAX].min
        @ini_level = [@ini_level, @max_level].min
      when YEA::REGEXP::ACTOR::INI_LEVEL
        @ini_level = [[$1.to_i, 1].max, @max_level].min
      #---
      end
    } # self.note.split
    #---
  end
 
end # RPG::Actor

#==============================================================================
# ■ RPG::Class
#==============================================================================

class RPG::Class < RPG::BaseItem
 
  #--------------------------------------------------------------------------
  # new method: above_lv99_params
  #--------------------------------------------------------------------------
  def above_lv99_params(param_id, level)
    return @params[param_id, level] if level <= 99
    n = @params[param_id, 99]
    multiplier = [level - 99, 1].max
    change = (@params[param_id, 99] - @params[param_id, 98]) + 1
    n += change * multiplier
    return n
  end
 
  #--------------------------------------------------------------------------
  # new method: load_notetags_al
  #--------------------------------------------------------------------------
  def load_notetags_al
    for item in @learnings; item.load_notetags_al; end
  end
 
end # RPG::Class

#==============================================================================
# ■ RPG::Class::Learning
#==============================================================================

class RPG::Class::Learning
 
  #--------------------------------------------------------------------------
  # common cache: load_notetags_al
  #--------------------------------------------------------------------------
  def load_notetags_al
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::CLASS::LEARN_AT_LV
        @level = [[$1.to_i, 1].max, YEA::LIMIT::LEVEL_MAX].min
      #---
      end
    } # self.note.split
    #---
  end
 
end # RPG::Class::Learning

#==============================================================================
# ■ RPG::BaseItem
#==============================================================================

class RPG::BaseItem
 
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :max_limit
 
  #--------------------------------------------------------------------------
  # common cache: load_notetags_al
  #--------------------------------------------------------------------------
  def load_notetags_al
    @max_limit = YEA::LIMIT::ITEM_MAX
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::BASEITEM::PRICE
        @price = [$1.to_i, YEA::LIMIT::GOLD_MAX].min
      when YEA::REGEXP::BASEITEM::MAX_LIMIT
        @max_limit = [$1.to_i, 1].max
      when YEA::REGEXP::BASEITEM::STAT_SET
        case $1.upcase
        when "HP", "MAXHP", "MHP"
          @params[0] = $2.to_i
        when "MP", "MAXMP", "MMP", "SP", "MAXSP", "MSP"
          @params[1] = $2.to_i
        when "ATK"
          @params[2] = $2.to_i
        when "DEF"
          @params[3] = $2.to_i
        when "MAT", "INT", "SPI"
          @params[4] = $2.to_i
        when "MDF", "RES"
          @params[5] = $2.to_i
        when "AGI", "SPD"
          @params[6] = $2.to_i
        when "LUK", "LUCK"
          @params[7] = $2.to_i
        end
      #---
      end
    } # self.note.split
    #---
  end
 
  #--------------------------------------------------------------------------
  # new method: max_limit
  #--------------------------------------------------------------------------
  def max_limit; return @max_limit; end
 
end # RPG::BaseItem

#==============================================================================
# ■ RPG::Enemy
#==============================================================================

class RPG::Enemy < RPG::BaseItem
 
  #--------------------------------------------------------------------------
  # common cache: load_notetags_al
  #--------------------------------------------------------------------------
  def load_notetags_al
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::ENEMY::STAT_SET
        case $1.upcase
        when "HP", "MAXHP", "MHP"
          @params[0] = $2.to_i
        when "MP", "MAXMP", "MMP", "SP", "MAXSP", "MSP"
          @params[1] = $2.to_i
        when "ATK"
          @params[2] = $2.to_i
        when "DEF"
          @params[3] = $2.to_i
        when "MAT", "INT", "SPI"
          @params[4] = $2.to_i
        when "MDF", "RES"
          @params[5] = $2.to_i
        when "AGI", "SPD"
          @params[6] = $2.to_i
        when "LUK", "LUCK"
          @params[7] = $2.to_i
        when "EXP", "XP"
          @exp = $2.to_i
        when "GOLD", "GP"
          @gold = $2.to_i
        end
      #---
      end
    } # self.note.split
    #---
  end
 
end # RPG::Enemy

#==============================================================================
# ■ Game_BattlerBase
#==============================================================================

class Game_BattlerBase
 
  #--------------------------------------------------------------------------
  # overwrite method: param_max
  #--------------------------------------------------------------------------
  def param_max(param_id)
    return YEA::LIMIT::MAXHP_MAX if param_id == 0
    return YEA::LIMIT::MAXMP_MAX if param_id == 1
    return YEA::LIMIT::PARAM_MAX
  end
 
end # Game_BattlerBase

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
 
  #--------------------------------------------------------------------------
  # overwrite method: param_max
  #--------------------------------------------------------------------------
  def param_max(param_id)
    return super
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: param_base
  #--------------------------------------------------------------------------
  def param_base(param_id)
    return self.class.params[param_id, @level] if @level <= 99
    return self.class.above_lv99_params(param_id, @level)
  end
 
  #--------------------------------------------------------------------------
  # new method: check_levels
  #--------------------------------------------------------------------------
  def check_levels
    last_level = @level
    @level = [[@level, max_level].min, 1].max
    return if @level == last_level
    change_exp(exp_for_level(@level), false)
  end
 
end # Game_Actor

#==============================================================================
# ■ Game_Party
#==============================================================================

class Game_Party < Game_Unit
 
  #--------------------------------------------------------------------------
  # overwrite method: max_gold
  #--------------------------------------------------------------------------
  def max_gold; return YEA::LIMIT::GOLD_MAX; end
 
  #--------------------------------------------------------------------------
  # overwrite method: max_item_number
  #--------------------------------------------------------------------------
  def max_item_number(item); return item.max_limit; end
 
end # Game_Party

#==============================================================================
# ■ Game_Interpreter
#==============================================================================

class Game_Interpreter
 
  #--------------------------------------------------------------------------
  # new method: gain_gold
  #--------------------------------------------------------------------------
  def gain_gold(value); $game_party.gain_gold(value); end
 
  #--------------------------------------------------------------------------
  # new method: lose_gold
  #--------------------------------------------------------------------------
  def lose_gold(value); $game_party.lose_gold(value); end
 
  #--------------------------------------------------------------------------
  # new method: gain_item
  #--------------------------------------------------------------------------
  def gain_item(id, amount)
    return if $data_items[id].nil?
    $game_party.gain_item($data_items[id], amount)
  end
 
  #--------------------------------------------------------------------------
  # new method: lose_item
  #--------------------------------------------------------------------------
  def lose_item(id, amount)
    return if $data_items[id].nil?
    $game_party.lose_item($data_items[id], amount)
  end
 
  #--------------------------------------------------------------------------
  # new method: gain_weapon
  #--------------------------------------------------------------------------
  def gain_weapon(id, amount)
    return if $data_weapons[id].nil?
    $game_party.gain_item($data_weapons[id], amount)
  end
 
  #--------------------------------------------------------------------------
  # new method: lose_weapon
  #--------------------------------------------------------------------------
  def lose_weapon(id, amount)
    return if $data_weapons[id].nil?
    $game_party.lose_item($data_weapons[id], amount)
  end
 
  #--------------------------------------------------------------------------
  # new method: gain_armour
  #--------------------------------------------------------------------------
  def gain_armour(id, amount)
    return if $data_armors[id].nil?
    $game_party.gain_item($data_armors[id], amount)
  end
 
  #--------------------------------------------------------------------------
  # new method: lose_armour
  #--------------------------------------------------------------------------
  def lose_armour(id, amount)
    return if $data_armors[id].nil?
    $game_party.lose_item($data_armors[id], amount)
  end
 
  #--------------------------------------------------------------------------
  # new method: gain_armor
  #--------------------------------------------------------------------------
  def gain_armor(id, amount)
    return if $data_armors[id].nil?
    $game_party.gain_item($data_armors[id], amount)
  end
 
  #--------------------------------------------------------------------------
  # new method: lose_armor
  #--------------------------------------------------------------------------
  def lose_armor(id, amount)
    return if $data_armors[id].nil?
    $game_party.lose_item($data_armors[id], amount)
  end
 
end # Game_Interpreter

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_actor_level
  #--------------------------------------------------------------------------
  def draw_actor_level(actor, dx, dy)
    dw = text_size(Vocab::level_a + YEA::LIMIT::LEVEL_MAX.to_s).width
    change_color(system_color)
    draw_text(dx, dy, dw, line_height, Vocab::level_a)
    change_color(normal_color)
    cx = text_size(Vocab::level_a).width
    draw_text(dx + cx, dy, dw, line_height, actor.level.group, 2)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_actor_param
  #--------------------------------------------------------------------------
  def draw_actor_param(actor, dx, dy, param_id)
    change_color(system_color)
    draw_text(dx, dy, 120, line_height, Vocab::param(param_id))
    change_color(normal_color)
    draw_text(dx, dy, 156, line_height, actor.param(param_id).group, 2)
  end
 
  #--------------------------------------------------------------------------
  # draw_currency_value
  #--------------------------------------------------------------------------
  def draw_currency_value(value, unit, dx, dy, dw)
    contents.font.size = YEA::LIMIT::GOLD_FONT
    cx = gold_icon?(unit) ? 24 : text_size(unit).width
    change_color(normal_color)
    text = value.group
    text = YEA::LIMIT::TOO_MUCH_GOLD if contents.text_size(text).width > dw-cx
    draw_text(dx, dy, dw - cx - 2, line_height, text, 2)
    change_color(system_color)
    draw_icon(Icon.gold, dx+dw-24, dy) if gold_icon?(unit)
    draw_text(dx, dy, dw, line_height, unit, 2) unless gold_icon?(unit)
    reset_font_settings
  end
 
  #--------------------------------------------------------------------------
  # new method: gold_icon?
  #--------------------------------------------------------------------------
  def gold_icon?(unit)
    return false if unit != Vocab.currency_unit
    return YEA::LIMIT::GOLD_ICON > 0
  end
 
end # Window_Base

#==============================================================================
# ■ Window_ItemList
#==============================================================================

class Window_ItemList < Window_Selectable
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_item_number
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    contents.font.size = YEA::LIMIT::ITEM_FONT
    quantity = $game_party.item_number(item).group
    text = sprintf(YEA::LIMIT::ITEM_PREFIX, quantity)
    draw_text(rect, text, 2)
    reset_font_settings
  end
 
end # Window_ItemList

#==============================================================================
# ■ Window_EquipStatus
#==============================================================================

class Window_EquipStatus < Window_Base
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_item
  #--------------------------------------------------------------------------
  def draw_item(dx, dy, param_id)
    draw_param_name(dx + 4, dy, param_id)
    draw_current_param(dx + 64, dy, param_id) if @actor
    draw_right_arrow(dx + 110, dy)
    draw_new_param(dx + 132, dy, param_id) if @temp_actor
    reset_font_settings
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_param_name
  #--------------------------------------------------------------------------
  def draw_param_name(dx, dy, param_id)
    contents.font.size = YEA::LIMIT::EQUIP_FONT
    change_color(system_color)
    draw_text(dx, dy, contents.width, line_height, Vocab::param(param_id))
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_current_param
  #--------------------------------------------------------------------------
  def draw_current_param(dx, dy, param_id)
    change_color(normal_color)
    draw_text(0, dy, dx+48, line_height, @actor.param(param_id).group, 2)
    reset_font_settings
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_new_param
  #--------------------------------------------------------------------------
  def draw_new_param(dx, dy, param_id)
    contents.font.size = YEA::LIMIT::EQUIP_FONT
    new_value = @temp_actor.param(param_id)
    change_color(param_change_color(new_value - @actor.param(param_id)))
    draw_text(0, dy, contents.width-4, line_height, new_value.group, 2)
    reset_font_settings
  end
 
end # Window_EquipStatus

#==============================================================================
# ■ Window_ShopBuy
#==============================================================================

class Window_ShopBuy < Window_Selectable
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    rect = item_rect(index)
    draw_item_name(item, rect.x, rect.y, enable?(item))
    rect.width -= 4
    contents.font.size = YEA::LIMIT::SHOP_FONT
    draw_text(rect, price(item).group, 2)
    reset_font_settings
  end
 
end # Window_ShopBuy

#==============================================================================
# ■ Scene_Load
#==============================================================================

class Scene_Load < Scene_File
 
  #--------------------------------------------------------------------------
  # alias method: on_load_success
  #--------------------------------------------------------------------------
  alias on_load_success_al on_load_success
  def on_load_success
    on_load_success_al
    perform_level_check
  end
 
  #--------------------------------------------------------------------------
  # new method: perform_level_check
  #--------------------------------------------------------------------------
  def perform_level_check
    for i in 1..$data_actors.size
      next if $game_actors[i].nil?
      $game_actors[i].check_levels
    end
  end
 
end # Scene_Load

#==============================================================================
#
# ▼ End of File
#
#==============================================================================

  • ?
    카이온 2012.07.07 21:31
    엉엉 날 가져요
    마침 제일 필요했던건데
  • profile
    프럼독 2012.07.07 21:42
    허거거거거거거걱..... 입이 쫙 벌어지게 만드는 이 스크립트...
    한계를 뛰어넘은 사람의 작품이다...
  • ?
    시옷청룡 2012.07.08 12:21
    감사합니다
  • ?
    달밤에왈츠 2012.07.11 14:58
    한계돌파 스크립트라면 능력치나 아이템의 한계 수치를 넘길 수 있게 하는 스크립트란 말인가요?
  • ?
    빙룡군 2012.07.13 01:51
    네, 그렇습니다.
    몬스터도 엑터도 모두 제한수치를 넘기게 할 수 있어요.
  • ?
    걍나댄다 2012.07.24 13:41
    그냥 넣기만 하면 되나요?
  • ?
    빙룡군 2012.07.26 18:14
    네. 하지만 아마 이상태로 넣으신다면 레벨은 99까지밖에 안 오르실 겁니다.
  • ?
    Bluesky(新) 2012.08.02 19:53
    사용 방법이 햇갈리네요. 어느 부분을 수정해야 하나요?
  • ?
    빙룡군 2012.08.02 21:41
    LEVEL_MAX = 99 # Sets max level to x for those with 99 level limit.
    이 부분의 숫자가 레벨의 한계입니다.
    999로 바꾸시면 레벨이 999까지 적용됩니다.
    아마 175행에 있을 겁니다.
  • ?
    Bluesky(新) 2012.08.04 21:00
    음. 한계 돌파는 다양한 부분의 한계을 돌파 할 수 있는 것으로 압니다.
    vx 버전은 기본적으로 능력치. 소지금 제한. 아이템 소지수 제한 등이 가능 한 것으로 아는데.
    ace 버전에서는 레벨 제한 이외의 한계 돌파가 가능한건 무엇이 있나요?
  • ?
    빙룡군 2012.08.05 00:37
    레벨, 소지금, 아이템 소지수, 스테이터스, 적 능력치, 적 경험치 등등이 있습니다.
    왠만한 건 다 돌파한다고 보셔도 무방합니다.
  • ?
    Bluesky(新) 2012.08.05 09:04
    GOLD_MAX = 999999999999999 # Maximum gold.
    GOLD_ICON = 0 # Icon used for gold. Use 0 for text currency.
    GOLD_FONT = 20 # Font size used to display gold.
    TOO_MUCH_GOLD = "A lotta gold!" # Text used when gold cannot fit.

    ITEM_MAX = 999 # The default maximum number of items held each.
    ITEM_FONT = 20 # Font size used to display item quantity.
    SHOP_FONT = 20 # Font size used for shop item costs.
    ITEM_PREFIX = "×%s" # Prefix used for item quantity in item lists.

    LEVEL_MAX = 99 # Sets max level to x for those with 99 level limit.
    MAXHP_MAX = 9999999 # Sets MaxHP to something higher than 9999.
    MAXMP_MAX = 9999999 # Sets MaxMP to something higher than 9999.
    PARAM_MAX = 99999 # Sets stat max for something higher than 999.
    EQUIP_FONT = 20 # Changes the default equip window font size.

    이거만 변경 할 수 있는 것으로 아는데. 제가 영어가 약해서 보면
    골드 한계. 골드 아이콘. 골드 폰트. 다음은 모르겠고
    아이템 한계. 아이템 폰트. 상점 폰트. 모르겠고
    레벨 한계. 최대 체력 한계. 최대 마력 한계. 모르겠고. 모르겠네요..
    papam이 능력치 전부를 뜻하는건가요? ㄷㄷ 잘 모르겠습니다.
  • ?
    빙룡군 2012.08.05 10:29
    TOO_MUCH_GOLD는 소지금이 너무 많을 때 시스템에 표시되는 문구를 뜻합니다.
    ITEM_FREFIX는 저는 사용하지 않아서 잘 모르겠습니다.
    PARAM_MAX는 HP, MP를 제외한 모든 스탯을 의미합니다.
    EQUIP_FONT는 장비의 폰트 사이즈를 의미합니다.
  • ?
    Bluesky(新) 2012.08.05 11:43
    그렇군요. 골드 멕스. 아이템 멕스. 레벨 멕스. 멕스hp 멕스. 멕스mp 멕스. param 멕스
    이거만 수정하면 되겠네요. 그럼 아까 말씀하신 적 능력치. 적 경험치 등은 어떻게 수정하나요?
  • ?
    agnos 2012.08.25 08:03
    레벨제한을 수정하고 싶은데
    어느 곳의 스크립트에 덮어쓰기해야 되나요?
  • ?
    DeathLord 2012.08.25 19:09
    감사합니다~
    그런데 이거 몬스터 한계는 어떻게 돌파시키죠? ;;
  • profile
    Ilike게임 2012.09.18 18:41
    레벨을200까지 적용하고 데이타베이스에서 액터를 200까지 만렙을 적용하려 하는데,
    안되네요. 혹시 175행 외에도 다른것들도 수정해야 하나요?
  • profile
    혜인 2012.11.10 09:32
    ITEM_PRIFIX는 아이템이 몇 개나 있는지 알려줄 때
    아이템 이름 뒤에 붙는 거라고 되어 있네요.
    만약 "×%s"라면 아이템 이름 '포션' 뒤에 '포션×10' 이런 식으로...
  • ?
    팔슈 2013.04.18 09:49
    어떻게 적용시키는지 모르겠는데....
    사용법 설명 좀요;;
  • ?
    알밤군 2013.05.18 20:56
    스크립트를 넣어도 적용이 안되는데
    어떻게 적용하는지 정확히 가르쳐주세요
  • ?
    시옷청룡 2013.07.14 21:39
    넣어도 아마 데이터베이스에서는 한계를 넘기지 못할 겁니다. 여기서 말하는 한계돌파는, 게임 플레이 중에 레벨99가 되어도 설정해 둔 수치까지 계속 오르는 그런 느낌인 것 같네요. 데이터 베이스의 경우는 이미 프로그래밍할 때 레벨은 2자리 숫자 등으로 한계를 만들어 놓았기 때문에 직접 수정하는 것은 불가능할 것으로 보여집니다.
  • ?
    H3r 2013.08.13 20:26

    메모지에 추가적으로 입력하는 것으로 모든 수치의 한계를 넘길 수 있습니다.
    레벨같은 경우에는 스크립트 중에 직접 경험치 수정하기와 연동하면 되는데,(검색하면 나옵니다.)
    우선 레벨 제한을 150까지 늘리고 싶으면, 레벨 최대값을 150으로 입력하시고,
    각 캐릭터 메모란에 <initial level: 1>, <max level: 150> 이렇게 2줄 입력하시면 최소 레벨1에
    최대 레벨 150, 그리고 경험치 직접 설정 스크립트에 설정한 150까지의 경험치가 전부 적용됩니다.
    참고로 메모란에 입력하는 수치는 반드시 띄워 쓰기 해야 합니다. max level:150 <-이렇게 하면
    인식안합니다. 영어 해석 조금이라도 하실줄 아시는 분들은 상단에 주석 한번 읽어보세요~
    몬스터의 설정값도 메모지에 <maxhp: 100000000> 이렇게 하시면 데이터 베이스에 입력한 보스 HP를
    무시하고 메모란에 설정한 1억이라는 HP를 가진 몬스터가 탄생합니다.
    아이템도 마찬가지입니다. 무기의 경우 기본 제한은 500인데요,
    메모란에 <atk:+1000>이렇게 입력하시면 기본 설정값을 무시하고 메모란에 적힌 1000의 공격력이
    오릅니다.

  • ?
    늑대고양이 2014.01.23 00:03
    퍼가요^^
  • profile
    무겐의P군 2015.04.11 13:25
    오 굳...ㄳ해요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 5605
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 29441
57 액터 Actor Creation System by Tsukihime 4 Alkaid 2012.09.16 3579
56 오디오 Audio Pump Up: FMOD Ex by mikb89 2 Alkaid 2012.09.08 2103
55 메뉴 Syvkal's Menu Bars VX Ace 3 Alkaid 2012.09.08 4314
54 메뉴 Syvkal's Ring Menu VX Ace 2 Alkaid 2012.09.08 3837
53 기타 던전 자동생성 4 Alkaid 2012.09.08 3184
52 키입력 RGSS3 Input Full + UTF-8 Input by Cidiomar 1 Alkaid 2012.09.08 2462
51 전투 Transition EX 1.2 by MogHunter Alkaid 2012.09.07 2504
50 장비 VXAce 장비장착 스킬발동 스크립트 2 아이미르 2012.09.02 2430
49 기타 ACE) 오블리비언 락픽 구현 V0.5.2 7 file 77이알 2012.09.02 4827
48 장비 Ace 장비 착용의 제한 스크립트 11 아이미르 2012.09.01 2822
47 전투 Etude87_Custom_Max_Tp_Weapon ver.1.0 5 습작 2012.08.28 2696
46 아이템 VXAce 아이템 합성 스크립트 Ver 0.8 17 아이미르 2012.08.23 4029
45 메뉴 ace용 mog메뉴와 mog전투 10 file 꿈꾸는사람 2012.08.04 6085
44 그래픽 [ACE][BR] Awesome Light Effects 1.0(빛관련 스크립트) 37 file 꿈꾸는사람 2012.08.02 7066
43 기타 Sapphire Action System IV v4.4br(엑알 스크립트) 6 file 꿈꾸는사람 2012.08.02 4543
42 맵/타일 Etude87_Map_Remember_Ace ver.1.2 11 습작 2012.07.17 3541
» 기타 없는 것 같아서 올립니다. VX ACE 한계 돌파 스크립트입니다. 24 빙룡군 2012.07.07 5628
40 이름입력 전체키 + 조합한글 + 이름입력처리 변경 47 file 허걱 2012.07.04 8236
39 상점 VXAce 상점 스크립트 V0.9 17 아이미르 2012.06.29 5405
38 스킬 [VX/VX Ace] Skill_Update_System 10 file 허걱 2012.06.11 4023
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11