SpawnLocation

แสดงที่เลิกใช้งานแล้ว

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

ตำแหน่งจุดเกิดหรือ "จุดเกิด" กำหนดว่าเมื่อตายแล้ว Player จะเกิดใหม่ที่ไหนพวกเขาสามารถกำหนดค่าให้อนุญาตให้ผู้เล่นบางคนเท่านั้นสามารถใช้แต่ละจุดเกิดได้โดยใช้ Teamsพวกเขายังควบคุมวิธีการ ForceFields จะถูกตั้งค่าสำหรับผู้เล่นที่เพิ่งเกิดใหม่

สามารถใช้ตำแหน่งจุดเกิดเป็นจุดตรวจได้ เช่น ในสนามอุปสรรค โดยใช้คุณสมบัติ SpawnLocation.AllowTeamChangeOnTouch เพื่อให้เมื่อผู้เล่นสัมผัสมัน พวกเขาจะเปลี่ยนทีมเป็นทีมของ SpawnLocationในกรณีนี้เฉพาะครั้งแรก Team ควรตั้งค่า Team.AutoAssignable เป็นจริง มิฉะนั้นผู้เล่นจะไม่เริ่มต้นที่จุดตรวจแรก

สังเกตว่าถ้า SpawnLocation ถูกเพิ่มลงใน Workspace ใน Studio ด้วย SpawnLocation.Neutral ตั้งค่าเป็น false ทีมจะถูกสร้างตาม SpawnLocation.TeamColor ถ้ายังไม่มีอยู่พฤติกรรมนี้ไม่เกิดขึ้นเมื่อสร้างสปอว์นในเกมโดยใช้ Script หรือหากคุณสมบัติของ SpawnLocation เปลี่ยนแปลงหลังจากที่เพิ่มไปแล้วขอแนะนำให้นักพัฒนาตั้งทีมของตนขึ้นมาด้วยตนเองเสมอและไม่พึ่งพาพฤติกรรมนี้

กฎจะเกิดขึ้น

มีกฎหลายข้อที่เข้ามามีบทบาทสำหรับ SpawnLocation ที่กำหนดเมื่อผู้เล่นเกิดใหม่:

  • เมื่อ SpawnLocation.Neutral ถูกตั้งค่าเป็นเท็จเท่านั้น Players ด้วย Player.TeamColor ที่ตรงกับ SpawnLocation.TeamColor จะเกิดใหม่บนมัน
  • เมื่อ SpawnLocation.Neutral ถูกตั้งค่าเป็นจริง ผู้เล่นใดก็ได้สามารถสร้างขึ้นเหนือมันได้ไม่ว่าจะเป็น SpawnLocation.TeamColor
  • หากมีการเกิดที่มีคุณสมบัติหลายรายการพร้อมใช้งานสำหรับ Player หนึ่งรายการสุ่มจะถูกเลือก
  • ผู้เล่นจะเกิดที่จุดต่างๆ บน SpawnLocation แต่ตอนนี้พวกเขาอาจยังคงเกิดบนกันหากพวกเขาเกิดทันทีหลังจากหนึ่งและอีก

ดูเพิ่ม:

  • หากคุณต้องการกำหนดเวลาที่ผู้เล่นจะเกิดใหม่นานแค่ไหน ลองดูที่คุณสมบัติ RespawnTime

