# # ランダムステートスキル(RGSS2) #  (C)2010 TYPE74RX-T # # ★ ステート変化発動率設定スキルスクリプトと併用する時は # 先にステート変化発動率設定スキルスクリプトを導入してください。 module RPG class BaseItem alias rx2_bo100707_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_sys_str = @@rx_copy_str 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 # メソッドを呼び戻す rx2_bo100707_rx_extract_sys_str_from_note end end end #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● ステート変化の適用 # obj : スキル、アイテム、または攻撃者 #-------------------------------------------------------------------------- alias rx2_bo100707_apply_state_changes apply_state_changes def apply_state_changes(obj) rx2_okay = (obj.kind_of?(RPG::Skill) or obj.kind_of?(RPG::Item)) rx2_p_okay = obj.plus_state_set != nil if rx2_okay # エラー対策 rx2_p_okay = obj.plus_state_set.size > 0 if rx2_p_okay rx2_p_okay = RX_T.check_system_word_in_sys_str(obj, "ランダムステート") if rx2_p_okay rx2_m_okay = obj.minus_state_set != nil if rx2_okay # エラー対策 rx2_m_okay = obj.minus_state_set.size > 0 if rx2_m_okay rx2_m_okay = RX_T.check_system_word_in_sys_str(obj, "ランダム回復ステート") if rx2_m_okay # ★ ランダムステート処理 if rx2_p_okay rx_copy_state_set = [] rx_copy_state_set.concat(obj.plus_state_set) # ★ 元データを待避 rx_random_st = obj.plus_state_set[rand(obj.plus_state_set.size)] obj.plus_state_set = [rx_random_st] # ★ ランダムで決まった1ステートにデータ書き換え end # ★ ランダム回復ステート処理 if rx2_m_okay rx_copy_state_set_m = [] rx_copy_state_set_m.concat(obj.minus_state_set) # ★ 元データを待避 rx_random_st = obj.minus_state_set[rand(obj.minus_state_set.size)] obj.minus_state_set = [rx_random_st] # ★ ランダムで決まった1ステートにデータ書き換え end # メソッドを呼び戻す rx2_bo100707_apply_state_changes(obj) # ★ 待避していたデータを書き戻し obj.plus_state_set = rx_copy_state_set if rx2_p_okay obj.minus_state_set = rx_copy_state_set_m if rx2_m_okay end end