Загрузка данных


-- Размести этот 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)