ตัวอย่างโค้ด

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน

    อนุญาตให้ Player เข้าร่วมทีมโดยแตะที่ SpawnLocationเมื่อตั้งค่าเป็นจริง หากตัวละคร Player มาสัมผัสกับ SpawnLocation ผู้เล่นจะตั้งค่า Player.TeamColor เป็น SpawnLocation.TeamColor

  • อ่านพร้อมๆ กัน

    ระยะเวลาในวินาทีที่ ForceField จะถูกนำไปใช้กับตัวละคร Player ที่จะเกิดในที่นี่ SpawnLocationหากระยะเวลาเป็นศูนย์ ForceField จะไม่ถูกสร้างขึ้น และจะไม่กระตุ้นให้เกิดเหตุการณ์ Instance.DescendantAdded หรือ Instance.ChildAdded

  • อ่านพร้อมๆ กัน

    ตั้งค่าว่า SpawnLocation จะเปิดใช้งานหรือไม่เมื่อปิดใช้งานผู้เล่นไม่สามารถสร้างได้ที่ SpawnLocation และฟังก์ชัน AllowTeamChangeOnTouch ถูกปิดใช้งาน

  • อ่านพร้อมๆ กัน

    ว่ามีหรือไม่มี SpawnLocation เป็นสมาชิกของทีมเฉพาะซึ่งหมายความว่าทุก Player ของทุก Team สามารถสร้างบนมันได้หากคุณสมบัตินี้ถูกตั้งค่าเป็นจริง

  • อ่านพร้อมๆ กัน

    ตั้งทีมที่ SpawnLocation เป็นสมาชิกอยู่หากคุณสมบัติ SpawnLocation.Neutral เป็นเท็จเฉพาะ Players ที่มีค่าเดียวกับ Player.TeamColor ของสีทีมที่เกิดใหม่จะสามารถสร้างได้ที่นั่น

คุณสมบัติรับทอดมาจากPart
  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    กำหนดรูปร่างโดยรวมของวัตถุ

คุณสมบัติรับทอดมาจากBasePart
  • อ่านพร้อมๆ กัน

    กำหนดว่าชิ้นส่วนเป็นอนันต์ตามฟิสิกส์หรือไม่

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    ความเร็วในแนวมุมของการประกอบชิ้นส่วน

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    ศูนย์กลางของมวลของการประกอบชิ้นส่วนในพื้นที่โลก

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    ความเร็วเชิงเส้นของการประกอบชิ้นส่วน

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    มวลรวมของการประกอบชิ้นส่วน

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    การอ้างอิงถึงส่วนรากของการประกอบ

  • อ่านพร้อมๆ กัน

    กำหนดว่าชิ้นจะโต้ตอบกับการจำลองเสียงทางกายภาพหรือไม่ คล้ายกับ CastShadow สำหรับแสง

  • อ่านพร้อมๆ กัน

    กำหนดประเภทพื้นผิวสำหรับด้านหลังของชิ้นส่วน

  • อ่านพร้อมๆ กัน

    กำหนดประเภทพื้นผิวสำหรับด้านล่างของชิ้นส่วน

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    กำหนดสีของชิ้นส่วน

  • อ่านพร้อมๆ กัน

    กำหนดตำแหน่งและทิศทางของ BasePart ในโลก

  • อ่านพร้อมๆ กัน

    กำหนดว่าชิ้นส่วนจะชนกับชิ้นส่วนอื่นหรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดว่าชิ้นส่วนจะถูกพิจารณาในระหว่างการดำเนินการค้นหาในพื้นที่หรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดว่าจะมีการเรียกไฟ Touched และ TouchEnded กิจกรรมบนส่วนหรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดว่าส่วนใดมีเงาหรือไม่

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    อธิบายตำแหน่งของโลกที่ศูนย์กลางของมวลของชิ้นส่วนอยู่

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    อธิบายชื่อกลุ่มการชนกันของชิ้นส่วน

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    กำหนดสีของชิ้นส่วน

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    บ่งชี้คุณสมบัติทางกายภาพปัจจุบันของชิ้นส่วน

  • อ่านพร้อมๆ กัน

    กำหนดคุณสมบัติทางกายภาพหลายอย่างของชิ้นส่วน

  • อ่านพร้อมๆ กัน

    ใช้เพื่อเปิดใช้งานหรือปิดใช้งานแรงอากาศในชิ้นส่วนและชิ้นส่วนประกอบ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    The CFrame ของระยะทางทางกายภาพของ BasePart .

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    ขนาดทางกายภาพที่แท้จริงของ BasePart ตามที่เครื่องกลศาสตร์กำหนด

  • อ่านพร้อมๆ กัน

    กำหนดประเภทพื้นผิวสำหรับด้านหน้าของชิ้นส่วน

  • อ่านพร้อมๆ กัน

    กำหนดประเภทพื้นผิวสำหรับด้านซ้ายของชิ้นส่วน

  • ซ่อนอยู่
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    กำหนดตัวคูณสำหรับ BasePart.Transparency ที่มองเห็นได้เฉพาะกับไคลเอนต์ท้องถิ่นเท่านั้น

  • อ่านพร้อมๆ กัน

    กำหนดว่าส่วนใดสามารถเลือกได้ใน Studio

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    อธิบายมวลของชิ้นส่วน ผลิตภัณฑ์ของความหนาแน่นและปริมาณ

  • อ่านพร้อมๆ กัน

    กำหนดว่าชิ้นส่วนมีส่วนร่วมในมวลหรือแรงเฉื่อยของร่างกายแข็งหรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดเทกเจอร์และคุณสมบัติทางกายภาพเริ่มต้นของชิ้นส่วน

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    ชื่อของ MaterialVariant .

  • ซ่อนอยู่
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    อธิบายการหมุนของชิ้นส่วนในโลก

  • อ่านพร้อมๆ กัน

    ระบุออฟเซ็ตของจุดศูนย์กลางของชิ้นส่วนจาก CFrame ของมัน

  • ซ่อนอยู่
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    อธิบายตำแหน่งของชิ้นส่วนในโลก

  • ซ่อนอยู่
    อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    เวลาตั้งแต่อัปเดตฟิสิกส์ครั้งล่าสุด

  • อ่านพร้อมๆ กัน

    กำหนดจํานวนส่วนที่สะท้อนกล่องท้องฟ้าได้

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    อธิบายการเปลี่ยนแปลงขนาดเล็กที่สุดที่อนุญาตโดยวิธี Resize()

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    อธิบายใบหน้าที่ส่วนสามารถปรับขนาดได้

  • อ่านพร้อมๆ กัน

    กำหนดประเภทพื้นผิวสำหรับด้านขวาของชิ้นส่วน

  • อ่านพร้อมๆ กัน

    กฎหลักในการกำหนดส่วนรากของการประกอบ

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    การหมุนของชิ้นส่วนในองศาสำหรับสามแกน

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    กำหนดขนาดของชิ้นส่วน (ความยาว ความกว้าง ความสูง)

  • อ่านพร้อมๆ กัน

    กำหนดประเภทพื้นผิวสำหรับด้านบนของชิ้นส่วน

  • อ่านพร้อมๆ กัน

    กำหนดจำนวนส่วนที่สามารถมองเห็นได้ผ่าน (ตรงกันข้ามของความทึบของส่วน)

