#==============================================================================
# 「変数通貨」(ACE) ver1.3
# 製作者:奈々(なな)
# へぷたなすくろーる http://heptanas.mamagoto.com/
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# このスクリプトを改変したり、改変したものを配布するなどは自由ですが
# その場合も元のスクリプトの作成者として名前は載せて下さい。
# その他、詳しい利用規約はブログを参照して下さい。
#
#------------------------------------------------------------------------------
#
# 変数を所持金として指定できるようになります。
# 複数の変数を切り替え可能で、また通貨単位も変更できます。
# これにより、アイテムや名誉点など特殊な通貨を使用するショップや
# 所持金を別々に管理するシステムなどが簡単に作れます。
#
#
# 使い方は、イベントコマンドの「スクリプト」で行います。
#
# n7_change_gold(id)
# n7_change_gold(id, "通貨単位")
#
# id番の変数を所持金に指定します。
# idに0を指定すると、変数ではない本来の所持金に戻ります。
# また、2番目の引数に"○○"を入れると通貨単位も変更します。
#
# 指定した通貨変数は、ショップや戦闘の処理も含めて
# あらゆる点で所持金の替わりとして扱われます。
# 同時に通常の変数として、代入や増減を行うことができます。
#
#==============================================================================
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 通貨変数の切り替え
#--------------------------------------------------------------------------
def n7_change_gold(id, unit = nil)
$game_party.gold_var_id = id
$game_party.gold_unit_str = unit if unit
end
end
#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
# パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ
# スのインスタンスは $game_party で参照されます。
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :gold_var_id # 所持金の変数ID
attr_accessor :gold_unit_str # 通貨単位
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_gold_var initialize
def initialize
initialize_gold_var
@gold_var_id = 0
@gold_unit_str = $data_system.currency_unit
end
#--------------------------------------------------------------------------
# ● 所持金の参照
#--------------------------------------------------------------------------
def gold
@gold_var_id > 0 ? $game_variables[@gold_var_id] : @gold
end
#--------------------------------------------------------------------------
# ● 所持金の増加(減少)
#--------------------------------------------------------------------------
def gain_gold(amount)
if @gold_var_id > 0
$game_variables[@gold_var_id] = [[$game_variables[@gold_var_id] + amount, 0].max, max_gold].min
else
@gold = [[@gold + amount, 0].max, max_gold].min
end
end
end
#==============================================================================
# ■ Vocab
#------------------------------------------------------------------------------
# 用語とメッセージを定義するモジュールです。定数でメッセージなどを直接定義す
# るほか、グローバル変数 $data_system から用語データを取得します。
#==============================================================================
module Vocab
# 通貨単位
def self.currency_unit
$game_party.gold_unit_str
end
end