Spawnar com Amigos

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Pode ser desafiador localizar amigos na experiência.O módulo de desenvolvedor SpawnWithFriends move automaticamente a geração de jogadores perto de um de seus amigos presentes na experiência.Este módulo também pode ser configurado para teletransportar um jogador por comando, em vez de automaticamente.

Uso do Módulo

Instalação

Para usar o módulo SpawnWithFriends em uma experiência:

  1. Da aba Ver, abra a Caixa de Ferramentas e selecione a aba Loja do Criador .

    Toolbox toggle button in Studio
  2. Certifique-se de que a classificação Modelos está selecionada, então clique no botão Ver Todos para Categorias .

  3. Localize e clique no tijolo Dev Modules .

  4. Localize o módulo Spawn With Friends e clique nele, ou arraste-o para a ver3D.

  5. Na janela Explorer, mova todo o modelo SpawnWithFriends para Serviço de Script de Servidor .Ao executar a experiência, o módulo se distribuirá a vários serviços e começará a funcionar.

Áreas de Spawn Restritas

Este módulo pode resultar em jogadores aparecendo em áreas restritas, como salas VIP, espaços de acesso exclusivo, etc.Para impedir que os jogadores se teletransportem para essas áreas:

  1. Preencha a área restrita com blocos invisíveis Anchored .Certifique-se de que CanCollide , CanTouch e CanQuery estejam desativados para todos os blocos.

    Bloquear o preenchimento de toda a sala da prisão para impedir que os jogadores apareçam dentro
  2. Usando a seção tags das propriedades de cada bloco ou o Editor de tags do Studio, aplique a tag RestrictedSpawnArea para que CollectionService os detecte.

  3. Cole o seguinte código em um dentro de Serviço de Script de Servidor .

    Script

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
    local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
    -- Iterar por todas as peças marcadas
    for _, area in CollectionService:GetTagged("RestrictedSpawnArea") do
    local relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)
    local size = area.Size
    local inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2
    local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2
    if inXBounds and inZBounds then
    return false -- O destino de spawn está dentro da área restrita; abortar teletransporte
    end
    end
    return true -- O destino de spawn não se sobrepõe a nenhuma área restrita; proceda com a teletransportação
    end
    SpawnWithFriends.setTeleportationValidator(validator)

Referência da API

Funções

configurar

configurar(config: table )

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 a partir de um Script .

ChaveDescriçãoPadrão
teleportToFriendOnRespawnSe definido para false, a teletransportação para um amigo só acontecerá manualmente através de teleportToRandomFriend.verdadeiro
teleportDistanceQuão longe os jogadores devem aparecer um do outro, medido em studs.5
maxCharacterVelocityPersonagens se movendo mais rápido do que esse valor não serão selecionados como candidatos a teletransporte, por exemplo, aqueles em veículos em movimento.48
bypassFriendshipCheckSe definido como verdadeiro, todos os jogadores serão candidatos à teletransportação, não apenas amigos.falso
showLogsSe mostrar ou não 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
})

teletransportarParaAmigoAleatório

teleportToRandomFriend(playerToTeleport: Player ): boolean

Ativa manualmente a teletransportação de um jogador para um de seus amigos na experiência.Retorna um booleano indicando se a teleportação foi bem-sucedida ou não; falha em se teletransportar pode ser causada pela ausência de amigos no servidor ou pela impossibilidade de encontrar um ponto de teletransporte desobstruído.Essa função só pode ser chamada a partir de um Script .

setTeleportationValidator

setTeleportationValidator(validador: function )

Permite que você execute verificações personalizadas de pré-teletransporte ligando uma função de retorno de chamada válida. A chamada recebe três parâmetros:

ParâmetroDescrição
playerToTeleportReferência ao Player.
destinationPlayerReferência ao alvo Player que playerToTeleport está sendo teletransportado para.
teleportationPointCFrame onde playerToTeleport está sendo teletransportado para.

Essa função e seu retorno de chamada só podem ser usados em um Script e o retorno de chamada retorna um booleano que indica se a teletransportação deve prosseguir.Por exemplo, a lógica return na função de validador seguinte garante que o jogador de spawn e o jogador de destino estejam na mesma Equipe.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teletransporta jogadores somente se eles estiverem na mesma Equipe
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)