特定条件で自動でスキルを発動させるプラグイン – FTKR_AutoInvokeSkill.js

タイトル
特定条件で自動でスキルを発動させるプラグイン
作者名
ヘルプ
-----------------------------------------------------------------------------
概要
-----------------------------------------------------------------------------
特定条件で自動でスキルを発動させることができます。

発動できる条件は、以下の通りです。

1. 行動後に指定した条件式を満たした時
2. 付与されていたステートが解除された時


-----------------------------------------------------------------------------
設定方法
-----------------------------------------------------------------------------
1.「プラグインマネージャー(プラグイン管理)」に、本プラグインを追加して
ください。


2. 他プラグインと組み合わせる場合
当プラグインは以下のプラグインよりも下にしてください。
YEP_BattleEngineCore.js
YEP_X_BattleSysATB.js
および、他のFTKR系プラグイン


-----------------------------------------------------------------------------
アクター、職業、装備、ステートに設定し、行動後に発動させる
-----------------------------------------------------------------------------
以下のタグをアクターや職号、装備、ステートのメモ欄に追記すると
各キャラが行動する度に、設定した条件式を満たした時にスキルを自動発動します。

<AIS_発動条件: x>
条件式
</AIS_発動条件>

または

<AIS_INVOKE_CONDITIONS: x>
条件式
</AIS_INVOKE_CONDITIONS>

x : スキルID


[条件判定するタイミング]
条件判定は、各キャラが行動しする度に毎回行います。
そして、スキルを発動する相手は、そのキャラが行動するときの対象です。

例えば、味方が敵を攻撃した時の場合は、スキルが発動すると、その攻撃する敵に
対して発動します。
逆に、味方が防御するなど、自分を対象とする行動をした場合、スキルを発動する
対象は、そのキャラ自身になります。

このため、条件式には設定したアクターと、行動したキャラ、行動の対象のキャラの
パラメータを参照することができます。
判定はパーティーの先頭から順番に行い、条件を満たしたキャラのスキルを
実行します。


[条件式で使用できるコード]
条件式には、以下のコードを使うことができます。
a.param - 設定したアクターのパラメータを参照します。(a.hp で現在HPを参照)
b.param - 行動の対象キャラのパラメータを参照します。
c.param - 行動したキャラのパラメータを参照します。
item - 使用したスキルのデータを参照します。
s[x] - スイッチID x の状態を参照します。
v[x] - 変数ID x の値を参照します。


例)武器に設定し、その武器を装備したキャラが、敵を攻撃したときのみ
スキルID10を発動させる場合

<AIS_発動条件: 10>
a !== b && a == c
</AIS_発動条件>

上の条件では、a は装備したキャラ、b は攻撃する相手、
c は攻撃したキャラを意味します。
a !== b で装備したキャラが攻撃する相手ではない、
a == c で装備したキャラが攻撃したキャラである
という条件を満たす場合に、スキルID 10 が発動する、となります。


使用したスキルの設定で発動条件を変えることが出来ます。
item.stypeId
- スキルタイプのIDを参照します
0:なし, 1~:データベースのスキルタイプ
item.hitType
- 命中タイプを参照します
0:必中, 1:物理, 2:魔法
item.damage.elementId
- ダメージの属性IDを参照します
-1:通常攻撃, 0:なし, 1~:データベースの属性
item.damage.type
- ダメージタイプを参照します
1:HPダメージ, 2:MPダメージ, 3:HP回復,
4:MP回復, 5:HP吸収, 6:MP吸収, 0:なし

例)物理攻撃タイプのスキルを使用した時のみ、スキルID10を発動させる場合

<AIS_発動条件: 10>
a !== b && a == c
item.hitType == 1
</AIS_発動条件>


-----------------------------------------------------------------------------
スキルに設定し、行動後に指定した条件式を満たした時に発動
-----------------------------------------------------------------------------
以下のタグをスキルのメモ欄に追記すると、設定した条件式を満たしたターンの
終わりに、スキルを自動発動します。
なお、同じスキルは1ターンに1回だけ発動します。

<AIS_発動条件>
条件式
</AIS_発動条件>

または

<AIS_INVOKE_CONDITIONS>
条件式
</AIS_INVOKE_CONDITIONS>


