Problem mit meinem Plugin

  • Heyho,

    ich erstelle gerade ein Plugin und zum Großteil funktioniert es wie ich es will.

    Nun habe ich eine neue Szene für ein Menüpunkt erstellt aber wenn ich diesen betrete bekomme ich folgenden Fehler: "Argument must be a Rectangle".


    Eventuell kann mir einer von euch helfen :) Vielen lieben Dank schon mal

  • Ganz ehrlich, so weit reicht mein Wissen nicht, um die Problematik im Detail zu durchdringen, aber oft hab ich die Erfahrung gemacht, dass verschiedene Plug-Ins einander Probleme bereiten können. Versuch mal andere zu deaktivieren. Wenn du Glück hast, ist ein Plug-In betroffen, was du mit einem anderen ausgleichen kannst. Aber was die Umprogrammierung von so Plugins angeht, da fehlt mir leider die Expertise, tut mir leid.

  • 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!

  • Werde den Teil des Codes heute in den Beitrag editieren sobald ich zuhause bin.


    Einmal editiert, zuletzt von Amphylein () aus folgendem Grund: funktionierender code

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!