ページ 11

HIME_EquipSlotsCore.jsのエラーについて

Posted: 2020年9月06日(日) 02:21
by ドラムカン
いつもお世話になります。

HIME_EquipSlotsCore.jsについて
他のプラグインをすべてOFFにした状態でも
何らかのアイテムを1つでも入手した後、装備メニュを開くと以下のエラーが発生します。

【エラー】

コード: 全て選択

type error cannot read property 'canEquip' of undefined
【デバッグ】

コード: 全て選択

TypeError: Cannot read property 'canEquip' of undefined
    at Window_EquipItem.includes (HIME_EquipSlotsCore.js:698)
    at Window_EquipItem.<anonymous> (rpg_windows.js:1971)
    at Array.filter (<anonymous>)
    at Window_EquipItem.Window_ItemList.makeItemList (rpg_windows.js:1970)
    at Window_EquipItem.Window_ItemList.refresh (rpg_windows.js:2012)
    at Window_EquipItem.setSlotId (rpg_windows.js:2471)
    at Window_EquipSlot.update (InvalidSlotHidden.js:92)
    at rpg_core.js:7035
    at Array.forEach (<anonymous>)
    at WindowLayer.update (rpg_core.js:7033)
canEquipというプロパティは
コード内にたくさんあって、何が原因なのか特定できませんでした。

アクターのメモ欄には、

コード: 全て選択

<equip slot: 1>
<equip slot: 2>
<equip slot: 3>
<equip slot: 4>
<equip slot: 5>
<equip slot: 6>
このように設定しているのですが
その他にも武器・防具のメモ欄に何らかのタグが必要なのでしょうか?

エラー文を検索したところ、
このプラグインの使用者で、一人だけ同じ質問をしている方がいらっしゃったのですが
レスを読むかぎり、解決できなかったようでした。

お詳しい方、ヒントでも構いませんので情報をいただけると幸いです。

Re: HIME_EquipSlotsCore.jsのエラーについて

Posted: 2020年9月06日(日) 02:42
by ムノクラ
ドラムカン さんが書きました:いつもお世話になります。

HIME_EquipSlotsCore.jsについて
他のプラグインをすべてOFFにした状態でも
何らかのアイテムを1つでも入手した後、装備メニュを開くと以下のエラーが発生します。

【エラー】

コード: 全て選択

type error cannot read property 'canEquip' of undefined
【デバッグ】

コード: 全て選択

TypeError: Cannot read property 'canEquip' of undefined
    at Window_EquipItem.includes (HIME_EquipSlotsCore.js:698)
    at Window_EquipItem.<anonymous> (rpg_windows.js:1971)
    at Array.filter (<anonymous>)
    at Window_EquipItem.Window_ItemList.makeItemList (rpg_windows.js:1970)
    at Window_EquipItem.Window_ItemList.refresh (rpg_windows.js:2012)
    at Window_EquipItem.setSlotId (rpg_windows.js:2471)
    at Window_EquipSlot.update (InvalidSlotHidden.js:92)
    at rpg_core.js:7035
    at Array.forEach (<anonymous>)
    at WindowLayer.update (rpg_core.js:7033)
canEquipというプロパティは
コード内にたくさんあって、何が原因なのか特定できませんでした。

アクターのメモ欄には、

コード: 全て選択

<equip slot: 1>
<equip slot: 2>
<equip slot: 3>
<equip slot: 4>
<equip slot: 5>
<equip slot: 6>
このように設定しているのですが
その他にも武器・防具のメモ欄に何らかのタグが必要なのでしょうか?

エラー文を検索したところ、
このプラグインの使用者で、一人だけ同じ質問をしている方がいらっしゃったのですが
レスを読むかぎり、解決できなかったようでした。

お詳しい方、ヒントでも構いませんので情報をいただけると幸いです。
RPGツクールMV 1.6.2でテストしました。
エラーを再現できませんでした。

ちなみに、新規プロジェクトでは装備スロットは5までしかなく、6はありません。
設定されていない装備スロットは、空白になっていましたが…

エラーが出るサンプルプロジェクトを出して頂いたほうが解決が早いかも知れません。

Re: HIME_EquipSlotsCore.jsのエラーについて

Posted: 2020年9月06日(日) 04:29
by Plasma Dark
canEquipというプロパティは
コード内にたくさんあって、何が原因なのか特定できませんでした。
スタックトレースにファイル名と行数が書いてあるので、そこをたどると見つけやすいです。

