ページ 22

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月04日(火) 20:50
by GrayOgre
塩と佐藤。。 さんが書きました:ゲームを続きから始めるとエラーが表示されてしまいます。
TypeError: Cannot read property 'hasOwnProperty' of undefined
at PHWarehouseManager.createWarehouse (PH_Warehouse_MZ.js:787)
at Game_Interpreter.<anonymous> (PH_Warehouse_MZ.js:822)
at Function.PluginManager.callCommand (rmmz_managers.js:3104)
at Function.PluginManager.callCommand (PluginCommonBase.js:323)
at Game_Interpreter.command357 (rmmz_objects.js:11270)
at Game_Interpreter.executeCommand (rmmz_objects.js:9621)
at Game_Interpreter.update (rmmz_objects.js:9526)
at Game_Map.updateInterpreter (rmmz_objects.js:6757)
at Game_Map.update (rmmz_objects.js:6661)
at Scene_Map.updateMain (rmmz_scenes.js:733)
SceneManager.catchNormalError @ rmmz_managers.js:2030

プラグインを全てoffにもしてみましたがよく分かりませんでした。
こちらでは再現できないので、発生するプロジェクトを圧縮してアップロードしてもらえませんか?

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月04日(火) 22:23
by 塩と佐藤。。
何度か試してみましたが前に使っていたデータで倉庫を開くとエラーが起こり、新規で始めると問題が無かったのでこのエラーの件は無かった事に…

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月04日(火) 22:48
by GrayOgre
倉庫のデータはセーブデータに書き込まれるので、それが壊れていたのかもしれませんね。

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月05日(水) 16:33
by Plasma Dark
コードを読む限り、 PH_Warehouse_MZ.js は(移植前のMV版もですが)導入前のセーブデータをロードして倉庫を開こうとすると必ずエラーを起こします。

https://github.com/PrimeHover/Warehouse

_warehousesの初期化に注意してあげたほうが、利用者にはやさしいかと思います。

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月05日(水) 17:47
by GrayOgre
Plasma Dark さんが書きました:コードを読む限り、 PH_Warehouse_MZ.js は(移植前のMV版もですが)導入前のセーブデータをロードして倉庫を開こうとすると必ずエラーを起こします。

https://github.com/PrimeHover/Warehouse

_warehousesの初期化に注意してあげたほうが、利用者にはやさしいかと思います。
導入前のセーブデータを導入後にロードしてエラーになるのは、
仕方のないことじゃないかと思いますが、対応できるか見てみます。

(追記)
考えてみたのですが、導入前のセーブデータを導入後に読み込むのは異常なことなので、
エラーとなるべきだと考えます。

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月05日(水) 21:46
by Plasma Dark
導入前のセーブデータを導入後に読み込むのは異常なことなので、
エラーとなるべきだと考えます。
異常であるならその旨をエラーとして表示してあげるほうが親切ですね。

プラグイン導入前のセーブデータを導入後にロードする状況は、特に開発中であればユースケースとして珍しい話ではないように思います。
ウェブ上でプレイ可能な形態で、継続的にアップデートする作品も最近は少なくありませんし。

とは言え、対応すべきかどうかの判断はお任せします。

1403行目を下記のようにしてしまうのがミニマムな修正だと思いますが、エラーを出したいのであれば適宜throwしてあげると良さそうです。

コード: 全て選択

PHPlugins.PHWarehouse._warehouses = contents.phwarehouse || {};

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月05日(水) 23:04
by GrayOgre
セーブデータの中の倉庫データが空の場合に例外をthrowするようにしたら、
ロード時に警告音が鳴ってロードできなくなりました。
まあ、これで異常なデータがロードできなくなるので良しとしたいと思います。

https://grayogre.info/rmmz/plugin/PH_Wa ... Z1_3_3.zip

Re: mz対応のアイテムボックスプラグインを探しています

Posted: 2021年5月06日(木) 03:46
by Plasma Dark
セーブデータの中の倉庫データが空の場合に例外をthrowするようにしたら、
ロード時に警告音が鳴ってロードできなくなりました。
大変失礼しました。セーブデータのロード中にthrowしても握りつぶされるんでした。
ロード時にエラーをわかりやすく明示するなら、console.errorでログ出してあげるくらいが楽で良さそうですね。