TakumaGao

Veteran
Veteran
Joined
May 22, 2019
Messages
197
Reaction score
50
First Language
English
Primarily Uses
RMMZ
So here's my dilemma. I want to have it set up where you can only take a certain number of party members (specifically 4) along for your journey at any given time. If you want to switch your party, you would need to visit the Inn and speak to the Innkeeper in order to access the formation menu. Problem #1: I don't want you to be able to access your inactive party members' status, equipment, etc screens. Problem #2: I want even inactive party members to gain EXP even though they're not there to participate in battle.

In another thread, a few other users helped me brainstorm some potential solutions to this problem, but each solution came with it's own set of problems. But then... I had an epiphany! What if... we simply DON'T remove the reserve members from the roster! And instead... we HIDE them?

Basically, the plugin I would want would prevent the menu from displaying the status, or even the very existence of reserve party members. No matter what you do, nothing can get those reserve members' pages to display. You can't change their equipment, you can't use items on them, you can't see them at all! And the only time when they actually show up is when you bring up the Formation menu to swap party members out. After that, everything beyond the 4th party slot (or whichever slot that the user wants) disappears again.

To give some visual aid...

1657057783915.png

Even if these characters, the Mystic, Paladin, and others, were in your reserves...

1657057830275.png

...This is all that you would see. No scroll arrows, no extra party members, nothing. They're still there though, just invisible, and quietly gaining EXP in reserve.

So yeah... I would really appreciate it if someone could help me out with this, and make a plugin that can achieve this effect. Or if one already exists, let me know, since I wasn't able to find one.

Also of note is that the plugin needs to be allowed for commercial use, since I plan to use a "pay what you want, with the option of free" pricing model for the game.

Anyway, thanks for reading my request :D
 

Eliaquim

Hakuen Studio
Veteran
Joined
May 22, 2018
Messages
2,908
Reaction score
2,226
First Language
Portuguese - Br
Primarily Uses
RMMZ
Hi there!

I believe you could just change this:
JavaScript:
Window_MenuStatus.prototype.maxItems = function() {
    return $gameParty.size();
};
To this:
JavaScript:
Window_MenuStatus.prototype.maxItems = function() {
    return 4
};

Just add it as a plugin on your project. Copy it to a text file, and save it. Then change the extension of the text file to .js
 

Arthran

Veteran
Veteran
Joined
Jun 25, 2021
Messages
515
Reaction score
495
First Language
English
Primarily Uses
RMMZ
Hi there!

I believe you could just change this:
JavaScript:
Window_MenuStatus.prototype.maxItems = function() {
    return $gameParty.size();
};
To this:
JavaScript:
Window_MenuStatus.prototype.maxItems = function() {
    return 4
};

Just add it as a plugin on your project. Copy it to a text file, and save it. Then change the extension of the text file to .js
That would get him part of the way there, but there would still be two issues that would need to be resolved.

The first problem is that it would also hide them when he tries to change his formation (he says he wants them to be visible when he uses the Formation command).

The second problem is that in the Status/Skill/Equip menus, he would still see the hidden members if he uses Page Up/Down to cycle through his party.

*edit*
@TakumaGao

Try this:
JavaScript:
Window_MenuStatus.prototype.maxItems = function() {
    return this._formationMode ? $gameParty.size() : $gameParty.maxBattleMembers();
};

Scene_Menu.prototype.onFormationCancel = function() {
    if (this._statusWindow.pendingIndex() >= 0) {
        this._statusWindow.setPendingIndex(-1);
        this._statusWindow.activate();
    } else {
        if (this._statusWindow.index() >= $gameParty.maxBattleMembers()) {
            this._statusWindow.smoothSelect(0);
        }
        this._statusWindow.deselect();
        this._commandWindow.activate();
    }
};

Game_Party.prototype.makeMenuActorNext = function() {
    let index = this.members().indexOf(this.menuActor());
    if (index >= 0) {
        index = (index + 1) % this.battleMembers().length;
        this.setMenuActor(this.members()[index]);
    } else {
        this.setMenuActor(this.members()[0]);
    }
};

Game_Party.prototype.makeMenuActorPrevious = function() {
    let index = this.members().indexOf(this.menuActor());
    if (index >= 0) {
        index = (index + this.battleMembers().length - 1) % this.battleMembers().length;
        this.setMenuActor(this.members()[index]);
    } else {
        this.setMenuActor(this.members()[0]);
    }
};
 
Last edited:

TakumaGao

Veteran
Veteran
Joined
May 22, 2019
Messages
197
Reaction score
50
First Language
English
Primarily Uses
RMMZ
That would get him part of the way there, but there would still be two issues that would need to be resolved.

The first problem is that it would also hide them when he tries to change his formation (he says he wants them to be visible when he uses the Formation command).

The second problem is that in the Status/Skill/Equip menus, he would still see the hidden members if he uses Page Up/Down to cycle through his party.

*edit*
@TakumaGao

