Здравствуйте, создаю анимации и накладываю их на Tool, анимации R6. Но почему то они не работают

Soplyman0

Member
8 Авг 2025
1
0
1
настройки сервера такие чтобы в мир заходили только модели р6. какие скрипты не пишу не работает анимация как я не старался. занимаюсь этим недавно 3 недели. вот последний скрипт, который стоит просто в скрипте внутри Tool название которого AxeWood


local AxeWood = script.Parent
local handle = AxeWood.WaitForChild('Handle')
local animation = handle.Animation

local CD = false


AxeWood.Activated:Connect(function()
local character = AxeWood.Parent
local humanoid = character.Humanoid
local track = humanoid.Animator:LoadAnimation(animation)
track:Play()
wait(0.8)
CD = false
end)

помогите пожалуйста если не сложно
1754654159210.png
 

mAloy

Member
10 Сен 2025
7
0
1
Ты используешь обычный Script (серверный). Сервер, конечно, может запустить анимацию, но он делает это криво и не для того предназначен. Анимации — это косметика, визуал. Их должен проигрывать клиент (компьютер игрока), а не сервер.
Когда сервер пытается проиграть анимацию, он как бы кричит в пустоту. Клиент его плохо слышит, и в итоге ничего не происходит, особенно с R6, который в этом плане капризный.
Как это пофиксить (правильный способ):
Нужно разделить работу:
  1. Клиент (LocalScript) засекает клик и проигрывает анимацию.
  2. Сервер (Script) наносит урон или рубит дерево.
Это делается через RemoteEvent. Не пугайся, это просто "телефон", по которому клиент звонит серверу.
Вот пошаговый план, как починить твой топор:
Шаг 1: Переделай свой скрипт в LocalScript

  • Удали свой старый Script из топора.
  • Создай внутри топора AxeWood новый LocalScript.
  • Вставь в него этот код:

    local AxeWood = script.Parent
    local player = game.Players.LocalPlayer -- Находим нашего игрока
    local character = player.Character or player.CharacterAdded:Wait()
    local humanoid = character:WaitForChild("Humanoid")


    local animation = script:WaitForChild("Animation")

    local track = humanoid:LoadAnimation(animation)

    AxeWood.Activated:Connect(function()

    if track.IsPlaying then return end

    track:Play()
    end)