こんばんは。
草の民 さんが書きました:初心者ながら質問させていただきます。
できたら完璧なのが、
特定のステートの敵がいない時はスキルが表示されるが選べず、敵一体でもそのステートにかかれば、その敵のみに使用できるスキル。です。単体攻撃です。
ゲーム開発も終盤で、すごく自信のある作品ですが、プラグインを探すも見つからず、詰まってしまっています。プラグインを自分でつくる技術はないです…
どなたか対応していただける方はいらっしゃらないでしょうか?
トリアコンタンさんの以下のプラグインを使用すれば実現可能かと思います。
対象限定スキルプラグイン
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/RestrictionTargetSkill.jsスクリプトで対象を限定することができるので、この機能を使って、特定のステートにかかっている敵だけを対象にできるように、設定してください。
特定のステートにかかっているかどうかをチェックする JavaScript の計算式は、
コード: 全て選択
調べたい対象のオブジェクト.isStateAffected(チェックするステートのID);
です。
調べたい対象のオブジェクトは this におきかえることができます(プラグインヘルプ参照)。
例えば、対象が 毒(ステートID 0004) にかかっているかを調べたい場合は、
コード: 全て選択
this.isStateAffected(4)
と書くことができます。
プラグインでは、スクリプトの条件に一致するときに
使用できないなので、
否定形にする必要があります。否定形は式の先頭に ! をつければよいので、
コード: 全て選択
!this.isStateAffected(4)
としてください。
対象ステートが複数あって、そのいずれかにかかっていることを条件にする場合、
コード: 全て選択
[チェックするステートID 1, チェックするステートID 2, ...チェックするステートID n].every(stateId => !this.isStateAffected(stateId));
と書くことができ、
対象ステートが複数あって、そのすべてにかかっていることを条件にする場合、
コード: 全て選択
[チェックするステートID 1, チェックするステートID 2, ...チェックするステートID n].every(stateId => this.isStateAffected(stateId));
と書くことができます。
例えば、対象が 毒、暗闇(ステートID 0005)、沈黙(ステートID 0006)のいずれかにかかっていることを条件にする場合、
コード: 全て選択
[4, 5, 6].every(stateId => !this.isStateAffected(stateId));
と書くことができます。
ステート ID 4, 5, 6 のいずれにもかかっていない場合は使用不可という意味合いになります。
上記を全てにかかっていることを条件とする式に変えるときは everyの部分を some に変えればOKです。
この場合、 ステートID 4, 5, 6 のいずれかにかかっていない場合は使用不可という意味合いになります。
ご確認ください。