เกิดกับเพื่อน

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

อาจเป็นเรื่องท้าทายในการค้นหาเพื่อนในประสบการณ์โมดูลนักพัฒนา SpawnWithFriends จะเคลื่อนย้ายการสร้างผู้เล่นอัตโนมัติใกล้เพื่อนของพวกเขาที่อยู่ในประสบการณ์โมดูลนี้ยังสามารถกำหนดค่าให้เทเลพอร์ตผู้เล่นตามคำสั่งแทนที่จะเป็นอัตโนมัติ

การใช้งานโมดูล

การติดตั้ง

เพื่อใช้โมดูล SpawnWithFriends ในประสบการณ์:

  1. จากแท็บ ดู เปิด กล่องเครื่องมือ และเลือกแท็บ ร้านค้าผู้สร้าง

    Toolbox toggle button in Studio
  2. ตรวจสอบให้แน่ใจว่าการจัดเรียง รูปแบบ ถูกเลือกแล้วคลิกที่ปุ่ม ดูทั้งหมด สำหรับ หมวดหมู่

  3. ค้นหาและคลิกที่แท็บ โมดูลพัฒนา

  4. ค้นหาโมดูล เกิดขึ้นกับเพื่อน และคลิกหรือลากลงไปในมุมมอง 3D

  5. ในหน้าต่าง สํารวจ เคลื่อนย้ายแบบจำลองทั้งหมด SpawnWithFriends ไปยัง ServerScriptService เมื่อเรียกใช้ประสบการณ์แล้ว โมดูลจะแจกจ่ายตัวเองไปยังบริการต่างๆ และเริ่มทำงาน

พื้นที่จุดเกิดที่ถูกจำกัด

โมดูลนี้อาจทำให้ผู้เล่นเกิดในพื้นที่จำกัดเวลาเช่นห้อง VIP พื้นที่สำหรับเข้าถึงเท่านั้น ฯลฯเพื่อป้องกันไม่ให้ผู้เล่นเทเลพอร์ตไปยังพื้นที่เหล่านี้:

  1. เติมพื้นที่จํากัดด้วยบล็อกล่องดูไม่เห็น Anchored บล็อกตรวจสอบให้แน่ใจว่า , และ ถูกปิดใช้งานสำหรับบล็อกทั้งหมด

    บล็อกเติมห้องคุมทั้งหมดเพื่อป้องกันไม่ให้ผู้เล่นเกิดในภายใน
  2. โดยใช้ส่วน แท็ก ของคุณสมบัติของบล็อกแต่ละบล็อกหรือ เครื่องมือแท็กของ Studio ใช้แท็ก RestrictedSpawnArea เพื่อให้ CollectionService ตรวจพบพวกเขา

  3. ใส่โค้ดต่อไปนี้ลงใน Script ภายใน ServerScriptService

    สคริปต์

    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

ฟังก์ชัน

กำหนดค่า

กำหนดค่า (config: table )

ยกเลิกตัวเลือกการกำหนดค่าเริ่มต้นผ่านตัวแปรหรือค่าต่อไปนี้ในตาราง config ด้วยคีย์/ค่าฟังก์ชันนี้สามารถโทรได้เฉพาะจาก Script

กุญแจคําอธิบายค่าเริ่มต้น
teleportToFriendOnRespawnหากตั้งค่าเป็น false การเทเลพอร์ตไปยังเพื่อนจะเกิดขึ้นเฉพาะผ่าน teleportToRandomFriend เท่านั้นจริง
teleportDistanceระยะทางที่ผู้เล่นควรจะเกิดจากกันและกันโดยวัดเป็นสตัด5
maxCharacterVelocityตัวละครที่เคลื่อนที่เร็วกว่ามูลค่านี้จะไม่ถูกเลือกเป็นผู้สมัครการเทเลพอร์ต เช่น ผู้ที่อยู่ในยานพาหนะ48
bypassFriendshipCheckหากตั้งค่าเป็นจริง ทั้งหมด ผู้เล่นจะเป็นผู้สมัครสําหรับการเทเลพอร์ตไม่ใช่เพื่อนเท่านั้นปิด
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

ตั้งค่าตัวยืนยันการเทเลพอร์ต

ตั้งค่าการเทเลพอร์ตรับรอง (validator: function )

ช่วยให้คุณสามารถดำเนินการตรวจสอบก่อนเทเลพอร์ตที่กำหนดเองโดยการเชื่อมต่อฟังก์ชัน callback ที่ถูกต้อง คอลเลกชันจะได้รับพารามิเตอร์สามตัว:

พารามิเตรคําอธิบาย
playerToTeleportการอ้างอิงถึง Player ที่กําลังถูกเทเลพอร์ต
destinationPlayerการอ้างอิงถึงเป้าหมาย Player ที่ 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)