1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

【解決済み】プラグインのエラー対策について

にゃたま2019-04-29に開始した「プラグイン制作・技術」の中の討論

  1. にゃたま

    にゃたま ユーザー

    本件についてツクマテの方で完全には解決できなかった為、
    こちらのフォーラムのほうにダメ元でお聞きします。

    複数のプラグインを入れていると以下のエラーがゲーム起動時に発生します。
    「Cannot read property 'active' of undefined」
    問題のプラグインを以下の順番に入れていると発生します。
    YEP_MessageCore→YEP_X_MessageBacklog→FTKR_ExMessageWindow2

    因みにFTKR_ExMessageWindow2の仕様によりこの順番を変えることはできないと思います。
    一時は上記プラグインの使用をあきらめようとも思いましたが
    (とりあえずは諦めて解決済みにしました)使用するとできることが大きく広がる為、
    やはり諦めきれなくできたら全て使いたいと思います。
    このエラーをなくす方法を教えて頂けたら幸いです。
    尚、こちらでも解決法が見つからない場合は本当に諦めることにします。
     
    #1
  2. 剣崎宗二

    剣崎宗二 ユーザー

    「このエラー自体」は
    コード:
    Window_MessageEx.prototype.createSubWindows = function() {
        FTKR.EMW.Window_MessageEx_createSubWindows.call(this);
        this._nameWindow = new Window_NameBoxEx(this, this._windowId);
        FTKR.EMW.nameWindows[this._windowId] = this._nameWindow;
        var scene = SceneManager._scene;
        scene.addChild(this._nameWindow);
        this.createMessageBacklogWindow(); //←追加
    };
    これで改善できるかと思います。

    ただ、この2プラグインは構造的にそも相性が悪いため、この修正だけでは「バックログウィンドウが各メッセージ窓にそれぞれ作られてしまい、それぞれのウィンドウに表示されたメッセージが記録され、バックログにまとまりがなくなる」と言う事態を呼ぶと考えます。
    構造レベルから相性が悪い(MessageWindowExのCreateがオリジナルより前に行われている為、オリジナルのWindowのbackLogWindowを参照するのがやや困難)ので修正はここでは提示しませんが、各作者の方に連絡した方がいいと考えます。
     
    #2
    にゃたま がいいね!しました
  3. にゃたま

    にゃたま ユーザー

    剣先様ありがとうございます!!エラーが発生しなくなりました。
    たしかにこの修正ではバックログにまとまりがなくなるようですね。
    というのもウィンドウID0しかバックログに登録されないということですね。
    ウィンドウIDに1や2を指定した場合バックログに記録されてないことを確認しました。
    しかしながらウィンドウID0だけでも一応使えそうです。
    基本的にウィンドウID0以外はフキダシウインドウプラグインによる表示で
    これはあまり重要なメッセージではないので記録されなくてもそれほど問題はないかといった感じです。
    一番記録してほしいウィンドウID0が登録されるだけでも助かります。
    もっとも全てのウィンドウIDに表示されたものを記録されたほうが好ましいですが
    これは必須ではありません。いずれFTKR_ExMessageWindow2がYEP_X_MessageBacklogに
    対応すれば良いなとは思います。なにはともあれエラーはなくなりとりあえずは解決とします。
    ありがとうございました!!!(このエラーは自分では原因不明でさっぱりでしたのでホント助かりました)

    追記
    すみません。フォーラムの方あまりのぞいてなかったので返信遅れました。
     
    #3

このページを共有