SHARE
TWEET

Tail

AndrewTheMaster Sep 22nd, 2016 77 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. User = script.Parent.Parent.Character
  2. if User.Name == "andrewengen1" then
  3. -------------------------------
  4. --Part Making and Positioning--
  5. -------------------------------
  6. TailParts = {User.Torso}
  7. Welds = {}
  8. for i = 2, 13 do
  9. TailParts[i] = Instance.new("Part", User)
  10. TailParts[i].Name = "TailPart"
  11. TailParts[i].CanCollide = false
  12. TailParts[i].Locked = true
  13. TailParts[i].formFactor = "Symmetric"
  14. TailParts[i].Size = Vector3.new(1, 1, 1)
  15. TailMesh = Instance.new("BlockMesh", TailParts[i])
  16. TailMesh.Name = "TailMesh"
  17. TailMesh.Scale = Vector3.new(0.3 - (i - 1) / 80, 0.3 - (i - 1) / 80, 0.25)
  18. Welds[i - 1] = Instance.new("Weld", TailParts[i])
  19. Welds[i - 1].Part0 = TailParts[i - 1]
  20. Welds[i - 1].Part1 = TailParts[i]
  21. Welds[i - 1].C0 = CFrame.new(0, 0, 0.125)
  22. Welds[i - 1].C1 = CFrame.new(0, 0, -0.125)
  23. if i ~= 13 then
  24. TailDecoration = Instance.new("Part", User)
  25. TailDecoration.Name = "TailPart"
  26. TailDecoration.CanCollide = false
  27. TailDecoration.Locked = true
  28. TailDecoration.formFactor = "Symmetric"
  29. TailDecoration.Size = Vector3.new(1, 1, 1)
  30. TailDecoration.BrickColor = BrickColor.new("Light stone grey")
  31. TailMesh = Instance.new("BlockMesh", TailDecoration)
  32. TailMesh.Name = "TailMesh"
  33. TailMesh.Scale = Vector3.new(0.305 - (i - 1) / 80, 0.1, 0.255)
  34. Weld = Instance.new("Weld", TailDecoration)
  35. Weld.Part0 = TailParts[i]
  36. Weld.Part1 = TailDecoration
  37. Weld.C0 = CFrame.new(0, -0.1, 0)
  38. Weld.C1 = CFrame.new(0, 0, 0)
  39. for e = 1, math.random(0, 1) do
  40. TailStrype = Instance.new("Part", User)
  41. TailStrype.Name = "TailPart"
  42. TailStrype.CanCollide = false
  43. TailStrype.Locked = true
  44. TailStrype.formFactor = "Symmetric"
  45. TailStrype.Size = Vector3.new(1, 1, 1)
  46. TailStrype.BrickColor = BrickColor.new("Dark stone grey")
  47. TailMesh = Instance.new("BlockMesh", TailStrype)
  48. TailMesh.Name = "TailMesh"
  49. TailMesh.Scale = Vector3.new(0.33 - (i - 1) / 80, 0.33 - (i - 1) / 80, 0.05)
  50. Weld = Instance.new("Weld", TailStrype)
  51. Weld.Part0 = TailParts[i]
  52. Weld.Part1 = TailStrype
  53. Weld.C0 = CFrame.new(0, 0, math.random(-10, 10) / 80)
  54. Weld.C1 = CFrame.new(0, 0, 0)
  55. end
  56. end
  57. end
  58. Welds[1].C0 = CFrame.new(0, -1, 0.5)
  59. --------------------
  60. --Part Colloration--
  61. --------------------
  62. for i = 2, 12 do
  63. TailParts[i].BrickColor = BrickColor.new("Light stone grey")
  64. end
  65. TailParts[13].BrickColor = BrickColor.new("Dark stone grey")
  66. -----------------------
  67. --Animation Smoothing--
  68. -----------------------
  69. function TailSmooth(WhereTo0, WhereTo1)
  70. CR0 = CFrame.new(Welds[1].C1:toEulerAnglesXYZ()).p
  71. CR1 = CFrame.new(WhereTo0).p
  72. AddTo0 = (CR1 - CR0) / 20
  73. CR2 = CFrame.new(Welds[7].C1:toEulerAnglesXYZ()).p
  74. CR3 = CFrame.new(WhereTo1).p
  75. AddTo1 = (CR3 - CR2) / 20
  76. for a = 1, 10 do
  77. wait(0.025)
  78. for b = 1, 6 do
  79. Welds[b].C1 = Welds[b].C1 * CFrame.fromEulerAnglesXYZ(AddTo0.x, AddTo0.y + User.Torso.RotVelocity.y / 128, AddTo0.z)
  80. end
  81. for c = 7, 12 do
  82. Welds[c].C1 = Welds[c].C1 * CFrame.fromEulerAnglesXYZ(AddTo1.x, AddTo1.y + User.Torso.RotVelocity.y / 128, AddTo1.z)
  83. end
  84. end
  85. end
  86. ---------------------
  87. --Animation Players--
  88. ---------------------
  89. Variation = math.random(-5, 5) / 80
  90. while true do
  91. wait()
  92. Variation = (Variation + math.random(-5, 5) / 80) / 2
  93. if User.Torso.Velocity.magnitude > 8 then
  94. TailSmooth(Vector3.new(-math.pi / 12 + Variation, math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 6, 0))
  95. TailSmooth(Vector3.new(-math.pi / 12 + Variation, math.pi / 6, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 12, 0))
  96. TailSmooth(Vector3.new(-math.pi / 12 + Variation, math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 12, 0))
  97. TailSmooth(Vector3.new(-math.pi / 12 + Variation, -math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 6, 0))
  98. TailSmooth(Vector3.new(-math.pi / 12 + Variation, -math.pi / 6, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 12, 0))
  99. TailSmooth(Vector3.new(-math.pi / 12 + Variation, -math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 12, 0))
  100. else
  101. TailSmooth(Vector3.new(-math.pi / 24 + Variation, math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 12, 0))
  102. TailSmooth(Vector3.new(-math.pi / 24 + Variation, math.pi / 12, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 24, 0))
  103. TailSmooth(Vector3.new(-math.pi / 24 + Variation, math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 24, 0))
  104. TailSmooth(Vector3.new(-math.pi / 24 + Variation, -math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 12, 0))
  105. TailSmooth(Vector3.new(-math.pi / 24 + Variation, -math.pi / 12, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 24, 0))
  106. TailSmooth(Vector3.new(-math.pi / 24 + Variation, -math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 24, 0))
  107. end
  108. end
  109. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top