Mit Freunden spawnen

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

Es kann herausfordernd sein, Freunde in-Experience zu finden. Das SpawnWithFriends-Entwicklermodul bewegt automatisch spawnende Spieler in der Nähe eines ihrer Freunde in der Erlebnis. Dieses Modul kann auch konfiguriert werden, um einen Spieler auf Befehl zu teleportieren, anstatt automatisch.

Modul-Einsatz

Installation

Um das SpawnWithFriends Modul in einem Erlebnis zu verwenden:

  1. Von der Ansicht-Registerkarte öffnen Sie die Werkzeugkiste und wählen Sie die Creator-Store -Registerkarte.

    Toolbox toggle button in Studio
  2. Stellen Sie sicher, dass die Models Sortierung ausgewählt ist, dann klicken Sie auf die Alle anzeigen Schaltfläche für Kategorien .

  3. Suchen Sie die Dev-Module -Kachel und klicken Sie darauf.

  4. Suchen Sie das Spawn With Friends -Modul und klicken Sie darauf, oder ziehen Sie es in die 3D-Ansicht.

  5. In dem Explorer-Fenster bewegen Sie das gesamte SpawnWithFriends-Modell in ServerScriptService . Nach dem Laufen der Erlebniswird das Modul auf verschiedene Dienste verteilt und beginnt zu laufen.

Eingeschränkte Spawn-Areas

Dieses Modul kann dazu führen, dass Spieler in eingeschränkten Bereichen wie VIP-Räumen, Zugangsbereichen usw. teleportiert werden. Um Spieler daran zu verhindern, dass sie sich zu diesen Bereichen teleportieren:

  1. Füllen Sie den eingeschränkten Bereich mit ungesichtbaren Anchored Blöcken. Stellen Sie sicher, dass CanCollide , CanTouch und 1> Class.BasePart.CanQuery|CanQuery1> alle Blöcke deaktiviert

    Blockiere den gesamten Gefängnisraum, um die Spieler darin zu spawnen,
  2. Mit dem Tags-Abschnitt der Eigenschaften jedes Blöckeoder mit dem Tag-Editor von Studio das Tag RestrictedSpawnArea anwenden, damit 2> Class.CollectionService2> sie erkennt.

  3. Fügen Sie den folgenden Code in ein Script innerhalb von ServerScriptService ein.

    Skript

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
    local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
    -- Iterate durch alle markierten Teile
    for _, area in CollectionService:GetTagged("RestrictedSpawnArea") do
    local relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)
    local size = area.Size
    local inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2
    local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2
    if inXBounds and inZBounds then
    return false -- Spawn-Ziel ist innerhalb eines eingeschränkten Bereichs; Teleportation abbrechen
    end
    end
    return true -- Spawn-Ziel nicht mit eingeschränkten Bereichen übereinstimmen; mit der Teleportation fortfahren
    end
    SpawnWithFriends.setTeleportationValidator(validator)

API-Referenz

Funktionen

konfigurieren

konfigurieren(config: table )

Überschreibt Standard-Konfigurationsoptionen durch die folgenden Schlüssel/ Werte in der config Tabelle. Diese Funktion kann nur von einem Script aufgerufen werden.

SchlüsselBeschreibungStandard
teleportToFriendOnRespawnWenn auf false eingestellt, wird die Teleportation zu einem Freund nur manuell über teleportToRandomFriend geschehen.wahr
teleportDistanceWie weit Spieler voneinander spawnen sollten, in Studs gemessen.5
maxCharacterVelocityCharaktere, die schneller als dieses Wert bewegen, werden nicht als Teleportationskandidaten ausgewählt, z. B. die in beweglichen Fahrzeugen.48
bypassFriendshipCheckWenn auf wahr gesetzt, alle Spieler werden Kandidaten für die Teleportation sein, nicht nur Freunde.falsch
showLogsOb oder nicht Log-Nachrichten im Ausgabe anzeigt werden.falsch
Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
SpawnWithFriends.configure({
teleportToFriendOnRespawn = true,
teleportDistance = 5,
maxCharacterVelocity = 48,
bypassFriendshipCheck = false,
showLogs = false
})

teleportZufälligerFreund

teleportToRandomFriend(playerToTeleport: Player): boolean

Zum manuellischen Auslösen der Teleportation eines Spielers zu einem seiner Freunde in der Erlebnis. Wird mit einemBoolean zurückgegeben, der anzeigt, ob oder nicht die Teleportation erfolgreich war; das Fehlen von Freunden auf dem Server oder die Unfähigkeit, einen freien Teleport-Punkt zu finden, können die Grundlage für das Fehlen einer Blockade bilden. Diese Funktion kann nur von einem Script aufgerufen werden.

setTeleportationValidierungs

setTeleportationValidation(Validate: function )

Erlaubt es dir, benutzerdefinierte Vor-Teleport-Checks durchzuführen, indem du einen gültigen Validator-Callback-Funktion anrufst. Der Rückruf erhält drei Argumente:

ParameterBeschreibung
playerToTeleportVerweis auf das Player, das teleportiert wird.
destinationPlayerVerweis auf das Ziel Player, das playerToTeleport teleportiert wird.
teleportationPointCFrame , wo playerToTeleport ist.

Diese Funktion und ihr Rückruf können nur in einem Script verwendet werden und der Rückruf einenBoolean anzeigt, der anzeigt, ob die Teleportation fortzusetzen ist. Zum Beispiel garantiert die return-Logik in der folgenden Spawn-Funktion, dass der spawnende Spieler und der Ziel-Spieler auf demselben Team sind.

Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teleportiert Spieler nur, wenn sie im selben Team sind
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)