#============================================================================== # 「変数通貨」(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