경험 내에서 친구를 찾는 것은 어려울 수 있습니다. SpawnWithFriends개발자 모듈은 경험에 있는 친구 중 하나의 친구 근처에서 자동으로 플레이어를 생성합니다. 이 모듈은 명령으로 플레이어를 텔레포트하도록 구성할 수도 있습니다.
모듈 사용
설치
경험에서 SpawnWithFriends 모듈을 사용하려면:
모델 정렬을 선택한 다음 모두 보기 버튼을 클릭하여 범주 에 대한 전체 보기를 클릭하십시오.
찾아 클릭하십시오 개발자 모듈 타일.
친구와 함께 생성 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하십시오.
In the Explorer 창, 전체 SpawnWithFriends 모델을 ServerScriptService 로 이동합니다. 경험을 실행할 때 모듈은 다양한 서비스에 배포되고 시작됩니다.
제한된 생성 영역
이 모듈은 VIP 룸, 액세스 전용 공간 등의 제한된 영역에서 플레이어가 순간이동하는 것을 방지할 수 있습니다. 플레이어가 이 영역으로 순간이동하는 것을 방지하려면:
제한된 영역에 보이지 않는 Anchored 블록으로 채우십시오. CanCollide , CanTouch 및 2> Class.BasePart.CanQueue|CanQueue2> 이 모든 블록을 5>
각 블록의 속성의 태그 섹션 또는 Studio의 태그 편집기 를 사용하여 태그를 적용하십시오 RestrictedSpawnArea 그래서 Class.CollectionService 이 그들을 감지할 수 있습니다.
서버스크립트 서비스 내의 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") 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 -- 생성 대상이 제한된 영역 내에 있습니다. 순간 이동 취소endendreturn true -- 생성 대상은 제한된 영역과 중첩되지 않습니다. 순간이동을 계속하세요endSpawnWithFriends.setTeleportationValidator(validator)
API 참조
함수
구성
Class.Script 테이블의 다음 키/값을 통해 기본 구성 옵션을 재정의합니다. 이 함수는 Script 에서만 호출할 수 있습니다.
키 | 설명 | 기본 |
---|---|---|
teleportToFriendOnRespawn | false로 설정하면 친구에게 순간이동하려면 친구에게 순간이동하기를 통해 수동으로만 이루어집니다. | 참 |
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})
친구를 랜덤으로 순간이동
플레이어를 경험의 친구 중 하나로 수동으로 이동합니다. 성공적으로 이동했는지 여부를 나타내는 부울을 반환합니다; 이동을 성공적으로 수행할 수 없는 경우 서버에 친구가 없거나 방해 없는 이동 지점을 찾을 수 없습니다. 이 함수는 Script에서만 호출
setTeleportationValidation
유효한 인증서 콜백 함수를 호출하여 사용자 지정 미리 순간이동 검사를 수행할 수 있습니다. 콜백은 세 가지 매개 변수를 받습니다.
매개 변수 | 설명 |
---|---|
playerToTeleport | 순간이동 중인 <Class.Player>에 대한 참조. |
destinationPlayer | playerToTeleport 가 순간이동 대상 playerToTeleport 에 순간이동 되고 있습니다. |
teleportationPoint | CFrame 에서 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)