【ダウンロードはこちらから】
【サンプルプロジェクト】
「防御にもっと特徴付けをしたい、特に装備品で防御をカスタマイズできるようにしたい!」
そういう人にオススメな、『「防御」コマンドの性能』を拡張するスクリプトです。
●本スクリプトは、「コア機能スクリプト」が必須です。
●「防御行動を取るスキル」を作成できます。防御しながら攻撃するスキルも作れますが、要制作者側でのバランス調整。
●「防御中にダメージを受けると、さらにダメージを軽減できるようになる」、FF13の『ライズガード』の再現が可能です。
他にも、特定のキャラクターのみを狙う『挑発効果』を持ったステートや、オプション『強力防御』の効果を得られる装備・ステートを作成できます。
●オプション「強力防御」について、仕様が変更されています。本スクリプトを導入すると、「防御時の最終ダメージを半減する」効果に変更されます。
●「スキル・アイテム」「装備」「ステート」「エネミー」のうち、特定のもののメモ欄に以下のタグを記入することで、その特殊な効果を付加します。
対応しているものは、タグの横にその記述があります。
◆スキル…その行動を行ったターン中に有効です。
◆装備…そのアイテムを装備している限り有効です。
◆ステート…そのステートに掛かっている限り有効です。
◆エネミー…そのエネミーの基本性能として設定されます。
\guard_skill
◆スキル
そのスキルが「防御」効果を持っているものとして扱います。そのターン中、通常の「防御」と同じようにダメージを軽減します。
デフォルト戦闘の場合、通常の「防御」と同じく、行動も速くなります。
\guard_rate[n]
◆スキル ◆装備 ◆ステート ◆エネミー
n には、正負の整数を符号付きで記入します。符号を省略した場合、正の数として扱います。
例:\guard_rate[+20]
防御行動を行った時、防御率を「+n」します。\guard_rate[+20]の場合、防御時に更に20%のダメージをカットできるようになります。
負の数を指定した場合、防御しても、万全なダメージ軽減が出来なくなります。\guard_rate[-20]の場合、(通常は防御すると防御率が50なので、-20して)防御しても30%しかダメージを軽減できません。
\guard_rise[n]
◆スキル ◆装備 ◆ステート ◆エネミー
防御中にダメージを受けた場合、そのターン中は防御率を「+n」します。
nは正負の整数を符号付きで記入します。符号を省略した場合、正の数として扱います。
この効果は、ターン中であれば何回でも重複します。ターンが終了するとリセットされます。
そのため、nがプラスならダメージを受けるごとに更にダメージを軽減するようになります。マイナスの場合、攻撃を受けるごとにダメージを軽減できなくなっていきます。
\guard_regene[n]
◆スキル
防御中にバトラーが行動した場合、そのたびにHPを「最大値の n %」だけ回復します。
nは正負の整数を符号付きで記入します。符号を省略した場合、正の数として扱います。
\guard_before
◆スキル
「\guard_skill」と同時に記入する事で、行動する前だけ防御する、「行動前防御」のスキルを作ります。
ダメージは軽減しますが、他の防御行動のように、行動順が早まることはありません。
\super_guard
◆スキル ◆装備 ◆ステート ◆エネミー
オプション『強力防御』の効果を得ます。
\attract[n]
◆スキル ◆装備 ◆ステート
敵から若干狙われやすくなります。内部的には、オッズ値を「+n」します。
nは正負の整数を符号付きで記入してください。符号を省略した場合、正の数として扱います。
負の数を指定すると狙われにくくなりますが、\attractによる操作は、nが極端に大きくない限りは「狙われやすくなる」程度なので注意が必要です。また、oddsは0未満になりません。
\challenge
◆ステート
『挑発』の効果を与えるステートを作成します。
このステートを受けたバトラーは、それから回復するまで、『挑発』効果を最後に与えたバトラーのみを単体攻撃の対象にします。全体攻撃は引き寄せることが出来ません。
また、目の仇にされているバトラーが戦闘不能になるか、イベントコマンドでパーティから外れるなど戦闘から離脱した場合、『挑発』効果を含むステートは全てが解除されます。
\guardian_all
◆スキル ◆ステート
敵の攻撃を全て一人で引き受けます。いわゆる「仁王立ち」。
全体攻撃を受ける場合、パーティ生存数の回数だけダメージを受けます。4人生存時に全体攻撃を受けるなら、この状態のバトラーは4回ダメージを受け、他はダメージを受けません。
『挑発』状態で攻撃対象が決まっている敵から、挑発したバトラーが攻撃を受ける場合も、その攻撃を肩代わりします。
併用で競合が起きうるスクリプト
●Game_Battlerのdef apply_guardを書き換えているスクリプト●「強力防御」などアクターオプションを装備などで得られるようにしているスクリプト
●攻撃対象決定ルーチンをいじくっているスクリプト
●Scene_Battleのdef display_failureを書き換えているスクリプト
これらのスクリプトと併用する場合は、
◆各スクリプトを見比べて、うまく切り貼りして移植する
などの方法で競合によるバグを回避する事ができるかもしれません。