Pode ser desafiador localizar amigos na experiência. O SpawnWithFriends módulo de desenvolvedor move automaticamente os jogadores que geram perto de um de seus amigos presentes na experiência. Este módulo também pode ser configurado para teletransportar um jogador em comando, em vez de automaticamente.
Uso de Módulo
Instalação
Para usar o módulo SpawnWithFriends em uma experiência:
Na aba Ver, abra a caixa de ferramentas e selecione a aba Loja do Criador.
Certifique-se de que a classificação Modelos foi selecionada, então clique no botão Ver Todos para Categorias .
Localize e clique no mosaico Modulos de Desenvolvedor .
Localize o módulo Spawne com Amigos e clique nele, ou arraste e solte na janela de ver3D.
Na janela Explorer, mova o modelo completo SpawnWithFriends para ServerScriptService . Ao executar a experiência, o módulo será distribuído para vários serviços e começará a funcionar.
Áreas de Spawn Restritas
Este módulo pode resultar em jogadores gerando em áreas restritas, como salas VIP, espaços de acesso, etc. Para evitar que os jogadores se teletransportem para essas áreas:
Preencha a área restrita com blocos invisíveis Anchored . Certifique-se de que CanCollide , CanTouch e 1> Class.BasePart.CanQueue|CanQueue1> estão desativados para todos os blocos.
Usando a seção Tags de cada propriedade de bloco, ou o Editor de Tags do Studio ', aplique a etiqueta RestrictedSpawnArea para que o 1> Class.CollectionService1> detecte-a.
Paste the following code into a Script within ServerScriptService .
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Iterar através de todas as peças marcadasfor _, 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 -- O destino de spawn está dentro de uma área restrita; abortar teletransporteendendreturn true -- O destino de spawn não sobreposição de qualquer área restrita; proceder com a teleportaçãoendSpawnWithFriends.setTeleportationValidator(validator)
Referência da API
Funções
configurar
Substitui as opções de configuração padrão através das seguintes chaves/valores na tabela config. Essa função só pode ser chamada de um Script .
Chave | Descrição | Padrão |
---|---|---|
teleportToFriendOnRespawn | Se definido para false, a teletransporte para um amigo só acontecerá manualmente via teleportToRandomFriend. | verdade |
teleportDistance | Quanto os jogadores devem estar um do outro, medido em studs. | 5 |
maxCharacterVelocity | Personagens se movendo mais rápido que este valor não serão selecionados como candidatos de teleporte, por exemplo, aqueles em veículos em movimento. | 48 |
bypassFriendshipCheck | Se definido como verdadeiro, todos os jogadores serão candidatos à teletransportação, não apenas amigos. | falso |
showLogs | Se você deve ou não exibir mensagens de log no saída. | falso |
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teleportar para um amigo aleatório
Gera automaticamente a teletransporte de um jogador para um de seus amigos na experiência. Retorna um botão que indica se a teletransporte foi bem-sucedida ou não; falha na teletransporte pode ser causada pela ausência de amigos no servidor ou na inabilidade de encontrar um ponto de teletransporte não obstruído. Essa função só pode ser chamada de um Script .
setTeleportationValidate
Permite que você execute verificações de teletransporte personalizado por meio de conectar uma função de retorno de chamada válida. A função de retorno de chamada recebe três parâmetros:
Parâmetro | Descrição |
---|---|
playerToTeleport | Referência ao Player que está sendo teletransportado. |
destinationPlayer | Referência ao alvo Player que playerToTeleport está sendo teletransportado para. |
teleportationPoint | CFrame onde playerToTeleport está sendo teletransportado. |
Essa função e seu retorno de chamada só podem ser usados em um Script e o retorno de chamada retorna um valor de verdade, indicando se a teletransportação deve ser feita ou não. Por exemplo, a lógica return no seguinte retorno de chamada garante que o jogador de destino e o jogador de destino estejam no mesmo Equipe.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teleporta jogadores apenas se eles estiverem na mesma Equipe
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)