当玩家与接近提示互动时,它会检查玩家是否拥有工具,如果没有,那么它就会发挥作用



我正在制作一个gui,当玩家与邻近提示交互时显示,但是,我希望脚本检查玩家是否在他的库存中拥有该工具。如果它有这个工具,那么什么都不要做(不要)。(显示gui),如果没有工具,则触发一个事件。我试图使它,但这个错误一直显示工作区部分。脚本:6:尝试用'Backpack'索引nil脚本如下:

debounce = true
script.Parent.ProximityPrompt.Triggered:Connect(function(player)
if debounce then
debounce = false
local noob = game.Players:GetPlayerFromCharacter(player.Parent)
local Tool = noob.Backpack:FindFirstChild("Gunball")

if Tool == nil then

game.ReplicatedStorage.RemoteEvent:FireClient(player)
debounce = true
end
end
end)

这是gui脚本(本地),即使我真的不认为这是有用的..:

game.ReplicatedStorage.RemoteEvent.OnClientEvent:Connect(function()
script.Parent.Visible = true
end)

工作区。脚本:6:尝试用'Backpack'索引nil

local Tool = noob.Backpack:FindFirstChild("Gunball")

这里noobnil

所以在local noob = game.Players:GetPlayerFromCharacter(player.Parent)中,game.Players:GetPlayerFromCharacter(player.Parent)返回nil

根据Roblox文档

这个函数返回与给定的播放器相关联的播放器的球员。字符,如果找不到则为nil。它相当于以下函数:

local function getPlayerFromCharacter(character)
for _, player in pairs(game:GetService("Players"):GetPlayers()) do
if player.Character == character then
return player
end
end
end

所以player,player.ParentParent似乎不是与任何玩家相关的Character

为什么像Character这样的玩家属性应该是玩家的父属性?我不是Roblox专家,但这对我来说似乎没有任何意义。

如果你想检查触发ProximitPrompt的玩家是否有一些物品,为什么不使用player?我是说那是触发它的玩家。所以检查它的背包,而不是一些父母角色的东西。

相关内容

最新更新