Moving bones in a specific speed?

I am making a chest that opens on use, and I cant figure out how to make the lid go up, it just teleports up, best way I was able to make it was doing this:


function ENT:Use( activator, caller )
	self:EmitSound("items/ammocrate_open.wav")
	timer.Simple( 0.1, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -5 ) ) end )
	timer.Simple( 0.2, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -12 ) ) end )
	timer.Simple( 0.3, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -18 ) ) end )
	timer.Simple( 0.4, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -29 ) ) end )
	timer.Simple( 0.5, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -38 ) ) end )
	timer.Simple( 0.6, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -50 ) ) end )
	timer.Simple( 0.7, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -60 ) ) end )
	timer.Simple( 0.8, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -70 ) ) end )
	timer.Simple( 0.9, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -80 ) ) end )
	timer.Simple( 0.10, function() self:ManipulateBoneAngles( 1, Angle( 0, 0, -90 ) ) end )
    return
end

We all know this wont end in a very good way. Also the EmitSound spams when holding E, how do I make a cooldown?

Are you sure the lid has an BoneID of 1? Also, you should be doing this in a repeating timer or Think hook. Lastly, you can add a cooldown by making a DTVar on the entity and setting/checking the use time.