Workspace.Coin.SpinningCoin:7:尝试用 'leaderstats' 索引 nil
Workspace.Coin.SpinningCoin:7: attempt to index nil with 'leaderstats'
以下代码在 95% 的情况下都有效,但偶尔会失败,我不知道为什么。奇怪的是脚本的其余部分仍在运行,打印行有效并且添加了现金。 Roblox Studio 是有问题还是我做错了什么? - 顺便说一句,我有 10 次重生,这就是为什么我得到 35 现金而不是 10。
`script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
local GiveCash = 10
local RebirthMultiplier = 0.25
cash = plr.leaderstats.Cash.Value
print(cash)
rebirths = plr.leaderstats.Rebirths.Value
print(rebirths)
script.Disabled = true
script.Parent.Transparency = 1
script.Parent.CanCollide = false
plr.leaderstats.Cash.Value = cash + GiveCash + (rebirths * GiveCash * RebirthMultiplier)
wait(3)
script.Parent.Transparency=0
script.Parent.CanCollide = false
script.Disabled = false
end)`
Roblox Studio Output
Touched
信号会在任何东西接触到它时触发,包括非玩家角色模型的物体。您需要考虑 Players:GetPlayerFromCharacter
不是 return 玩家的可能性。
script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
if not plr then
return
end
以下代码在 95% 的情况下都有效,但偶尔会失败,我不知道为什么。奇怪的是脚本的其余部分仍在运行,打印行有效并且添加了现金。 Roblox Studio 是有问题还是我做错了什么? - 顺便说一句,我有 10 次重生,这就是为什么我得到 35 现金而不是 10。
`script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
local GiveCash = 10
local RebirthMultiplier = 0.25
cash = plr.leaderstats.Cash.Value
print(cash)
rebirths = plr.leaderstats.Rebirths.Value
print(rebirths)
script.Disabled = true
script.Parent.Transparency = 1
script.Parent.CanCollide = false
plr.leaderstats.Cash.Value = cash + GiveCash + (rebirths * GiveCash * RebirthMultiplier)
wait(3)
script.Parent.Transparency=0
script.Parent.CanCollide = false
script.Disabled = false
end)`
Roblox Studio Output
Touched
信号会在任何东西接触到它时触发,包括非玩家角色模型的物体。您需要考虑 Players:GetPlayerFromCharacter
不是 return 玩家的可能性。
script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
if not plr then
return
end