# # ラーニング装備(RGSS2) #  (C)2008 TYPE74RX-T # # ※:カスタマイズポイント…15行目 #============================================================================== # ★ RX_T #------------------------------------------------------------------------------ #  設定用 #============================================================================== module RX_T RX_Learning_Comment = "をラーニング!" # ラーニング時メッセージ end #-------------------------------------------------------------------------- # ★ システムワードの登録:ラーニング・修得可能 #-------------------------------------------------------------------------- module RPG class BaseItem alias rx_rgss2bo12_rx_extract_sys_str_from_note rx_extract_sys_str_from_note def rx_extract_sys_str_from_note rx_get_sys = RX_T.get_system_word_in_note(@note, "ラーニング") unless rx_get_sys == "" @@rx_copy_str += rx_get_sys @note = @note.sub(rx_get_sys, "") @note = @note.sub("\r\n", "") end rx_get_sys = RX_T.get_system_word_in_note(@note, "修得可能") unless rx_get_sys == "" @@rx_copy_str += rx_get_sys @note = @note.sub(rx_get_sys, "") @note = @note.sub("\r\n", "") end @rx_sys_str = @@rx_copy_str # メソッドを呼び戻す rx_rgss2bo12_rx_extract_sys_str_from_note end end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ★ 行動者が「修得可能」系のスキルを # ラーニング能力を持った装備をした対象アクターに使ったなら # trueを返す #-------------------------------------------------------------------------- def rx_actor_learning_mode(target) if @active_battler.action.skill? and target.actor? and RX_T.check_system_word_in_equip(target.rx_sys_str, "ラーニング") and RX_T.check_system_word_in_sys_str($data_skills[@active_battler.action.skill_id], "修得可能") return true end return false end #-------------------------------------------------------------------------- # ★ HP または MP にダメージを受けているか # (ステート変化無しが前提。命中しない、ミスの場合はfalseを返す) #-------------------------------------------------------------------------- def rx_damage_only_check(target) if (target.hp_damage > 0 or target.mp_damage > 0) and not (target.missed or target.evaded) and not target.states_active? return true end return false end #-------------------------------------------------------------------------- # ★ ラーニング処理 #-------------------------------------------------------------------------- def rx_learning(target) # 修得済みなら処理終了 return if target.skills.include?(@active_battler.action.skill) # スキル修得 target.learn_skill(@active_battler.action.skill_id) # ラーニング表示 text = target.name + "は" + $data_skills[@active_battler.action.skill_id].name + RX_T::RX_Learning_Comment @message_window.add_instant_text(text) wait(20) end #-------------------------------------------------------------------------- # ● ステート変化の表示 # target : 対象者 # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias rx_rgss2bo12_display_state_changes display_state_changes def display_state_changes(target, obj = nil) # ★ ラーニング条件を満たしていたらラーニング if rx_damage_only_check(target) and rx_actor_learning_mode(target) rx_learning(target) return end # メソッドを呼び戻す rx_rgss2bo12_display_state_changes(target, obj) end #-------------------------------------------------------------------------- # ● 付加されたステートの表示 # target : 対象者 # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias rx_rgss2bo12_display_added_states display_added_states def display_added_states(target, obj = nil) # メソッドを呼び戻す rx_rgss2bo12_display_added_states(target, obj) # ★ ラーニング条件を満たしていたらラーニング rx_learning(target) if rx_actor_learning_mode(target) end end