Missionspaket

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Das Missions -Funktionspaket bietet eine Out-of-the-Box-Funktionalität, um Missionen zu erstellen, die Spieler abschließen können, um Belohnungen und Fortschritt in deiner Erlebniszu erzielen.Alle Missionen müssen eine ID, Kategorie und eine Liste von Aufgaben haben, die Spieler abschließen müssen, um die Mission abzuschließen.Die Aufgabenliste kann jedoch leer sein, so dass die Belohnungen der Mission sofort beansprucht werden können.

Mit den Anpassungsoptionen des Pakets kannst du alle Missionen personalisieren, um deine einzigartigen Spielanforderungen zu erfüllen, wie:

  • Erstellung von Missionen, die an Bord neue Spieler in deine Erfahrung bringen und verbessern D1-Beständigkeit.
  • Zielgerichtet D7 und D30-Retention durch Hinzufügen von mittelfristigen bis langfristigen Zielen und einem Gefühl des Fortschritts.
  • Erhöhen von Engagement, indem die verschiedenen Systeme in deinem Spiel zutage gebracht und Spieler dafür belohnt werden, mit ihnen zu interagieren.

Paket erhalten

Der Creator-Store ist ein Tab der Toolbox, den Sie verwenden können, um alle Assets zu finden, die von Roblox und der Roblox-Community erstellt wurden, um sie in Ihren Projekten zu verwenden, einschließlich Modell, Bild, Mesh, Audiodateien, Plug-in, Video und Schriftarten.Du kannst den Creator-Store verwenden, um eine oder mehrere Assets direkt in ein offenes Erlebnis einzufügen, einschließlich Feature-Pakete!

Jedes Feature-Paket erfordert, dass das Kern -Feature-Paket ordnungsgemäß funktioniert.Sobald die Kern - und Missions -Funktionspaket-Assets in deinem Inventar sind, kannst du sie in jedem Projekt auf der Plattform wiederverwenden.

Um die Pakete aus deinem Inventar in deine Erlebniszu bringen:

  1. Fügen Sie die Kern und Missionen zu Ihrem Inventar innerhalb von Studio hinzu, indem Sie auf die Schaltfläche Zum Inventar hinzufügen in der folgenden Reihe von Komponenten klicken.

  2. Wählen Sie in der Toolbar die Ansicht-Registerkarte.

  3. Klicken Sie auf Werkzeugkiste . Das Werkzeugkistenfenster wird angezeigt.

    Studio's View tab with the Toolbox tool highlighted.
  4. In dem Werkzeugkasten Fenster klicken Sie auf die Inventar Registerkarte. Die meine Modelle Sortierung wird angezeigt.

    Studio's Toolbox window with the Inventory tab highlighted.
  5. Klicken Sie auf die Feature-Paket-Kern -Kachel, dann auf die Missions-Feature-Paket -Kachel.Beide Paketordner werden im Explorer -Fenster angezeigt.

  6. Ziehe die PaketOrdner in ReplicatedStorage .

Missionen definieren

Jede abschließbare Mission enthält eine Reihe von Aufgaben, die abgeschlossen sein müssen, um die Mission, die Konfigurationsoptionen und optionale Display-Metadaten abzuschließen, alles, was innerhalb von ReplicatedStorage.Missions.Configs.Missions definiert werden kann, mit Arten, die aus dem Skript Types im gleichen Ordner exportiert wurden.

Erforderliche Felder

Die folgenden Felder sind für jede Mission erforderlich.

NamenTypBeschreibung
missionIdstringDer Schlüsselfür Missionen. Alle Missionen werden durch ihre eigene einzigartige Stringidentifiziert.
categoryIdstringMissionen müssen einer Kategorie angehören und sind in der UI nach Kategorie gruppiert.
taskstableEine Liste von Aufgaben, die der Spieler abschließen muss, um die Mission abzuschließen.

Bedingungen freischalten

