Schnellstart: Geplante Aufgaben

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine Aufgabe erstellen, die nach einem Zeitplan ausgeführt wird. Es gibt viele Spielbetriebsroutinen, die mithilfe einer geplanten Aufgabe automatisiert werden können, z. B.:

  • Ändern der Preise in einem Geschäft nach tageszeit.
  • Aktualisieren von Titeldaten, um Änderungen für ein aktuelles Ereignis widerzuspiegeln.
  • Tägliches Injizieren virtueller Währungen in die Spielwirtschaft usw.

Im Beispiel in dieser Schnellstartanleitung wird gezeigt, wie Sie eine Spielvariable namens rareDropRate in den Titeldaten um 12:00 Uhr UTC und nur an Wochenenden ändern.

Schritt 1: Vorbereiten von CloudScript

Im Game Manager:

  • Wählen Sie im Menü auf der linken Seite Automatisierung aus.
  • Fügen Sie auf der Registerkarte CloudScript-Revisionen eine neue CloudScript-Funktion namens adjustRareDropRate mit einem einfachen Aufruf der SetTitleData API hinzu, wie im Codeausschnitt und in der abbildung unten gezeigt.

Notiz

Für die scharfäugigen, keine Sorge - es gibt einen Fehler mit Absicht. Stellen Sie sicher, dass Sie die neue Revision bereitstellen, damit sie in Ihrem Spiel live ist.

Weitere Informationen zur Verwendung von CloudScript finden Sie in unserem CloudScript-Schnellstart und in der Dokumentation zur ExecuteCloudScript-Methode.

handlers.adjustRareDropRate = function(args) {
    // Tutorial demo CloudScript
    serverAPI.SetTitleData({
        "Key": "rareDropRate",
        "Value": args.dropRate
    });
}

Game Manager – CloudScript – Bereitstellen einer neuen Revision

Schritt 2: Erstellen einer geplanten Aufgabe

Wählen Sie nun im Menü auf der linken Seite Server aus.

  • Wechseln Sie zur Registerkarte Geplante Vorgänge .
  • Wählen Sie in der oberen rechten Ecke des Bildschirms Neue geplante Aufgabe aus.
  • Dadurch wird die Ansicht Aufgabe erstellen angezeigt.
  • Wählen Sie im Feld Aufgabentyp die Option CloudScript-Funktion ausführen aus.
  • Darunter können Sie eine Funktion aus der aktuell bereitgestellten Revision von CloudScript auswählen und die zu übergebenden Argumente angeben.
  • Wählen Sie den adjustRareDropRate-Handler aus, den Sie im vorherigen Schritt geschrieben haben.

So legen Sie den Zeitplan für diese Aufgabe fest:

  • Wählen Sie unter dem Header SCHEDULE(SCHEDULE) die Option On a schedule (UTC) (Nach Zeitplan (UTC) aus.
  • Mit einem einfachen Zeitplan-Generator können Sie auswählen, wann der Task ausgeführt werden soll (stündlich, täglich, wöchentlich usw.).
  • In diesem Beispiel möchten wir einen erweiterten Zeitplan, in dem wir angeben können, an welchen Wochentagen die Aufgabe ausgeführt werden soll.
  • Wählen Sie daher CRON-AUSDRUCK aus.

Der hochgradig anpassbare Cron-Ausdruck ermöglicht es Ihnen, einen sehr komplexen Zeitplan zu erstellen, obwohl es wichtig ist zu beachten, dass wir derzeit nur Zeitpläne zulassen, deren Vorkommen in 5-Minuten-Zeitzeichen der Stunde auftreten.

Sie können beispielsweise angeben, dass eine Aufgabe an der 5., 10., 25. oder 50. Minute der Stunde ausgeführt werden soll, aber Sie dürfen keine Aufgabe angeben, die an der 3., 11. oder 46. Minute der Stunde ausgeführt werden soll.

Wenn Sie mehr über Cron Expression erfahren möchten, bietet crontab.guru umfangreiche Informationen und einen interaktiven Ausdrucksgenerator.

In diesem Fall soll die Aufgabe samstags und sonntags um 12:00 Uhr UTC ausgeführt werden, was 00 12 * * 0,6 (null Minuten nach zwölf Uhr, jeden Sonntag und Samstag) wäre.

Stellen Sie abschließend sicher, dass Sie die neue Aufgabe speichern, bevor Sie mit dem nächsten Schritt fortfahren.

Game Manager – Aufgaben – Neue geplante Aufgabe

Schritt 3: Testen der Aufgabe

In der Ansicht Tasks (Server ->Tasks) können wir sehen, dass die nächste Ausführung der neu erstellten Aufgabe wie erwartet am folgenden Samstag erfolgt.

Wenn es also derzeit Dienstag ist, dann wäre die nächste geplante Laufzeit 4 Tage entfernt. Um die Aufgabe jetzt zu testen, wählen Sie den Task Seltene Ablagerate anpassen und dann AUFGABEN AUSFÜHREN aus.

Game Manager – Aufgaben – Aufgaben ausführen

Schritt 4: Überprüfen der Ergebnisse des Testlaufs

Leider ist bei der Taskausführung ein Fehler aufgetreten. Wählen Sie die Aufgabe instance aus, um zu sehen, was schiefgelaufen ist.

Game Manager – Aufgaben – Zuletzt ausgeführte Aufgaben – Fehler

Die Ansicht Details der Taskinstanz enthält Diagnoseinformationen dazu, warum die Aufgabe fehlgeschlagen ist.

In diesem Fall wird darauf hingewiesen, dass der Aufruf von serverAPI.SetTitleData falsch ist. Es sollte wirklichServer sein. SetTitleData (eine Erläuterung finden Sie im Abschnitt Intermediate: Calling the Server APIs des Tutorials Writing Custom CloudScript( Schreiben von benutzerdefinierten CloudScript-ApIs ).

Es gibt auch weitere wichtige Informationen zur Detailansicht der Vorgangsinstanz , z. B. die Start- und Endzeit, die aufgerufene Funktion, alle übergebenen Argumente, das vollständige CloudScript-Ausführungsergebnis und vieles mehr.

Game Manager – Aufgaben – Details zur Tas-Instanz

Schritt 5: Erneut testen (erfolgreich)

Fahren Sie fort, und beheben Sie den Fehler, den wir in Schritt 4 gefunden haben. Der richtige Codeausschnitt ist unten dargestellt.

handlers.adjustRareDropRate = function(args) {
    // Tutorial demo CloudScript
    server.SetTitleData({
        "Key": "rareDropRate",
        "Value": args.dropRate
    });
}

Und jetzt, wenn Sie Schritt 3 wiederholen, ist Ihr letzter Testlauf erfolgreich.

Game Manager – Aufgaben – Zuletzt ausgeführte Aufgaben – Erfolgreich

So bestätigen Sie den Erfolg:

  • Wählen Sie im Menü auf der linken Seite Inhalt aus.
  • Wechseln Sie zur Registerkarte Titeldaten .
  • Vergewissern Sie sich, dass der Eintrag Title Data tatsächlich festgelegt wurde.

Game Manager – Inhalt – Titeldaten