#============================================================================== # ■ RGSS3 ステート行動制限修正 Ver1.01 by 星潟 #------------------------------------------------------------------------------ # プリセットスクリプトでは、行動制限のあるステートにかかっている状態で # 新たに何らかのステートを付与された際、強制的に行動がクリアさせられます。 # この仕様を変更し、行動制限レベルに変動がない場合は # 行動のクリアを行わないように修正します。 # # 例.スクリプト適用前 # 混乱中のキャラクターが行動前に毒を受けた場合 # 混乱による無差別攻撃がキャンセルされる。 # # スクリプト適用後 # 混乱中のキャラクターが行動前に毒を受けた場合でも # 混乱による無差別攻撃はキャンセルされない。 # ただし、制限レベルの高いステート(麻痺や、味方のみを攻撃するステート等)を # 付与された場合は、行動をキャンセルされる。 #------------------------------------------------------------------------------ # Ver1.01 戦闘不能ステート付与時の処理を修正 #============================================================================== class Game_Battler < Game_BattlerBase alias add_new_state_restrict add_new_state def add_new_state(state_id) if restriction == 0 or state_id == death_state_id #元々の制限がない場合 #もしくは指定IDが戦闘不能ステートIDの場合 #プリセットスクリプトの処理を実行する add_new_state_restrict(state_id) else #元々何らかの制限がある場合 #ステート付与前に制限レベルを取得 pre_restriciton = restriction #ステート付与 @states.push(state_id) #付与前と制限レベルを比較して #制限レベルの変動があった場合にのみ行動を制限する。 on_restrict if restriction != pre_restriciton #ステート並び替え sort_states #リフレッシュ refresh end end end