HIME_EquipSlotCore.js バージョン1.5は、プラグイン導入前のセーブデータを導入後に開いてしまうと容易に落ちるバグがあります。
ニューゲーム開始しても同じエラーが出るかどうかご確認ください。

Re: HIME_EquipSlotsCore.jsのエラーについて

Posted: 2020年9月08日(火) 02:01
by ドラムカン
ムノクラ様
Plasma Dark様

お返事が遅くなり、申し訳ございません。
お二人とも、ご回答ありがとうございます。

あれから色々と調査した結果、すべてのプラグインを外していたつもりが
トリアコンタン様の「封印装備スロットの非表示 - InvalidSlotHidden.js」プラグインを見落としており
これをOFFにしたところ、装備画面表示時のエラーは解消されました。
大変失礼いたしました。

ところが、スロットの上限数がそれぞれ異なるアクターがパーティーにいる状態で
次または前のアクターの上限スロットより上回るインデックスのスロットの装備を付け替えたり外したりすると
LとRボタンもしくは画面をクリックして切り替えた際に、同様のエラーが発生します。

例えば、5つまで装備できるアクターAと
6つまで装備できるアクターBが居る時
アクターBの6番目の装備を外すなどしたあと、
LかRか画面クリックで次のキャラへ切り替えると、エラーが再現できます。

また、アクターAのいずれかの装備を外すなどした後
アクターBの6番目の装備を選択すると、canEquipではなくsetObjectエラーが発生します。

Plasma Dark様が仰るように、HIME_EquipSlotCore.jsはバグが頻発するようですが
当方のシステムには、どうしても欠かせないプラグインでして
類似のプラグインはすべて試しましたが、これ以外にこちらの仕様を実現できるものはありませんでした。

ですから、何としてもこのバグを解消したいのですが
有償でも構いませんので、どうにか修正していただけないでしょうか?

何とぞよろしくお願いいたします。

Re: HIME_EquipSlotsCore.jsのエラーについて

Posted: 2020年9月08日(火) 02:39
by Plasma Dark
ところが、スロットの上限数がそれぞれ異なるアクターがパーティーにいる状態で
次または前のアクターの上限スロットより上回るインデックスのスロットの装備を付け替えたり外したりすると
LとRボタンもしくは画面をクリックして切り替えた際に、同様のエラーが発生します。
同様の問題に対してパッチプラグインを作成したことがあります。

viewtopic.php?f=23&t=9826&p=36849&hilit ... ore#p36849
また、アクターAのいずれかの装備を外すなどした後
アクターBの6番目の装備を選択すると、canEquipではなくsetObjectエラーが発生します。
これが解消されない場合は、スタックトレース(エラー時にF12キーを押し、Consoleタブを開くと表示される赤いアレ)を貼ると誰かがなんとかしてくれるかもしれません。

Re: HIME_EquipSlotsCore.jsのエラーについて

Posted: 2020年9月08日(火) 19:58
by ドラムカン
Plasma Dark 様

早速、的確なご回答くださり、本当にありがとうございます。
まさか修正パッチを配布されていたとは、素晴らしすぎます。

導入したところ、canEquipエラーはバッチリ直りました!

また、おっしゃるようにsetObjectエラーは健在でしたので
以下のデバッグを観てみますと

コード: 全て選択

rpg_managers.js:1949 TypeError: Cannot read property 'setObject' of undefined
    at Game_Actor.forceChangeEquip (rpg_objects.js:3644)
    at Window_EquipItem.updateHelp (EquipAndShopStatusR.js:1260)
    at Window_EquipItem.Window_Selectable.callUpdateHelp (rpg_windows.js:1233)
    at Window_EquipItem.Window_Selectable.select (rpg_windows.js:797)
    at Window_EquipItem.Window_Selectable.reselect (rpg_windows.js:805)
    at Window_EquipItem.Window_Selectable.activate (rpg_windows.js:784)
    at Scene_Equip.onSlotOk (rpg_scenes.js:1533)
    at Scene_Equip.onSlotOk (EquipAndShopStatusR.js:1446)
    at Window_EquipSlot.Window_Selectable.callHandler (rpg_windows.js:902)
    at Window_EquipSlot.Window_Selectable.callOkHandler (rpg_windows.js:1171)
装備画面とショップメニューの拡張プラグインである「EquipAndShopStatusR.js」が影響していることが分かりました。
OFFにしたところ、エラーは発生しなくなりました。

ただ、EquipAndShopStatusR.jsは、パラメーターの項目数が段違いで
大変重宝しておりまして、できれば競合を無くせればと思っております。

有志の方の目に留まることを切実にお祈りしております。