สร้างทีม

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

การสร้างทีม ช่วยให้คุณสามารถจัดกลุ่มผู้เล่นให้แข่งขันกันเพื่อทำเป้าหมายร่วมกัน เช่น การทำคะแนนให้ได้มากที่สุด หรือการข้ามเส้นชัยก่อนสมาชิกทีมศัตรูคนอื่น สำหรับเกมยิงมุมมองบุคคลที่หนึ่ง การสร้างทีมถือเป็นสิ่งสำคัญเป็นพิเศษ เพราะมันช่วยสร้างกลยุทธ์การเล่นที่ซับซ้อนและประสานงานกันซึ่งเกินขีดความสามารถของผู้เล่นแต่ละคน

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

  • การใช้ฟังก์ชันเริ่มต้นของบริการ Teams เพื่อมอบหมายผู้เล่นให้เข้าทีมสีเขียวหรือสีชมพู
  • ช่วยให้ผู้เล่นสามารถแยกแยะระหว่างเพื่อนร่วมทีมและสมาชิกทีมศัตรูได้โดยใช้สัญลักษณ์ทีมที่ปรากฏบนหน้าจอและในประสบการณ์
  • เปิดใช้งานการเล่นที่ให้อภัยซึ่งไม่ลงโทษผู้เล่นสำหรับการยิงเพื่อนร่วมทีม

เมื่อคุณทำส่วนนี้เสร็จแล้ว คุณจะได้เรียนรู้เกี่ยวกับสคริปต์ที่อนุญาตให้ผู้เล่นเกิดหรือกลับมาเกิดที่ล็อบบี้กลางหรือตำแหน่งการเกิดของทีม ปรับแต่งภาพกราฟฟิกของฟอร์ซฟิลด์มุมมองบุคคลที่หนึ่ง และจัดการสถานะของคลายนต์ทั้งจากเซิร์ฟเวอร์และคลายนต์

มอบสีให้กับทีม

ประสบการณ์เลเซอร์แท็กตัวอย่างใช้บริการ Teams เป็นพื้นฐานในการสร้างทีมสองทีมเพราะบริการนี้มีพฤติกรรมการจัดกลุ่มทีมในตัวที่สามารถทำงานได้ทันที ตัวอย่างเช่น โดยไม่ต้องใช้สคริปต์เพิ่มเติม บริการนี้จัดการการกระทำเช่น:

  • จัดกลุ่มและทำให้ผู้เล่นมีจำนวนเท่าๆ กันในแต่ละทีม
  • ทำให้ผู้เล่นอยู่ภายใต้ทีมของพวกเขาบนกระดานผู้นำ
  • เปลี่ยนสีชื่อผู้เล่นในพื้นที่ 3D ให้ตรงกับสีทีมของพวกเขา
  • ให้ผู้เล่นเกิดที่ตำแหน่งเกิดที่แตกต่างกันซึ่งเข้าถึงได้เฉพาะทีมของพวกเขา

ด้วยฟังก์ชันการทำงานเริ่มต้นนี้ ตัวอย่างจึงเปิดใช้งานบริการ Teams แล้วใช้สองวัตถุ Team ที่แตกต่างกันซึ่งมีค่าคุณสมบัติ Team.Color ที่แตกต่างกันเพื่อแสดงถึงแต่ละทีม: มิ้นต์ สำหรับทีมที่รวมตัวกันที่ด้านหนึ่งของแผนที่ และ สีชมพู สำหรับทีมที่รวมตัวกันที่ด้านตรงข้ามของแผนที่ สีเฉพาะเหล่านี้มีประโยชน์เพราะทำให้มีความเห็นที่แตกต่างกันได้ดี และช่วยให้ผู้เล่นสามารถสแกนรอบข้างได้ง่ายและปรับตัวได้ภายในอาคารกับผู้เล่นคนอื่นๆ

