#=========================================================================== # ◆ A1 Scripts ◆ # 拡張条件分岐定義例(RGSS3) # # バージョン : 1.00 (2012/01/05) # 作者 : A1 # URL     : http://a1tktk.web.fc2.com/ #--------------------------------------------------------------------------- # 機能: # ・拡張条件分岐の定義例です #--------------------------------------------------------------------------- # 更新履歴   :2012/01/05 Ver1.00 リリース #--------------------------------------------------------------------------- # 設置場所 #  A1共通スクリプトより下 #  拡張条件分岐メソッドより下 # # 必要スクリプト # A1共通スクリプトVer3.80以上 #  拡張条件分岐メソッド #--------------------------------------------------------------------------- # 使い方 # 拡張条件分岐メソッド定義 に コマンドとメソッドの紐付けを行います # # ハッシュ @cmd_111 の key に コマンド # ハッシュ @cmd_111 の value に 紐付けるメソッドの symbol を記述します # # Game_Interpreter クラスに、紐付けた symbol のメソッドを定義します # # 拡張条件分岐の「条件」が、引数で渡されます # # 例:コマンド「向き?」に対して、メソッド「is_direction?」を定義 # 拡張条件分岐の書式を以下にする # # 向き?,[event,direction] # # この場合、is_direction? の引数として # 配列 [event,direction] が渡されます # # 定義例では、params[0] (event) が "プレイヤー" の場合 $game_player を # それ以外の場合は params[0].to_i で整数にして # $game_map.events[params[0].to_i] を取得しています # # 取得した event に対し、定数 DIRECTION_SET で定義した向きと照合し # 照合した結果を返す と言う処理を行っています # # 拡張条件分岐 向き?,[プレイヤー,右] # # とした場合、プレイヤーの向きが右の場合に true を返します #============================================================================== $imported ||= {} $imported["A1_ExConditionExample"] = true if $imported["A1_ProcExCondition"] && $imported["A1_Common_Script"] old_common_script("拡張条件分岐定義例", "3.80") if common_version < 3.80 #============================================================================== # ■ A1_System::CommonModule #============================================================================== class A1_System::CommonModule #-------------------------------------------------------------------------- # ○ 拡張条件分岐メソッド定義 #-------------------------------------------------------------------------- alias a1_isdash_define_condition_method define_condition_method def define_condition_method a1_isdash_define_condition_method @cmd_111["ダッシュ中?"] = :is_dash? @cmd_111["向き?"] = :is_direction? end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ○ 定数 #-------------------------------------------------------------------------- DIRECTION_SET = {"下" => 2, "左" => 4, "右" => 6, "下" => 8} #-------------------------------------------------------------------------- # ○ ダッシュ中? #-------------------------------------------------------------------------- def is_dash?(params) return $game_player.dash? unless params return params == "not" ? !$game_player.dash? : $game_player.dash? end #-------------------------------------------------------------------------- # ○ 向き? #-------------------------------------------------------------------------- def is_direction?(params) event = params[0] == "プレイヤー" ? $game_player : $game_map.events[params[0].to_i] return event.direction == DIRECTION_SET[params[1]] end end end