#============================================================================== # ■統合ベーススクリプト拡張ユニットF for RGSS3 Ver1.28-β # □作成者 kure # # 特定の装備の能力を封じるステートを作成するオプションです。 # #============================================================================== $kure_integrate_script = {} if $kure_integrate_script == nil $kure_integrate_script[:integrateEx] = 100 p "統合ベーススクリプトF" #============================================================================== # ■ RPG::State(追加定義) #============================================================================== class RPG::State < RPG::BaseItem #-------------------------------------------------------------------------- # ★ 装備能力封印(追加定義) #-------------------------------------------------------------------------- def seal_equip_ability KURE.arr_num_slice(@note.scan(/<装備能力封印\s?(\d+(?:\s?*,\s?*\d+)*)>/)) end end #============================================================================== # ■ Game_BattlerBase #============================================================================== class Game_BattlerBase #-------------------------------------------------------------------------- # ● ステート情報をクリア(エイリアス) #-------------------------------------------------------------------------- alias k_integrate_ex_before_clear_states clear_states def clear_states k_integrate_ex_before_clear_states return unless actor? @seal_equip_type = [] end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ★ 特徴封印されている装備タイプの配列を取得(追加定義) #-------------------------------------------------------------------------- def seal_equip_type return @seal_equip_type ? @seal_equip_type : [] end #-------------------------------------------------------------------------- # ★ 特徴封印されている装備オブジェクト(追加定義) #-------------------------------------------------------------------------- def seal_equips @equips.collect {|item| item.object}.select{|equip| equip && seal_equip_type.include?(equip.etype_id)} end #-------------------------------------------------------------------------- # ◎ ステートによる追加特徴の発動(エイリアス)(task 0:付与 1:解除) #-------------------------------------------------------------------------- alias k_integrate_ex_before_state_feature_process state_feature_process def state_feature_process(id, task) #統合ベースステート特徴処理 k_integrate_ex_before_state_feature_process(id, task) return unless actor? @seal_equip_type ||= [] case task when 0 ; @seal_equip_type += $data_states[id].seal_equip_ability when 1 ; @seal_equip_type -= $data_states[id].seal_equip_ability end @seal_equip_type.compact! @seal_equip_type.uniq! @equip_cache = [] end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ★ 装備品オブジェクトのメモ取得(追加定義) #-------------------------------------------------------------------------- def equips_note @equips.select{|item| item.object && !item.object.broken? && !seal_equip_type.include?(item.object.etype_id )}.collect{|item| item.object.note}.join end #-------------------------------------------------------------------------- # ◎ 通常能力値の加算値取得(エイリアス) #-------------------------------------------------------------------------- alias k_integrate_ex_before_param_plus param_plus def param_plus(param_id) value = k_integrate_ex_before_param_plus(param_id) return seal_equips.compact.inject(value) {|r, item| r -= item.params[param_id] } end #-------------------------------------------------------------------------- # ◎ 特徴を保持する全オブジェクトの配列取得(エイリアス) #-------------------------------------------------------------------------- alias k_integrate_ex_before_feature_objects feature_objects unless $! def feature_objects k_integrate_ex_before_feature_objects - seal_equips.compact end end