尝试使用 'Value' 索引 nil
Posted
技术标签:
【中文标题】尝试使用 \'Value\' 索引 nil【英文标题】:Attemp to index nil with 'Value'尝试使用 'Value' 索引 nil 【发布时间】:2021-09-04 05:21:17 【问题描述】:我打算做一个切换器。这意味着当您配备该工具时,切换器(服务器脚本)将打开文件夹内的正文系统,并且在 ServerScriptService 中我将它们全部禁用,.这是切换器代码。
local Tool = script.Parent
local SSS = game.ServerScriptService:WaitForChild("CombatFolder")
function onEquippedLocal()
SSS:WaitForChild("CanAttack").Disabled = false
SSS:FindFirstChild("M1").Disabled = false
SSS:FindFirstChild("M2").Disabled = false
end
function onUnequippedLocal()
SSS:WaitForChild("CanAttack").Disabled = true
SSS:FindFirstChild("M1").Disabled = true
SSS:FindFirstChild("M2").Disabled = true
end
Tool.Equipped:connect(onEquippedLocal)
Tool.Unequipped:connect(onUnequippedLocal)
这是我装备工具时的输出
10:50:22.732 Players.TeemoHoang_2008.Backpack.SwordCombat.M2:15: attempt to index nil with 'Value' - Client - M2:15
10:50:22.732 Stack Begin - Studio
10:50:22.732 Script 'Players.TeemoHoang_2008.Backpack.SwordCombat.M2', Line 15 - Studio - M2:15
10:50:22.732 Stack End - Studio
10:50:24.099 Players.TeemoHoang_2008.Backpack.SwordCombat.newCombat:54: attempt to index nil with 'Value' - Client - newCombat:54
10:50:24.099 Stack Begin - Studio
10:50:24.099 Script 'Players.TeemoHoang_2008.Backpack.SwordCombat.newCombat', Line 54 - Studio - newCombat:54
10:50:24.099 Stack End - Studio
这是工具中M2(本地脚本)错误开始时的功能
script.Parent.Equipped:Connect(function()
uis.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
if debounce == false and char:FindFirstChild("CanAttack").Value == true and char:FindFirstChild("Stun") == nil and char:FindFirstChild("eStun") == nil and char:FindFirstChild("BlockBreak") == nil and char:FindFirstChild("IsBlocking") == nil then
if char:FindFirstChild("SwordCombat") then
local tool = char:FindFirstChild("SwordCombat")
if tool:IsA("Tool")then
debounce = true
remote:FireServer()
end
end
end
end
end)
end)
这是工具内newCombat(localscript)的错误行
script.Parent.Activated:Connect(function()
if char:FindFirstChild("CanAttack").Value == true and char:FindFirstChild("Stun") == nil and char:FindFirstChild("eStun") == nil and char:FindFirstChild("IsBlocking") == nil and char:FindFirstChild("BlockBreak") == nil then
我曾尝试禁用 newCombat 和 M2 并在装备该工具时与车身系统同时启用它,但当我这样做时。 M2 只显示错误,但一切仍然无法正常工作。请帮忙!
【问题讨论】:
【参考方案1】:错误很明显。您正在尝试使用 Value
索引一个 nil 值,因此 char:FindFirstChild("CanAttack")
返回 nil。
Instance:FindFirstChilde(name) 如果没有给定名称的孩子,则返回 nil。
找出为什么没有这样的孩子或检查是否真的有孩子,然后再尝试对其进行索引。
【讨论】:
以上是关于尝试使用 'Value' 索引 nil的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 'Connect' With Changed 事件对 nil 进行索引
Roblox Studio-尝试在输出中使用“leaderstats”错误索引 nil