cat568

Untitled

Jun 3rd, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --This is just a fun script. Make it local to work, have fun. --
  2. do --the animating
  3. plr = game:service'Players'.LocalPlayer
  4. char = plr.Character
  5. mouse = plr:GetMouse()
  6. humanoid = char:findFirstChild("Humanoid")
  7. torso = char:findFirstChild("Torso")
  8. head = char.Head
  9. ra = char:findFirstChild("Right Arm")
  10. la = char:findFirstChild("Left Arm")
  11. rl = char:findFirstChild("Right Leg")
  12. ll = char:findFirstChild("Left Leg")
  13. rs = torso:findFirstChild("Right Shoulder")
  14. ls = torso:findFirstChild("Left Shoulder")
  15. rh = torso:findFirstChild("Right Hip")
  16. lh = torso:findFirstChild("Left Hip")
  17. neck = torso:findFirstChild("Neck")
  18. rj = char:findFirstChild("HumanoidRootPart"):findFirstChild("RootJoint")
  19. anim = char:findFirstChild("Animate")
  20. rootpart = char:findFirstChild("HumanoidRootPart")
  21. camera = workspace.CurrentCamera
  22. if anim then
  23. anim:Destroy()
  24. end
  25.  
  26.  
  27. do --CFrame lerp
  28. local function QuaternionFromCFrame(cf)
  29. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  30. local trace = m00 + m11 + m22
  31. if trace > 0 then
  32. local s = math.sqrt(1 + trace)
  33. local recip = 0.5/s
  34. return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
  35. else
  36. local i = 0
  37. if m11 > m00 then
  38. i = 1
  39. end
  40. if m22 > (i == 0 and m00 or m11) then
  41. i = 2
  42. end
  43. if i == 0 then
  44. local s = math.sqrt(m00-m11-m22+1)
  45. local recip = 0.5/s
  46. return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
  47. elseif i == 1 then
  48. local s = math.sqrt(m11-m22-m00+1)
  49. local recip = 0.5/s
  50. return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
  51. elseif i == 2 then
  52. local s = math.sqrt(m22-m00-m11+1)
  53. local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
  54. end
  55. end
  56. end
  57. local function QuaternionToCFrame(px, py, pz, x, y, z, w)
  58. local xs, ys, zs = x + x, y + y, z + z
  59. local wx, wy, wz = w*xs, w*ys, w*zs
  60. local xx = x*xs
  61. local xy = x*ys
  62. local xz = x*zs
  63. local yy = y*ys
  64. local yz = y*zs
  65. local zz = z*zs
  66. return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy))
  67. end
  68. local function QuaternionSlerp(a, b, t)
  69. local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
  70. local startInterp, finishInterp;
  71. if cosTheta >= 0.0001 then
  72. if (1 - cosTheta) > 0.0001 then
  73. local theta = math.acos(cosTheta)
  74. local invSinTheta = 1/math.sin(theta)
  75. startInterp = math.sin((1-t)*theta)*invSinTheta
  76. finishInterp = math.sin(t*theta)*invSinTheta
  77. else
  78. startInterp = 1-t
  79. finishInterp = t
  80. end
  81. else
  82. if (1+cosTheta) > 0.0001 then
  83. local theta = math.acos(-cosTheta)
  84. local invSinTheta = 1/math.sin(theta)
  85. startInterp = math.sin((t-1)*theta)*invSinTheta
  86. finishInterp = math.sin(t*theta)*invSinTheta
  87. else
  88. startInterp = t-1
  89. finishInterp = t
  90. end
  91. end
  92. return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp
  93. end
  94. function clerp(a,b,t)
  95. local qa = {QuaternionFromCFrame(a)}
  96. local qb = {QuaternionFromCFrame(b)}
  97. local ax, ay, az = a.x, a.y, a.z
  98. local bx, by, bz = b.x, b.y, b.z
  99. local _t = 1-t
  100. return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
  101. end
  102.  
  103. end
  104.  
  105. local rm = Instance.new("Motor", torso)
  106. rm.C0 = CFrame.new(1.5, 0.5, 0)
  107. rm.C1 = CFrame.new(0, 0.5, 0)
  108. rm.Part0 = torso
  109. rm.Part1 = ra
  110. local lm = Instance.new("Motor", torso)
  111. lm.C0 = CFrame.new(-1.5, 0.5, 0)
  112. lm.C1 = CFrame.new(0, 0.5, 0)
  113. lm.Part0 = torso
  114. lm.Part1 = la
  115.  
  116. local rlegm = Instance.new("Motor", torso)
  117. rlegm.C0 = CFrame.new(0.5, -1, 0)
  118. rlegm.C1 = CFrame.new(0, 1, 0)
  119. rlegm.Part0 = torso
  120. rlegm.Part1 = rl
  121. local llegm = Instance.new("Motor", torso)
  122. llegm.C0 = CFrame.new(-0.5, -1, 0)
  123. llegm.C1 = CFrame.new(0, 1, 0)
  124. llegm.Part0 = torso
  125. llegm.Part1 = ll
  126.  
  127. neck.C0 = CFrame.new(0, 1, 0)
  128. neck.C1 = CFrame.new(0, -0.5, 0)
  129.  
  130.  
  131. rj.C0 = CFrame.new()
  132. rj.C1 = CFrame.new()
  133.  
  134.  
  135. local sound = Instance.new("Sound", head)
  136. sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
  137. sound.Volume = 0.8
  138. sound.Looped = true
  139.  
  140. for i,v in pairs(char:children()) do
  141. if v:IsA("Hat") then
  142. v:Destroy()
  143. end
  144. end
  145.  
  146.  
  147. --look of the fox here
  148. game:service'InsertService':LoadAsset(25930301):children()[1].Parent = char
  149. Instance.new("PointLight", head).Range = 10
  150.  
  151.  
  152.  
  153.  
  154. local speed = 0.3
  155. local angle = 0
  156. local sitting = false
  157. local humanwalk = false
  158. local anglespeed = 1
  159. rsc0 = rm.C0
  160. lsc0 = lm.C0
  161. llc0 = llegm.C0
  162. rlc0 = rlegm.C0
  163. neckc0 = neck.C0
  164.  
  165. local controllerService = game:GetService("ControllerService")
  166. local controller = controllerService:GetChildren()[1]
  167.  
  168. controller.Parent = nil
  169.  
  170. Instance.new("HumanoidController", game:service'ControllerService')
  171. Instance.new("SkateboardController", game:service'ControllerService')
  172. Instance.new("VehicleController", game:service'ControllerService')
  173. local controller = controllerService:GetChildren()[1]
  174. mouse.KeyDown:connect(function(k)
  175. if k == "q" then
  176. humanwalk = not humanwalk
  177. end
  178. if k == "z" then
  179. if not sound.IsPlaying then
  180. sound:stop()
  181. sound.SoundId = "http://www.roblox.com/asset/?id=130802245"
  182. wait()
  183. sound:play()
  184. end
  185. end
  186. if k == "x" then
  187. if not sound.IsPlaying then
  188. sound:stop()
  189. sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
  190. wait()
  191. sound:play()
  192. end
  193. end
  194. if k == "c" then
  195. if not sound.IsPlaying then
  196. sound:stop()
  197. sound.SoundId = "http://www.roblox.com/asset/?id=149713968"
  198. wait()
  199. sound:play()
  200. end
  201. end
  202. if string.byte(k) == 48 then
  203. humanoid.WalkSpeed = 34
  204. end
  205.  
  206. end)
  207. mouse.KeyUp:connect(function(k)
  208.  
  209. if string.byte(k) == 48 then
  210. humanoid.WalkSpeed = 16
  211. end
  212.  
  213. end)
  214.  
  215.  
  216.  
  217. while wait() do
  218. angle = (angle % 100) + anglespeed/10
  219. mvmnt = math.pi * math.sin(math.pi*2/100*(angle*10))
  220. local rscf = rsc0
  221. local lscf = lsc0
  222. local rlcf = rlc0
  223. local llcf = llc0
  224. local rjcf = CFrame.new()
  225. local ncf = neckc0
  226. local rayz = Ray.new(rootpart.Position, Vector3.new(0, -6, 0))
  227. local hitz, enz = workspace:findPartOnRay(rayz, char)
  228. if not hitz then
  229. if sound.IsPlaying then
  230. sound:stop()
  231. end
  232.  
  233. if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude > 2 then
  234.  
  235. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, 0)
  236. rjcf = CFrame.new() * CFrame.Angles(-math.pi/5, math.sin(angle)*0.05, 0)
  237. rscf = rsc0 * CFrame.Angles(math.pi/1.7+math.sin(angle)*0.1, 0, 0)
  238. lscf = lsc0 * CFrame.Angles(math.pi/1.7+math.sin(-angle)*0.1, 0, 0)
  239. rlcf = rlc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.3, 0, 0)
  240. llcf = llc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.3, 0, 0)
  241.  
  242. else
  243.  
  244. ncf = neckc0 * CFrame.Angles(math.pi/14, 0, 0)
  245. rjcf = CFrame.new() * CFrame.Angles(-math.pi/18, math.sin(angle)*0.05, 0)
  246. rscf = rsc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.2, 0, 0)
  247. lscf = lsc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.2, 0, 0)
  248. rlcf = rlc0 * CFrame.new(0, 0.7, -0.5) CFrame.Angles(-math.pi/14, 0, 0)
  249. llcf = llc0 * CFrame.Angles(-math.pi/20, 0, 0)
  250.  
  251. end
  252. elseif humanoid.Sit then
  253. if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
  254. anglespeed = 6
  255. ncf = neckc0 * CFrame.Angles(math.pi/5-math.sin(angle)*0.1, 0, 0)
  256. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
  257. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  258. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  259. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  260. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  261. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=135570347" then
  262. anglespeed = 4
  263. ncf = neckc0 * CFrame.Angles(math.pi/5-math.abs(math.sin(angle))*0.3, 0, 0)
  264. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
  265. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  266. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  267. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  268. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  269. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
  270. anglespeed = 2
  271. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
  272. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
  273. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  274. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  275. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  276. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  277. else
  278. anglespeed = 1/2
  279. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
  280. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
  281. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  282. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  283. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  284. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  285. end
  286. elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 2 then
  287. if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
  288. anglespeed = 6
  289. ncf = neckc0 * CFrame.Angles(math.pi/10-math.sin(angle)*0.07, 0, 0)
  290. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/10, math.sin(angle)*0.001, 0)
  291. rscf = rsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
  292. lscf = lsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
  293. rlcf = rlc0 * CFrame.Angles(math.pi/10, math.sin(angle)*0.08, math.rad(6.5))
  294. llcf = llc0 * CFrame.Angles(math.pi/10, -math.sin(angle)*0.08, -math.rad(6.5))
  295. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
  296. anglespeed = 2
  297. ncf = neckc0 * CFrame.Angles(math.pi/10-math.abs(math.sin(angle))*0.3, 0, 0)
  298. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/20, math.sin(angle)*0.001, 0)
  299. rscf = rsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
  300. lscf = lsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
  301. rlcf = rlc0 * CFrame.Angles(math.pi/20, math.sin(angle)*0.08, math.rad(2.5))
  302. llcf = llc0 * CFrame.Angles(math.pi/20, -math.sin(angle)*0.08, -math.rad(2.5))
  303. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130802245" then
  304. anglespeed = 3
  305. ncf = neckc0 * CFrame.Angles(math.sin(angle)*0.07, math.rad(30), 0)
  306. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
  307. rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.05, 0, 0)
  308. lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.05, 0, 0)
  309. rlcf = rlc0 * CFrame.new(0, -0.1 + math.abs(mvmnt)*0.1, -0.1) * CFrame.Angles(0, math.rad(5), math.rad(5))
  310. llcf = llc0 * CFrame.Angles(0, math.rad(2.5), math.rad(1))
  311. else
  312. if humanwalk then
  313. anglespeed = 1/4
  314. ncf = neckc0 * CFrame.Angles(-math.sin(angle)*0.07, 0, 0)
  315. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
  316. rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.1, 0, 0)
  317. lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.1, 0, 0)
  318. rlcf = rlc0 * CFrame.Angles(0, math.sin(angle)*0.08, math.rad(2.5))
  319. llcf = llc0 * CFrame.Angles(0, -math.sin(angle)*0.08, -math.rad(2.5))
  320. else
  321. anglespeed = 1/2
  322. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
  323. rjcf = CFrame.new(0, -2, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
  324. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  325. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  326. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  327. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  328. end
  329. end
  330. elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 20 then
  331. if sound.IsPlaying then
  332. sound:stop()
  333. end
  334. if humanwalk then
  335. anglespeed = 4
  336. ncf = neckc0 * CFrame.Angles(math.pi/24, mvmnt*.02, 0)
  337. rjcf = CFrame.new(0, math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/24, -mvmnt*.02, 0)
  338. rscf = rsc0 * CFrame.Angles(math.sin(angle)*1.25, 0, -math.abs(mvmnt)*0.02)
  339. lscf = lsc0 * CFrame.Angles(math.sin(-angle)*1.25, 0, math.abs(mvmnt)*0.02)
  340. rlcf = rlc0 * CFrame.Angles(math.sin(-angle)*1, 0, math.rad(.5))
  341. llcf = llc0 * CFrame.Angles(math.sin(angle)*1, 0, -math.rad(.5))
  342. else
  343. anglespeed = 4
  344. ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9, 0, 0)
  345. rjcf = CFrame.new(0, -1.5+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9, math.sin(mvmnt/2)*0.05, 0)
  346. rscf = rsc0 * CFrame.new(-.45, 0.2, -.4+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(angle)*0.7, 0, math.rad(5))
  347. lscf = lsc0 * CFrame.new(.45, 0.2, .1-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(-angle)*0.7, 0, -math.rad(5))
  348. rlcf = rlc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*0.6, 0, math.abs(mvmnt)*0.025)
  349. llcf = llc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(angle)*.6, 0, -math.abs(mvmnt)*0.025)
  350. end
  351. elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then
  352. if sound.IsPlaying then
  353. sound:stop()
  354. end
  355. if humanwalk then
  356. anglespeed = 5
  357. ncf = neckc0 * CFrame.Angles(math.pi/20, math.sin(angle)*.04, 0)
  358. rjcf = CFrame.new(0, -.4 + math.abs(mvmnt)*0.25, 0) * CFrame.Angles(-math.pi/20, -math.sin(angle)*.08, 0)
  359. rscf = rsc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/18+math.sin(angle)*1.5, 0, -math.abs(mvmnt)*0.02)
  360. lscf = lsc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/18+math.sin(-angle)*1.5, 0, math.abs(mvmnt)*0.02)
  361. rlcf = rlc0 * CFrame.new(0, 0, -.6+math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(-angle)*1.3, 0, math.rad(.5))
  362. llcf = llc0 * CFrame.new(0, 0, -math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(angle)*1.3, 0, -math.rad(.5))
  363. else
  364. anglespeed = 5.5
  365. ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9+math.sin(mvmnt/2)*0.05, 0, 0)
  366. rjcf = CFrame.new(0, -1.3+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9+math.abs(mvmnt/2)*0.1, 0, 0)
  367. rscf = rsc0 * CFrame.new(-1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, math.rad(5))
  368. lscf = lsc0 * CFrame.new(1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, -math.rad(5))
  369. rlcf = rlc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, math.abs(mvmnt)*0.025)
  370. llcf = llc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, -math.abs(mvmnt)*0.025)
  371. end
  372. end
  373.  
  374. rm.C0 = clerp(rm.C0,rscf,speed)
  375. lm.C0 = clerp(lm.C0,lscf,speed)
  376. rj.C0 = clerp(rj.C0,rjcf,speed)
  377. neck.C0 = clerp(neck.C0,ncf,speed)
  378. rlegm.C0 = clerp(rlegm.C0,rlcf,speed)
  379. llegm.C0 = clerp(llegm.C0,llcf,speed)
  380. end
  381.  
  382.  
  383. end
Advertisement
Add Comment
Please, Sign In to add comment