# # 職業に特性を付加(ST)(RGSS2) #  (C)2008 TYPE74RX-T # #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 全回復 #-------------------------------------------------------------------------- alias rx_rgss2s7_recover_all recover_all def recover_all # メソッドを呼び戻す rx_rgss2s7_recover_all # ★ 職業に付加すべきステートを付加 rx_set_class_state if actor? end end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors) # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● セットアップ # actor_id : アクター ID #-------------------------------------------------------------------------- alias rx_rgss2s7_setup setup def setup(actor_id) # メソッドを呼び戻す rx_rgss2s7_setup(actor_id) # ★ 職業に付加すべきステートを付加 rx_set_class_state end #-------------------------------------------------------------------------- # ★ 職業に付加すべきステートを付加 #-------------------------------------------------------------------------- def rx_set_class_state rx_adds = RX_T.get_array_of_system_word_in_sys_str(self.class, "職業付加ST:") if rx_adds != [] for state in rx_adds add_state(state) end end end #-------------------------------------------------------------------------- # ★ 職業に付加していたステートを排除(職業変更時) #-------------------------------------------------------------------------- def rx_reset_class_state rx_adds = RX_T.get_array_of_system_word_in_sys_str(self.class, "職業付加ST:") if rx_adds != [] for state in rx_adds remove_state(state) end end end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● 職業の変更 #-------------------------------------------------------------------------- alias rx_rgss2s7_command_321 command_321 def command_321 # ★ アクター情報を取得し、職業に付加していたステートを排除 actor = $game_actors[@params[0]] actor.rx_reset_class_state # メソッドを呼び戻す rx_rgss2s7_command_321 # ★ 職業に付加すべきステートを付加 actor.rx_set_class_state end #-------------------------------------------------------------------------- # ★ 注釈 #-------------------------------------------------------------------------- alias rx_rgss2s7_command_108 command_108 def command_108 # 職業付加ST: if @parameters[0].include?("職業付加ST:") # コマンドを含めた注釈の内容を全取得 string = rx_get_all_parameter(@parameters[0]) # 作業用の配列と最終文字列適用のために使う変数をそれぞれ初期化 before_array = "" array = "" # 数値の文字列のみ全取得し、配列化 before_array = string.scan(/[-10-9]+/) # 職業 ID を取得 class_id = before_array[0].to_i # 職業 ID に使用していた配列を削除 before_array.delete_at(0) # 配列を1つの文字列に再結合 for i in 0...before_array.size array += before_array[i] + ", " end # システムワードに職業付加ST用の配列を付加 $data_classes[class_id].rx_sys_str += "職業付加ST:" + array # 継続(競合対策) return true end # メソッドを呼び戻す rx_rgss2s7_command_108 end end #============================================================================== # ■ Scene_Title #------------------------------------------------------------------------------ #  タイトル画面の処理を行うクラスです。 #============================================================================== class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # ● データベースのロード #-------------------------------------------------------------------------- alias rx_rgss2s7_load_database load_database def load_database # メソッドを呼び戻す rx_rgss2s7_load_database # ★ システムワードが nil ならデータベース上のシステムワードを初期化 for rxi in 1...$data_classes.size $data_classes[rxi].rx_sys_str = "" if $data_classes[rxi].rx_sys_str == nil end end end