I dont want to copy the Animate localscript from a player
I've done sum research on google and couldnt find it out. Im using
if math.floor(npc.HumanoidRootPart.Velocity.Magnitude)>0 then
but animation like default r15 running actually affect the HumanoidRootPart velocity. Others like idle or anything that doesnt move the root part works.
This is what does the code looks like
local animation = {
idle = npc.Idle,
run = npc.Run,
atk = npc.Attack
}
local IdleTrack = npc.Humanoid:LoadAnimation(animation.idle)
local AttackTrack = npc.Humanoid:LoadAnimation(animation.atk)
local RunTrack = npc.Humanoid:LoadAnimation(animation.run)
local animtable = {
['idle'] = IdleTrack,
['run'] = RunTrack,
['atk'] = AttackTrack
}
local animstring = 'idle'
while wait() do
if not animtable[animstring].isPlaying then
for i,v in pairs(animtable) do
if not i == animstring then
animtable[i]:Stop()
end
end
animtable[animstring]:Play()
print(animtable[animstring])
end
npc.Humanoid:MoveTo(baseunit.Position + Vector3.new(8,0,0))
for i, entity in pairs(game.ReplicatedStorage.UnitFolder:GetChildren()) do
if math.floor(npc.HumanoidRootPart.Velocity.Magnitude)>0 then
animstring = 'run'
elseif game.Workspace:FindFirstChild(entity.Name) then
local relativePos = npc.Hitbox.CFrame:pointToObjectSpace(entity.HumanoidRootPart.Position)
if math.abs(relativePos.X) <= npc.Hitbox.Size.X * 0.8 * 0.5 and math.abs(relativePos.Z) <= npc.Hitbox.Size.Z * 0.8 * 0.5 then
print(tostring(entity.Name).." is inside")
animstring = 'atk'
onHit(1.2)
task.wait(1.5)
end
else
animstring = 'idle'
IdleTrack:Play()
end
end
end