Standardmäßig werden Missionen automatisch für Spieler freigeschaltet und können genau einmal abgeschlossen werden.Sie können jedoch die folgenden optionalen Konfigurationsoptionen verwenden, um dieses Verhalten zu ändern.

NamenTypBeschreibung
prerequisitestableEine Liste anderer MissionIds, die vor der Freischaltung der Mission abgeschlossen werden müssen.
manualOnlyboolDeaktiviert die automatische Freischaltung der Mission.Stattdessen muss eine Funktion aufgerufen werden, um die Mission freizuschalten.Alle anderen Freischaltbedingungen müssen ebenfalls noch erfüllt werden.
availableAfterUtcboolDie Mission kann nicht vor der angegebenen Zeit in UTC freigeschaltet werden.
availableBeforeUtcboolDie Mission kann nach der angegebenen Zeit in UTC nicht freigeschaltet werden. Wenn sie freigeschaltet wird, aber nicht vor dieser Zeit abgeschlossen wird, wird die Mission fehlgeschlagen.
repeatableboolDie Mission wird nach ihrer Fertigstellung wieder freigeschaltet.
repeatLimitnumberWenn die Mission wiederholbar ist, kann sie nicht mehr als diesen vielen Mal wiederholt werden.
repeatCooldownSecondsnumberWenn die Mission wiederholbar ist, gibt es eine Verzögerung, bevor sie freigeschaltet wird.
expireSecondsnumberWenn die Mission nicht innerhalb der angegebenen Anzahl von Sekunden freigeschaltet und nicht abgeschlossen wird, scheitert sie stattdessen.
expireCountOfflineboolWenn die Mission expireSeconds und expireCountOffline auf wahr gesetzt ist, wird die Zeit, während der Spieler nicht tatsächlich in der Erfahrung ist, zur Missionserfüllung zählen.

Metadaten

Missionen haben Metadaten, die spezifizieren, wie sie im Missions-Benutzeroberfläche angezeigt werden.Du kannst die folgenden optionalen Felder verwenden, um seine Metadaten anzupassen.

NamenTypBeschreibung
displayNamestringEin Name, der für die Mission im Benutzeroberfläche angezeigt wird, anstatt der missionId.
descriptionstringEin längerer Textblock, der zusätzliche Informationen oder Kontext über die Mission liefert.
visibleAfterCompleteboolWenn auf wahr gesetzt, wird die Mission in der Liste der Missionen angezeigt, auch nachdem sie abgeschlossen ist, aber als abgeschlossen markiert.
visibleAfterFailedboolWenn auf wahr gesetzt, wird die Mission in der Liste der Missionen angezeigt, auch nachdem sie fehlgeschlagen ist, aber als fehlgeschlagen markiert.
visibleBeforeUnlockedboolWenn auf wahr gesetzt, wird die Mission sichtbar, aber gesperrt in der Liste der Missionen, bevor sie für die Fertigstellung verfügbar ist.
invisibleWhileActiveboolWenn auf wahr gesetzt, wird die Mission auch während der aktiven Bearbeitung unsichtbar sein.
rewardstableEine Liste mit Belohnungsanzeigedaten.
  • assetID ( number ) - Die Bild-ID, die in der Missions-UI unter den Belohnungen für eine Quest angezeigt wird. Dies ist erforderlich, wenn eine Belohnung vorhanden ist.
  • displayName ( string ) - Der Name, der in der Missions-UI unter dem Symbol angezeigt wird.

Aufgaben definieren

Jede Mission kann null oder mehr Aufgaben haben.Wenn eine Mission keine Aufgaben hat, kann sie sofort nach ihrer Freischaltung beansprucht werden; wenn eine Mission eine oder mehrere Aufgaben hat, kann der Spieler nach Beendigung der Aufgaben alle mit der Mission verbundenen Belohnungen sammeln.Jede Aufgabe hat ein taskId, das der Schlüssel ist, der mit der Aufgabe für eine bestimmte Mission verbunden ist.