Try this:
JavaScript:
Window_MenuStatus.prototype.maxItems = function() {
    return this._formationMode ? $gameParty.size() : $gameParty.maxBattleMembers();
};

Scene_Menu.prototype.onFormationCancel = function() {
    if (this._statusWindow.pendingIndex() >= 0) {
        this._statusWindow.setPendingIndex(-1);
        this._statusWindow.activate();
    } else {
        if (this._statusWindow.index() >= $gameParty.maxBattleMembers()) {
            this._statusWindow.smoothSelect(0);
        }
        this._statusWindow.deselect();
        this._commandWindow.activate();
    }
};

Game_Party.prototype.makeMenuActorNext = function() {
    let index = this.members().indexOf(this.menuActor());
    if (index >= 0) {
        index = (index + 1) % this.battleMembers().length;
        this.setMenuActor(this.members()[index]);
    } else {
        this.setMenuActor(this.members()[0]);
    }
};

Game_Party.prototype.makeMenuActorPrevious = function() {
    let index = this.members().indexOf(this.menuActor());
    if (index >= 0) {
        index = (index + this.battleMembers().length - 1) % this.battleMembers().length;
        this.setMenuActor(this.members()[index]);
    } else {
        this.setMenuActor(this.members()[0]);
    }
};

I added it to my game and it seems to hide them from the menu, but... I noticed a few little problems...

First off... uh... any idea how I can call up the formation screen during an event so that the player can't access other parts of the menu? Cause what's happening is that I put the formation option back in the menu (and I don't want it to be there in the first place) but once you stop moving the party members around, the scroll arrows appear again until you try and open another menu that the plugin forbids you from accessing with reserve members.
 

TakumaGao

Veteran
Veteran
Joined
May 22, 2019
Messages
197
Reaction score
50
First Language
English
Primarily Uses
RMMZ
Okay so I solved the problem with the formation menu by using YEP - Party System (MV) through FOSSIL, so I don't need to use the actual formation menu at all since this provides a dedicated scene for managing the party.

But I still have another problem. If I use PageUp/PageDown or Q/W to scroll through the list of members while in a menu such as the Skills, Equip or Status menu, it still scrolls through the members that should be hidden.

Here's a video example, and it also shows the party menu that I'm using:


Any way someone could modify that script above so that you can't scroll through the party members like that?
 

Arthran

Veteran
Veteran
Joined
Jun 25, 2021
Messages
515
Reaction score
495
First Language
English
Primarily Uses
RMMZ
Any way someone could modify that script above so that you can't scroll through the party members like that?
The above script already accounts for that. It's this part specifically:

JavaScript:
Game_Party.prototype.makeMenuActorNext = function() {
    let index = this.members().indexOf(this.menuActor());
    if (index >= 0) {
        index = (index + 1) % this.battleMembers().length;
        this.setMenuActor(this.members()[index]);
    } else {
        this.setMenuActor(this.members()[0]);
    }
};

Game_Party.prototype.makeMenuActorPrevious = function() {
    let index = this.members().indexOf(this.menuActor());
    if (index >= 0) {
        index = (index + this.battleMembers().length - 1) % this.battleMembers().length;
        this.setMenuActor(this.members()[index]);
    } else {
        this.setMenuActor(this.members()[0]);
    }
};
 

TakumaGao

Veteran
Veteran
Joined
May 22, 2019
Messages
197
Reaction score
50
First Language
English
Primarily Uses
RMMZ
@Arthran

Aha.... I see what happened here... Okay, I'm dumb. It seems at some point, I had actually deleted that script entirely! And the reason seems to be because....

menucrash.png

...It causes a crash immediately upon opening the menu. Looks like it's related to the VisuStella Main Menu Core, which I guess was what was providing me with the basic functionality to hide inactive members, but didn't give me the full functionality of preventing you from scrolling through them.
 

Arthran

Veteran
Veteran
Joined
Jun 25, 2021
Messages
515
Reaction score
495
First Language
English
Primarily Uses
RMMZ
@Arthran

Aha.... I see what happened here... Okay, I'm dumb. It seems at some point, I had actually deleted that script entirely! And the reason seems to be because....

View attachment 236537

...It causes a crash immediately upon opening the menu. Looks like it's related to the VisuStella Main Menu Core, which I guess was what was providing me with the basic functionality to hide inactive members, but didn't give me the full functionality of preventing you from scrolling through them.
Are you using the code that I posted yesterday? Or the code I posted a while back?
 

Latest Threads

Latest Posts

Latest Profile Posts

Mimics! Mimics everywhere!
Pirate portrait quickie :LZYcheeze:
pirate.png
My game has a (much needed) tutorial now...
Game Making Every Day #20:kaohi:

ScreenShot_8_14_2022_11_55_51.png
FINALLY added the comic bubble to the Title Screen...

Forum statistics

Threads
124,508
Messages
1,164,120
Members
163,334
Latest member
Spiketrap
Top