Как сделать клон объекта после смерти NPC?

Я пытаюсь сделать так, чтобы вам приходилось убивать NPC, чтобы получить код в хранилище. Я впервые делаю что-либо в roblox studio, так что простите меня, если это покажется глупым.

Прочитав документацию API, я сделал это. По сути, я просто скопировал и вставил кое-что и заменил то, что, по моему мнению, мне нужно было заменить:

`

      local Humanoid = script.parent:WaitForChild(“Guard”)

(This is not part of the original code:) I put^ the name of the NPC I'm using, in this case the Guard.
local original = workspace.VaultCode

(This is not part of the original code:) Here^ I replaced something like part or whatever with the part name VaultCode. It doesn't seem right, but idk.

local copy = original:Clone()
Humanoid.Died:Connect(function()
    copy.Parent = original.Parent
    copy:SetPrimaryPartCFrame(CFrame.new(0, -300, 0))
end)

` Я ожидал, что он создаст клон части Vaultcode после смерти NPC Guard, но ничего не произошло.

Я также пытался найти этот вопрос и сделал что-то подобное, но я удалил его и забыл, что я сделал. Все, что я знаю, это то, что это не сработало.

1 ответ

Что мне особенно нравится в вашем коде, так это:

  • похоже, вы нашли модель персонажа NPC, но не их Гуманоида,
  • вы клонируете объект VaultCode только один раз, и
  • вы создаете объект очень глубоко под землей.

Вполне возможно, что если объект не закреплен, он сразу же падает на самолет-убийцу (около -500 шипов) и тут же уничтожается. И поскольку вы клонируете его только один раз, вы пытаетесь установить положение объекта, которого больше не существует.

Чтобы исправить это, попробуйте вместо этого создать объект, на котором умер NPC, и каждый раз клонировать новый.

Я предполагаю, что этот сценарий находится в рабочей области, а не в модели персонажа NPC.

      -- find the VaultCode object
local VaultCode : Model = workspace.VaultCode

-- find the NPC and its humanoid
local Humanoid : Humanoid = script.Parent:WaitForChild(“Guard”).Humanoid

-- listen for when the Humanoid dies
Humanoid.Died:Connect(function()
    -- create a copy of the vault code where the NPC died
    local npcCFrame = Humanoid.Parent:GetPivot()

    local copy = original:Clone()
    copy:SetPrimaryPartCFrame(npcCFrame)
    copy.Parent = original.Parent
end)
Другие вопросы по тегам