คุณสมบัติรับทอดมาจากPVInstance
  • ไม่ซ้ำ
    ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • ไม่ซ้ำ
    ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน

วิธีการ

วิธีการรับทอดมาจากBasePart
  • AngularAccelerationToTorque(angAcceleration : Vector3,angVelocity : Vector3):Vector3
  • ใช้แรงกระตุกแบบมุมกับการประกอบ

  • ApplyImpulse(impulse : Vector3):()

    ใช้แรงกระตุ้นกับการประกอบที่การประกอบ center of mass .

  • ApplyImpulseAtPosition(impulse : Vector3,position : Vector3):()

    ใช้แรงกระตุ้นกับการประกอบในตำแหน่งที่กำหนด

  • เขียนพร้อมๆ กัน

    ส่งคืนว่าชิ้นส่วนสามารถชนกันได้หรือไม่

  • ตรวจสอบว่าคุณสามารถกำหนดสิทธิ์เจ้าของเครือข่ายส่วนได้หรือไม่

  • GetConnectedParts(recursive : boolean):Instances
    เขียนพร้อมๆ กัน

    คืนตารางชิ้นส่วนที่เชื่อมโยงกับวัตถุโดยใช้ข้อต่อแข็งใดๆ

  • GetJoints():Instances
    เขียนพร้อมๆ กัน

    คืนข้อต่อหรือข้อจำกัดทั้งหมดที่เชื่อมโยงกับส่วนนี้

  • เขียนพร้อมๆ กัน

    ส่งค่าของคุณสมบัติ Mass กลับ

  • เขียนพร้อมๆ กัน

    ส่งคืนผู้เล่นปัจจุบันที่เป็นเจ้าของเครือข่ายส่วนนี้หรือ nil ในกรณีของเซิร์ฟเวอร์

  • เขียนพร้อมๆ กัน

    ส่งคืนค่าจริงหากเครื่องเกมตัดสินเจ้าของเครือข่ายสำหรับส่วนนี้โดยอัตโนมัติ

  • เขียนพร้อมๆ กัน

    คืนส่วนฐานของการประกอบชิ้นส่วน

  • GetTouchingParts():Instances

    คืนตารางของชิ้นส่วนทั้งหมด BasePart.CanCollide ที่ถูกตัดกับชิ้นส่วนนี้

  • เขียนพร้อมๆ กัน

    คืนความเร็วเชิงเส้นของการประกอบชิ้นส่วนในตำแหน่งที่กำหนดเมื่อเทียบกับชิ้นส่วนนี้

  • เขียนพร้อมๆ กัน

    ส่งคืนจริงหากวัตถุเชื่อมต่อกับส่วนที่จะถือไว้ในตําแหน่ง (เช่นส่วน Anchored ) มิฉะนั้นจะส่งคืนเป็นเท็จ

  • Resize(normalId : Enum.NormalId,deltaAmount : number):boolean

    เปลี่ยนขนาดของวัตถุเช่นเดียวกับการใช้เครื่องมือปรับขนาดของ Studio

  • SetNetworkOwner(playerInstance : Player):()

    ตั้งผู้เล่นที่กำหนดเป็นเจ้าของเครือข่ายสำหรับส่วนที่เชื่อมต่อทั้งหมดและส่วนนี้

  • ให้เครื่องเกมตัดสินได้อย่างไดนามิกว่าใครจะจัดการกับฟิสิกส์ของชิ้นส่วน (หนึ่งในไคลเอนต์หรือเซิร์ฟเวอร์)

  • IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
    ผลตอบแทน

    สร้างใหม่ IntersectOperation จากเรขาคณิตที่ซ้อนทับของชิ้นส่วนและชิ้นส่วนอื่นๆ ในช่วงที่กำหนด

  • SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
    ผลตอบแทน

    สร้างใหม่ UnionOperation จากส่วนโดยลบเอกภาพที่ใช้โดยชิ้นส่วนในช่องที่กำหนด

  • UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
    ผลตอบแทน

    สร้างใหม่ UnionOperation จากส่วน, บวกกับรูปร่างที่ใช้โดยชิ้นส่วนในช่วงที่กำหนด