มันสำคัญที่จะต้องสังเกตชื่อ BrickColor ที่แน่นอนสำหรับคุณสมบัติ Team.Color เนื่องจากประสบการณ์นี้ใช้ชื่อดังกล่าวในสคริปต์หลายๆ ชุดในการรักษาติดตามผู้เล่นเมื่อพวกเขาถูกจัดกลุ่มในทีม เพิ่มคะแนนเมื่อผู้เล่นยิงผู้เล่นศัตรูในรอบ และปรับปรุงส่วนติดต่อผู้ใช้แบบกำหนดเอง ตัวอย่างเช่น เมื่อต้นรอบเริ่ม ReplicatedStorageHUDGuiSetup จะต้องมี startSyncingTeamColor และ startSyncingTeamPoints ซึ่งอ้างอิงถึง Team.Color เพื่อทำการกระทำเฉพาะสำหรับแต่ละทีม

startSyncingTeamColor อ้างอิงถึง Team.Color เพื่อให้สามารถมอบหมายสีและไอคอนที่ถูกต้องสำหรับสัญลักษณ์ของทีมผู้เล่นที่มุมล่างซ้ายของหน้าจอ

ทีมสีเขียว
ทีมสีชมพู

local function setPlayerTeamIcon(gui: ScreenGui)
for _, teamColorIcon in gui.PlayerDisplay.TeamIcons:GetChildren() do
local iconTeamColor = teamColorIcon:GetAttribute(GuiAttribute.teamColor)
teamColorIcon.Visible = localPlayer.TeamColor == iconTeamColor
end
end
local function startSyncingTeamColor(gui: ScreenGui)
setPlayerTeamIcon(gui)
localPlayer:GetPropertyChangedSignal("Team"):Connect(function()
setPlayerTeamIcon(gui)
end)
end

แสดงสัญลักษณ์ทีม

เมื่อผู้เล่นถูกจัดกลุ่มให้เข้าทีม พวกเขาจำเป็นต้องสามารถแยกแยะได้อย่างรวดเร็วว่าตนอยู่ทีมไหน และแยกแยะระหว่างเพื่อนร่วมทีมกับสมาชิกทีมศัตรู ความสามารถนี้สำคัญเพราะการเล่นในประสบการณ์เกมยิงมุมมองบุคคลที่หนึ่งนั้นต้องการให้ผู้เล่นทำการตัดสินใจทางกลยุทธ์ที่รวดเร็วขณะที่พวกเขาอยู่ในพื้นที่ต่อสู้เพื่อไม่ให้ถูกตีและสูญเสียรอบ

เพื่อเตรียมผู้เล่นให้ประสบความสำเร็จ ประสบการณ์เลเซอร์แท็กตัวอย่างให้สัญลักษณ์ทีมหลายแบบทั้งบนหน้าจอและในพื้นที่ 3D:

  • สัญลักษณ์ผู้เล่น – UI ที่ปรับแต่งบนหน้าจอที่แสดงสีและไอคอนทีมของผู้เล่น
  • สัญลักษณ์ทีม – UI ที่ปรับแต่งในประสบการณ์ซึ่งแสดงสีทีมของผู้เล่น
  • สัญลักษณ์กระดานผู้นำ – UI เริ่มต้นของบริการ Teams ที่แสดงผู้เล่นภายใต้สีทีมของพวกเขา
  • สีชื่อ – UI ในประสบการณ์เริ่มต้นของ Teams ที่ทำให้สีชื่อของผู้เล่นเหนือหัวตรงกับสีทีมของพวกเขา
สัญลักษณ์บนหน้าจอ
สัญลักษณ์ผู้เล่น
สัญลักษณ์กระดานผู้นำ
สัญลักษณ์ในประสบการณ์
สัญลักษณ์ทีม
สีชื่อ

