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:
Von der Ansicht-Registerkarte öffnen Sie die Werkzeugkiste und wählen Sie die Creator-Store -Registerkarte.
Stellen Sie sicher, dass die Models Sortierung ausgewählt ist, dann klicken Sie auf die Alle anzeigen Schaltfläche für Kategorien .
Suchen Sie die Dev-Module -Kachel und klicken Sie darauf.
Suchen Sie das Spawn With Friends -Modul und klicken Sie darauf, oder ziehen Sie es in die 3D-Ansicht.
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:
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
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.
Fügen Sie den folgenden Code in ein Script innerhalb von ServerScriptService ein.
Skriptlocal 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 Teilefor _, area in CollectionService:GetTagged("RestrictedSpawnArea") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- Spawn-Ziel ist innerhalb eines eingeschränkten Bereichs; Teleportation abbrechenendendreturn true -- Spawn-Ziel nicht mit eingeschränkten Bereichen übereinstimmen; mit der Teleportation fortfahrenendSpawnWithFriends.setTeleportationValidator(validator)
API-Referenz
Funktionen
konfigurieren
Überschreibt Standard-Konfigurationsoptionen durch die folgenden Schlüssel/ Werte in der config Tabelle. Diese Funktion kann nur von einem Script aufgerufen werden.
Schlüssel | Beschreibung | Standard |
---|---|---|
teleportToFriendOnRespawn | Wenn auf false eingestellt, wird die Teleportation zu einem Freund nur manuell über teleportToRandomFriend geschehen. | wahr |
teleportDistance | Wie weit Spieler voneinander spawnen sollten, in Studs gemessen. | 5 |
maxCharacterVelocity | Charaktere, die schneller als dieses Wert bewegen, werden nicht als Teleportationskandidaten ausgewählt, z. B. die in beweglichen Fahrzeugen. | 48 |
bypassFriendshipCheck | Wenn auf wahr gesetzt, alle Spieler werden Kandidaten für die Teleportation sein, nicht nur Freunde. | falsch |
showLogs | Ob 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
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
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:
Parameter | Beschreibung |
---|---|
playerToTeleport | Verweis auf das Player, das teleportiert wird. |
destinationPlayer | Verweis auf das Ziel Player, das playerToTeleport teleportiert wird. |
teleportationPoint | CFrame , 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)