物理ダメージ率・魔法ダメージ率の変更

ヨンゲキ

ユーザー
デフォルトの特殊能力値に物理ダメージ率・魔法ダメージ率がありますよね

あれは自分の受けたダメージを〇○%カットするということですが
逆に自分が攻撃した場合の物理・魔法ダメージ率を〇○%アップするという設定はできないでしょうか
簡単に言うと昔のドラクエのバイギルトを作りたいです。(攻撃力を2倍ではなく、与えるダメージを2倍)

ステートID100(バイギルト)でダメージ×(a.state?(100)? 2:1)
の式をいれる方法もあるみたいですが、全ての物理スキルに入れないといけないので大変
 
直接の解決方法ではありませんが、「誰かへの宣戦布告」様で配布されている計算式簡略化スクリプトで
その計算式を設定すれば、かなり手間が省けるかと。計算式の変更もスクリプトに書いてある方一つを変更するだけでよくなります。(すでに計算式色々設定してる場合は、書き直しになるので手間は変わらないですが……まぁ後々の為ということで)
あと、その計算式でやるなら別にダメ率を変更する必要ないです。ステートの中身は設定せずガワだけで
計算式で条件分岐して倍化してるので。

もしくは、ゴリ押しの見せかけで、バイキルト(ダメ率200%で)をかける対象を敵にしてアニメーションを味方にするとか……。

ダメ率を与える方でのみ使用なら、それ自体を直接機能変更しても問題ないでしょうが
カットでも利用するなら、新規機能として作ってもらったほうが確実にいいと思います。(スクリプトは作れないので他の方にバトンタッチ)
 

まっつUP

ユーザー
ヨンゲキ様
スクリプトを作成いたしましたのでお試しください。
(コピペしてください。)

コード:
=begin #-----------------------------------------------------------------------

<物理攻撃与ダメージ率・魔法攻撃与ダメージ率>
作者:まっつUP

アイテム(スキル)の命中タイプそれぞれについて
このスクリプト内の設定に任意のステートIDを指定してください。
行動主体(使用者)のそのIDのステート有効度をダメージに上乗せします。
なお、ステートにかかっているかどうかは関係ありません。

【利用規約】
RPGツクールVXACE(RGSS3)上以外での使用禁止
スクリプト単体での販売禁止

=end #-------------------------------------------------------------------------

  #--------------------------------------------------------------------------
  # 設定
  #--------------------------------------------------------------------------
 
  #物理攻撃に使うステートID
  PHYATT_STATEID = 10
  #魔法攻撃に使うステートID
  MAGATT_STATEID = 10

  #--------------------------------------------------------------------------
  # 設定は以上です。
  #--------------------------------------------------------------------------
 
$PHYATTHIT = 0
 
class RPG::UsableItem::Damage
  #--------------------------------------------------------------------------
  # ● ダメージ計算(alias)
  # hittypeは0が必中、1が物理攻撃、2が魔法攻撃
  #--------------------------------------------------------------------------
  alias :PHYATT_eval :eval
  def eval(a, b, v)
    fum = PHYATT_eval(a, b, v)
    return fum if fum == 0
    fum *= a.state_rate(PHYATT_STATEID) if $PHYATTHIT == 1
    fum *= a.state_rate(MAGATT_STATEID) if $PHYATTHIT == 2
    return fum
  end
end

class Game_Battler
 #--------------------------------------------------------------------------
 # ● ダメージ計算
 #--------------------------------------------------------------------------
  alias :PHYATT_make_damage_value :make_damage_value
  def make_damage_value(user, item)
    $PHYATTHIT = item.hit_type
    PHYATT_make_damage_value(user, item)
  end
end
 

ヨンゲキ

ユーザー
>まっつUPさん
わざわざスクリプトを製作していただき、どうもありがとうございました
 
トップ