#============================================================================== # ■ RGSS3 有効度・運判定無視ステート Ver1.01 by 星潟 #------------------------------------------------------------------------------ # プリセットスクリプトでは、運の値に一定以上差がついていると # 敵に対する状態異常付与が絶対成功、もしくは絶対失敗してしまいます。 # # このスクリプトを導入する事で # 敵のステート有効度及び運を無視して # その行動に本来設定されている付与確率を元に # ステート付与を行うステートを作成できるようになります。 # (ただし、ステート無効効果は無効化できません) # # ★設定方法 # ステートのメモ欄に<強制付与>と記入する事で # そのステートが有効度・運判定無視ステートとなります。 # #============================================================================== module RATE_THROUGH_STATE #強制付与の際のキーワードを指定します。 WORD = "強制付与" end class RPG::State < RPG::BaseItem #-------------------------------------------------------------------------- # 強制付与の取得 #-------------------------------------------------------------------------- def rate_through_state (@rate_through ||= /<#{RATE_THROUGH_STATE::WORD}>/ =~ note ? 1 : 0) == 1 end end class Game_BattlerBase #-------------------------------------------------------------------------- # ステート有効度の取得 #-------------------------------------------------------------------------- alias state_rate_through state_rate def state_rate(state_id) return 0 if $data_states[state_id].rate_through_state state_rate_through(state_id) end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # 使用効果[ステート付加]:通常攻撃 #-------------------------------------------------------------------------- alias item_effect_add_state_attack_rate_through item_effect_add_state_attack def item_effect_add_state_attack(user, item, effect) user.atk_states.each do |state_id| if $data_states[state_id].rate_through_state && (rand < (effect.value1 * user.atk_states_rate(state_id))) add_state(state_id) @result.success = true end end item_effect_add_state_attack_rate_through(user, item, effect) end #-------------------------------------------------------------------------- # 使用効果[ステート付加]:通常 #-------------------------------------------------------------------------- alias item_effect_add_state_normal_rate_through item_effect_add_state_normal def item_effect_add_state_normal(user, item, effect) if $data_states[effect.data_id].rate_through_state && (rand < effect.value1) add_state(effect.data_id) @result.success = true end item_effect_add_state_normal_rate_through(user, item, effect) end end