RMMZ SOLVED! Help with Window_selectable on scroll making items of undefined.

rexie09

Villager
Member
Joined
Apr 4, 2021
Messages
26
Reaction score
10
First Language
English
Primarily Uses
RMMZ
I am learning how rpg maker makes windows and upon trying to make a selectable window that scrolls once the window starts scrolling and you press the up or down arrow the game proceeds to make a bunch of items with the text undefined.
I was wondering how to stop this and get the window to continue scrolling to the bottom of the choices then return to the top.
Here is the plugin code
JavaScript:
/**
* * @target MZ
*/

"use strict"

var Rexie09 = Rexie09 || {};
var Imported = Imported || {};
Rexie09.Window_Test = Rexie09.Window_Test || {};

var windowWidth = Graphics.width


class Rexie09_DescriptWindow extends Window_Base {
    constructor() {
        super(new Rectangle(240, 0, Graphics.boxWidth - 240, Graphics.boxHeight));
    }

}class Rexie09_CommandWindow extends Window_Selectable {
    constructor() {
        super(new Rectangle(0, 0, 240, Graphics.boxHeight));
        this._index = 0;
        this.totalItems = 0;
        this.mainClick = false;
        this.setHandler("ok", this.onActorOk.bind(this));
        this.setHandler("cancel", this.onActorCancel.bind(this));
    }

    maxItems() {
        return this.totalItems;
    }
   
   maxPageRows() {
        return 1;
    }
   
    maxPageItems() {
        return this.maxPageRows() * this.maxCols();
    }
   
    drawItem(index, text) {
        console.log("Item being drawn");
        var itemRect = this.itemRect(index);
        this.drawText(text, itemRect.x + 5, itemRect.y + 3, 200, 'center');
        this.totalItems ++;
    }

    clickedMain() {
        this.mainClick = true;
        this.drawItem(this._index + 1, "test 1");
        this.drawItem(this._index + 2, "test 2");
        this.drawItem(this._index + 3, "test 3");
        this.drawItem(this._index + 4, "test 1");
        this.drawItem(this._index + 5, "test 2");
        this.drawItem(this._index + 6, "test 3");
        this.drawItem(this._index + 7, "test 1");
        this.drawItem(this._index + 8, "test 2");
        this.drawItem(this._index + 9, "test 3");
        this.drawItem(this._index + 10, "test 1");
        this.drawItem(this._index + 11, "test 2");
        this.drawItem(this._index + 12, "test 3");
        this.drawItem(this._index + 13, "test 1");
        this.drawItem(this._index + 14, "test 2");
        this.drawItem(this._index + 15, "test 3");
        this.drawItem(this._index + 16, "test 1");
        this.drawItem(this._index + 17, "test 2");
        this.drawItem(this._index + 18, "test 3");
        console.log(this);
    }

    select(index) {
        super.select(index);
       
    }

    processOk() {
        if (this.isCurrentItemEnabled()) {
          console.log("Hello")
          this.playOkSound();
          this.updateInputData();
          this.callOkHandler();
        } else {
          this.playBuzzerSound();
        }
      }

    onActorOk() {
    if (this._index == 0 && this.mainClick == false) {
        this.clickedMain();
    } else {
        SoundManager.playBuzzer();
        }
    }
   
    onActorCancel() {
        this.deactivate
    }
}


//test function for the windows
function make_ShowWindow () {
    if(SceneManager._scene instanceof Scene_Title){
        console.log("WOW man it works");
    }
    let apples = new Rexie09_DescriptWindow();
    let apes = new Rexie09_CommandWindow();
    console.log(apples);
    console.log(apes);
    apes.activate();
    apes.drawItem(0, "Get the apples for the hunter");

    SceneManager._scene.addWindow(apples);
    SceneManager._scene.addWindow(apes);

}

and here is a gif of what is happening
ezgif.com-gif-maker.gif
 

Jragyn

JABS codemonkey
Veteran
Joined
Aug 14, 2012
Messages
226
Reaction score
178
First Language
English
Primarily Uses
RMMZ
I've found that in most cases, if I'm trying to make a list of windows, I extend Window_Command instead of Window_Selectable.

If I had to guess, it is probably it is related to your explicit management of the different items being rendered into the list. If you extend Window_Command (maybe Window_Selectable has it too?) you can leverage it's built in command management and just use Window_Command.prototype.addCommand (name, symbol, enabled, ext) to add commands pretty easily.

If you spin up a custom scene to handle the management of your windows, you'll also be able to add proper handling for your windows through the patterns that RMMZ already uses (like choosing a command or window navigation). I'd recommend against trying to build a Scene within Scene_Map, it gets kinda messy pretty fast.
 

rexie09

Villager
Member
Joined
Apr 4, 2021
Messages
26
Reaction score
10
First Language
English
Primarily Uses
RMMZ
I've found that in most cases, if I'm trying to make a list of windows, I extend Window_Command instead of Window_Selectable.

If I had to guess, it is probably it is related to your explicit management of the different items being rendered into the list. If you extend Window_Command (maybe Window_Selectable has it too?) you can leverage it's built in command management and just use Window_Command.prototype.addCommand (name, symbol, enabled, ext) to add commands pretty easily.

If you spin up a custom scene to handle the management of your windows, you'll also be able to add proper handling for your windows through the patterns that RMMZ already uses (like choosing a command or window navigation). I'd recommend against trying to build a Scene within Scene_Map, it gets kinda messy pretty fast.
Thank you extending Window_command works well and has no issue with scrolling and as for making a new scene i will now since i got the window i wanted to figure out first working.
 

Latest Threads

Latest Posts

Latest Profile Posts

You look like you had a rough day...Here, have a Baby Panda!

A certain person better sell his stock while he still can, because it looks like it's going to take an unrecoverable nose dive.
7 years of trying to plan this project... and it got an official plotline today. 7 years. I really just have no concept of order huh GHJGSJHGVGHASFH.
Doing RPG Maker News for 24th October 2021

I'm not sure how to do this so I'll just ask here, Wheres a good place to post your game (for free) once its done?

Forum statistics

Threads
116,065
Messages
1,095,464
Members
151,430
Latest member
gredrick333
Top