[条件式(eval) の値について]
条件式(eval)は、ダメージ計算式のように、計算式を入力することで、
固定値以外の値を使用することができます。以下のコードを使用できます。
a.param - 行動したキャラのパラメータを参照します。
s[x] - スイッチID x の状態を参照します。
v[x] - 変数ID x の値を参照します。


入力例)
キャラのTPが 50 以上になると自動発動。
<AIS_発動条件>
a.tp >= 50
</AIS_発動条件>


-----------------------------------------------------------------------------
条件式を設定する上での注意点
-----------------------------------------------------------------------------
スキルは、条件を満たした時に発動します。
つまり、条件を満たしている間は常に発動するようになります。
スキルの仕様が、何度も発動してもよいものであれば問題ありませんが
そうでない場合は、何度も発動させないように条件式を設定しましょう。


[複数の条件を設定する場合]
この場合、設定したすべての条件を満たした時に発動します。
以下の表記はすべて同じ意味になります。

1. '&&'を使用して横に並べる
<AIS_発動条件>
条件式1 && 条件式2 && 条件式3
</AIS_発動条件>

2. 縦に並べる
<AIS_発動条件>
条件式1
条件式2
条件式3
</AIS_発動条件>

3. 上記を組み合わせる
<AIS_発動条件>
条件式1 && 条件式2
条件式3
</AIS_発動条件>


-----------------------------------------------------------------------------
ステート解除時に発動
-----------------------------------------------------------------------------
以下のタグをステートのメモ欄に追記すると、ステートを解除(1)した時点(2)で
指定したスキルを自動で発動(3)させます。

<AIS_解除発動: x>
:x - スキルID

(1) ステートの解除条件に設定した内容に従います。
(2) ダメージで解除の場合はダメージを受けた時点で、ターン終了時なら
ターン終了時に発動します。
(3) スキルの範囲が「敵単体」の場合は、「敵1体ランダム」になります。


また、以下のタグを追記すると、解除時に最後にダメージを与えた相手(3)を
スキル発動のターゲットにします。

<AIS_リベンジターゲット>

(3) ダメージ解除の場合は、ダメージを与えた相手です。
解除後にダメージを与えた相手は、ターゲットにしません。


解除時に誰にもダメージを与えられていない場合は、スキルの範囲設定に従い
スキルを発動します。


-----------------------------------------------------------------------------
本プラグインのライセンスについて(License)
-----------------------------------------------------------------------------
本プラグインはMITライセンスのもとで公開しています。
This plugin is released under the MIT License.

Copyright (c) 2017 Futokoro
http://opensource.org/licenses/mit-license.php


フトコロのプラグイン置き場
https://github.com/futokoro/RPGMaker/blob/master/README.md


-----------------------------------------------------------------------------
変更来歴
-----------------------------------------------------------------------------

v1.3.2 - 2018/09/07 : 不具合修正
1. FTKR_AlternatingTurnBattle.jsと組み合わせた時に、複数回行動可能なキャラが
自動スキルを発動させた場合、その次の行動でエラーになる不具合を修正。
2. FTKR_AlternatingTurnBattle.jsと組み合わせた時に、ターン終了の条件で
ステート解除時発動スキルを設定した場合に、次ターンに発動する不具合を修正。

v1.3.1 - 2017/11/04 : ヘルプ修正

v1.3.0 - 2017/11/04 : 機能追加、仕様変更
1. 発動条件の条件式で、行動したキャラのパラメータを参照するコードを変更。
2. 発動条件の条件式で、使用したスキルをitemコードで参照できる機能を追加。

v1.2.0 - 2017/11/02 : 機能追加
1. 職業や装備、ステートにもスキル発動条件を設定する機能を追加。

v1.1.0 - 2017/06/28 : 機能追加、タグの名称変更
1. アクターに任意のスキルの自動発動条件を設定する機能を追加。
2. 発動条件タグの英字名称を変更。

v1.0.0 - 2017/05/03 : 初版作成

-----------------------------------------------------------------------------
パラメータ
( なし )
ライセンス表記
本プラグインのライセンスについて(License)
本プラグインはMITライセンスのもとで公開しています。
This plugin is released under the MIT License.
Copyright (c) 2017 Futokoro
http://opensource.org/licenses/mit-license.php

紹介ページ https://github.com/futokoro/RPGMaker