คุณไม่จำเป็นต้องทำงานเพิ่มเติมสำหรับสัญลักษณ์กระดานผู้นำหรือสีชื่อ นอกเหนือจากการมอบหมายสีทีมจากส่วนก่อนของบทแนะนำ แต่สัญลักษณ์ทีม UI แบบกำหนดเองต้องการความพยายามในการเขียนโปรแกรมมากขึ้นเพื่อแสดงสัญลักษณ์และปิดกั้นสัญลักษณ์ศัตรูเมื่อพวกเขาอยู่หลังผนัง สำหรับคำอธิบายโดยละเอียดเกี่ยวกับสคริปต์ที่ควบคุมพฤติกรรม UI แบบกำหนดเอง รวมถึงวิธีการนำแต่ละองค์ประกอบ UI มาใช้เอง โปรดดูที่ สัญลักษณ์ผู้เล่น และ สัญลักษณ์ทีม จากหลักสูตร UI

ปิดการยิงเพื่อน

ในขณะที่ประสบการณ์เกมยิงมุมมองบุคคลที่หนึ่งบางอย่างลงโทษผู้เล่นที่ยิงเพื่อนร่วมทีมของตน แต่ประสบการณ์เลเซอร์แท็กตัวอย่างนี้อนุญาตให้มีการเล่นที่ให้อภัยมากขึ้นโดยการปิดการยิงเพื่อน การตัดสินใจออกแบบนี้อนุญาตให้ทุกคนสามารถเพิ่มคะแนนทีมของตนได้เท่านั้น ไม่ลดคะแนนจากอุบัติเหตุในการเล่น

เพื่อทำความเข้าใจว่าตัวอย่างนี้นำฟังก์ชันการทำงานนี้ไปใช้อย่างไร ให้พิจารณาวิธีที่ ServerScriptServiceLaserBlastHandlerprocessTaggedPlayersonPlayerTagged จัดการความเสียหายที่เกิดกับผู้เล่นที่ถูกระบุ เมื่อเซิร์ฟเวอร์ตรวจจับการชนกันระหว่างการยิงของผู้เล่นและผู้เล่นคนอื่น มันจะเรียกฟังก์ชัน onPlayerTagged เพื่อเข้าใจว่าผู้เล่นคนไหนที่ยิงและผู้เล่นคนไหนที่ถูกยิง และว่าจะต้องลดความเสียหายจากสุขภาพของผู้เล่นมากน้อยเพียงใดตามประเภทอาวุธ


local function onPlayerTagged(playerBlasted: Player, playerTagged: Player, damageAmount: number)

ก่อนที่มันจะลดสุขภาพ สคริปต์จะตรวจสอบก่อนว่าผู้เล่นที่ถูกระบุอยู่ในทีมเดียวกับผู้เล่นที่เริ่มการยิงหรือไม่ หากพวกเขาอยู่ในทีมเดียวกัน สคริปต์จะไม่สนใจข้อมูลการยิงเลย


local character = playerTagged.Character
local isFriendly = playerBlasted.Team == playerTagged.Team
-- ปิดการยิงเพื่อน
if isFriendly then
return
end

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


local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid and humanoid.Health > 0 then
local damage = math.min(damageAmount, humanoid.Health)
humanoid:TakeDamage(damage)
if humanoid.Health <= 0 then
Scoring.incrementScore(playerBlasted, 1)
end
end
end
return onPlayerTagged

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

เพื่อแก้ไขปัญหานี้ งวดถัดไปของบทแนะนำจะสอนคุณเกี่ยวกับตรรกะที่กำหนดเองในการจำกัดการเกิดทีมไปยังตำแหน่งการเกิดเฉพาะ จัดการสถานะของคลายนต์เมื่อผู้เล่นออกจากพื้นที่เกิดหลังจากเลือกระบบอาวุธ และการเกิดผู้เล่นกลับไปยังพื้นที่เกิดหรือล็อบบี้เมื่อสุขภาพของพวกเขาถึงศูนย์

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