#****************************************************************************** # # * 影付け #009 # # -------------------------------------------------------------------------- # バージョン : 1.0.1 # 対 応 : RPGツクールVX Ace : RGSS3 # 制 作 者 : CACAO # 配 布 元 : http://cacaosoft.web.fc2.com/ # -------------------------------------------------------------------------- # == 概 要 == # # : 影を付け直したり、消したりする機能を追加します。 # # -------------------------------------------------------------------------- # == 注意事項 == # # ※ 開発用のスクリプトです。 # ※ マップデータを上書きするので、実行前にバックアップをお取りください。 # ※ エディタには、開き直すまで反映されません。 # # -------------------------------------------------------------------------- # == 使用方法 == # # ★ 影を付け直す # auto_shadow(*map_id) # auto_shadow!(map_id) # # ★ すべて影を消す # remove_shadow(*map_id) # remove_shadow!(map_id) # # #****************************************************************************** #/////////////////////////////////////////////////////////////////////////////# # # # 下記のスクリプトを変更する必要はありません。 # # # #/////////////////////////////////////////////////////////////////////////////# module Kernel #-------------------------------------------------------------------------- # ● 影を付け直す #-------------------------------------------------------------------------- def auto_shadow!(map_id) filename = sprintf("Data/Map%03d.rvdata2", map_id) map = load_data(filename) map.width.times do |x| map.height.times do |y| map.data[x, y, 3] = map.data[x, y, 3] / 256 * 256 next if x == 0 || y == 0 next unless (4352..8191) === map.data[x - 1, y, 0] next unless (4352..8191) === map.data[x - 1, y - 1, 0] tile_id = map.data[x, y, 0] next if (3152..3199) === tile_id next if (3536..3583) === tile_id next if (3920..3967) === tile_id next if (4304..4351) === tile_id next if !((2816..4351) === tile_id) && !((1552..1663) === tile_id) map.data[x, y, 3] += 5 end end save_data(map, filename) end def auto_shadow(*args) msgbox "マップデータを上書き保存します。\n", "実行前にバックアップをお取りください。" args.each {|map_id| auto_shadow!(map_id) } end #-------------------------------------------------------------------------- # ● 影をすべて消す #-------------------------------------------------------------------------- def remove_shadow!(map_id) filename = sprintf("Data/Map%03d.rvdata2", map_id) map = load_data(filename) map.width.times do |x| map.height.times do |y| map.data[x, y, 3] = map.data[x, y, 3] / 256 * 256 end end save_data(map, filename) end def remove_shadow(*args) msgbox "マップデータを上書き保存します。\n", "実行前にバックアップをお取りください。" args.each {|map_id| remove_shadow!(map_id) } end end