-- Размести этот LocalScript в StarterCharacterScripts
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
-- ID твоей анимации
local ANIMATION_ID = 122635724516186
local animTrack = nil
local isAttacking = false
-- Функция загрузки анимации
local function loadAnimation(character)
local humanoid = character:WaitForChild("Humanoid")
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://" .. ANIMATION_ID
animTrack = humanoid:LoadAnimation(animation)
end
-- Функция проверки, есть ли в руке нож
local function hasKnife()
local character = player.Character
if not character then return false end
-- Проверяем все инструменты в руках персонажа
local tools = character:GetChildren()
for _, tool in ipairs(tools) do
if tool:IsA("Tool") and tool.Name == "Tool" then
-- Дополнительно проверяем, что инструмент именно в руке (активен)
if tool.Parent == character then
return true
end
end
end
return false
end
-- Ждём появления персонажа
player.CharacterAdded:Connect(function(character)
loadAnimation(character)
isAttacking = false
end)
-- Если персонаж уже существует
if player.Character then
loadAnimation(player.Character)
end
-- Обработка нажатия ЛКМ
UserInputService.InputBegan:Connect(function(input, gameProcessed)
-- Проверяем ЛКМ и что ввод не перехвачен (чат, GUI)
if input.UserInputType == Enum.UserInputType.MouseButton1 and not gameProcessed then
-- Проверяем, есть ли нож в руке
if not hasKnife() then
return -- Нет ножа - не атакуем
end
-- Проверяем, не идёт ли уже анимация
if isAttacking or not animTrack then
return
end
isAttacking = true
-- Воспроизводим анимацию
animTrack:Play()
-- Ждём окончания анимации
animTrack.Stopped:Wait()
isAttacking = false
end
end)