Może być trudno znaleźć znajomych w doświadczeniu.Moduł rozwoju SpawnWithFriends automatycznie przenosi spawnowanie graczy w pobliżu jednego z ich przyjaciół obecnych w doświadczeniu.Moduł ten może być również skonfigurowany do teleportowania gracza na polecenie zamiast automatycznie.
Użycie modułu
Instalacja
Aby użyć modułu SpawnWithFriends w doświadczeniu:
Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .
Zlokalizuj i kliknij pasek modułów rozwojowych .
Zlokalizuj moduł Spawn z przyjaciółmi i kliknij go, lub przeciągnij i upuść do widoku 3D.
W oknie Eksploratora przenieś cały model SpawnWithFriends do ServerScriptService .Po uruchomieniu doświadczenia moduł rozproszy się na różne usługi i rozpocznie działanie.
Ograniczone obszary spawnowania
Ten moduł może doprowadzić do pojawiania się graczy w ograniczonych obszarach, takich jak pokoje VIP, przestrzenie dostępowe itp.Aby zapobiec teleportowaniu graczy do tych obszarów:
Wypełnij ograniczoną strefę niewidzialnymi blokami Anchored .Upewnij się, że CanCollide , CanTouch i CanQuery są wyłączone dla wszystkich bloków.
Blok wypełniający całe więzienne pomieszczenie, aby zapobiec pojawianiu się graczy wewnątrz Używając sekcji Tagi właściwości każdego bloku lub edytora Tagów w Studio, zastosuj tag RestrictedSpawnArea, aby CollectionService je wykrył.
Wklej następujący kod do Script w ciągu ServerScriptService .
Skryptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Powtarzaj 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 -- Punkt docelowy powstania jest w ograniczonej strefie; anuluj teleportacjęendendreturn true -- Punkt docelowy nie pokrywa żadnej ograniczonej strefy; kontynuuj teleportacjęendSpawnWithFriends.setTeleportationValidator(validator)
Referencja API
Funkcje
skonfigurować
konfigurować(config: table )
Nadpisanie domyślnych opcji konfiguracyjnych za pomocą następujących kluczy/wartości w tabeli config.Funkcja ta może być wywołana tylko z Script.
Klucz | Opis | Domyślny |
---|---|---|
teleportToFriendOnRespawn | Jeśli ustawiono na false, teleportacja do przyjaciela będzie się odbywać tylko ręcznie za pomocą teleportToRandomFriend. | prawda |
teleportDistance | Jak daleko gracze powinni się od siebie oddalić, mierzone w szpilkach. | 5 |
maxCharacterVelocity | Postacie poruszające się szybciej niż ta wartość nie zostaną wybrane jako kandydaci do teleportacji, na przykład te w poruszających się pojazdach. | 48 |
bypassFriendshipCheck | Jeśli ustawiono na prawdę, wszystkie gracze będą kandydatami do teleportacji, nie tylko przyjaciele. | fałsz |
showLogs | Czy wyświetlać wiadomości o błędach w wyjściu, czy nie. | fałsz |
Skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teleportuj do losowego przyjaciela
teleportToRandomFriend(playerToTeleport: Player ): boolean
Ręcznie uruchamia teleportację gracza do jednego z jego przyjaciół w doświadczeniu.Zwraca booleszny wskazujący, czy teleportacja powiodła się, czy nie; niepowodzenie teleportacji może być spowodowane brakiem przyjaciół na serwerze lub niezdolnością znalezienia niezablokowanego punktu teleportacji.Funkcja ta może być wywołana tylko z Script.
ustawienieTeleportationValidator
setTeleportationValidator(validator: function )
Pozwala wykonać niestandardowe kontrolki przedteleportacyjne poprzez przypięcie funkcji powrotnej walidatora. Funkcja otrzymuje trzy parametry:
Parametr | Opis |
---|---|
playerToTeleport | Odwołanie do Player, które jest teleportowane. |
destinationPlayer | Odniesienie do docelowego Player celu, do którego playerToTeleport jest teleportowany. |
teleportationPoint | CFrame gdzie playerToTeleport teleportuje się do. |
Ta funkcja i jej powrót mogą być używane tylko w Script i powrót zwraca prawdziwy binarny, który wskazuje, czy teleportacja powinna się odbyć.Na przykład logika return w następującej funkcji weryfikatora zapewnia, że powstający gracz i docelowy gracz są w tej samej drużynie.
Skrypt
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teleportuje graczy tylko wtedy, gdy są w tej samej drużynie
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)