친구와 함께 생성

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

경험 내에서 친구를 찾는 것은 어려울 수 있습니다. SpawnWithFriends개발자 모듈은 경험에 있는 친구 중 하나의 친구 근처에서 자동으로 플레이어를 생성합니다. 이 모듈은 명령으로 플레이어를 텔레포트하도록 구성할 수도 있습니다.

모듈 사용

설치

경험에서 SpawnWithFriends 모듈을 사용하려면:

  1. 보기 탭에서 도구 상자를 엽니다. 그리고 크리에이터 스토어 탭을 선택합니다.

    Toolbox toggle button in Studio
  2. 모델 정렬을 선택한 다음 모두 보기 버튼을 클릭하여 범주 에 대한 전체 보기를 클릭하십시오.

  3. 찾아 클릭하십시오 개발자 모듈 타일.

  4. 친구와 함께 생성 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하십시오.

  5. In the Explorer 창, 전체 SpawnWithFriends 모델을 ServerScriptService 로 이동합니다. 경험을 실행할 때 모듈은 다양한 서비스에 배포되고 시작됩니다.

제한된 생성 영역

이 모듈은 VIP 룸, 액세스 전용 공간 등의 제한된 영역에서 플레이어가 순간이동하는 것을 방지할 수 있습니다. 플레이어가 이 영역으로 순간이동하는 것을 방지하려면:

  1. 제한된 영역에 보이지 않는 Anchored 블록으로 채우십시오. CanCollide , CanTouch 및 2> Class.BasePart.CanQueue|CanQueue2> 이 모든 블록을 5>

    플레이어가 생성하는 것을 방지하려면 전체 감옥실을 차단하십시오.
  2. 각 블록의 속성의 태그 섹션 또는 Studio의 태그 편집기 를 사용하여 태그를 적용하십시오 RestrictedSpawnArea 그래서 Class.CollectionService 이 그들을 감지할 수 있습니다.

  3. 서버스크립트 서비스 내의 Script 에 다음 코드를 붙여넣습니다.

    스크립트

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
    local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
    -- 모든 태그된 부품을 반복합니다.
    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 -- 생성 대상이 제한된 영역 내에 있습니다. 순간 이동 취소
    end
    end
    return true -- 생성 대상은 제한된 영역과 중첩되지 않습니다. 순간이동을 계속하세요
    end
    SpawnWithFriends.setTeleportationValidator(validator)

API 참조

함수

구성

구성(구성: table )

Class.Script 테이블의 다음 키/값을 통해 기본 구성 옵션을 재정의합니다. 이 함수는 Script 에서만 호출할 수 있습니다.

설명기본
teleportToFriendOnRespawnfalse로 설정하면 친구에게 순간이동하려면 친구에게 순간이동하기를 통해 수동으로만 이루어집니다.
teleportDistance플레이어가 서로 얼마나 멀리 생성되는지, 스터드(Studs)로 측정합니다.5
maxCharacterVelocity이 값보다 빠르게 이동하는 캐릭터는 순간이동 후보로 선택되지 않습니다. 예를 들어, 이동 차량의 캐릭터는 순간이동 후보로 선택되지 않습니다.48
bypassFriendshipCheck설정을 true로 설정하면 모든 플레이어가 순간이동 후보가 되지만, 친구만 아닙니다.없음
showLogs출력에 로그 메시지를 표시할지 여부.없음
스크립트

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
SpawnWithFriends.configure({
teleportToFriendOnRespawn = true,
teleportDistance = 5,
maxCharacterVelocity = 48,
bypassFriendshipCheck = false,
showLogs = false
})

친구를 랜덤으로 순간이동

teleportToRandomFriend(playerToTeleport: Player): boolean

플레이어를 경험의 친구 중 하나로 수동으로 이동합니다. 성공적으로 이동했는지 여부를 나타내는 부울을 반환합니다; 이동을 성공적으로 수행할 수 없는 경우 서버에 친구가 없거나 방해 없는 이동 지점을 찾을 수 없습니다. 이 함수는 Script에서만 호출

setTeleportationValidation

setTeleportationValidation(Validate: function)

유효한 인증서 콜백 함수를 호출하여 사용자 지정 미리 순간이동 검사를 수행할 수 있습니다. 콜백은 세 가지 매개 변수를 받습니다.

매개 변수설명
playerToTeleport순간이동 중인 <Class.Player>에 대한 참조.
destinationPlayerplayerToTeleport 가 순간이동 대상 playerToTeleport 에 순간이동 되고 있습니다.
teleportationPointCFrame 에서 playerToTeleport 가 텔레포트됩니다.

이 함수 및 그 콜백은 다음 Script 및 콜백은 순간이동이 진행되어야 하는지 여부를 나타내는 부울을 반환합니다. 예를 들어, 다음 return 로직은 생성된 플레이어와 대상 플레이어가 동일한 팀에 있는지 확인하는 데 유용합니다.

스크립트

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- 플레이어가 동일한 팀에 있는 경우에만 순간이동합니다.
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)