#◆◇◆◇◆ ☆ 反転表示バトラー ver 1.01 ◇◆◇◆◇ # ☆ マスタースクリプト ver 2.00 以降専用 # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin ■ 更新履歴 ver 1.01(2008/6/24) 汎用性を向上 セクション指定上下関係 A・C・A・システム ↓ このスクリプト 説明 従来のツクールから削除された機能の一つに 「エネミーの反転配置」があります。 これをRGSSで擬似復活させました。 設定には、 まず カスタマイズ で反転表示を許可するトループを設定してください。 そのIDのトループのエネミーは「不死身」が反転表示に置き換わります。 このとき、不死身は無効化され、 不死身にチェックを入れたエネミーは反転して表示されます。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # 反転表示バトラー( true で有効 / false で無効 ) RGSS["Mirror_Battler"] = true end #============================================================================== # ☆ カスタマイズ #------------------------------------------------------------------------------ # 機能のカスタマイズを行うモジュールです。 #============================================================================== module MINTO # 不死身を反転表示に置き換えるトループID # このIDのトループのエネミーは不死身が反転表示になります # [1, 2, 3] といったように配列式で記入してください。 Mirror_ID = [1, 2, 3] end if MINTO::RGSS["Mirror_Battler"] #============================================================================== # ■ Game_Battler (分割定義 1) #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :mirror # 反転表示フラグ end #============================================================================== # ■ Game_Enemy #------------------------------------------------------------------------------ #  エネミーを扱うクラスです。このクラスは Game_Troop クラス ($game_troop) の # 内部で使用されます。 #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● オブジェクト初期化 # troop_id : トループ ID # member_index : トループメンバーのインデックス #-------------------------------------------------------------------------- alias initialize_Mirror_Battler initialize def initialize(troop_id, member_index) # 元の処理を実行 initialize_Mirror_Battler(troop_id, member_index) # トループIDが反転許可トループの場合 if MINTO::Mirror_ID.include?(troop_id) # 不死身を無効化し、反転表示に置き換える @mirror = @immortal @immortal = false end end end #============================================================================== # ■ Sprite_Battler #------------------------------------------------------------------------------ #  バトラー表示用のスプライトです。Game_Battler クラスのインスタンスを監視し、 # スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_Mirror_Battler update def update # 元の処理を実行 update_Mirror_Battler if @battler != nil and @_animation.to_a == [] self.mirror = @battler.mirror end end #-------------------------------------------------------------------------- # ● セルリンク更新 #-------------------------------------------------------------------------- def cell_link_update(id, cell_data, i = 0) if @battler.animation_hit && id > 0 if i == Data_Animations.data[id].action_cell_id - 1 $game_temp.now_animation = true if $scene.is_a?(Scene_Map) if cell_data[i, 1] self.x = @character.screen_x + cell_data[i, 1] end if cell_data[i, 2] self.y = @character.screen_y + cell_data[i, 2] end else if cell_data[i, 1] self.x = @battler.screen_x + cell_data[i, 1] end if cell_data[i, 2] self.y = @battler.screen_y + cell_data[i, 2] end end case cell_data[i, 7] when 0 if cell_data[i, 3] self.zoom_x = cell_data[i, 3] / 100.0 end when 1 if cell_data[i, 3] self.zoom_x = cell_data[i, 3] / 100.0 self.zoom_y = cell_data[i, 3] / 100.0 end when 2 if cell_data[i, 3] self.zoom_y = cell_data[i, 3] / 100.0 end end if cell_data[i, 4] self.angle = cell_data[i, 4] end if cell_data[i, 6] self.opacity = cell_data[i, 6] end mirror = (cell_data[i, 5] == 1) if mirror self.mirror = (not @battler.mirror) end end end end #-------------------------------------------------------------------------- # ● セルリンク更新 #-------------------------------------------------------------------------- def cell_link_update2(id, cell_data, i = 0) if @battler.animation_hit && id > 0 if i == Data_Animations.data[id].action_cell_id2 - 1 $game_temp.now_animation = true if cell_data[i, 1] self.x = @battler.screen_x + cell_data[i, 1] end if cell_data[i, 2] self.y = @battler.screen_y + cell_data[i, 2] end case cell_data[i, 7] when 0 if cell_data[i, 3] self.zoom_x = cell_data[i, 3] / 100.0 end when 1 if cell_data[i, 3] self.zoom_x = cell_data[i, 3] / 100.0 self.zoom_y = cell_data[i, 3] / 100.0 end when 2 if cell_data[i, 3] self.zoom_y = cell_data[i, 3] / 100.0 end end if cell_data[i, 4] self.angle = cell_data[i, 4] end if cell_data[i, 6] self.opacity = cell_data[i, 6] end mirror = (cell_data[i, 5] == 1) if mirror self.mirror = (not @battler.mirror) end end end end end end