Hey, ich habe keine große Ahnung von JS aber hast du mal chatgpt zu Rate gezogen? Wenn nicht, ich habe es gerade für dich getan.
Das ist was raus kam, vll löst es dein Problem?
Der Fehler "Argument must be a Rectangle" deutet darauf hin, dass ein Objekt, das eigentlich ein Rechteck (Rectangle) sein sollte, nicht korrekt übergeben wurde. Im Kontext von RPG Maker MV/MZ ist das meist der Fall, wenn eine Instanz von Window_Base oder einer anderen Fensterklasse nicht korrekt initialisiert wurde.
In deinem Code gibt es einen potenziellen Fehler bei der Erstellung des Window_Base-Objekts. Die Konstruktoren von Fenstern in RPG Maker erwarten ein Rechteck-Objekt (Rectangle), das die Dimensionen (x, y, Breite, Höhe) des Fensters definiert.
Fehlerstelle
Hier ist der kritische Abschnitt:
this._infoWindow = new Window_Base(0, this._helpWindow.height, Graphics.boxWidth, Graphics.boxHeight - this._helpWindow.height);
Die Klasse Window_Base erwartet in RPG Maker MZ ein Rectangle-Objekt, nicht vier separate Parameter.
Lösung
Du musst ein Rechteck erstellen und dieses übergeben. Das machst du mit new Rectangle(x, y, width, height).
Ersetze die fehlerhafte Zeile durch:
const infoWindowRect = new Rectangle(
0,
this._helpWindow.height,
Graphics.boxWidth,
Graphics.boxHeight - this._helpWindow.height
);
this._infoWindow = new Window_Base(infoWindowRect);
Finaler Code mit Fix
Hier ist der korrigierte Code:
Scene_MonarchOverview.prototype.create = function() {
Scene_MenuBase.prototype.create.call(this);
this._helpWindow = new Window_Help(1);
this.addWindow(this._helpWindow);
this._helpWindow.setText("Monarchenübersicht");
const infoWindowRect = new Rectangle(
0,
this._helpWindow.height,
Graphics.boxWidth,
Graphics.boxHeight - this._helpWindow.height
);
this._infoWindow = new Window_Base(infoWindowRect);
this.addWindow(this._infoWindow);
this.refresh();
};
Erklärung
new Rectangle(x, y, width, height) erstellt ein Rechteck, das die Position und die Größe des Fensters definiert.
Dieses Rechteck wird dann an den Konstruktor von Window_Base übergeben.
Wenn dein Plugin für RPG Maker MV gedacht ist, könnte der Fehler anderswo liegen, da MV eine ältere API nutzt. Stelle sicher, dass du die richtige Umgebung und API verwendest. Aber der obige Code sollte sowohl in MZ als auch in MV kompatibel sein, solange du Rectangle korrekt initialisierst.
Teste den Code erneut, und der Fehler sollte behoben sein. Falls weitere Probleme auftreten, melde dich einfach!