rebf-gaiden/Scripts/_by_.rb
2025-04-26 17:06:34 -05:00

74 lines
No EOL
2.8 KiB
Ruby

=begin =======================================================================
☆ 命中率の仕様変更 by 白雪レイカ
-------------------------------------------------------------------------------
キャラクターの命中率の合計が100%以上であれば、余剰分で相手の
回避率を減算することができるようにします。
また、魔法命中率を定義することができるようになります。
魔法は基本的に必中なので、命中率がプラスだと相手の回避率を減算、
マイナスだと相手の回避率を加算という感じの処理になります。
-------------------------------------------------------------------------------
◆使い方
・魔法命中率の定義
アクター/エネミー/ステート/装備/職業のメモ欄に
<魔法命中率(またはm_hit) (数値:%)>
と記述することで、
そのアクターetcに魔法命中率が数値分だけ加算されます。
数値にはマイナスの値を入れることもできます。
その場合、魔法命中率が減算されることになります。
◆おことわり
改造・再配布等自由です。
再配布の際には作者の明示をお願いします。
バグを発見したら速やかにご報告ください。
=end
class Game_Battler
#--------------------------------------------------------------------------
# ● スキル/アイテムの回避率計算(再定義)
#--------------------------------------------------------------------------
def item_eva(user, item)
if item.physical?
return eva if user.hit <= 1
return eva - (user.hit - 1)
end
return mev - user.magical_hit if item.magical?
return 0
end
#--------------------------------------------------------------------------
# ● 魔法命中率を計算
#--------------------------------------------------------------------------
def magical_hit
hit = 0
self.states.each do |state|
hit += state.magical_hit
end
if self.actor?
hit += actor.magical_hit
hit += self.class.magical_hit
self.equips.each do |equip|
next unless equip
hit += equip.magical_hit
end
else
hit += enemy.magical_hit
end
return hit
end
end
class RPG::BaseItem
#--------------------------------------------------------------------------
# ● 魔法命中率の取得
#--------------------------------------------------------------------------
def magical_hit
@note.each_line do |line|
line.scan(/(?:m_hit|魔法命中率)\s*(\-*\d+)/)
return $1.to_i * 0.01 if $1
end
return 0
end
end