#=========================================================================== # ◆ A1 Scripts ◆ # イベント反転(RGSS3) # # バージョン : 1.10 (2012/01/02) # 作者 : A1 # URL     : http://a1tktk.web.fc2.com/ #--------------------------------------------------------------------------- # 機能: # ・イベントのグラフィックを左右反転します # ・イベントの左右移動を左右反転します #--------------------------------------------------------------------------- # 更新履歴   :2011/12/31 Ver1.00 リリース #    :2012/01/02 Ver1.10 A1共通スクリプトVer3.30対応 #--------------------------------------------------------------------------- # 設置場所 #  A1共通スクリプトより下 # # 必要スクリプト # A1共通スクリプトVer3.30以上 #--------------------------------------------------------------------------- # 使い方 # イベントコマンド「注釈」に記述 # # グラフィック反転 EventID,on|off # EventID-EventID,on|off # # 例:グラフィック反転 12,on ※イベントID12のグラフィックを左右反転します # 例:グラフィック反転 12-47,on ※イベントID12から47のグラフィックを左右反転します # # 移動反転 EventID,on|off # EventID-EventID,on|off # # 例:移動反転 12,on ※イベントID12の左右移動を左右反転します # 例:移動反転 12-47,on ※イベントID12から47の左右移動を左右反転します #============================================================================== $imported ||= {} $imported["A1_EventMirror"] = true if $imported["A1_Common_Script"] old_common_script("イベント反転", "3.30") if common_version < 3.30 #============================================================================== # ■ RPG::Event::Page::Graphic #============================================================================== class RPG::Event::Page::Graphic #-------------------------------------------------------------------------- # ○ グラフィックの反転 #-------------------------------------------------------------------------- def mirror @mirror ||= false return @mirror end #-------------------------------------------------------------------------- # ○ グラフィックの反転 #-------------------------------------------------------------------------- def mirror=(flag) @mirror = flag end end #============================================================================== # ■ RPG::Event::Page #============================================================================== class RPG::Event::Page #-------------------------------------------------------------------------- # ○ 移動方向の反転 #-------------------------------------------------------------------------- def move_mirror @move_mirror ||= false return @move_mirror end #-------------------------------------------------------------------------- # ○ 移動方向の反転 #-------------------------------------------------------------------------- def move_mirror=(flag) @move_mirror = flag end end #============================================================================== # ■ Sprite_Character #------------------------------------------------------------------------------ #  キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを # 監視し、スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # ☆ フレーム更新 #-------------------------------------------------------------------------- alias a1_mirror_event_sc_update update def update a1_mirror_event_sc_update self.mirror = true if @character.mirror end end #============================================================================== # ■ Game_CharacterBase #------------------------------------------------------------------------------ #  キャラクターを扱う基本のクラスです。全てのキャラクターに共通する、座標やグ # ラフィックなどの基本的な情報を保持します。 #============================================================================== class Game_CharacterBase #-------------------------------------------------------------------------- # ☆ 非公開メンバ変数の初期化 #-------------------------------------------------------------------------- alias a1_mirror_event_gcb_init_private_members init_private_members def init_private_members a1_mirror_event_gcb_init_private_members @mirror = false @move_mirror = false end #-------------------------------------------------------------------------- # ○ グラフィック反転フラグ #-------------------------------------------------------------------------- def mirror return @mirror end #-------------------------------------------------------------------------- # ○ 移動方向反転フラグ #-------------------------------------------------------------------------- def move_mirror return @move_mirror end end #============================================================================== # ■ Game_Character #------------------------------------------------------------------------------ #  主に移動ルートなどの処理を追加したキャラクターのクラスです。Game_Player、 # Game_Follower、GameVehicle、Game_Event のスーパークラスとして使用されます。 #============================================================================== class Game_Character < Game_CharacterBase #-------------------------------------------------------------------------- # ☆ 移動コマンドの処理 #-------------------------------------------------------------------------- alias a1_event_mirror_gc_process_move_command process_move_command def process_move_command(command) if @move_mirror case command.code when ROUTE_MOVE_LEFT; command.code = ROUTE_MOVE_RIGHT when ROUTE_MOVE_RIGHT; command.code = ROUTE_MOVE_LEFT when ROUTE_MOVE_LOWER_L; command.code = ROUTE_MOVE_LOWER_R when ROUTE_MOVE_LOWER_R; command.code = ROUTE_MOVE_LOWER_L when ROUTE_MOVE_UPPER_L; command.code = ROUTE_MOVE_UPPER_R when ROUTE_MOVE_UPPER_R; command.code = ROUTE_MOVE_UPPER_L end @move_mirror = false end a1_event_mirror_gc_process_move_command(command) end end #============================================================================== # ■ Game_Event #------------------------------------------------------------------------------ #  イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理 # イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。 #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ☆ イベントページの設定をセットアップ #-------------------------------------------------------------------------- alias a1_event_mirror_ge_setup_page_settings setup_page_settings def setup_page_settings a1_event_mirror_ge_setup_page_settings @mirror = @page.graphic.mirror @move_mirror = @page.move_mirror end #-------------------------------------------------------------------------- # ○ グラフィック反転フラグ #-------------------------------------------------------------------------- def mirror=(flag) @page.graphic.mirror = flag setup_page_settings end #-------------------------------------------------------------------------- # ○ 移動方向反転フラグ #-------------------------------------------------------------------------- def move_mirror=(flag) @page.move_mirror = flag setup_page_settings end end #============================================================================== # ■ A1_System::CommonModule #============================================================================== class A1_System::CommonModule #-------------------------------------------------------------------------- # ☆ 注釈コマンド定義 #-------------------------------------------------------------------------- alias a1_event_mirror_define_command define_command def define_command a1_event_mirror_define_command @cmd_108["グラフィック反転"] = :mirror_graphic @cmd_108["移動反転"] = :mirror_move end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ○ グラフィック反転 #-------------------------------------------------------------------------- def mirror_graphic(params) return event_graphic_mirroring(params[0].to_i, params) unless params[0] =~ /(\d+)-(\d+)/ ($1.to_i..$2.to_i).each {|id| event_graphic_mirroring(id, params) } end #-------------------------------------------------------------------------- # ○ 移動反転 #-------------------------------------------------------------------------- def mirror_move(params) return event_move_mirroring(params[0].to_i, params) unless params[0] =~ /(\d+)-(\d+)/ ($1.to_i..$2.to_i).each {|id| event_move_mirroring(id, params) } end #-------------------------------------------------------------------------- # ○ イベントグラフィック反転 #-------------------------------------------------------------------------- def event_graphic_mirroring(event_id, params) flag = params[1] == "on" ? true : false event = $game_map.events[event_id] event.mirror = flag end #-------------------------------------------------------------------------- # ○ イベント移動方向反転 #-------------------------------------------------------------------------- def event_move_mirroring(event_id, params) flag = params[1] == "on" ? true : false event = $game_map.events[event_id] event.move_mirror = flag end end end