【解決済み】直前に行動したのがアクターか敵かどうかを取得したい

akira57
記事: 34
登録日時: 2020年1月10日(金) 22:38

【解決済み】直前に行動したのがアクターか敵かどうかを取得したい

投稿記事by akira57 » 2022年10月16日(日) 09:04

・直前に行動したアクターのID
・直前に行動した敵キャラのインデックス
はMZ内のイベントコマンドで、もしくはスクリプトで取得できるのですが、では、
・「直前に行動したのが(行動主体が)アクターであったのか敵であったのか」
を取得することはできるでしょうか。

例 スキル「炎の剣」を敵キャラが使用した場合は、本来のダメージのみだが、
アクターが使用すると、本来の攻撃+炎 のダメージ。

のように、あるスキルを使用したのが、アクターの場合は追加効果がある、というのを
スキルの使用効果にコモンイベントを付けることで実現しようとしたいです。
そのために、コモンイベント内で、行動主体がアクターか敵のどちらであったのかで条件分岐
すれば実現できると思いました。
 よろしくお願いいたします。
最後に編集したユーザー akira57 on 2022年10月30日(日) 12:21 [ 編集 1 回目 ]

アバター
WTR
記事: 559
登録日時: 2015年12月22日(火) 19:14

Re: 直前に行動したのがアクターか敵かどうかを取得したい

投稿記事by WTR » 2022年10月16日(日) 13:42

・直前に行動したアクターのID
・直前に行動した敵キャラのインデックス
を取得する処理でアクターなのかエネミーなのか判定しているのに
残念ながらその判定結果がどこにも残っていないようです。
仕方ないので別途直前の行動主体を取得できるように処理を追加しました。

直前の行動主体がアクターであった場合の条件分岐

コード: 全て選択

$gameTemp.lastSubject().isActor()

直前の行動主体がエネミーであった場合の条件分岐

コード: 全て選択

$gameTemp.lastSubject().isEnemy()


適当な名前を付けてプラグイン登録してください。

コード: 全て選択

(() => {
   "use strict";
const _Game_Temp_initialize = Game_Temp.prototype.initialize;
Game_Temp.prototype.initialize = function() {
   _Game_Temp_initialize.call(this)
    this._lastSubject = null;
};

Game_Temp.prototype.setLastSubject = function(subject) {
   this._lastSubject = subject;
};

Game_Temp.prototype.lastSubject = function() {
   return this._lastSubject;
};

const _Game_Action_updateLastSubject = Game_Action.prototype.updateLastSubject;
Game_Action.prototype.updateLastSubject = function() {
   _Game_Action_updateLastSubject.call(this)
   $gameTemp.setLastSubject(this.subject());
};
})();
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
akira57
記事: 34
登録日時: 2020年1月10日(金) 22:38

Re: 【解決済み】直前に行動したのがアクターか敵かどうかを取得したい

投稿記事by akira57 » 2022年10月30日(日) 12:24

返信が遅くなり申し訳ありません。
ご解答ありがとうございました。
 教えて頂いた方法で試したところ、上手く取得できました。
「直前に行動したのがアクターか敵か」のスクリプトが(おそらく)無かったというのは意外でしたが、
プラグイン化してコモンイベントに取り込んで実装させて頂きました。
これがあると、1つのスキルのみで、アクターか敵かで効果を使い分けるなど、いろいろと使いどころが
ある気がします。
大変ありがとうございました。

“MZ:質問” へ戻る