การล่าสมบัติ

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

ScavengerHuntโมดูลผู้พัฒนา สถานที่ความคืบหน้าของผู้เล่นคือตัวคงที่ดังนั้นการล่าสมบัติจึงสามา

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

การติดตั้ง

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

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

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

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

  4. ค้นหาโมดูล ล่าสมบัติ และคลิกมันหรือลากลงในมุมมอง 3D

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

ใช้โทเค็น

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

  1. ค้นหา Token1 เมชภายใน โฟลเดอร์งานของโมดูล

  2. ย้าย โทเค็น 1 เข้าสู่ระดับชั้นสูงสุดของ Workspace และตำแหน่งมันที่ต้องการ

  3. ให้ตัวแทน ชื่อเฉพาะ ให้กับโทเค็นนี้ โดยชื่อนี้จะเป็นวิธีที่โมดูลติดตามว่าโทเค็นใดที่ผู้เล่นแต่ละคนได้รวบรวม

  4. เพื่อเพิ่มโทเค็นเพิ่มเติมให้ซ้ำโทเค็นที่มีอยู่แล้วและให้ชื่อที่ไม่ซ้ำกัน

หากคุณไม่ต้องการใช้เมชทองคำที่รวมอยู่ในชุดรุ่น ใด ๆ ของ Model หรือ BasePart จะทำงานได้ตามที่ตรงตามข้อกำหนดต่อไปนี้:

  • วัตถุมีป้ายชื่อ CollectionService ของ ScavengerHuntPart หากต้องการ ชื่อ CollectionService ของโมดูลที่ใช้สามารถเปลี่ยนได้โดยการตั้งค่าค่าต่าง ๆ ใน

  • วัตถุมีตัวละคร StringValue ของตัวเองตั้งอยู่ใน "flavor เนื้อหา" เพื่อแสดงเมื่อเก็บตั๋ว

    แบบฟอร์ม
    MeshPart เครือข่าย

ใช้ภาค

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

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

  2. ให้มัน ชื่อเฉพาะ นี้ ชื่อนี้คือวิธีที่โมดูลติดตามภายในแต่ละภูมิภาคที่ผู้เล่นแต่ละรายเข้าร่วม

  3. โดยใช้ส่วน แท็ก ของโปรไฟล์ของส่วน หรือ Studio 의 แท็กเอเดอร์นัมเบอร์เนอร์ ให้ใช้แท็ก ScavengerHuntPart

  4. รวมชุดตัวอย่าง StringValue ในโคลัสเซอร์เพื่อให้เป็น "รสชาติข้อความ" เมื่อภูมิภาคถูกเข้าสู่

การกำหนดค่า

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

  1. ใน StarterPlayerScripts สร้าง LocalScript ใหม่และเปลี่ยนชื่อมันเป็น ConfigureScavengerHunt 2. วางรหัสต่อไปนี้ในสคริปต์ใหม่

    สคริปต์ท้องถิ่น - กำหนดค่าหาสมบัติ

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
    ScavengerHunt.configureClient({
    infoModalText = "Welcome to my Scavenger Hunt!",
    completeModalText = "Thanks for playing my Scavenger Hunt!",
    tokenRotationSpeed = 60,
    })

เหตุการณ์คอลเลกชัน

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

เช่นเดียวกันเมื่อผู้เล่นรวบรวม ทั้งหมด โทเค็นหรือเข้าสู่ ทั้งหมด ภายในภาพหางเขต เหตุการณ์ ทั้งหมด

สคริป

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.collected:Connect(function(player, itemName)
print(player.DisplayName, itemName)
end)
ScavengerHunt.allCollected:Connect(function(player)
print(player.DisplayName .. " completed the hunt!")
end)

การปรับแต่ง GUI

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

เมื่อ useCustomModals กำหนดไว้เป็น true ใน ใช้เครื่องมือการกำหนดตัวตน ฟังเหตุการณ์ 1> showInfoModal1> ทุก

สคริปต์ท้องถิ่น

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.showInfoModal:Connect(function()
-- แสดงโมดัลข้อมูลที่กําหนดเอง
local infoModal = Players.LocalPlayer.PlayerGui.ScavengerInfoModal
infoModal.Enabled = true
end)
ScavengerHunt.showCompleteModal:Connect(function()
-- แสดงโมดัลที่เสร็จสมบูรณ์แบบ
local completeModal = Players.LocalPlayer.PlayerGui.ScavengerCompleteModal
completeModal.Enabled = true
end)

ความโปร่งใสของ GUI

โดยปกติ, การล่าสมบัติจะซ่อน all ScreenGuis และ CoreGuis (ยกเว้นสำหรับรายการผู้เล่น) เมื่อ popup ข้อ

