74 lines
No EOL
2.7 KiB
Ruby
74 lines
No EOL
2.7 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 |