Aufgaben kommen in zwei Arten vor:

  • Zeitlich begrenzte Aufgaben - Lässt dich die Aufgabe zu unterschiedlichen Zeitpunkten starten und stoppen.Eine bestimmte Zeit muss vergehen, während der Timer der Aufgabe läuft, dann ist die Aufgabe abgeschlossen.
  • Aufgaben zählen - Lässt dich den Fortschritt der Aufgabe hinzufügen oder festlegen. Wenn der Fortschritt einen festgelegten Wert erreicht, ist die Aufgabe abgeschlossen.

Beide Aufgabenarten teilen die folgenden Felder:

NamenTypBeschreibung
taskTypestringGibt an, ob der Aufgabentyp zählen oder zeitlich ist.
counterobject(Optional) Die Zähler, die diese Aufgabe verfolgt.Zähler sind persistente Speicher für Spieler spezifische Zahlen oder Timer.Mehrere Aufgaben können eine einzige Gegenangebot machenverfolgen; zum Beispiel, wenn mehr als eine Aufgabe verfolgt, wie viele Münzen ein Spieler gesammelt hat, können sie alle denselben "Münzen"Gegenangebot machenteilen.Diese Aufgaben können unabhängig verfolgen, welche neuen Münzen gesammelt wurden, beginnend mit Null, oder die Zählung vom Zählerwert fortsetzen (alle Münzen bereits gesammelt).
  • counterId ( string ) - Die ID des Zählers, der verfolgt werden soll. Verwende diese ID, um den Wert des Gegenangebot machenzu erhalten oder zu setzen.
  • continueFromCounter (Optional bool ) - Wenn auf true gesetzt, stimmt der Fortschritt der Aufgabe direkt mit dem Wert des Zählers überein, nicht mit der Menge, die es erhöht hat.
metadataobject(Optional) Informationen darüber, wie die Aufgabe in der UI angezeigt wird.
  • displayName ( string ) - Name der Aufgabe, wird verwendet, wenn sie in der UI angezeigt wird.
  • numericType (Optional string ) - wie die Fortschrittsnummer in der Aufgabe angezeigt werden soll.
    • Bruch, z. B.5/10 oder 5k/50k
    • Prozentsatz, z. B.50% oder 10%
    • Lange Fraktion, z. B.5/10 oder 5000/50000
    • Boolean, z. B.Unvollständig
    • >
callToActionobject(Optional) Eine Schaltfläche, die eine Rückruffunktion auslöst.
  • callback ( function ) - Funktion, die durch die Schaltfläche callToAction ausgelöst wird.
  • buttonText ( string ) - Der Text, der in der Knopf-UI angezeigt wird.

Zähle Aufgabenfelder

Zählaufgaben haben einen erforderlichen Wert. Wenn der Fortschritt der Aufgabe diesem Betrag entspricht, ist die Aufgabe abgeschlossen.

NamenTypBeschreibung
goalCountnumber(Optional) Der Fortschritt, der zum Abschluss der Aufgabe erforderlich ist.

Zeitaufgaben-Felder

Zeitaufgaben haben einen anvisierten Zeitaufwand und werden gestartet und gestoppt. Wenn der anvisierte Zeitaufwand erreicht ist, ist die Aufgabe abgeschlossen.

NamenTypBeschreibung
goalSecondsnumberDie Anzahl der Sekunden, die vergehen müssen, um die Aufgabe abzuschließen.
startImmediatelyboolWenn die Aufgabe sofort nach ihrer Freischaltung Zeit zählen soll, anstatt erst dann, wenn sie gestartet wird.
includesOfflineTimeboolWenn die Aufgabe Zeit enthalten sollte, während der Spieler nicht aktiv im Erlebnis ist.

Kategorien konfigurieren

Kategorien müssen nicht explizit definiert werden, um verwendet zu werden, da die Kategorie für eine Mission Standardwerte hat, die verwendet werden.Sie können diese Werte jedoch in ReplicatedStorage.Missions.Configs.Categories konfigurieren, um der Kategorie zusätzliche Effekte hinzuzufügen.Kategorien werden durch einzigartige CategoryIds identifiziert, die in der Missionskonfiguration referenziert werden.