สคริปต์ท้องถิ่น

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- สร้าง GUI หน้าจอที่จะไม่ถูกซ่อน
local specialGuiInstance = Instance.new("ScreenGui")
-- วาด GUI หน้าจอข้างการแสวงหาสมบัติ
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- เพิ่มข้อความในชื่อเรื่องให้กับ GUI
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Remains visible when displaying modals"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
ScavengerHunt.hideOtherGuis(function()
-- ซ่อน GUI ของหน้าจอที่กำหนดโดยผู้พัฒนาทั้งหมด
local instances = playerGui:GetChildren()
for _, instance in instances do
if instance:IsA("ScreenGui") and not instance.Name == "ScavengerHunt" and instance.Enabled then
instance.Enabled = false
table.insert(hiddenInstances, instance)
end
end
-- ซ่อน GUIs เฉพาะ
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
ScavengerHunt.showOtherGuis(function()
-- แสดง GUIs จอแสดงผลที่กำหนดโดยผู้พัฒนาทั้งหมดที่ซ่อนอยู่
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- แสดง GUIs เฉพาะที่ซ่อนอยู่
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

อ้างอิง เอกสารอ้างอิงเกี่ยวกับ API

ฟังก์ชัน

กำหนดค่าลูกค้า

กำหนดตัวลูกค้า(ค่า: table )

เปลี่ยนการตั้งค่าด้านล่างของการกำหนดค่าของลูกค้าผ่านคีย์/ค่าต่อไปนี้ในตาราง config นี้ ฟังก์ชันนี้สามารถเรียกได้จาก LocalScript เท่านั้น

กุญแจคำอธิบายเริ่มต้น
autoDismissTimeเวลาในวินาทีก่อนที่โมดัลจะปิดตัวอัตโนมัติหรือนำทางไปยังหน้าต่างๆ หากมีหนึ่ง ตั้งค่าให้เป็น 0 เพื่อปิด20
closeModalGamepadปุ่มเกมพาดที่ใช้เพื่อปิดโมดัล ( Enum.KeyCode )ButtonA
closeModalKeyboardปุ่มเคลียดที่ใช้ในการปิดโมดัล ( Enum.KeyCode )E
completeModalTextข้อความที่ปรากฏบนโมดัลที่ปรากฏหลังจากการล่าสมบัติเสร็จสิ้นขอบคุณสําหรับการมีส่วนร่วม!
infoModalTextข้อความที่แสดงบนโมดัลที่ปรากฏหลังจากการคลิกที่ตัวติดตามโทเค็น“ค้นหาโทเค็นทั้งหมดเพื่อเสร็จสิ้นการล่า”
tokenRotationSpeedความเร็วที่โทเค็นหมุนต่อวินาที ตั้งค่าให้เป็น 0 เพื่อป้องกันการหมุน20
nextArrowImageใช้รูปภาพเพื่อแสดงว่ามีหน้าโมดัลมากขึ้นหลังจากหน้าโมดัลปัจจุบัน“รายละเอียด: rxbassetid://8167172095”
openTokenTrackerGamepadปุ่มเกมพาดที่ใช้เพื่อแสดงโมดัลที่ปรากฏหลังจากการเปิดใช้งานตัวตรวจสอบโทเค็น ( Enum.KeyCode )ButtonY
openTokenTrackerKeyboardปุ่มเครื่องมือใช้เพื่อแสดงโมดัลที่ปรากฏหลังจากเปิดใช้งานตัวตรวจสอบโทเค็น ( Enum.KeyCode )Y
openTokenTrackerGamepadButtonImageรูปภาพสำหรับปุ่มเกมพาดที่ใช้เพื่อเปิดเครื่องติดตามโทเค็น“รายละเอียด: rxbassetid://8025860488”
regionIconไอคอนที่ปรากฏข้างกับตัวติดตามโทเค็นเมื่อเข้าสู่ภูมิภาค“ริบบอนเอสเซ็ตส์ไอดี://8073794624”
tokenIconไอคอนที่ปรากฏข้างกับตัวติดตามโทเค็นเมื่อเก็บโทเค็น“รายละเอียด: rxbassetid://8073794477”
tokenTrackerPositionSmallDeviceตำแหน่งของ UI เครื่องติดตามโทเค็นบนอุปกรณ์ขนาดเล็กเช่นโทรศัพท์ ( UDim2 )(1, 0, 0, 84)
tokenTrackerPositionLargeDeviceตำแหน่งของ UI เครื่องติดตามดูดโทเค็นบนอุปกรณ์ขนาดใหญ่เช่นแท็บเล็ตและพีซี (UDim2 )(1, 0, 1, -16)
useRegionsแทนที่ โทเค็น ใช้ ภาคภูมิภาคปลอม
สคริปต์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.configureClient({
infoModalText = "Welcome to my Scavenger Hunt!",
completeModalText = "Thanks for playing my Scavenger Hunt!",
tokenRotationSpeed = 60,
navigationBeam = {
lightEmission = 1
},
modal = {
textSize = 14
},
})

กำหนดค่าเซิร์ฟเวอร์

กำหนดค่าเซิร์ฟเวอร์ (ค่า: table )

เปลี่ยนการตั้งค่าด้านเซิร์ฟเวอร์ของค่าเริ่มต้นผ่านคีย์ / มูลค่าต่อไปนี้ในตาราง config นี้ ฟังก์ชันนี้สามารถเรียกได้จาก Script เท่านั้น

กุญแจคำอธิบายเริ่มต้น
tokenTagใช้ป้ายชื่อโดย CollectionService เพื่อค้นหาโทเค็นหรือภาคภูมิภาคที่ใช้ในการล่าสมบัติ“สกาเวนเจอร์ฮันท์พาร์ท”
datastoreNameชื่อของ DataStore ที่ใช้โดยการหาสมบัติเพื่อเก็บความคืบหน้าของคอลเลกชันของผู้เล่นแต่ละราย“สกาเวนเจอร์ฮันท์โทเค็น”
resetOnPlayerRemovingหากเป็นเช่นนั้นจริง รีเซ็ตความคืบหน้าของผู้ใช้เมื่อพวกเขาออกจากประสบการณ์; สะดวกสบายในการไม่บันทึกความคืบหน้าในขณะที่ทดสอบการหาสมบัติปลอม
สคริป

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.configureServer({
tokenTag = "GreenGem",
})

ปิดใช้งาน

ปิดใช้งาน()

ซ่อน UI สำหรับการล่าสมบัติทั้งหมด, ตัดการเชื่อมต่อเหตุการณ์ทั้งหมด, และป้องกันผู้เล่นจากการรวบรวมโทเค็นหรือใช้งานกับภูมิภาค

สคริป

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.disable()

เปิดใช้งาน

เปิดใช้งาน()

แสดง UI สำหรับการล่าสมบัติทั้งหมด เชื่อมต่อผู้ฟังกิจกรรมทั้งหมด และสามารถให้ผู้เล่นรวบรวมโทเค็นและใช้งานร่วมกับภูมิภาคได้ ฟังก์ชันนี้สามารถเรียกได้จาก Script

สคริป

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.enable()

เหตุการณ์

รวบรวม

เปิดในขณะที่ผู้เล่นชนกับโทเค็นหรือเข้าสู่ภูมิภาค ฟังก์ชันที่เชื่อมต่อจะได้รับ Player ที่ชนกับโทเค็นหรือเข้าสู่ภูมิภาคและชื่อของโทเค็นที่ถูกชนกั

ตัวแปร
ผู้เล่น: Playerผู้ใช้ที่ชนกับโทเค็นหรือเข้าสู่ภูมิภาค
itemName: stringชื่อของโทเค็นที่ชนกันหรือภาคภูมิภาคที่กรอก
ทั้งหมดที่เก็บ: numberจํานวนเงินทั้งหมดของโทเค็นที่เก็บโดยผู้ใช้ที่ได้รับการแทนที่โดย player
สคริป

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.collected:Connect(function(player, itemName, totalCollected)
print(player.DisplayName, itemName, totalCollected)
end)

ทั้งหมดที่เก็บ

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

ตัวแปร
ผู้เล่น: Playerผู้เล่นที่เก็บรวบรวมโทเค็นทั้งหมดหรือเข้าสู่ภูมิภาคทั้งหมด
สคริป

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.allCollected:Connect(function(player)
print(player.DisplayName .. " completed the hunt!")
end)

แสดงInfoModal

เกิดขึ้นเมื่อผู้เล่นคลิกที่ตัวติดตามโทเค็นเมื่อตัวเลือก useCustomModalsnumberConfig ถูกตั้งค่าให้เป็น true อีเวนต์นี้สามารถเชื่อมต่อได้ใน LocalScript เท่านั้น

สคริปต์ท้องถิ่น

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.showInfoModal:Connect(function()
local infoModal = Players.LocalPlayer.PlayerGui.InfoModal
infoModal.Enabled = true
end)

แสดงโมดัลเสร็จสิ้น

เกิดขึ้นเมื่อผู้เล่นคลิกที่ตัวติดตามโทเค็นเมื่อตัวเลือก useCustomModalsnumber1 ตั้งค่าไว้ที่ true และผู้เล่นได้รวบรวมโทเค็นทั้งหมดในการล่าสมบ

สคริปต์ท้องถิ่น

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ScavengerHunt = require(ReplicatedStorage:WaitForChild("ScavengerHunt"))
ScavengerHunt.showCompleteModal:Connect(function()
local completeModal = Players.LocalPlayer.PlayerGui.CompleteModal
completeModal.Enabled = true
end)

คอลแล็ค

ซ่อน OtherGuis

ซ่อนOtherGuis(คืนค่า: function )

คอลแล็กชันนี้จะปรากฏขึ้นทันทีก่อนที่โมดัลจะแสดงขึ้น ให้คุณปิดการใช้งานทั้งหมดของ ScreenGuis หรือองค์ประกอบภายในของพวกเขาก่อนที่จะแสดงโมดัล ดู รหัสGUI สำ

แสดงOtherGuis

แสดงOtherGuis(คืนค่า: function )

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