ページ 11

【解決済み】ステータスウィンドウ更新時のエラーついて

Posted: 2020年4月12日(日) 03:21
by しらそまん
お世話になっております。

以前こちらで質問させていただいたステータスウィンドウ更新の方法として
SceneManager._scene._statusWindow.refresh();
のスクリプトを使わせてもらっております。

こちらなのですが、本当にごくごく稀になのですが、この部分で
TypeError: SceneManager._scene._statusWindow.refresh is not a fuction
とエラーを起こします。

色々調べてみたのですが、ちょっと私には手のつけようが有りませんでした…。

これについて心当たりがある方がいたら教えを請いたいです。

Re: ステータスウィンドウ更新時のエラーついて

Posted: 2020年4月12日(日) 05:22
by Plasma Dark
viewtopic.php?f=23&t=7997&p=29485#p29485

こちらの記事ですね。どういったイベントを組んでいるのか、イベントスクリプトそのもののコピーなりスクショなりがないとわかりませんが……。
TypeError: SceneManager._scene._statusWindow.refresh is not a fuction
戦闘中にこれが起こるのは謎ですね。思い浮かぶ原因としては、戦闘以外のシーンで実行されてしまっているとか、戦闘が始まりきっていないタイミングで実行されてしまっているとかでしょうか。
以下のスクリプトのほうが安全ではあると思いますが、今回のエラーについて解消できるかはわかりません。

コード: 全て選択

if (SceneManager.isCurrentSceneStarted() && SceneManager._scene instanceof Scene_Battle) {
  SceneManager._scene.refreshStatus();
}

Re: ステータスウィンドウ更新時のエラーついて

Posted: 2020年4月12日(日) 17:13
by しらそまん
お世話になっております。

以下のようにコモンイベントを組んで、戦闘時のイベント時、ステータスを更新したいときに呼び出しています。
私も最初戦闘外で行っていないかと考えて、戦闘時以外行わないように条件を追加しましたが、これでも起こるようです。
ステ更新.jpg
また新しいスクリプトを教えていただきありがとうございます。
こちらを試させていただきます。

Re: ステータスウィンドウ更新時のエラーついて

Posted: 2020年4月12日(日) 18:33
by Plasma Dark
以下のようにコモンイベントを組んで、戦闘時のイベント時、ステータスを更新したいときに呼び出しています。
SceneManager._sceneが戦闘シーンでないことか、_statusWindowが異常値になっているかわかりませんが、どうしても発生するようでしたら、 console.log(SceneManager._scene) でも仕込んでエラー発生時の状況を確認されると何かわかるかもしれません。

Re: ステータスウィンドウ更新時のエラーついて

Posted: 2020年4月13日(月) 20:37
by しらそまん
ありがとうございます…!

再現性がないので運頼みなのも有るのですが、教えていただいたものでなんとかエラーの原因を探りたいと思います。