#============================================================================== # ■ RGSS3 影・リージョン消去 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 指定したIDのマップから影やリージョンを消去します。 # 全てのマップから同時に消す事も出来ます。 # ※使用前にバックアップを取っておく事を強くお勧めします。 # また、このスクリプトによるデータの消失等が発生した場合でも # 当方は一切責任を取りませんので悪しからず。 #------------------------------------------------------------------------------ # ★使用方法 #------------------------------------------------------------------------------ # ☆全てのマップの影を消す場合 #------------------------------------------------------------------------------ # 方法1 # # 1. このスクリプト65行目のALL_MODEをtrueに指定します。 # # 2. テストプレイを実行します。(テストプレイは自動的に強制終了します) # # 3. "保存せずに"ゲームエディタを閉じます。 # # 4. ゲームエディタを再起動します。 # # 5. 全てのマップから影やリージョンが消滅しています。 #------------------------------------------------------------------------------ # 方法2 # # 1. このスクリプト65行目のALL_MODEをtrueに指定します。 # # 2. マップツリー最上部のゲームタイトル名をクリックし、マップを非表示にします。 # # 3. テストプレイを実行します。(テストプレイは自動的に強制終了します) # # 4. 全てのマップから影やリージョンが消滅しています。 #------------------------------------------------------------------------------ # ☆指定したマップの影を消す場合 #------------------------------------------------------------------------------ # 方法1 # # 1. このスクリプト65行目のALL_MODEをfalseに指定したまま # 71行目のSHADOW_DELETE_MAP_IDに、影を消すマップのIDを指定していきます。 # # 2. テストプレイを実行します。(テストプレイは自動的に強制終了します) # # 3. "保存せずに"ゲームエディタを閉じます。 # # 4. ゲームエディタを再起動します。 # # 5. そのマップから影やリージョンが消滅しています。 #------------------------------------------------------------------------------ # 方法2 # # 1. このスクリプト65行目のALL_MODEをfalseに指定したまま # 71行目のSHADOW_DELETE_MAP_IDに、影を消すマップのIDを指定していきます。 # # 2. マップツリー最上部のゲームタイトル名をクリックし、マップを非表示にします。 # # 3. テストプレイを実行します。(テストプレイは自動的に強制終了します) # # 4. そのマップから影やリージョンが消滅しています。 #============================================================================== #全てのマップの影を消すかどうかの判定です。 #trueにした場合、全マップの影を消去します。 ALL_MODE = false #消去タイプを選択します。 #0で影とリージョン両方、1で影のみ、2でリージョンのみ削除。 TYPE = 0 #指定したマップの影を消去する場合の消去対象配列。 #複数指定する場合は「,」で区切ってマップIDを入力して下さい。 #例 SHADOW_DELETE_MAP_ID = [1,2,3,4,5,6,7,8,9,10] SHADOW_DELETE_MAP_ID = [2] if $TEST #マップ情報をロードする。 $data_mapinfos = load_data("Data/MapInfos.rvdata2") if ALL_MODE#全てのマップを消去する場合 #処理を1000回分実行する。 1000.times {|map_id| #該当マップが存在しない場合は処理を飛ばす。 next unless $data_mapinfos[map_id] #マップデータをロードする。 map = load_data(sprintf("Data/Map%03d.rvdata2", map_id)) #幅と高さの分だけ処理を行う。 map.width.times {|x| map.height.times {|y| #影/リージョンを消去する。 case TYPE when 0;map.data[x,y,3] = 0 when 1;map.data[x,y,3] = map.data[x,y,3] / 256 * 256 when 2;map.data[x,y,3] %= 256 end } } #データを上書きする。 save_data(map, sprintf("Data/Map%03d.rvdata2", map_id)) } elsif !SHADOW_DELETE_MAP_ID.empty?#指定したマップのみデータを消去する場合 #指定したマップ数分だけ処理を実行する。 SHADOW_DELETE_MAP_ID.each {|map_id| #該当マップが存在しない場合は処理を飛ばす。 next unless $data_mapinfos[map_id] #マップデータをロードする。 map = load_data(sprintf("Data/Map%03d.rvdata2", map_id)) #幅と高さの分だけ処理を行う。 map.width.times {|x| map.height.times {|y| #影/リージョンを消去する。 case TYPE when 0;map.data[x,y,3] = 0 when 1;map.data[x,y,3] = map.data[x,y,3] / 256 * 256 when 2;map.data[x,y,3] %= 256 end } } #データを上書きする。 save_data(map, sprintf("Data/Map%03d.rvdata2", map_id)) } end #ゲームを終了する。 exit end