Advertisement
Guest User

Untitled

a guest
Nov 27th, 2017
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.42 KB | None | 0 0
  1. =begin
  2. 使い方:
  3.  ・差し替えたい画像を640x480のpngで用意する
  4.  ・ファイル名の頭を「x_」にする ※ファイル名に日本語は使わない
  5.  ・Graphics/Pictures/に用意した画像を入れる
  6.  ・ゲーム中Sキーで用意した画像を呼び出せる
  7.  ・戦闘中に呼び出した場合、戦闘中の敵の画像が差し替わる
  8.  ・マップで呼び出した場合、次にエンカウントする敵の画像が差し替わる
  9.  ・複数の画像を用意した場合、Sキーを押す度に切り替わる
  10.  ・一度画像を差し替えた敵は次にエンカウントした時も差し替わったままになる
  11.  ・ファイル名末尾に「_g1」「_s1」など付けることで差分になる 詳しくはオリジナルの画像ファイル参照
  12. =end
  13.  
  14.  
  15. class Scene_Base
  16. #------------------------------------------------------------------------------
  17.   def init_retka_pictures
  18.     @retka_pictures = Dir.glob('Graphics/Pictures/x_*.png')
  19.     @retka_pictures.delete_if {|picture_name| picture_name =~ /x_(.+?)_(.+?)/ }
  20.     for picture_name in @retka_pictures
  21.       picture_name.gsub!(/Graphics\/Pictures\/(.+?)\.png/,'\1')
  22.     end
  23.     @retka_picture_index = -1
  24.   end
  25. #------------------------------------------------------------------------------
  26.   def update_retka_pictures
  27.     Sound.play_decision
  28.     @retka_picture_index += 1
  29.     @retka_picture_index = 0 if @retka_picture_index > @retka_pictures.length - 1
  30.     for i in 5..17
  31.       $game_troop.screen.pictures[i].erase
  32.     end
  33.     $game_variables[141] = 999 if !$game_temp.in_battle
  34.     $game_variables[1001][$game_variables[141]] = @retka_pictures[@retka_picture_index]
  35.   end
  36. #------------------------------------------------------------------------------
  37. end
  38. #==============================================================================
  39. class Scene_Map < Scene_Base
  40. #------------------------------------------------------------------------------
  41.   alias retka_start start
  42.   def start
  43.     $game_variables[1001] = [] if !$game_variables[1001].is_a?(Array)
  44.     init_retka_pictures
  45.     $game_map.screen.pictures[3].erase
  46.     retka_start
  47.   end
  48.   alias retka_update update
  49.   def update
  50.     if Input.trigger?(Input::Y)
  51.       update_retka_pictures
  52.       $game_map.screen.pictures[3].show(@retka_pictures[@retka_picture_index], 0, 640*3/4, 0, 25, 25, 255, 0)
  53.     end
  54.     retka_update
  55.   end
  56. #------------------------------------------------------------------------------
  57. end
  58. #==============================================================================
  59. class Scene_Battle < Scene_Base
  60. #------------------------------------------------------------------------------
  61.   alias retka_start start
  62.   def start
  63.     init_retka_pictures
  64.     retka_start
  65.   end
  66. #------------------------------------------------------------------------------
  67.   alias retka_update update
  68.   def update
  69.     if Input.trigger?(Input::Y)
  70.       update_retka_pictures
  71.       $game_troop.screen.pictures[3].show(@retka_pictures[@retka_picture_index], 0, 0, 0, 100, 100, 255, 0)
  72.     end
  73.     retka_update
  74.   end
  75. #------------------------------------------------------------------------------
  76. end
  77. #==============================================================================
  78. class Game_Picture
  79. #------------------------------------------------------------------------------
  80.   alias retka_show show
  81.   def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  82.     retka_show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  83.     x_name = $game_variables[1001][$game_variables[141]]
  84.     if $game_temp.in_battle && $game_variables[1001][999]
  85.       x_name = $game_variables[1001][999]
  86.       $game_variables[1001][$game_variables[141]] = x_name
  87.       $game_variables[1001][999] = nil
  88.     end
  89.     if name =~ /^[0-9]+_/ && $game_temp.in_battle && x_name
  90.       name.gsub!(/^[0-9]+/, x_name)
  91.       if name =~ /_s([0-9]+)$/ && !FileTest.exist?("Graphics/Pictures/" + name +".png")
  92.         i = $1.to_i
  93.         while i > 0
  94.           new_name = name.gsub(/_s([0-9]+)$/, "_s" + i.to_s)
  95.           if FileTest.exist?("Graphics/Pictures/" + new_name +".png")
  96.             name = new_name
  97.             break
  98.           end
  99.           i -= 1
  100.         end
  101.       end
  102.     end
  103.     name = x_name if x_name && !FileTest.exist?("Graphics/Pictures/" + name +".png")
  104.     @name = name
  105.   end
  106. #------------------------------------------------------------------------------
  107. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement