在游戏中,玩家会有重要的统计数据需要查看,比如他们收集的物品。这些数字将使用排行榜显示。 排行榜 是Roblox的内置功能,需要启用并自定义脚本。

设置排行榜
每当玩家被添加到体验中时,他们都需要被添加到排行榜以及跟踪个人统计数据的代码。
在 Explorer 中,在 ServerScriptService 下,创建一个名为 PlayerSetup 的新脚本。在那个脚本中,删除了你好世界线并写了一条描述性评论。
评论之后,创建一个名为 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 并将其存储在变量 gold 中。
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 。这将将金币的 IntValue 转移到 leaderstats。如果 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 正确地拼写,如所示
- 检查玩家添加事件是否位于脚本的底部
完成玩家设置脚本
脚本的完成版本可以在下面参考。
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
-- 在玩家添加事件触发时运行 onPlayerJoin
Players.PlayerAdded:Connect(onPlayerJoin)