TOI風最大所持数変更モジュール



テイルズオブイノセンスっぽくアイテムの最大所持数をイベントなどで変更できます。

※このスクリプトを導入後は最初からはじめないとエラーをはきます。
(途中から導入したい場合は、どこかでショップ画面に移る前にイベントのスクリプトで
 $game_system.max_hold_change(0)
 を実行してください。)

※実は『これから入手するアイテム』が最大所持数を超えないかの対処はしていても
 『今までに入手したアイテム』が最大所持数を超えていないかどうかは対処していないという・・・

変更点
2009:05:02
・最大所持数分所持している場合に戦闘終了時などでアイテムをゲットするとその分もカウントされてしまう
 バグを修正

2009:09:14
・管理がし易くなるようにちょっとした修正

#==============================================================================
# ■ TOI風最大所持数変更 By 貪藻矢射妥←
# 
#  ・TOIっぽく最初はアイテムの所持数が少ないけど、イベントでその上限を
#   増やせますヨ〜ってな感じ。
# 
#  ※このスクリプトを導入後は最初からはじめないとエラーをはきます。
#   (途中から導入したい場合は、どこかでショップ画面に移る前にイベントの
#    スクリプトで
#    $game_system.max_hold_change(0)
#    を実行してください。)
# 
#  ※ゲームの最中に最大所持数を変更したい場合は
#   スクリプトで
#   $game_system.max_hold_change(value)
#   を実行してください。)
# 
#==============================================================================
# 更新っぽいもの
# 2009:05:02
# ・最大所持数分所持している場合に戦闘終了時などでアイテムをゲットするとその分
#  もカウントされてしまうバグを修正
# 
# 2009:09:14
# ・管理がし易くなるようにちょっとした修正

$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["Max_Hold_Change"] = true

class Game_System
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :max_hold_value           # 外部最大所持数
  
  include BM
  #--------------------------------------------------------------------------
  # ● 最大所持数変更
  # value : 最大所持数配列のID
  #--------------------------------------------------------------------------
  def max_hold_change(value)
    if value >= BM::MAX_HOLD.size || value < 0
      p "範囲外です。"
    else
      $game_system.max_hold_value = value
    end
  end
end

#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  パーティを扱うクラスです。ゴールドやアイテムなどの情報が含まれます。このク
# ラスのインスタンスは $game_party で参照されます。
#==============================================================================
class Game_Party
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias diamond_toi_initialize initialize
  def initialize
    diamond_toi_initialize
    
    # 最大保持数の初期化
    $game_system.max_hold_value = 0
  end
  
  #--------------------------------------------------------------------------
  # ● アイテムの増加 (減少)
  #     item_id : アイテム ID
  #     n       : 個数
  #--------------------------------------------------------------------------
  def gain_item(item_id, n)
    # ハッシュの個数データを更新
    if item_id > 0
      @items[item_id] = [[item_number(item_id) + n, 0].max, 
                         BM::MAX_HOLD[$game_system.max_hold_value]].min
    end
  end
  #--------------------------------------------------------------------------
  # ● 武器の増加 (減少)
  #     weapon_id : 武器 ID
  #     n         : 個数
  #--------------------------------------------------------------------------
  def gain_weapon(weapon_id, n)
    # ハッシュの個数データを更新
    if weapon_id > 0
      @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 
                             BM::MAX_HOLD[$game_system.max_hold_value]].min
    end
  end
  #--------------------------------------------------------------------------
  # ● 防具の増加 (減少)
  #     armor_id : 防具 ID
  #     n        : 個数
  #--------------------------------------------------------------------------
  def gain_armor(armor_id, n)
    # ハッシュの個数データを更新
    if armor_id > 0
      @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 
                           BM::MAX_HOLD[$game_system.max_hold_value]].min
    end
  end
end
ゲームの途中で最大所持数を変更したい場合は、イベントのスクリプトで $game_system.max_hold_change(value) を実行してください。

戻る