Gerar 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 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:

  1. Na 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 foi selecionada, então clique no botão Ver Todos para Categorias .

  3. Localize e clique no mosaico Modulos de Desenvolvedor .

  4. Localize o módulo Spawne com Amigos e clique nele, ou arraste e solte na janela de ver3D.

  5. 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:

  1. 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.

    Bloqueie a填充整個 sala da prisão para impedir que os jogadores apareçam dentro dela
  2. 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.

  3. Paste the following code into a Script within ServerScriptService .

    Script

    local 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 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 de uma área restrita; abortar teletransporte
    end
    end
    return true -- O destino de spawn não sobreposição de qualquer área restrita; proceder com a teleportaçã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 de um Script .

ChaveDescriçãoPadrão
teleportToFriendOnRespawnSe definido para false, a teletransporte para um amigo só acontecerá manualmente via teleportToRandomFriend.verdade
teleportDistanceQuanto os jogadores devem estar um do outro, medido em studs.5
maxCharacterVelocityPersonagens 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
bypassFriendshipCheckSe definido como verdadeiro, todos os jogadores serão candidatos à teletransportação, não apenas amigos.falso
showLogsSe 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

teleportToRandomFriend(playerToTeleport: Player): boolean

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

setTeleportationValidation(Validate: function )

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âmetroDescrição
playerToTeleportReferência ao Player que está sendo teletransportado.
destinationPlayerReferência ao alvo Player que playerToTeleport está sendo teletransportado para.
teleportationPointCFrame 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)