特定属性のアイテム / スキル / 攻撃を反射するステートを作成する

p-sight: Annex - Make Reflection State

Tag: 戦闘関連 / ステート

説明

特定の属性を持つスキルを反射するステートを作成可能になります。

※導入の際に任意の属性を計算から除外するを導入しておかないと属性計算に不具合が生じます。

設定可能な項目

REFLECTION_STATES

ステート名とそのステートに掛かると反射される属性、 さらに反射の際に表示されるアニメーションIDを格納した二次配列です。
["ステート名", "反射属性", アニメーションID]の順で設定してください。

REFLECTION_STATES = [
     ["炎反射","炎", 0],
     ["マジックシールド", "魔術", 12],
]

上記のようにした場合、「炎反射」のステートに掛かっている場合は「炎」属性のスキルを反射します。
この時、アニメーションIDを0に指定すると、反射時にアニメーションが表示されません。
「マジックシールド」のステートにかかっている場合は、「魔術」属性のスキルを反射します。
また、反射する際にアニメーションID12のアニメが反射したバトラーに表示されます。

REFLECTION_DAMAGE_REPEAT

反射ダメージの重複設定です。 これを true にするとダメージが重複するようになります。
例えば敵三体全体に攻撃した際、それら全てが反射された場合、 自分が受けるダメージは三倍になります。

REFLECTION_DAMAGE_REPEAT = false ]

使い方

上記の配列で設定した名前のステートを作成してください。

反射の法則

敵から味方、あるいは味方から敵に向かって行った行動が反射した場合は、「自分自身」に反射されます。
例えばクロスカットで敵を攻撃した際、その敵が「対 不死」属性を反射した場合は、クロスカットを実行したキャラクターに反射されます。
敵から敵、あるいは味方から味方、同じグループに向けて行った行動が反射された場合は、相手グループの誰かにランダムで反射されます。
例えば味方に回復呪文を使った際、それらが反射した場合は敵の誰かに回復呪文が適用されます。

また、一度反射された行動に関しては二度と反射されることはありません。
仮にお互いが「魔術」属性を反射するステートにかかっていたとしても、相手に魔術を使い、それが反射された時点で抵抗は不可能になります。

他のスクリプトとの競合について

再定義しているメソッド

なし

aliasを使って再定義しているメソッド

正常に動作しない場合は、以下のメソッドが他のRGSS素材で再定義されていないかなどを確認してください。

class Game_Battler
 def initialize

class Scene_Battle
 def update_phase4_step3
 def update_phase4_step4
 def update_phase4_step6

特殊な方法で再定義しているメソッド

以下の三つのメソッドはaliasを用いての再定義ですが、引数の数を一つ増やしています。
そのため、他に再定義しているメソッド、がある場合はそれらの一番最後に再定義されるように設定してください。

class Game_Battler
 def attack_effect(attacker) → def attack_effect(attacker, reflected = false)
 def skill_effect(user, skill) → def skill_effect(user, skill, reflected = false)
 def item_effect(item) → def item_effect(item, reflected = false)

ソースと導入方法

導入方法

スクリプトの「Scene_Battle 4」より下、「Main」よりも上に以下のソースを丸々挿入してください。

ソースと更新履歴

Make Reflection State: ソース

更新履歴

2006 12/11 公開。


This page is written in Japanese(Shift_JIS)
(c) T-Akf, in p-sight