繁体   English   中英

尝试使用 leaderstats 索引 nil

[英]attempt to index nil with leaderstats

我正在制作一个游戏,你将汽车撞到房子里,它会解开汽车前部接触到的部分。 我想拥有它,这样每当您取消锚定零件时,您都会得到一枚硬币

local HitPart = script.Parent

local function onTouch(otherPart)

    local player = otherPart.Parent

    if otherPart then

        local player = game.Players:FindFirstChild(otherPart.Parent.Name)

        if otherPart then

            game.Players.LocalPlayer.leaderstats.coins.Value = game.Players.LocalPlayer.leaderstats.coins.Value + 1 

        end

    end

end

HitPart.Touched:Connect(onTouch)

HitPart 是接触其他部分的部分。 但是,我不断收到“尝试使用 'leaderstats' 索引 nil”错误。 有谁知道怎么了?

您是否在播放器内部创建了leaderstats? 这是一篇关于 Roblox 的游戏内排行榜的深入文章

该错误告诉您您正在尝试访问不存在的玩家的leaderstats者统计信息。

你有几个问题。

  • 由于这(可能)是一个脚本, game.Players.LocalPlayer不存在。 LocalPlayer仅存在于 LocalScripts 中。
  • 由于 Touched 信号将对任何触摸它的 object 触发,因此您需要添加player object 实际存在的安全检查

为了更容易找到玩家,我建议使用Players:GetPlayerFromCharacter function 您从 Workspace 向其传递 Model,它会告诉您是否有 Player。

local HitPart = script.Parent

local function onTouch(otherPart)

    local characterModel = otherPart.Parent
    local player = game.Players:FindPlayerFromCharacter(characterModel)

    if player then
        local coins = player.leaderstats.coins
        coins.Value = coins.Value + 1 
    end
end

HitPart.Touched:Connect(onTouch)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM