Получение нулевого ответа при попытке клонировать объект в рюкзак

Я пытаюсь клонировать объект из реплицированного хранилища в рюкзак игроков, когда касается части объекта, и код выглядит нормально для меня, но он продолжает давать нулевой ответ от clone.parent = player.backpack

local replicatedtorage = game:GetService("ReplicatedStorage")
local Sword = replicatedtorage:FindFirstChild("Sword")

local part =  game.Workspace.Part

local player = game.Players.LocalPlayer
local clone = Sword:Clone()

part.Touched:Connect(function(hit)
    local humanoid = hit.parent:FindFirstChild("Humanoid")
if humanoid ~= nil then
    clone.Parent = player.Backpack
end
end)

person Ajeeth_BT    schedule 25.09.2020    source источник


Ответы (1)


Это похоже на сервер Script, который не может получить доступ Players.LocalPlayer, как клиенты, потому что на сервере нет локального игрока. Способ получить Player, который коснулся детали, - это Player: GetPlayerFromCharacter (), который требует передачи одного экземпляра и возвращает либо Player, чей символ является этим экземпляром, либо nil.

part.Touched:Connect(function(hit)
    local character = hit.Parent
    local player = game.Players:GetPlayerFromCharacter(character)
    if player then
        clone.Parent = player.Backpack
    end
end)

Это должно работать сразу в вашем скрипте и может заменить ваше существующее Touched соединение.

person hum    schedule 05.10.2020