สร้างทีม

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

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

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

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

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

กำหนดสีทีม

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

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

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

สิ่งสำคัญคือต้องทราบชื่อ BrickColor ที่แน่นอนสำหรับคุณสมบัติ Team.Color เพราะเกมใช้ชื่อนี้ในหลายสคริปต์ในเกมเพื่อติดตามผู้เล่นเมื่อพวกเขาจัดกลุ่มเป็นทีม เพิ่มคะแนนเมื่อผู้เล่นทำการแท็กผู้เล่นศัตรูในระหว่างรอบ และอัปเดตองค์ประกอบ UI ที่กำหนดเอง ตัวอย่างเช่น เมื่อรอบเริ่มต้น 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 เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