【解決済】Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

kumatokuma
記事: 33
登録日時: 2017年7月21日(金) 13:50

【解決済】Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

投稿記事by kumatokuma » 2019年6月08日(土) 09:29

アイテム画面で、QキーWキーで、前へ/後へと、ページ送りができますが、
最初のページでQキーを押しても最後のページにページ送りできません。
装備品が増えてくると凄く不便です。

ページ送りできるようにするには、どこを修正すればいいのか、
分かる方がいらっしゃいましたら、教えてください。
よろしくお願いいたします。
最後に編集したユーザー kumatokuma on 2019年6月11日(火) 00:43 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

投稿記事by 剣崎 宗二 » 2019年6月10日(月) 01:01

Window_Selectable.prototype.cursorPageup がこの部分を制御しておりますが、このまま改造すると他の選択リスト全てに影響するので
Window_ItemList.prototype.cursorPageup を新規に追加して改造する方が宜しいかと。

詳しい動作は、最初のページでQを押す際に最後のページの「どの行に」(最初、最後等)カーソルを合わせるかによってやり方(及び数学的難易度)が変わるかと考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
kumatokuma
記事: 33
登録日時: 2017年7月21日(金) 13:50

Re: Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

投稿記事by kumatokuma » 2019年6月10日(月) 17:10

剣崎 宗二様、ご回答ありがとうございます。

Window_Selectable.prototype.cursorPageupを変えると全部変わってしまうとの事ですが、
元々アイテム画面のページ送り方法が分かれば、
それを参考に装備画面やスキル画面も変更しようと思っていたので、
他の選択リストもその仕様になるのは構わないのですが、
動作的に何か不具合が出てしまうのでしょうか?

あと説明足らずでスミマセン、最初にどこを変えればと質問しましたが、
どのように変えれば良いのかも分からないです、スミマセン。
最後のページに飛べるなら「どの行に」というのは特にこだわりは無いので、
一番易しい方法を教えて頂けますとありがたいです。
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

投稿記事by 剣崎 宗二 » 2019年6月10日(月) 18:43

Window_Selectable.prototype.cursorPageupを変えると全部変わってしまうとの事ですが、
元々アイテム画面のページ送り方法が分かれば、
それを参考に装備画面やスキル画面も変更しようと思っていたので、
他の選択リストもその仕様になるのは構わないのですが、
動作的に何か不具合が出てしまうのでしょうか?

装備画面やスキル画面ならず、全てのコマンド選択(戦闘中、メニュー含む)にまで影響が及びます。
プラグインの実装にもよりますが他プラグインまで影響が及びます。
Window_Selectableはそれだけ「根っこの方にある」機能なのです。


最後のページに飛べるなら「どの行に」というのは特にこだわりは無いので、
一番易しい方法を教えて頂けますとありがたいです。


一例としてはこうなります。

コード: 全て選択

Window_Selectable.prototype.cursorPageup = function() {
    var index = this.index();
    if (this.topRow() > 0) {
        this.setTopRow(this.topRow() - this.maxPageRows());
        this.select(Math.max(index - this.maxPageItems(), 0));
    }
    else
    {
        this.setTopRow(this.maxTopRow());
        this.select(this.maxItems() - 1);
    }
};


ただ、こちらでテストしていないので、使用する際は必ず事前にバックアップを取ってください。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
kumatokuma
記事: 33
登録日時: 2017年7月21日(金) 13:50

Re: Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

投稿記事by kumatokuma » 2019年6月10日(月) 20:40

剣崎 宗二様、丁寧に解説くださりありがとうございます。

教えて頂いたコードを試しましたら、希望通りの動作になりました。
本当にありがとうございます。

それでテストプレイしていたら、最後のページからも最初に飛べた方が便利だと思って、
Window_Selectable.prototype.cursorPagedownの部分を見てみたのですが、
どう変更してよいか分からず、、、大変申し訳ないのですが
cursorPagedownも教えて頂けますとありがたいです。
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

投稿記事by 剣崎 宗二 » 2019年6月10日(月) 23:55

例によって未テストですが。

コード: 全て選択

Window_Selectable.prototype.cursorPagedown = function() {
    var index = this.index();
    var maxItems = this.maxItems();
    if (this.topRow() + this.maxPageRows() < this.maxRows()) {
        this.setTopRow(this.topRow() + this.maxPageRows());
        this.select(Math.min(index + this.maxPageItems(), maxItems - 1));
    }
    else
    {
        this.setTopRow(0);
        this.select(0);
    }
};
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
kumatokuma
記事: 33
登録日時: 2017年7月21日(金) 13:50

Re: 【解決済】Qキー/Page up (前ページへ)を押して、アイテムの最初のページから最後のページへ、ページ送りしたいです

投稿記事by kumatokuma » 2019年6月11日(火) 00:43

剣崎 宗二様、何度もありがとうございます。

お陰様で、最後から最初のページにも飛べるようになりました。
飛べないと かなり不便だったので、本当に助かりました。
この度はありがとうございました。

“MV:質問” へ戻る