#============================================================================== # パラメータ変化を具体的に表示するスクリプト ver1.10 #------------------------------------------------------------------------------ # [使用方法例] # 攻撃力上昇の場合 # 「の攻撃力が %d 上がった!」 # のように、上がった能力値を表示したいところに「%d」と書く。 # 「%d」と書かなければ、変化した能力値は表示されません。 # # 作成:ぶちょー # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.10 処理を変更 # 新規パラメータ追加に対応 # ver1.00 公開 #============================================================================== #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 付加されたステートの表示 ※ 再定義 #-------------------------------------------------------------------------- def display_added_states(target, obj = nil) for state in target.added_states if target.actor? next if state.message1.empty? text = target.name + state.message1 else next if state.message2.empty? text = target.name + state.message2 end text = sprintf(text, state_rate(target, state)) if state.id == 1 # 戦闘不能 target.perform_collapse end @message_window.replace_instant_text(text) wait(20) end end #-------------------------------------------------------------------------- # ● 変化した能力値を返す #-------------------------------------------------------------------------- def state_rate(battler, state) param = 0 if state.atk_rate != 100 param = battler.get_change_parameter(state.id, 0) elsif state.def_rate != 100 param = battler.get_change_parameter(state.id, 1) elsif state.spi_rate != 100 param = battler.get_change_parameter(state.id, 2) elsif state.agi_rate != 100 param = battler.get_change_parameter(state.id, 3) elsif $kzr_imported["AddNewParameter"] Kazari::AddNewParameter::GAIN_PARAMS.each {|aparam| key = aparam[:key] if state.aparam_rate[key] != 1.0 || state.aparam_plus[key] != 0 param = battler.get_change_parameter(state.id, key) end } end return param end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 変化したパラメータ量を返す #-------------------------------------------------------------------------- def get_change_parameter(state_id, id) case id when 0 ; param = self.atk when 1 ; param = self.def when 2 ; param = self.spi when 3 ; param = self.agi else ; param = aparam(id) end @states.delete(state_id) case id when 0 ; param -= self.atk when 1 ; param -= self.def when 2 ; param -= self.spi when 3 ; param -= self.agi else ; param -= aparam(id) end @states.push(state_id) @states.sort! return Integer(param.abs) end end