Roblox 参数 1 缺失或无
Roblox Argument 1 Missing Or Nil
我正在尝试制作一个方块,当它被特定工具击中时,它会消失并为玩家提供一些 XP。但是,当我 运行 我的代码时,我收到一条错误消息 "Argument 1 Missing Or Nil"。我的代码如下。
script.Parent.Touched:Connect(function(hit)
if hit.Parent.Name == 'Vacuum' then
local plr = hit.Parent.Parent.Name
script.Parent.CanCollide = false
script.Parent.Transparency = 1
local exp = 2
local player = game.Players:FindFirstChild(plr.Name)
local plrcurrentexp = player.leaderstats.JobXP.Value
plrcurrentexp.Value = plrcurrentexp + exp
wait(120)
script.Parent.CanCollide = true
script.Parent.Transparency = 0
end
end)
请帮忙!
我看到了 2 个问题,它们都是同一类型的问题。
问题 1
第一个问题是找到玩家。您设置了 plr = hit.parent.Parent.name
,然后设置了 运行 FindFirstChild(plr.Name)
,但这不起作用,因为 plr
已经是玩家的 Name
。相反,你应该这样做:
local player = game.Players:FindFirstChild(plr)
问题2
第二个问题在你的赋值语句中:
local exp = 2
local player = game.Players:FindFirstChild(plr.Name)
local plrcurrentexp = player.leaderstats.JobXP.Value
plrcurrentexp.Value = plrcurrentexp + exp
在最后一行中,您试图设置 JobXP
的 Value
,但是 plrcurrentexp
不是 JobXP
,而是 Value
.
所以你现在做的是player.leaderstats.JobXP.Value.Value = plrcurrentexp + exp
,这是错误的。
改为这样做:
local exp = 2
local player = game.Players:FindFirstChild(plr.Name)
local plrcurrentexp = player.leaderstats.JobXP
plrcurrentexp.Value = plrcurrentexp.Value + exp
我正在尝试制作一个方块,当它被特定工具击中时,它会消失并为玩家提供一些 XP。但是,当我 运行 我的代码时,我收到一条错误消息 "Argument 1 Missing Or Nil"。我的代码如下。
script.Parent.Touched:Connect(function(hit)
if hit.Parent.Name == 'Vacuum' then
local plr = hit.Parent.Parent.Name
script.Parent.CanCollide = false
script.Parent.Transparency = 1
local exp = 2
local player = game.Players:FindFirstChild(plr.Name)
local plrcurrentexp = player.leaderstats.JobXP.Value
plrcurrentexp.Value = plrcurrentexp + exp
wait(120)
script.Parent.CanCollide = true
script.Parent.Transparency = 0
end
end)
请帮忙!
我看到了 2 个问题,它们都是同一类型的问题。
问题 1
第一个问题是找到玩家。您设置了 plr = hit.parent.Parent.name
,然后设置了 运行 FindFirstChild(plr.Name)
,但这不起作用,因为 plr
已经是玩家的 Name
。相反,你应该这样做:
local player = game.Players:FindFirstChild(plr)
问题2
第二个问题在你的赋值语句中:
local exp = 2
local player = game.Players:FindFirstChild(plr.Name)
local plrcurrentexp = player.leaderstats.JobXP.Value
plrcurrentexp.Value = plrcurrentexp + exp
在最后一行中,您试图设置 JobXP
的 Value
,但是 plrcurrentexp
不是 JobXP
,而是 Value
.
所以你现在做的是player.leaderstats.JobXP.Value.Value = plrcurrentexp + exp
,这是错误的。
改为这样做:
local exp = 2
local player = game.Players:FindFirstChild(plr.Name)
local plrcurrentexp = player.leaderstats.JobXP
plrcurrentexp.Value = plrcurrentexp.Value + exp