#------------------------------------------------------------------------------- # 変数連動ピクチャ for VXAce 製作者:奏ねこま(おとぶきねこま) #------------------------------------------------------------------------------- # 重要:「変数内容の即時反映について」は必ずご一読ください。 # # 下記のスクリプトを実行後、イベントコマンドの「ピクチャの表示」を実行してくださ # い。スクリプトで指定した画像ファイルが表示されます。 # # vlpPictureName("ファイル名") # # ファイル名を指定する際、以下のような記述をすることで変数を含めることができます。 # # vlpPictureName("picture_\\v[1]") # # 上記例では、変数1番をファイル名に含みます。例えば変数の内容が「2」だった場合、 # その後のピクチャの表示で読み込まれるファイルは「picture_2」になります。 # また、以下のように指定することで桁数を指定することもできます。 # # vlpPictureName("picture_\\3v[1]") # # 上記例では、読み込まれるファイルは「picture_002」になります。 # 変数の指定方法は、他に以下のようなものもあります。 # # vlpPictureName("picture_\\v[1]_\\v[2]") # 複数の変数を指定 # vlpPictureName("picture_\\v[\\v[1]]") # 変数の番号に変数を指定 # # ---------------------------- # 変数内容の即時反映について # ---------------------------- # 変数付きでファイル名を指定したピクチャは、「変数の内容が変更されると同時」に # 表示が更新されます。イベントコマンド「ピクチャの表示」をする必要はありません。 # 「ピクチャの表示」実行まで表示を変えたくない場合は、事前に以下のスクリプトを # 実行してください。 # # vlpImmediatelyUpdate(false) # # 即時反映に戻すには「vlpImmediatelyUpdate(true)」を実行してください。 # # [ 利用規約 ] ................................................................. # 本スクリプトの利用者は、RPGツクールVXAceの正規ユーザーに限られます。 # 商用、非商用、ゲームの内容(年齢制限など)を問わず利用可能です。 # ゲームへの利用の際、報告や出典元の記載等は必須ではありません。 # 二次配布や転載、ソースコードURLやダウンロードURLへの直接リンクは禁止します。 # (スクリプトを利用したゲームに同梱する形での結果的な配布はOKです) # 不具合対応以外のサポートやリクエストは受け付けておりません。 # 本スクリプトにより生じたいかなる問題においても、一切の責任を負いかねます。 # [ 改訂履歴 ] ................................................................. # Version 1.00 2018/10/16 初版 # -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # Web Site: http://makonet.sakura.ne.jp/rpg_tkool/ # Twitter : https://twitter.com/koma_neko class Game_Interpreter def vlpPictureName(name) $game_map.screen.makonet008_picture_name = name end def vlpImmediatelyUpdate(enabled) $game_map.screen.makonet008_no_immediately = !enabled end end class Game_Screen attr_accessor :makonet008_picture_name attr_accessor :makonet008_no_immediately end class Game_Picture def makonet008_convert_variable(text) result = text.to_s.clone result.gsub!(/\\/) { "\e" } result.gsub!(/\e\e/) { "\\" } while !!result[/\e\d*V\[\d+\]/i] result.gsub!(/\e(\d*)V\[(\d+)\]/i) { if $1 == "" $game_variables[$2.to_i] else $game_variables[$2.to_i].to_s.rjust($1.to_i, "0") end } end result end alias makonet008_show show def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) if $game_map.screen.makonet008_picture_name @makonet008_base_name = $game_map.screen.makonet008_picture_name name = makonet008_convert_variable(@makonet008_base_name) $game_map.screen.makonet008_picture_name = nil else @makonet008_base_name = nil end makonet008_show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) end def makonet008_update_name if @makonet008_base_name @name = makonet008_convert_variable(@makonet008_base_name) end end end class Game_Variables alias makonet008_on_change on_change def on_change makonet008_on_change if !$game_map.screen.makonet008_no_immediately $game_map.screen.pictures.each{|pic| pic.makonet008_update_name } end end end