Swinging with a rope goes around a pivot point, and you're going to be the same distance away from that point no matter how far the swing goes, so your travelling in an arc. You can calculate the point using newzvalue and newyvalue (and maybe newxvalue, depending on other angles). What you'd do is increase the angle, so the swing goes forward, but decreasing the rate at which the angle changes so it stops at a certain point, and then, decrease the angle in the same way to make it stop on the other side. From here its not hard to implement that the swing gets less and less as time goes by.
AMD Athlon XP2800+
GeForce FX5200 128MB
1024MB DDR 333MHz RAM