フトコロさんのFTKR_AutoInvokeSkill

アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: フトコロさんのFTKR_AutoInvokeSkill

投稿記事by フトコロ » 2018年8月20日(月) 23:14

ホミロン さんが書きました:召喚スキル(トリガー?)には召喚というステートを付与し、召喚ステートが付与されてる間スキルを自動発動(召喚獣が使ったもの想定で)させると言うものです。
問題が出てきてしまいまして、なぜか敵側まで自動発動してきます?原因がまるでわからないです。

スキルに設定した発動条件は
$gaemActors.actor(1).isStateAffected(28)
ですが、この場合そのスキルの使用者が誰なのか指定がないため
条件が満たしていれば誰でも発動できるという条件になります。

例えば、戦闘での行動順番が
 アクター1→エネミー1→アクター2→エネミー2
となっていて、アクター1が召喚ステート付与のスキルを使用した場合
アクター1の次の行動者の、エネミー1から条件判定が行われます。
 エネミー1に対して発動条件判定→アクター2に対して発動条件判定→…
アクターID1がステートID28が掛かっているか、という条件なので、
次のエネミー1の時点で条件を満たすので、エネミー1でスキルは発動してしまうのです。

このため自動発動のスキルを誰に使わせたいのかを条件に追加する必要があります。
スキル使用者は a で表しますので、例えば以下のような条件があります。
a.isActor() :スキル使用者は味方
a.actorId() === 1 :スキル使用者はアクターID1

なお、この召喚ステートを付与するスキルがアクターID1の専用であるのなら
a.isStateAffected(28)
という条件のみでいけますね。

ホミロン さんが書きました:そして、スキルを増やしてランダムもしくはターン数によって使うスキルを分けたいのですが条件式が思い浮かばないので知恵をお借りしたく思います。
例えば、3つの(召喚ステート状態の時)自動発動スキルを作成した場合1度に3回スキルを使ってしまうことになります。
それをかぶらないようにローテーションもしくはランダムで発動したいと思っていますがお力添えよろしくお願いいたします。

ターン数なら、$gameTroop._turnCount で取得できます。
$gameTroop._turnCount === 1
とすれば、1ターン目かどうか、という判定になります。
固定ターンだと使いにくいので、3つのステートをローテーションさせるなら
以下の3種類の条件を使うのがいいと思います。
$gameTroop._turnCount % 3 === 0     ←これで3の倍数のターン(3,6,9,12,..)
$gameTroop._turnCount % 3 === 1      ←これで3の倍数+1のターン(1,4,7,10,...)
$gameTroop._turnCount % 3 === 2     ←これで3の倍数+2のターン(2,5,8,11,...)

ランダムだと、ちょっと条件が思いつかないです。

---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
ホミロン
記事: 9
登録日時: 2018年8月13日(月) 19:42

Re: フトコロさんのFTKR_AutoInvokeSkill

投稿記事by ホミロン » 2018年8月22日(水) 16:18

想定道理のスキルを作成することができました。
ありがとうございました!
wrap
記事: 61
登録日時: 2017年5月19日(金) 12:44

Re: フトコロさんのFTKR_AutoInvokeSkill

投稿記事by wrap » 2018年9月05日(水) 11:39

お世話になっております。おそらく不具合だとおぼしきものの報告です。
FTKR_AlternatingTurnBattleと併用し、アクターなどの特徴、あるいはプラグインコマンドで行動回数を追加(例:1回)させ、1回目の行動でAutoInvokeSkillによりスキルを自動発動させると、2回目の行動時にどちらかのエラーが発生します。
TypeError: Cannot read property 'setAttack' of undefined
TypeError: Cannot read property 'setSkill' of undefined
AlternatingTurnBattleを導入していない場合は、2回目の行動自体発動しませんでした。

またAIS_解除発動とターン終了時に自動解除するステートをあわせたとき、発動のタイミングが次ターンの次回行動時に遅れます。
AlternatingTurnBattleを導入していない場合は、問題なくターン終了時に発動します。

導入予定のプラグインは以下のとおりです。
FTKR_AlternatingTurnBattle(v.1.4.3)
AttackChain(v1.5.0)
FTKR_AutoInvokeSkill(v1.3.1)

AutoInvokeSkillの有効条件式にトリアコンタンさんのAttackChain.jsプラグインで現在のチェイン数を取得するためそれより下においています。
またAIS_解除発動と1ターンで解除のステートを用いてスキルを自動発動させる予定です。

やりたいことは端的に言うと
1.チェイン数一定以上のとき追撃
2.AIS解除発動を用いた次ターン開始時(ターン終了時)のチェイン数増加
以上2つになります。
アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: フトコロさんのFTKR_AutoInvokeSkill

投稿記事by フトコロ » 2018年9月07日(金) 00:14

wrap さんが書きました:お世話になっております。おそらく不具合だとおぼしきものの報告です。
FTKR_AlternatingTurnBattleと併用し、アクターなどの特徴、あるいはプラグインコマンドで行動回数を追加(例:1回)させ、1回目の行動でAutoInvokeSkillによりスキルを自動発動させると、2回目の行動時にどちらかのエラーが発生します。
TypeError: Cannot read property 'setAttack' of undefined
TypeError: Cannot read property 'setSkill' of undefined
AlternatingTurnBattleを導入していない場合は、2回目の行動自体発動しませんでした。

またAIS_解除発動とターン終了時に自動解除するステートをあわせたとき、発動のタイミングが次ターンの次回行動時に遅れます。
AlternatingTurnBattleを導入していない場合は、問題なくターン終了時に発動します。

導入予定のプラグインは以下のとおりです。
FTKR_AlternatingTurnBattle(v.1.4.3)
AttackChain(v1.5.0)
FTKR_AutoInvokeSkill(v1.3.1)

AutoInvokeSkillの有効条件式にトリアコンタンさんのAttackChain.jsプラグインで現在のチェイン数を取得するためそれより下においています。
またAIS_解除発動と1ターンで解除のステートを用いてスキルを自動発動させる予定です。

やりたいことは端的に言うと
1.チェイン数一定以上のとき追撃
2.AIS解除発動を用いた次ターン開始時(ターン終了時)のチェイン数増加
以上2つになります。

ご連絡ありがとうございます。

不具合内容をこちらでも確認し、プラグインを修正できました。
再度更新して、確認してみてください。

FTKR_AutoInvokeSkill v1.3.2
https://raw.githubusercontent.com/futokoro/RPGMaker/master/FTKR_AutoInvokeSkill.js
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
wrap
記事: 61
登録日時: 2017年5月19日(金) 12:44

Re: フトコロさんのFTKR_AutoInvokeSkill

投稿記事by wrap » 2018年9月07日(金) 12:20

最新版(v1.3.2)を試してみたところ、FTKR_AlternatingTurnBattleを導入していない場合の問題も含めて、すべてが正常に動作することを確認できました!
いつもありがとうございます :D

“MV:プラグイン素材のリクエスト” へ戻る