วิธีการรับทอดมาจากPVInstance
  • เขียนพร้อมๆ กัน

    รับจุดศูนย์กลางของ PVInstance .

  • PivotTo(targetCFrame : CFrame):()

    เปลี่ยน PVInstance พร้อมกับบรรดาลูกหลานทั้งหมดของมัน PVInstances ทำให้จุดศูนย์กลางอยู่ที่ตําแหน่งที่ระบุแล้ว CFrame

อีเวนต์

อีเวนต์รับทอดมาจากBasePart
  • ไฟเมื่อชิ้นหยุดสัมผัสอีกชิ้นเนื่องจากการเคลื่อนไหวทางกายภาพ

  • ไฟเมื่อชิ้นส่วนสัมผัสกับชิ้นส่วนอื่นเนื่องจากการเคลื่อนไหวทางกายภาพ

คุณสมบัติ

AllowTeamChangeOnTouch

อ่านพร้อมๆ กัน

อนุญาตให้ Player เข้าร่วมทีมโดยแตะที่ SpawnLocationเมื่อตั้งค่าเป็นจริง หากตัวละคร Player มาสัมผัสกับ SpawnLocation ผู้เล่นจะตั้งค่า Player.TeamColor เป็น Class.SpawnLocation.TeamColor``Class.Player.Neutral จะถูกตั้งค่าเป็น SpawnLocation.Neutral เมื่อติดต่อด้วย ซึ่งหมายความว่าผู้เล่นยังสามารถกลายเป็นเป็นกลางได้โดยแตะตำแหน่งจุดเกิด

สิ่งนี้จะไม่ทำงานเมื่อ SpawnLocation.Enabled ถูกตั้งค่าเป็น false

การสร้างจุดตรวจ

คุณลักษณะนี้มักใช้เพื่อสร้างจุดตรวจในสนามแข่งอุปสรรคหรือเกมที่คล้ายกัน

ตัวอย่างโค้ด

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

Duration

อ่านพร้อมๆ กัน

