[008] ステート効果時間増減

【ダウンロードはこちらから】   【サンプルプロジェクト】

「強化ステートを長続きさせたい、妨害ステートを短縮してしまいたい!」

 そういう人にオススメな、『ステートの有効時間を増減する』ような装備・状態を作る事ができるスクリプトです。



<仕様>

●自然解除されるステートについて、「与えるステート」「受けるステート」の両方について、その効果時間を延長・短縮する効果を持った装備/ステート/エネミーを作成することができます。延長・短縮する時間は、ターン単位で決まります。

●ステート数個をひとまとまりのグループとして設定し、まとめて複数のステートについても設定することができます。

●戦闘開始時に自動でステートがかかる『スタートステート』、またそれが自然に解除されない『オートステート』、逆に戦闘開始時に解除されてしまうステートも作成できます。謎解き系で戦闘もするような場合は、もしかすると戦闘開始時解除も役に立つ…のかもしれない。

●言わばFF13の装備アビリティ『強化系時間延長』『防御系時間延長』に相当するような効果を与えます。
ちなみに、私の一周目のパーティは「サッズ・ホープ・ファング」でした。
クリア後はサッズではなくスノウを使っていました。どうでもいいですね。



<使用できる書式>

「装備」「ステート」「エネミー」のメモ欄に以下のタグを記入することで、効果を付加します。
 本スクリプトのタグは、全て「装備」「ステート」「エネミー」への記入に対応しています。
  ◆装備…そのアイテムを装備している限り有効です。
  ◆ステート…そのステートに掛かっている限り有効です。
  ◆エネミー…そのエネミーの基本性能として設定されます。常時有効。

\enstate_ex[x,y]
 自分がステートID x番のステートを相手に与えた時効果時間が「+y」ターンされます。
 yには、負の数も指定できます。
 例1:\enstate_ex[3,4]→ステートID 3番のステートを与える場合、有効時間を4ターン延長。
 例2:\enstate_ex[9,-1]→ステートID 9番のステートを与える場合、有効時間を1ターン短縮。

\mystate_ex[x,y]
 自分がステートID x番のステートにかかった時効果時間が「+y」ターンされます。
 yには、負の数も指定できます。
 例1:\mystate_ex[10,3]→ステートID 10番のステートになる場合、有効時間を3ターン延長。
 例2:\mystate_ex[4,-3]→ステートID 4番のステートになる場合、有効時間を3ターン短縮。

\enstate_good[y] / \mystate_good[y]
 カスタマイズポイント『有利ステート』との連動機能です。
 自分が有利ステート与えた/受けた時効果時間が「+y」ターンされます。
 enstateとmystateの使い分けは上と同じです。
 例1:\enstate_good[2] → 相手に与える有利状態の有効時間を2ターン延長。
 例2:\mystate_good[1] → 自分が受けた有利状態の有効時間を1ターン延長。

\enstate_group[x,y] / \mystate_group[x,y]
 カスタマイズポイント『ステートグループ』との連動機能です。
 自分がグループID x番のステートを与えた/受けた時効果時間が「+y」ターンされます。
 enstateとmystateの使い分けは上と同じです。
 例:\enstate_group[1,2]→グループID 1番のステート群を与えた場合、有効時間+2ターン。
 例:\mystate_group[1,-2]→グループID 1番のステート群を与えた場合、有効時間−2ターン。

\no_autoremove
 ステートの自然回復に関するターンカウントが進まなくなり、ステートが自然回復しません。
 装備・ステートに有効です。さすがに素のエネミーがコレだと強すぎる…。

\startstate[x]
 戦闘開始時に一度だけ、ステートID x番のステートが自動で付与されます。
 一つの装備/ステート/エネミーに複数のスタートステートを設定したい場合は、このタグを複数個記入してください。

\autostate[x]
 戦闘開始時に一度だけ、ステートID x番のステートが自動で付与されます。
 一つの装備/ステート/エネミーに複数のオートステートを設定したい場合は、このタグを複数個記入してください。
 \startstate[x]で設定したものと異なり、こちらで設定したものは自然解除されません

\remove_in_battle
 ステートにのみ設定可能なタグです。
 このタグが設定されているステートは、戦闘開始時に(スタートステート&オートステートの処理後に)解除されます。
 このタグを設定したステートにスタートステートを設定しておくことで、FF13のスモーク類をコンパクトに実装できるかも。



<併用・再定義に関する情報>

併用で競合が起きうるスクリプト

●Game_Battlerのdef apply_guardを書き換えているスクリプト
●「強力防御」などアクターオプションを装備などで得られるようにしているスクリプト
●攻撃対象決定ルーチンをいじくっているスクリプト
●Scene_Battleのdef display_failureを書き換えているスクリプト

 これらのスクリプトと併用する場合は、
 ◆各スクリプトを見比べて、うまく切り貼りして移植する
 などの方法で競合によるバグを回避する事ができるかもしれません。