Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите исправить ошибку в roblox studio.

Ивкин Егор Ученик (139), на голосовании 1 неделю назад
Я хотел сделать система переноски игрока, но по каким то причинам, когда я беру игрока, он ходит очень медленно или иногда сначала нормально, но потом замедляется. Я без понятия как это исправить.

Вот часть кода:

 CarryPrompt.Triggered:Connect(function(Carrer) 
if Carrer.Character.Values.IsDowned.Value == false then
if not Character.HumanoidRootPart:FindFirstChild("Weld") then
for _,Part in pairs(Character:GetChildren()) do
if Part:IsA("BasePart") then
-- if Part.Name ~= "HumanoidRootPart" then
Part.Massless = true
-- end
end
end

local CarriedAnimation = Humanoid:LoadAnimation(script.Animations.CarriedAnimation)
CarriedAnimation.Priority = Enum.AnimationPriority.Action4
CarriedAnimation:Play()

DownedGui.Adornee = Character:WaitForChild("Head")

local Weld = Instance.new("Weld")
Weld.Parent = Character:WaitForChild("HumanoidRootPart")
Weld.Part1 = Carrer.Character.Torso
Weld.Part0 = Character.HumanoidRootPart

RevivePrompt.Enabled = false
CarryPrompt.ActionText = "Drop"
else
for _,Part in pairs(Character:GetChildren()) do
if Part:IsA("BasePart") then
-- if Part.Name ~= "HumanoidRootPart" then
Part.Massless = false
-- end
end
end

DownedGui.Adornee = Character:WaitForChild("HumanoidRootPart")

for _,Animation in pairs(Humanoid:GetPlayingAnimationTracks()) do
if Animation.Name == "CarriedAnimation" then
Animation:Stop()
end
end

for _,Weld in pairs(Character:WaitForChild("HumanoidRootPart"):GetChildren()) do
if Weld:IsA("Weld") then
Weld:Destroy()
end
end

RevivePrompt.Enabled = true
CarryPrompt.ActionText = "Carry"
end
end
end)
end)

Думаю профессионалы смогут помочь.
Дополнен 1 месяц назад
Также хочу сказать что другие скрипты не влияют на скорость персонажа, тоесть во время переноски Humanoid.WalkSpeed не меняется.
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (9465) 1 месяц назад
На
 CarryPrompt.Triggered:Connect(function(Carrer)  
local isDowned = Carrer.Character.Values.IsDowned.Value
local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")

if not isDowned then
if not HumanoidRootPart:FindFirstChild("Weld") then
HumanoidRootPart.Massless = true
Humanoid.WalkSpeed = 0

local CarriedAnimation = Humanoid:LoadAnimation(script.Animations.CarriedAnimation)
CarriedAnimation.Priority = Enum.AnimationPriority.Action5
CarriedAnimation:Play()

DownedGui.Adornee = Character:WaitForChild("Head")

local Weld = Instance.new("Weld", HumanoidRootPart)
Weld.Part1 = Carrer.Character.Torso
Weld.Part0 = HumanoidRootPart

RevivePrompt.Enabled = false
CarryPrompt.ActionText = "Drop"
else
HumanoidRootPart.Massless = false
Humanoid.WalkSpeed = 16

DownedGui.Adornee = HumanoidRootPart

for _, Animation in pairs(Humanoid:GetPlayingAnimationTracks()) do
if Animation.Name == "CarriedAnimation" then
Animation:Stop()
end
end

for _, Weld in pairs(HumanoidRootPart:GetChildren()) do
if Weld:IsA("Weld") then
Weld:Destroy()
end
end

RevivePrompt.Enabled = true
CarryPrompt.ActionText = "Carry"
end
end
end)
Ивкин ЕгорУченик (139) 1 месяц назад
Спасибо за помощь, но проблема не много в другом. Здесь дело не в скорости персонажа, он замедляется не из за того что изменена скорость, я думаю что дело в коллизии humanoid root part carrer'а с другим humanoid root part. Или в коллизиях basepart, или дело вообще в weld.
Ивкин ЕгорУченик (139) 1 месяц назад
Другие скрипты на скорость при переноски не влияют
Похожие вопросы