Fenster, Auswahlmöglichkeiten und Zahleneingaben aus einem PlugIn aufrufen und auswerten

  • Da ich beim Scripten auf das Problem gestoßen bin, wie ich Auswahlmöglichkeiten und Zahleneingaben aus einem PlugIn aufrufen lassen und damit arbeiten kann, habe ich verschiedene Dinge versucht und getestet und bin schließlich zu einem Ergebnis gekommen, das ich hier vorstellen möchte.


    Was möchte ich euch zeigen?


    Auswahlen treffen und Zahlen eingeben kann man ja relativ leicht eventen. Hier möchte ich euch zeigen, wie ihr das in ein PlugIn einarbeiten könnt und auch wie ihr entsprechend der Eingabe reagieren könnt.


    An wen richtet sich dieses Tutorial?


    Grundsätzlich solltet ihr schon Erfahrung in JavaScript haben. Allerdings habe ich selbst auch erst diesen Februar damit begonnen und würde mich als Anfänger bezeichnen. Ihr solltet allerdings abwägen, ob es für euch sinnvoll ist diese Methode zu nutzen oder ob es nicht durch normales eventen einfacher wäre. Denn der hier vorgestellte Code ist relativ unübersichtlich und kann durchaus kompliziert wirken.


    Gut, dann fangen wir mal an. Die einzelnen Erklärungen findet ihr bei den Spoilern.


    Hier ist erstmal zur Übersicht der komplette Code mit einigen Kommentaren. Danach baue ich den Code Schritt für Schritt auf.

    So, nun erkläre ich Schritt für Schritt, was das eigentlich alles bedeutet.


    Zuerst erweitern wir Window_Base um die Klasse Window_Custom. Die grundlegende Funktion dazu habe ich von hier.

    Es geht weiter mit der eigentlichen Funktion zum Aufrufen von Fenstern.

    Somit können wir nun theoretisch schon einmal ein Fenster anzeigen lassen. Jetzt müssen wir den Game_Interpreter um zwei Funktionen erweitern.

    Anschließend legen wir noch zwei Variablen fest, die wir in jedem Fall benötigen. Danach folgt das Nutzungsbeispiel.

    Code
    1. var myInterpreter = new Game_Interpreter;
    2. var intervallID = undefined;

    In die Variable myInterpreter wird ein Objekt vom Game_Interpreter gespeichert. Diese Variable brauchen wir, um die oben erstellten neuen Funktionen des Game_Interpreters zu nutzen und auch um die Auswahlen auszuwerten.

    Die Variable intervallID wird erstmal nur angelegt. Sie wird später benötigt um das eigentliche PlugIn zu starten und zu beenden.


    Grundsätzlich haben wir jetzt alles beisammen, was wir brauchen. Jetzt kommt es darauf an was ihr benötigt und wie ihr das in eure PlugIns einbauen wollt. Das folgende Nutzungsbeispiel soll zum Einen eben ein Beispiel bringen, wie man das Ganze nun nutzen kann, und zum Anderen sollen natürlich die Verknüpfungen zwischen den Funktionen und die Mechanik dahinter erläutert werden.

    Anschließend bauen wir die eigentliche Funktion, welche alles steuert. Ich nenne sie zu Testzwecken einfach testfunktion. In dieser Funktion erstellen wir zwei weitere Funktionen. Eine zum Zurücksetzen der benötigten Variablen und eine um das PlugIn zu beenden. Das schaut dann erstmal so aus:

    Ok, weiter geht's. Jeglicher folgende Code wird in die Testfunktion geschrieben.

    Jetzt bauen wir die Verzweigungen in unseren if-Körper ein, da dieser beim nächsten Durchlauf genutzt wird.

    Bevor wir zu den weiteren Verzweigungen kommen müssen wir noch eines beachten. Der Spieler hat ja die Möglichkeit das Abbruchfenster aufzurufen. Demnach müssen wir es auch wieder schließen können, damit das nicht die ganze Zeit über offen ist. Dazu fügen wir einfach nach dem Ausdruck anzeigeFenster.close() folgenden Code ein:

    Code
    1. if(abbruchFenster) {
    2. abbruchFenster.close();
    3. }

    Somit schließt sich das Abbruchfenster. Auch wenn der Spieler wieder abbrechen sollte ist das kein Problem, da es sich dann ja wieder öffnet.


    Kommen wir nun zu den einzelnen Verzweigungen. Wir haben ja ein If das die Variable eingabeZahl prüft und ein else if das die Variable weitereAuswahl prüft freigelassen bzw. mit einem Kommentar versehen, dass der Code später eingefügt wird. Das machen wir jetzt.

    Mit der Testfunktion sind wir soweit durch. Ihr könnt natürlich eine Vielzahl an Variationen damit erstellen. Dieses Beispiel würde durch eventen deutlich leichter funktionieren, jedoch wollte ich damit verschiedene Aspekte herausstellen und außerdem wäre ein komplizierterer Code auch deutlich unübersichtlicher und schwieriger zu erklären. Hier habt ihr jedenfalls das Grundgerüst um Auswahlen und Zahleneingaben aus einem PlugIn heraus zu aktivieren.


    Jetzt brauchen wir nur noch den Funktionsaufruf. Dazu legen wir eine globale Variable an, damit wir diese im RMMV auch nutzen können.

    Ich hoffe hiermit dem ein oder anderen geholfen zu haben. Falls ihr Fragen habt, einfach fragen.