ระยะเวลาในวินาทีที่ ForceField จะถูกนำไปใช้กับตัวละคร Player ที่จะเกิดในที่นี่ SpawnLocationหากระยะเวลาเป็นศูนย์ ForceField จะไม่ถูกสร้างขึ้น และจะไม่กระตุ้นให้เกิดเหตุการณ์ Instance.DescendantAdded หรือ Instance.ChildAdded

ค่าเริ่มต้นของคุณสมบัตินี้คือ 10 วินาที

คุณสมบัติระยะเวลาช่วยให้นักพัฒนาสามารถให้การป้องกัน Players จาก "การสร้างการฆ่า" ซึ่งอาจเป็นประสบการณ์ที่น่าผิดหวังสำหรับผู้เล่นโปรดทราบว่า ForceFields จะป้องกันผู้ใช้จาก Explosions และอาวุธที่ใช้ Humanoid:TakeDamage() เพื่อสร้างความเสียหายหรือตรวจสอบอื่น ๆ จาก ForceField

ตัวอย่างโค้ด

This sample will create a neutral SpawnLocation in the Workspace that'll give players spawning a ForceField for 20 seconds.

SpawnLocation ForceField

local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Duration = 20
spawnLocation.Parent = workspace

Enabled

อ่านพร้อมๆ กัน

ตั้งค่าว่า SpawnLocation จะเปิดใช้งานหรือไม่ เมื่อปิดใช้งานผู้เล่นไม่สามารถสร้างได้ที่ SpawnLocation และฟังก์ชัน SpawnLocation.AllowTeamChangeOnTouch ถูกปิดใช้งาน

คุณสมบัตินี้ให้วิธีที่สะดวกที่สุดในการป้องกัน Players จากการเกิดที่จุดเกิด

โปรดทราบ แม้ว่าทีมจะเปลี่ยนเมื่อสัมผัสโดยใช้ SpawnLocation.AllowTeamChangeOnTouch จะถูกปิดใช้งานเมื่อเปิดใช้งานถูกตั้งค่าเป็น false แต่อีเวนต์ที่สัมผัสอื่น ๆ โดยใช้ BasePart.Touched จะยังคงยิง

ตัวอย่างโค้ด

The following sample will create a SpawnLocation in the Workspace that will become semi-transparent when it is disabled.

SpawnLocation Enabled

local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Enabled = true
spawnLocation.Parent = workspace
local function onEnabledChanged()
spawnLocation.Transparency = spawnLocation.Enabled and 0 or 0.5
end
spawnLocation:GetPropertyChangedSignal("Enabled"):Connect(onEnabledChanged)
task.wait(5)
spawnLocation.Enabled = false -- transparency = 0.5

Neutral

อ่านพร้อมๆ กัน

ว่าจะมีการเกิดใหม่เป็นส่วนหนึ่งของทีมเฉพาะหรือไม่ซึ่งหมายความว่าทุก Player ของทุก Team สามารถสร้างบนมันได้หากคุณสมบัตินี้ถูกตั้งค่าเป็นจริง

หากตั้งค่าเป็นกลางเป็นเท็จเฉพาะผู้เล่นที่มี Player.TeamColor เท่ากับ SpawnLocation.TeamColor สามารถใช้ SpawnLocation ได้

หาก SpawnLocation.AllowTeamChangeOnTouch เป็นจริง Player.Neutral จะถูกตั้งค่าเป็นคุณสมบัตินี้เมื่อติดต่อกับ spawn

ตัวอย่างโค้ด

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

TeamColor

อ่านพร้อมๆ กัน

คุณสมบัติ TeamColor กำหนดทีมที่ SpawnLocation เป็นสมาชิกหากคุณสมบัติ SpawnLocation.Neutral เป็นเท็จเฉพาะ Players ที่มีค่าเดียวกับ Player.TeamColor ของสีทีมที่เกิดใหม่จะสามารถสร้างได้ที่นั่น

หาก SpawnLocation.AllowTeamChangeOnTouch เป็นจริง Player.Neutral จะถูกตั้งค่าเป็นคุณสมบัตินี้เมื่อติดต่อกับ spawn

ตัวอย่างโค้ด

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

วิธีการ

อีเวนต์