Es kann herausfordernd sein, Freunde im Erlebnis zu finden.Das SpawnWithFriends Entwicklermodul bewegt automatisch Spieler nahe einer ihrer Freunde, die in der Erfahrung präsent sind.Dieses Modul kann auch so konfiguriert werden, dass ein Spieler auf Befehl teleportiert wird, anstatt automatisch.
Modul-Verwendung
Installationen
Um das SpawnWithFriends -Modul in einem Erlebnis zu verwenden:
Stellen Sie sicher, dass die Sortierung der Modelle ausgewählt ist, dann klicken Sie auf die Schaltfläche Alle sehen für Kategorien .
Suchen und klicken Sie auf die Entwickler-Module -Kachel.
Suchen Sie das Spawn mit Freunden -Modul und klicken Sie darauf oder ziehen Sie es in die 3D-Ansicht.
In dem Explorer Fenster, verschiebe das gesamte SpawnWithFriends Modell in ServerScriptService .Wenn das Erlebnis ausgeführt wird, verteilt sich das Modul auf verschiedene Dienste und beginnt zu laufen.
Gesperrte Spawn-Bereiche
Dieses Modul kann dazu führen, dass Spieler in eingeschränkten Bereichen wie VIP-Räumen, Zugangsbereichen usw. spawnen.Um Spieler von der Teleportation in diese Bereiche zu verhindern:
Füllen Sie den eingeschränkten Bereich mit unsichtbaren Anchored Blöcken.Stellen Sie sicher, dass CanCollide, CanTouch und CanQuery für alle Blöcke deaktiviert sind deaktiviert .
Block füllt den gesamten Gefängnisraum, um zu verhindern, dass Spieler innerhalb spawnen Mit dem Abschnitt Tags der Eigenschaften eines Blöckeoder mit dem Tag-Editor von Studio wird der Tag RestrictedSpawnArea, damit CollectionService.
Fügen Sie den folgenden Code in einen 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)-- Durch alle mit Tags versehenen Teile iterierenfor _, 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 befindet sich in einem eingeschränkten Bereich; Teleportation abbrechenendendreturn true -- Spawn-Ziel deckt keinen eingeschränkten Bereich ab; fahren Sie mit der Teleportation fortendSpawnWithFriends.setTeleportationValidator(validator)
API-Referenz
Funktionen
konfigurieren
konfigurieren(config: table )
Übernimmt Standard-Konfigurationsoptionen durch die folgenden Schlüssel-/Werte in der config Tabelle.Diese Funktion kann nur von einem Script aufgerufen werden.
Schlave | Beschreibung | Standardmäßig |
---|---|---|
teleportToFriendOnRespawn | Wenn auf false festgelegt, geschieht die Teleportation zu einem Freund nur manuell über teleportToRandomFriend. | wahr |
teleportDistance | Wie weit Spieler voneinander entfernt spawnen sollten, gemessen in Stollen. | 5 |
maxCharacterVelocity | Zeichen, die schneller als dieser Wert bewegen, werden zum Beispiel nicht als Teleportationskandidaten ausgewählt, zum Beispiel diejenigen in bewegenden Fahrzeugen. | 48 |
bypassFriendshipCheck | Wenn auf wahr gesetzt, werden alle Spieler Kandidaten für die Teleportation, nicht nur Freunde. | falsch |
showLogs | Ob oder nicht Lognachrichten im Ausgabe anzeigen. | 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})
teleportieren zu zufälligem Freund
teleportToRandomFriend(playerToTeleport: Player ): boolean
Aktiviert manuell die Teleportation eines Spielers zu einem seiner Freunde im Erlebnis.Gibt einen booleschen Wert zurück, der anzeigt, ob die Teleportation erfolgreich war oder nicht; ein Fehlschlag der Teleportation kann durch den Verlust von Freunden auf dem Server oder die Unfähigkeit verursacht werden, einen ungestörten Teleportationspunkt zu finden.Diese Funktion kann nur von einem Script aufgerufen werden.
setTeleportationValidateur einstellen
setTeleportationValidator(Validator: function )
Ermöglicht es Ihnen, benutzerdefinierte Prä-Teleportationsüberprüfungen durchzuführen, indem Sie eine gültige Validator-Rückruffunktion verbinden. Die Rückruffunktion erhält drei Parameter:
Parameter | Beschreibung |
---|---|
playerToTeleport | Referenz auf das Player, das teleportiert wird. |
destinationPlayer | Referenz auf das Ziel Player, zu dem playerToTeleport teleportiert wird. |
teleportationPoint | CFrame wo playerToTeleport teleportiert wird. |
Diese Funktion und ihr Rückruf können nur in einem Script verwendet werden, und der Rückruf gibt einen booleschen Wert zurück, der anzeigt, ob die Teleportation fortgesetzt werden soll.Zum Beispiel gewährleistet die return Logik in der folgenden Validierungsfunktion, dass der spawnende Spieler und der Zielspieler 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)