#============================================================================== # ■ RGSS3 ダメージレートステート Ver1.01 by 星潟 #------------------------------------------------------------------------------ # 相手の最大HPに対して一定割合分のダメージを一撃で与える事で # 相手に対して特定のステートを付与します。 # (大きな割合を指定する場合、消去無効ステートとの併用を推奨) #============================================================================== module DamageRateState #空のハッシュを用意。 H = {} #ステートと割合を指定。 #例.H[25] = 50 #この場合、一度に最大HPの50%分のダメージを与える事でステートID25を付与。 H[25] = 25 H[26] = 50 H[27] = 75 #最大の割合のステートしか付与しないようにするかを指定。 #trueで最大の割合のみ。falseで該当する全て。 MaxOne = false end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ダメージの処理 #-------------------------------------------------------------------------- alias execute_damage_overkill execute_damage def execute_damage(user) r = @result.hp_damage.to_f / self.mhp * 100 l = 0 a = [] DamageRateState::H.each {|k,v| next if v > r if DamageRateState::MaxOne next if l >= v a = [k] l = v else a.push(k) end} a.each {|i| add_state(i)} execute_damage_overkill(user) end end