编写排行榜

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

游戏中,玩家将有重要的统计数据,他们需要像收集到的物品一样查看。这些数字将使用排行榜显示。 排行榜 是 Roblox 的内置功能,需要启用脚本才能激活和自定义。

设置排行榜

每当玩家被添加到体验时,他们需要被添加到排行榜,以及与代码一起跟踪个人统计数据。

  1. 在 Explorer 中,在 ServerScriptService 下,创建一个名为 PlayerSetup 的新脚本。在那个脚本中,删除了一个 hello 世界线,并写一个描述性评论。

  2. 在评论后,创建一个名为 onPlayerJoi玩家 的自定义函数,并使用参数名 player 。


    -- 创建一个显示玩家变量的排行榜
    local function onPlayerJoin(player)
    end
  3. onPlayerJoin 中,创建一个名为 leaderstats 的变量,并且让它创建一个新的 文件夹 实例。


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    end
  4. 为新的 文件夹 实例命名为 leaderstats,并将其作为父级别给玩家。命名文件夹为 leaderstats 让 Roblox Studio 知道创建一个排行榜。


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
  5. 在函数结束后,将 OnPlayerJoin 连接到 PlayerAdded 事件。每当玩家加入体验时,每个玩家都会获得排行榜。


    local Players = game:GetService("Players")
    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    Players.PlayerAdded:Connect(onPlayerJoin)

追踪玩家统计

现在创建了排行榜,它需要向玩家显示这些数字:

  • 金币 - 玩家的金钱。
  • 物品 - 玩家从世界上收集了多少物品。
  • 空格 - 玩家可以同时拥有的最多物品。

这些数字中的每一个都将是一个 IntValue,用于为数字提供替换对象。

编写玩家金色

从编写有关金的统计开始。

  1. OnPlayerJoin ,在 leaderstats.Parent = player 下,类型 local gold = Instance.new("IntValue")。 这创建了一个新的 IntValue 并将其存储在变量金。


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    local gold = Instance.new("IntValue")
    end
  2. 然后,键入 gold.Name = "Gold" 。这将IntValue的名称提供给你,以便在其他脚本中使用。名称还会在排行榜上显示给玩家。


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    end
  3. 在新行中,输入 gold.Value = 0。这将为玩家设置起始值。


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    gold.Value = 0
    end
  4. 类型 gold.Parent = leaderstats 。这是父级对 leaderstats 的 IntValue 。如果 IntValue 不是父级对 leaderstats,玩家将不会看到它。


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    gold.Value = 0
    gold.Parent = leaderstats
    end
  5. 播放您的项目,并注意右上角会出现排行榜。

排查提示

如果您不能看到排行榜,请尝试以关注中/正在关注:

  • 请确保 .Value 是否都是大写。
  • 请确保 IntValue 变量作为父级被标记在排行榜上,例如 gold.Parent = leaderstats

编码项目和空间

请记住统计名称可以根据游戏设计文档中的任何内容来设置。例如, “Items” 可以变为 “Crystals””。

  1. 添加一个空行来分离下一个统计数据,然后通过将新 IntValue 设置为与金币相同的方式创建物品统计数据。


    local function onPlayerJoin(player)
    gold.Parent = leaderstats
    -- 创建物品统计
    local items = Instance.new("IntValue")
    items.Name = "Items"
    items.Value = 0
    items.Parent = leaderstats
    end
  2. 为玩家的背包空间创建一个新的统计数据。将 spaces.Value 设置为 2,以便玩家开始体验,只能同时容纳两个项目,鼓励他们购买一个新的背包。


    local function onPlayerJoin(player)
    items.Parent = leaderstats
    -- 创建空间统计
    local spaces = Instance.new("IntValue")
    spaces.Name = "Spaces"
    spaces.Value = 2
    spaces.Parent = leaderstats
    end
  3. 测试项目。玩家应该有一个带有金币、物品和空间的排行榜。

如果排行榜不出现,请检查以下内容。

  • 如果您无法看到排行榜上的数字,请检查每个 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)