Window_Selectableのスクロール処理について

しぐれん

ユーザー
プラグイン作成中にわからないことがあったので質問です。
下記URLにあるプラグインを作成中なのですが、Window内に大量のアイテムを入れて動かすテストをしました。
しかし、スクロールの▽が出ている時に下を押すと、表示が空っぽになり、操作ができなくなってしまいました。
この場合、どういった処理を実装すればよいのでしょうか?

https://github.com/Sigureya/RPGmakerMV/blob/master/Mano_ActorEquipItem.js
 

フトコロ

ユーザー
こんにちは。

プラグインの中身を拝見しましたが、makeItemList()の処理が足りないためだと思います。

スクロールした時に、表示を更新するのですが ←refresh()を実行
その時に、Window_ItemList.prototype.makeItemList()を実行してしまっています。
コード:
Window_ItemList.prototype.makeItemList = function() {
    this._data = $gameParty.allItems().filter(function(item) {
        return this.includes(item);
    }, this);
    if (this.includes(null)) {
        this._data.push(null);
    }
};
コードを見て分かると思いますが、この処理でthis._dataを手持ちのアイテム($gameParty.allItems())で更新しているので
表示が空っぽ(恐らく手持ちアイテムが無いため)になってしまい、空なのでカーソルも動かせなくなります。

とりあえず、下のようなコードを追加すると、スクロールしても動きます。
コード:
Window_ActorItemEquip.prototype.makeItemList = function() {
    this._data = this._pocket._data;
};
 
トップ