戦闘行動の強制で 特定のアクターを攻撃させたい

terueru
記事: 72
登録日時: 2016年5月29日(日) 22:28

戦闘行動の強制で 特定のアクターを攻撃させたい

投稿記事by terueru » 2017年8月19日(土) 13:32

いつもお世話になっております

また解決したいことがあるので、質問させて頂きます・・!

タイトルの通りなのですが、イベントから"戦闘行動の強制"を選んだ際、ターゲットを決めれますが、

ラストターゲットとインデックスが選べますが、そこで特定のアクターを決め方がわかりません・・

多分、インデックスというのを使いこなせばできると思うのですが、どうやってそれでアクターを指定するのかがわかりません


お手数ですが、お時間のある方がいらっしゃいましたら、教えていただきたく思います

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: 戦闘行動の強制で 特定のアクターを攻撃させたい

投稿記事by トリアコンタン » 2017年8月20日(日) 03:32

こんばんは!
アクターのインデックスとはパーティの並び順のことです。
並び順とは無関係に特定のアクターを対象にしたい場合、ちょっと複雑なスクリプトを実行する必要があります。

行動を実行するのが敵キャラの場合

コード: 全て選択

var enemyIndex = 0; // 行動を実行する敵キャラのインデックス(敵グループに追加した順番)
var battler = $gameTroop.members()[enemyIndex];
if (battler && !battler.isDeathStateAffected()) {
    var targetActorId = 1; // ターゲットのアクターID
    var skillId = 9;       // スキルID
    var targetActorIndex = $gameParty._actors.indexOf(targetActorId);
    battler.forceAction(skillId, targetActorIndex);
    BattleManager.forceAction(battler);
    this.setWaitMode('action');
}


行動を実行するのがアクターの場合

コード: 全て選択

var actorId = 2; // 行動を実行するアクターID
var battler = $gameActors.actor(actorId);
if (battler && !battler.isDeathStateAffected()) {
    var targetActorId = 1; // ターゲットのアクターID
    var skillId = 8;       // スキルID
    var targetActorIndex = $gameParty._actors.indexOf(targetActorId);
    battler.forceAction(skillId, targetActorIndex);
    BattleManager.forceAction(battler);
    this.setWaitMode('action');
}
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
terueru
記事: 72
登録日時: 2016年5月29日(日) 22:28

Re: 戦闘行動の強制で 特定のアクターを攻撃させたい

投稿記事by terueru » 2017年8月20日(日) 18:00

トリアコンタン様

ありがとうございます!!

無事設定できました・・!

本当に助かります!

“MV:質問” へ戻る