#============================================================================== # ■ RGSS3 戦闘背景キャラクター映り込み許可 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 戦闘背景の作成時、通常はキャラクタースプライトは全て解放(消去)されますが # このスクリプトを導入する事で # 解放するキャラクタースプライトを分けることが出来ます。 # オブジェクトタイプの画像か否かで大まかに仕分けするだけでなく # イベント個別に名前欄に対し設定する事も出来ます。 # # 通常、タイルセットのモードがエリアやVX互換でなければ # マップ画像が戦闘背景になる事は無い為、意味はありません。 #============================================================================== # イベントの名前欄に指定 #------------------------------------------------------------------------------ # # # この文字列が含まれていると、基本設定がtrueでも解放しない。 #------------------------------------------------------------------------------ # # # この文字列が含まれていると、基本設定がfalseでも解放する。 #============================================================================== module SSCharacterDispose #オブジェクトタイプキャラクターを解放するか否かの基本設定。 #(オブジェクトタイプのキャラクターとは # 画像ファイル名の先頭に!がついているキャラクターか # タイルチップの画像が指定されているキャラクターを指します) #trueで解放する。falseで解放しない。 Object = true #非オブジェクトタイプキャラクターを解放するか否かの基本設定。 #(非オブジェクトタイプのキャラクターとは # 画像ファイル名の先頭に!がついておらず # タイルチップの画像が指定されていないキャラクターを指します) #trueで解放する。falseで解放しない。 Unobject = true #解放禁止の設定用キーワードを指定。 EventWord1 = "" #解放対象の設定用キーワードを指定。 EventWord2 = "" #-------------------------------------------------------------------------- # オブジェクトキャラクターか否かによる解放フラグ判定 #-------------------------------------------------------------------------- def self.flag(flag) flag ? Object : Unobject end end class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # バトル画面遷移の前処理 #-------------------------------------------------------------------------- alias pre_battle_scene_dispose_unobject_characters pre_battle_scene def pre_battle_scene @spriteset.dispose_unobject_characters_flag = true pre_battle_scene_dispose_unobject_characters @spriteset.dispose_unobject_characters_flag = nil end end class Spriteset_Map attr_accessor :dispose_unobject_characters_flag #-------------------------------------------------------------------------- # キャラクタースプライトの解放 #-------------------------------------------------------------------------- alias dispose_characters_dispose_unobject_characters dispose_characters def dispose_characters if @dispose_unobject_characters_flag a1 = [] a2 = [] @character_sprites.each {|s| if s.character case s.character.pre_battle_scene_dispose_seal when 0 !SSCharacterDispose.flag(s.character.object_character?) ? a1.push(s) : a2.push(s) when 1 a1.push(s) when 2 a2.push(s) end end} @character_sprites = a2 end dispose_characters_dispose_unobject_characters if @dispose_unobject_characters_flag @character_sprites = a1 end end end class Game_CharacterBase #-------------------------------------------------------------------------- # バトル画面遷移の前処理におけるスプライト解放フラグ判定用値 #-------------------------------------------------------------------------- def pre_battle_scene_dispose_seal 0 end end class Game_Event < Game_Character #-------------------------------------------------------------------------- # バトル画面遷移の前処理におけるスプライト解放フラグ判定用値 #-------------------------------------------------------------------------- def pre_battle_scene_dispose_seal @event.pre_battle_scene_dispose_seal end end class RPG::Event #-------------------------------------------------------------------------- # バトル画面遷移の前処理におけるスプライト解放フラグ判定用値 #-------------------------------------------------------------------------- def pre_battle_scene_dispose_seal @pre_battle_scene_dispose_seal ||= create_pre_battle_scene_dispose_seal end #-------------------------------------------------------------------------- # バトル画面遷移の前処理におけるスプライト解放フラグ判定用値作成 #-------------------------------------------------------------------------- def create_pre_battle_scene_dispose_seal return 2 if name.include?(SSCharacterDispose::EventWord2) return 1 if name.include?(SSCharacterDispose::EventWord1) return 0 end end