NamenTypBeschreibung
repeatDelaySecondsnumber(Optional) Wenn es festlegenist, werden alle Missionen in der Kategorie jedes Mal zurückgesetzt, wenn die angegebene Menge an Zeit verstrichen ist, und können freigeschaltet, abgeschlossen und ihre Belohnungen wieder eingesammelt werden.Dies ist von wiederholbaren Missionen zu unterscheiden, die innerhalb einer bestimmten Kategorie wiederholbar sind.

Serverlogik integrieren

Schau dir ReplicatedStorage.Missions.Server.Examples.MissionsExample an, das zeigt, wie dein Server mit dem Missions -Funktionspaket interagieren wird.

Du musst vor allem vier Dinge verbinden, nachdem du das Missions -Funktionspaket in deine Erlebnisgezogen hast:

  1. Definieren Sie Missionen in Ihrer Missionskonfiguration.

  2. Füge Logik zu deiner Erfahrung hinzu, um den Fortschritt der Aufgabe oder die Zähler zu aktualisieren, an denen der Fortschritt gebunden ist.

    LESEN Sie ME

    -- Erhöht den Fortschritt bei einer Mission Springen mit einer Sprungaufgabe
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- Starte den Timer in einer Mission mit einer TimeInBattle-Aufgabe
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Stoppt den Timer auf einer Mission mit einer TimeInBattle-Aufgabe
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Erhöht den Fortschritt aller Aufgaben, die mit der Gegenangebot machenverbunden sind
    CounterSystem.addCounter(player, "Jumps", 1)
    -- Startet den Timer für alle zeitgesteuerten Aufgaben, die mit dem Gegenangebot machenvon TimeInBattle verbunden sind
    CounterSystem.startTimer(player, "TimeInBattle")
    -- Stoppt den Timer für alle zeitgesteuerten Aufgaben, die mit dem Gegenangebot machenvon TimeInBattle verbunden sind
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. Stelle Missionsabschluss-Handler ein und schalte optional Abschluss-Handler frei oder sperre sie.Verwende den Abschluss处理器, um die Belohnungen aus der Mission in deiner Erlebniszu vergeben.

    LESEN Sie ME

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} completed mission {missionId}`)
    -- Belohnen Sie den Spieler mit seinen Belohnungen.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Schalte Missionen frei, die nicht automatisch freigeschaltet werden. Missions -Funktionspaketlogik stellt sicher, dass alle Missionsanforderungen erfüllt sind, bevor die Mission abgeschlossen ist, und ihre Belohnungen Sammler-Itemsind.

    LESEN Sie ME

    Missions.unlockMission(player, "Manual")

Konfigurieren von Konstanten

Konstanten für das Kern -Funktionspaket sind live in zwei Orten:

  • Geteilte Konstanten leben in ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.

  • Paket spezifische Konstanten, in diesem Fall das Missions -Funktionspaket, leben in ReplicatedStorage.Missions.Configs.Constants .

Zusätzlich können Sie Zeichen für die Übersetzung in eine einzige Position aufteilen: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings .

UI-Komponenten anpassen

Durch Änderung der Paketobjekte wie Farben, Schriftart und Transparenz kannst du die visuelle Präsentation deiner Missions-UI anpassen.Zum Beispiel in ReplicatedStorage.Missions.Configs.Constants kannst du SingleTaskMode aktivieren, eine Fortschrittsleiste für eine Aufgabe direkt auf der Mission selbst für Aufgaben mit nur einer Aufgabe anzuzeigen.

Darüber hinaus, wenn deine Erfahrung bereits eine vorhandene Benutzeroberfläche hat, die du mit dem Missions-Funktionspaket integrieren möchtest, enthält der Client alle Funktionen, die erforderlich sind, um die Informationen über die Missionen eines Spieler:invom Server zu erhalten.