【解決済み】MZ版ARTM_PlayerSensorMZ.jsが機能しない?

アンドロ

ユーザー
MZ版ARTM_PlayerSensorMZ.jsを使用して、プラグイン画面からコモンイベントを呼び出そうとすると
$gameTemp.reservedCommonEvent is not a functionとエラーが出て止まってしまいます。
他にもスイッチのonとoffも機能していないっぽいです。
自分だけですかね?他の方はちゃんと機能してるっぽいですが。
 
MZ版ARTM_PlayerSensorMZ.jsを使用して、プラグイン画面からコモンイベントを呼び出そうとすると
$gameTemp.reservedCommonEvent is not a functionとエラーが出て止まってしまいます。
他にもスイッチのonとoffも機能していないっぽいです。
自分だけですかね?他の方はちゃんと機能してるっぽいですが。
Ver.1.0.0でテストしたら、エラーになりました。
機能を使ったことがなかったので、気づきませんでした。

コード:
rmmz_managers.js:2036 TypeError: $gameTemp.reservedCommonEvent is not a function
    at Game_Interpreter.setupReservedCommonEventEx (ARTM_PlayerSensorMZ.js:1201)
    at Game_Event.foundPlayer (ARTM_PlayerSensorMZ.js:2019)
    at Game_Event.sensorUpdate (ARTM_PlayerSensorMZ.js:1966)
    at Game_Event.update (ARTM_PlayerSensorMZ.js:1954)
    at Game_Map.updateEvents (rmmz_objects.js:6741)
    at Game_Map.update (rmmz_objects.js:6700)
    at Scene_Map.updateMain (rmmz_scenes.js:842)
    at Scene_Map.updateMainMultiply (rmmz_scenes.js:838)
    at Scene_Map.update (rmmz_scenes.js:824)
    at Function.SceneManager.updateScene (rmmz_managers.js:2103)

自分で分かるか見てみます(分かる気はしませんが…)

エラーメッセージは、スタックトレースを出すようにしましょう。
 
MZでコモンイベント予約と実行の仕組みが変わりました。
$gameTemp.reservedCommonEvent はMVには存在したんですが、MZには存在しません。

setupReservedCommonEventExは、予約されたコモンイベントを、イベントIDを指定して起動するために用意されたもののようです。
起動したコモンイベントの中で「このイベント」を指定したり、対象イベントのセルフスイッチを操作したり、イベントを一時消去する目的でしょうか。

とにかく、これがMV時代の setupReservedCommonEvent をベースに書かれてしまっているのがエラーの原因です。
MZ用のものを参考に、この関数だけ修正してあげればなんとかなる気がします。
 
まず、そもそものタイポがありますかね?
this.setup($gameTemp.reservedCommonEvent().list, eventId);

this.setup($gameTemp.reserveCommonEvent().list, eventId);
のような気がします。


reservedCommonEvent が下記を見るとMZにもありますね…

MVではコアの下記が
コード:
Game_Interpreter.prototype.setupReservedCommonEvent = function() {
    if ($gameTemp.isCommonEventReserved()) {
        this.setup($gameTemp.reservedCommonEvent().list);
        $gameTemp.clearCommonEvent();
        return true;
    } else {
        return false;
    }
};
MZでは
コード:
Game_Interpreter.prototype.setupReservedCommonEvent = function() {
    if ($gameTemp.isCommonEventReserved()) {
        const commonEvent = $gameTemp.retrieveCommonEvent();
        if (commonEvent) {
            this.setup(commonEvent.list);
            return true;
        }
    }
    return false;
};

なので、.listの使い方をMZに合わせていないのかな?というところが第一印象です。
ここから、どう解決できるかは全く自信がありませんが…
 
コード:
    Game_Interpreter.prototype.setupReservedCommonEventEx = function (eventId) {
        if ($gameTemp.isCommonEventReserved()) {
            this.setup($gameTemp.reservedCommonEvent().list, eventId);
            $gameTemp.clearCommonEvent();
            return true;
        } else {
            return false;
        }
    };
を下記に書き換えたら、コモンイベントは動くようになりました。
コード:
    Game_Interpreter.prototype.setupReservedCommonEventEx = function (eventId) {
        if ($gameTemp.isCommonEventReserved()) {
            const commonEvent = $gameTemp.retrieveCommonEvent();
            if (commonEvent) {
                this.setup(commonEvent.list, eventId);
                return true;
            }
        }
        return false;
    };

合ってますか?
 
他にもスイッチのonとoffも機能していないっぽいです。

一応、プラグインパラメーターで設定するセルフスイッチの指定の動作確認をしましたが、動作しているようでした。
もしかして、メモ欄のタグでのスイッチ挙動のことでしょうか?

具体的な再現方法を教えて下さい。
 
返事が遅れましたすいません。
munokuraさんの言うとおりにコードを書き換えたところ、プラグインパラメータからコモンイベントを動かすことができました。
ありがとうございます。
スイッチのon、offはおっしゃる通りプラグインパラメータ画面のセルフスイッチの事です。
今確認したところ、普通のスイッチ(0001等の数字で指定するスイッチ)は機能しておりますが
やはりセルフスイッチのみが機能していないみたいです。
(まあ、自分はあまりセルフスイッチを使ってないので自分の使い方が間違ってる説もありますが・・。)

具体例は、パラメータ画面の「発見後操作スイッチ」の項目で「セルフスイッチD」を指定しておき、
発見されると別の場所で作っておいた、「出現条件がセルフスイッチDのイベント」が起動し
ゲームオーバーとなる、です。
セルフスイッチの使い方が間違ってますかねこれ?
 
返事が遅れましたすいません。
munokuraさんの言うとおりにコードを書き換えたところ、プラグインパラメータからコモンイベントを動かすことができました。
ありがとうございます。
スイッチのon、offはおっしゃる通りプラグインパラメータ画面のセルフスイッチの事です。
今確認したところ、普通のスイッチ(0001等の数字で指定するスイッチ)は機能しておりますが
やはりセルフスイッチのみが機能していないみたいです。
(まあ、自分はあまりセルフスイッチを使ってないので自分の使い方が間違ってる説もありますが・・。)

具体例は、パラメータ画面の「発見後操作スイッチ」の項目で「セルフスイッチD」を指定しておき、
発見されると別の場所で作っておいた、「出現条件がセルフスイッチDのイベント」が起動し
ゲームオーバーとなる、です。
セルフスイッチの使い方が間違ってますかねこれ?
プラグインではなくイベントの作り方(ページと出現条件)をミスしていると予想します。

「別の場所で作っておいた、「出現条件がセルフスイッチDのイベント」が起動」とありますが、探索しているイベントのセルフスイッチがオンになります。
別のイベントだとすると、そちらは動作しないかと思います。

スイッチとセルフスイッチは全く挙動が違います。

自分はセルフスイッチが通常に動作しているのを確認できました。
 
最後に編集:
munokuraさんのいうとおり探索しているイベントをセルフスイッチオンにすると
セルフスイッチ動作しました。
すいませんこれに至っては完全に凡ミスです。
これですべての問題は解決できました。
ありがとうございました。
 
Back
トップ