#============================================================================== # 一撃必殺!! ver1.00 #------------------------------------------------------------------------------ #[特徴] # 属性修正値が一定値以上のとき、確率で一撃死させます。 # 一撃死させるときは、最大HP分のダメージを与えます。 # #[使用上の注意] # 特になし。 # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.00 公開 #============================================================================== #============================================================================== # 設定項目 #============================================================================== module Kazari module SUDDEN_DEATH # ◆ 一撃死させる属性修正値の設定 ◆ # この数値以上のとき、一撃死させます。 ELEMENT_RATE = 200 # ◆ エネミーのデフォルトの一撃死率の設定 ◆ # メモ欄に と書くと、個別に設定できます。 RATE = 15 # ◆ アクターのデフォルトの一撃死率の設定 ◆ # アクターに適用させたくない場合は 0 に設定してください。 ACTOR_RATE = 0 end end #============================================================================== # ここまで #============================================================================== #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :sudden_death #-------------------------------------------------------------------------- # ● 行動効果の保持用変数をクリア #-------------------------------------------------------------------------- alias kazari_sudden_death__clear_action_results clear_action_results def clear_action_results kazari_sudden_death__clear_action_results @sudden_death = false end #-------------------------------------------------------------------------- # ● 属性の最大修正値の取得 #-------------------------------------------------------------------------- alias kazari_sudden_death_elements_max_rate elements_max_rate def elements_max_rate(element_set) rate = kazari_sudden_death_elements_max_rate(element_set) @sudden_death = calc_sudden_death_rate(rate) > rand(100) return rate end #-------------------------------------------------------------------------- # ● 通常攻撃によるダメージ計算 #-------------------------------------------------------------------------- alias kazari_sudden_death_make_attack_damage_value make_attack_damage_value def make_attack_damage_value(attacker) kazari_sudden_death_make_attack_damage_value(attacker) @hp_damage = maxhp if @sudden_death end #-------------------------------------------------------------------------- # ● スキルまたはアイテムによるダメージ計算 #-------------------------------------------------------------------------- alias kazari_sudden_death_make_obj_damage_value make_obj_damage_value def make_obj_damage_value(user, obj) kazari_sudden_death_make_obj_damage_value(user, obj) unless obj.damage_to_mp @hp_damage = maxhp if @sudden_death end end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 一撃死の確率取得 #-------------------------------------------------------------------------- def calc_sudden_death_rate(element_rate) if element_rate < Kazari::SUDDEN_DEATH::ELEMENT_RATE return 0 else return Kazari::SUDDEN_DEATH::ACTOR_RATE end end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● 一撃死の確率取得 #-------------------------------------------------------------------------- def calc_sudden_death_rate(element_rate) if element_rate < Kazari::SUDDEN_DEATH::ELEMENT_RATE return 0 else return enemy.sudden_death_rate end end end #============================================================================== # ■ RPG::Enemy #============================================================================== module RPG class Enemy def sudden_death_rate note.each_line { |line| case line when //i ; return $1.to_i end } return Kazari::SUDDEN_DEATH::RATE end end end