Może być trudno zlokalizować przyjaciół w doświadczeniu. Moduł SpawnWithFriends dla deweloperów automatycznie przesuwa spawnowanych graczy w pobliżu jednego z ich przyjaciół obecnych w doświadczeniu. Moduł ten może być również skonfigurowany tak, aby teleportować gracza na żądanie zamiast automatycznie.
Użycie modułu
Instalacja
Aby użyć modułu SpawnWithFriends w doświadczeniu:
W menu Okno w Studio lub na pasku narzędzi w zakładce Start, otwórz Toolbox i wybierz zakładkę Sklep Twórcy.

Upewnij się, że wybrano sortowanie Modele, a następnie kliknij przycisk Zobacz wszystko w sekcji Kategorie.

Zlokalizuj i kliknij kafelek Pakiety.
Zlokalizuj moduł Spawnowanie z Przyjaciółmi i kliknij na niego lub przeciągnij i upuść go do widoku 3D.

W oknie Eksploratora, przenieś cały model SpawnWithFriends do ReplicatedStorage. Po uruchomieniu doświadczenia moduł zacznie działać.
Ograniczone obszary spawnowania
Ten moduł może skutkować spawnowaniem graczy w ograniczonych obszarach, takich jak pokoje VIP, miejsca dostępne tylko na hasło itp. Aby zapobiec teleportowaniu graczy do tych obszarów:
Wypełnij ograniczony obszar niewidocznymi blokami Anchored. Upewnij się, że CanCollide, CanTouch i CanQuery są wyłączone dla wszystkich bloków.

Blok wypełniający cały obszar więzienia, aby zapobiec spawnowaniu graczy wewnątrz Używając sekcji Tagi w właściwościach każdego bloku, zastosuj znacznik RestrictedSpawnArea, aby CollectionService mógł je rozpoznać.
Wklej następujący kod do Script w obrębie ServerScriptService.
Skryptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Iteruj przez wszystkie oznaczone częścifor _, 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 -- Miejsce spawnowania znajduje się w ograniczonym obszarze; przerywanie teleportacjiendendreturn true -- Miejsce spawnowania nie pokrywa się z żadnym ograniczonym obszarem; kontynuuj teleportacjęendSpawnWithFriends.setTeleportationValidator(validator)
Dokumentacja API
Funkcje
configure
configure(config: table)
Nadpisuje domyślne opcje konfiguracyjne za pomocą następujących kluczy/wartości w tabeli config. Ta funkcja może być wywoływana tylko z Script.
| Klucz | Opis | Domyślnie |
|---|---|---|
| teleportToFriendOnRespawn | Jeśli ustawione na false, teleportacja do przyjaciela będzie odbywać się tylko ręcznie za pośrednictwem teleportToRandomFriend. | true |
| teleportDistance | Jak daleko gracze powinni się spawnować od siebie, mierzony w studach. | 5 |
| maxCharacterVelocity | Postacie poruszające się szybciej niż ta wartość nie będą wybierane jako kandydaci na teleportację, na przykład te w poruszających się pojazdach. | 48 |
| bypassFriendshipCheck | Jeśli ustawione na true, wszyscy gracze będą kandydatami do teleportacji, a nie tylko przyjaciele. | false |
| showLogs | Czy wyświetlać komunikaty dziennika w wyjściu. | false |
Skryptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teleportToRandomFriend
teleportToRandomFriend(playerToTeleport: Player): boolean
Ręcznie wyzwala teleportację gracza do jednego z jego przyjaciół w doświadczeniu. Zwraca wartość boolowską wskazującą, czy teleportacja zakończyła się sukcesem; niepowodzenie w teleportacji może być spowodowane brakiem przyjaciół na serwerze lub niemożnością znalezienia niezablokowanego punktu teleportacji. Ta funkcja może być wywoływana tylko z Script.
setTeleportationValidator
setTeleportationValidator(validator: function)
Pozwala ci przeprowadzić niestandardowe weryfikacje przed teleportacją, podłączając funkcję zwrotną weryfikatora. Funkcja zwrotna przyjmuje trzy parametry:
| Parametr | Opis |
|---|---|
| playerToTeleport | Odwołanie do Player, który jest teleportowany. |
| destinationPlayer | Odwołanie do celu Player, do którego playerToTeleport jest teleportowany. |
| teleportationPoint | CFrame, do którego playerToTeleport jest teleportowany. |
Ta funkcja oraz jej funkcja zwrotna mogą być używane tylko w Script, a funkcja zwrotna zwraca wartość boolowską wskazującą, czy teleportacja powinna być kontynuowana. Na przykład logika return w poniższej funkcji weryfikatora zapewnia, że gracz spawnowany i gracz docelowy są w tym samym zespole.
Skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- Teleportuje graczy tylko, jeśli są w tym samym zespole
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)