お久しぶりです。お世話になっております。
またプラグイン関連で質問がしたく書き込みさせていただきます。
Yana様のカテゴリ合成とアイテム重量制を併用して使用していると、カテゴリ合成でレシピを持っていない空欄を調べると
(F8を押した時の上2行の表示)
Cannot read property '_weight' of undefined
at Window_Recipe.isEnabled (js/plugins/CategorySynthesis.js:590)
というエラー画面が表示されてしまいます。
セカンダリカテゴリは、カテゴリ合成に必須のプラグインとの事なので導入しています。
セカンダリカテゴリ https://rpg.mitukasa.jp/src/ogrpg1618.zip(SecondaryCategories)
カテゴリ合成 https://uploader.mitukasa.jp/archive/1/ ... Synthesis)
アイテム重量制 https://rpg.mitukasa.jp/src/ogrpg1619.zip(LimitPossession)
他のまっさらなプロジェクトでごく基本的なプラグインとこれら三つだけのプラグインが動作している状態にしても、エラーが発生しました。
逆に重量プラグインだけでもOFFにしていたらそのようなエラーは発生しませんでした。
解決する方法はありますでしょうか。ご教授お願い致します。
【解決済み】Yana様のカテゴリ合成と重量制プラグイン併用のバグについて
【解決済み】Yana様のカテゴリ合成と重量制プラグイン併用のバグについて
最後に編集したユーザー KOHAKU [ 2023年9月21日(木) 07:40 ], 累計 1 回
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: Yana様のカテゴリ合成と重量制プラグイン併用のバグについて
ダウンロード元のリンクは正しいでしょうか。アクセスできないようですが……。
yanaさんのプラグインは、ムノクラさんがGitHubで管理されているものがあります。
https://github.com/munokura/Yana-MV-plugins/tree/master
エラーの行数からして同じバージョンを利用されているとは思いますが、念のためプラグインのバージョンを確認していただけると良いかと思います。
スタックトレースを貼って頂いていてとても良いですね。
これを読めるようになると、原因が特定しやすくなります。
CategorySynthesis.js の590行目で、 undefined なシンボルに対して ._weight を参照しようとしてエラーになっています。
CategorySynthesis.js の記述を読む限り、 LimitPossession.js と併用した場合に重量の制限によってもレシピの有効無効判定を行っているようです。
ただ、渡されたアイテムが falsy かどうかのチェックが抜けているようですね。
とりあえず直すなら Window_Recipe.prototype.isEnabled の先頭で item が falsy の場合に偽を返すようにしてしまうのが手っ取り早いかと思います。
yanaさんのプラグインは、ムノクラさんがGitHubで管理されているものがあります。
https://github.com/munokura/Yana-MV-plugins/tree/master
エラーの行数からして同じバージョンを利用されているとは思いますが、念のためプラグインのバージョンを確認していただけると良いかと思います。
コード: 全て選択
Cannot read property '_weight' of undefined
at Window_Recipe.isEnabled (js/plugins/CategorySynthesis.js:590)
これを読めるようになると、原因が特定しやすくなります。
CategorySynthesis.js の590行目で、 undefined なシンボルに対して ._weight を参照しようとしてエラーになっています。
CategorySynthesis.js の記述を読む限り、 LimitPossession.js と併用した場合に重量の制限によってもレシピの有効無効判定を行っているようです。
ただ、渡されたアイテムが falsy かどうかのチェックが抜けているようですね。
とりあえず直すなら Window_Recipe.prototype.isEnabled の先頭で item が falsy の場合に偽を返すようにしてしまうのが手っ取り早いかと思います。
コード: 全て選択
Window_Recipe.prototype.isEnabled = function (item) {
if (!item) {
return false;
}
// (元々の処理は変えない。長くなるためここでは省略)
};
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: Yana様のカテゴリ合成と重量制プラグイン併用のバグについて
貼ったURLは昔のもので、今はDL先が変わっていたんですね、確認不足で申し訳ありません……。
ひとまず 「Window_Recipe.prototype.isEnabled の先頭で item が falsy の場合に偽を返すように」の方法でも大丈夫そうだったので、そちらで対応させていただきました所、エラーが発生しなくなりました。
リポジトリでのPRもありがとうございます。
お手数をおかけしました、本当にありがとうございました!
ひとまず 「Window_Recipe.prototype.isEnabled の先頭で item が falsy の場合に偽を返すように」の方法でも大丈夫そうだったので、そちらで対応させていただきました所、エラーが発生しなくなりました。
リポジトリでのPRもありがとうございます。
お手数をおかけしました、本当にありがとうございました!