游戏中,玩家将有重要的统计数据,他们需要像收集到的物品一样查看。这些数字将使用排行榜显示。 排行榜 是 Roblox 的内置功能,需要启用脚本才能激活和自定义。
设置排行榜
每当玩家被添加到体验时,他们需要被添加到排行榜,以及与代码一起跟踪个人统计数据。
在 Explorer 中,在 ServerScriptService 下,创建一个名为 PlayerSetup 的新脚本。在那个脚本中,删除了一个 hello 世界线,并写一个描述性评论。
在评论后,创建一个名为 onPlayerJoi玩家 的自定义函数,并使用参数名 player 。
-- 创建一个显示玩家变量的排行榜local function onPlayerJoin(player)end在 onPlayerJoin 中,创建一个名为 leaderstats 的变量,并且让它创建一个新的 文件夹 实例。
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")end为新的 文件夹 实例命名为 leaderstats,并将其作为父级别给玩家。命名文件夹为 leaderstats 让 Roblox Studio 知道创建一个排行榜。
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend在函数结束后,将 OnPlayerJoin 连接到 PlayerAdded 事件。每当玩家加入体验时,每个玩家都会获得排行榜。
local Players = game:GetService("Players")local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerendPlayers.PlayerAdded:Connect(onPlayerJoin)
追踪玩家统计
现在创建了排行榜,它需要向玩家显示这些数字:
- 金币 - 玩家的金钱。
- 物品 - 玩家从世界上收集了多少物品。
- 空格 - 玩家可以同时拥有的最多物品。
这些数字中的每一个都将是一个 IntValue,用于为数字提供替换对象。
编写玩家金色
从编写有关金的统计开始。
在 OnPlayerJoin ,在 leaderstats.Parent = player 下,类型 local gold = Instance.new("IntValue")。 这创建了一个新的 IntValue 并将其存储在变量金。
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerlocal gold = Instance.new("IntValue")end然后,键入 gold.Name = "Gold" 。这将IntValue的名称提供给你,以便在其他脚本中使用。名称还会在排行榜上显示给玩家。
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"end在新行中,输入 gold.Value = 0。这将为玩家设置起始值。
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"gold.Value = 0end类型 gold.Parent = leaderstats 。这是父级对 leaderstats 的 IntValue 。如果 IntValue 不是父级对 leaderstats,玩家将不会看到它。
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"gold.Value = 0gold.Parent = leaderstatsend播放您的项目,并注意右上角会出现排行榜。
排查提示
如果您不能看到排行榜,请尝试以关注中/正在关注:
- 请确保 .Value 是否都是大写。
- 请确保 IntValue 变量作为父级被标记在排行榜上,例如 gold.Parent = leaderstats。
编码项目和空间
请记住统计名称可以根据游戏设计文档中的任何内容来设置。例如, “Items” 可以变为 “Crystals””。
添加一个空行来分离下一个统计数据,然后通过将新 IntValue 设置为与金币相同的方式创建物品统计数据。
local function onPlayerJoin(player)gold.Parent = leaderstats-- 创建物品统计local items = Instance.new("IntValue")items.Name = "Items"items.Value = 0items.Parent = leaderstatsend为玩家的背包空间创建一个新的统计数据。将 spaces.Value 设置为 2,以便玩家开始体验,只能同时容纳两个项目,鼓励他们购买一个新的背包。
local function onPlayerJoin(player)items.Parent = leaderstats-- 创建空间统计local spaces = Instance.new("IntValue")spaces.Name = "Spaces"spaces.Value = 2spaces.Parent = leaderstatsend测试项目。玩家应该有一个带有金币、物品和空间的排行榜。
如果排行榜不出现,请检查以下内容。
- 如果您无法看到排行榜上的数字,请检查每个 IntValue 是否都父级于 leaderstats。
- 确保每个 IntValue 的拼写都正确
- 检查“PlayerAdded”事件是否位于脚本的底部
完成玩家设置脚本
脚本的完整版本可以在下面引用。
local Players = game:GetService("Players")
-- 创建一个显示玩家变量的排行榜
local function onPlayerJoin(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
local items = Instance.new("IntValue")
items.Name = "Items"
items.Value = 0
items.Parent = leaderstats
local spaces = Instance.new("IntValue")
spaces.Name = "Spaces"
spaces.Value = 2
spaces.Parent = leaderstats
end
-- 在玩家添加事件触发时运行
Players.PlayerAdded:Connect(onPlayerJoin)