Как сделать клон объекта после смерти 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)