Advertisement
NyonicBear

Atomizer

Feb 27th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.62 KB | None | 0 0
  1. function spinParts()
  2.  
  3. local vCharacter = Tool.Parent
  4.  
  5. --local vParts = {vCharacter:FindFirstChild("Torso"), vCharacter:FindFirstChild("Left Arm"), vCharacter:FindFirstChild("Right Arm"), vCharacter:FindFirstChild("Left Leg"), vCharacter:FindFirstChild("Right Leg")}
  6. --local startPos = {vParts[1].Position, vParts[2].Position, vParts[3].Position, vParts[4].Position, vParts[5].Position}
  7. --local startFrames = {vParts[1].CFrame, vParts[2].CFrame, vParts[3].CFrame, vParts[4].CFrame, vParts[5].CFram
  8. local vParts = {vCharacter:FindFirstChild("Torso"), vCharacter:FindFirstChild("Head"), vCharacter:FindFirstChild("Left Arm"), vCharacter:FindFirstChild("Right Arm"), vCharacter:FindFirstChild("Left Leg"), vCharacter:FindFirstChild("Right Leg")}
  9.  
  10. for i = 2,#vParts do
  11. myPart = vParts[i]
  12. if myPart ~= nil then
  13. myPart.Transparency = 1
  14. myPart.CanCollide = false
  15. else
  16. print(i)
  17. end
  18. end
  19.  
  20. local clonedParts = {}
  21.  
  22. --just need to add hats to dummy head
  23. newHats = {}
  24. newHatTransforms = {}
  25. oldHats = {}
  26. charParts = vCharacter:GetChildren()
  27. numHatsSoFar = 1
  28. for i = 1,#charParts do
  29. if charParts[i].className == "Hat" then
  30. myHat = charParts[i]
  31. newHandle = myHat.Handle:Clone()
  32. newHandle.Parent = vCharacter
  33. newHats[numHatsSoFar] = newHandle
  34. oldHats[numHatsSoFar] = myHat.Handle
  35.  
  36. --newHatTransforms[numHatsSoFar] = myHat.Handle.CFrame:inverse()*vParts[2].CFrame
  37. --newHatTransforms[numHatsSoFar] = myHat.Handle.CFrame*(vParts[2].CFrame:inverse())
  38. newHatTransforms[numHatsSoFar] = vParts[2].CFrame:inverse()*myHat.Handle.CFrame
  39. newHats[numHatsSoFar].Anchored = true
  40.  
  41. myHat.Handle.Transparency = 1
  42. numHatsSoFar = numHatsSoFar + 1
  43. end
  44. end
  45.  
  46. -- for i = 1,#vParts do
  47. randAng = math.random()*2*math.pi
  48. for i = 2,#vParts do
  49. myPart = vParts[i]
  50. if myPart ~= nil then
  51. clonedParts[i] = myPart:Clone()
  52. clonedParts[i].CanCollide = true
  53. clonedParts[i].Transparency = 0
  54. clonedParts[i].Parent = vCharacter
  55. newBP = Instance.new("BodyPosition")
  56. newBP.Parent = clonedParts[i]
  57. newBP.position = vParts[1].Position+(i-1)*Vector3.new(0,1,0)+i*2*Vector3.new(math.sin(randAng+i/2), 0, math.cos(randAng+i/2))
  58. end
  59. end
  60.  
  61. -- and one more for the Torso
  62. newBP = Instance.new("BodyPosition")
  63. newBP.Parent = vParts[1]
  64. newBP.position = vParts[1].Position+Vector3.new(0,6,0) -- was 6
  65. newBP.maxForce = Vector3.new(0,10000,0)
  66.  
  67. myFace = vCharacter.Head.face
  68. myFace.Parent = nil
  69. --oldFace = vCharacter.Head.face
  70. --vCharacter.Head.face.Texture = "http://www.roblox.com/asset/?id=0"
  71.  
  72. --vParts[1].Name = "A"
  73. --vParts[2].Name = "B"
  74. vParts[3].Name = "C"
  75. vParts[4].Name = "D"
  76. vParts[5].Name = "E"
  77. vParts[6].Name = "F"
  78. --vParts[1].CFrame = vParts[1].CFrame + Vector3.new(0,10,0)
  79.  
  80. -- float the limbs to the workspace
  81. vParts[3].Parent = vCharacter.Parent
  82. vParts[4].Parent = vCharacter.Parent
  83. vParts[5].Parent = vCharacter.Parent
  84. vParts[6].Parent = vCharacter.Parent
  85.  
  86.  
  87. for j = 1,20 do --1 to 20
  88.  
  89. --below function will put hats on top of dummy head
  90. --do hat calcs first, for less lag there
  91. --if j <= 10 then clonedParts[2].BodyPosition.position = vParts[1].Position+Vector3.new(0,1,0)+4*Vector3.new(math.sin(randAng+1), 0, math.cos(randAng+1)) end
  92. --if j == 15 then vParts[1].BodyPosition.Parent = nil end
  93. --if j > 15 then clonedParts[2].BodyPosition.position = vParts[2].Position
  94. --elseif j > 10 then clonedParts[2].BodyPosition.position = vParts[1].Position+Vector3.new(0,2-j/10,0)+4*(2-j/10)*Vector3.new(math.sin(randAng+1), 0, math.cos(randAng+1)) end
  95.  
  96. cloneHead = clonedParts[2]
  97. for i = 1,#newHats do
  98. --newHats[i].CFrame = CFrame.new(cloneHeadPos)*CFrame.Angles(0,0,0)
  99. --newHats[i].CFrame = newHatTransforms[i]*cloneHead.CFrame
  100. newHats[i].CFrame = cloneHead.CFrame*newHatTransforms[i]
  101. end
  102.  
  103. randAng = randAng + .5
  104. for i = 2,#vParts do
  105. --randArg was here, and i went from 2 to #vParts
  106. if j <= 10 then clonedParts[i].BodyPosition.position = vParts[1].Position+(i-1)*Vector3.new(0,1,0)+i*2*Vector3.new(math.sin(randAng+i/2), 0, math.cos(randAng+i/2)) end
  107. if j == 15 and i == 2 then vParts[1].BodyPosition.Parent = nil end
  108. if j > 15 then clonedParts[i].BodyPosition.position = vParts[i].Position
  109. elseif j > 10 then clonedParts[i].BodyPosition.position = vParts[1].Position+(i-1)*Vector3.new(0,2-j/10,0)+i*2*(2-j/10)*Vector3.new(math.sin(randAng+i/2), 0, math.cos(randAng+i/2)) end
  110. end
  111.  
  112. angle = 2*j*math.pi/5
  113. --Tool.GripRight = Vector3.new(math.cos(angle),math.sin(angle),0)
  114. --Tool.GripForward = Vector3.new(-math.sin(angle),math.cos(angle),0)
  115. Tool.GripRight = Vector3.new(math.cos(angle),0,-math.sin(angle))
  116. Tool.GripUp = Vector3.new(math.sin(angle),0,math.cos(angle))
  117. --if j <= 10 then Tool.GripPos = Vector3.new(0, 0.7, -.3+j/5+2) end
  118. if j <= 10 then Tool.GripPos = Vector3.new(0, 0.7, -.3+j/5+.6) end
  119. --if j > 10 then Tool.GripPos = Vector3.new(0,0.7-.1*(j-10),3.7-.3*(j-10)) end
  120. if j > 10 then Tool.GripPos = Vector3.new(0,0.7-.1*(j-10),2.3-.3*(j-10)) end
  121.  
  122. wait(.05)
  123.  
  124. end
  125.  
  126. --if charParts[i].className == "CharacterMesh" then
  127. --for j = 1,#vParts do
  128. --print(tostring(charParts[i].BodyPart))
  129. --if vParts[j].Name == tostring(charParts[i].BodyPart) then
  130. --charParts[i].BodyPart = clonedParts[j]
  131. --end
  132. --end
  133. --end
  134. --end
  135.  
  136. --for i = 1, #charParts do
  137. -- if charParts[i].className == "CharacterMesh" then
  138. -- for j = 1, #vParts do
  139. -- if vParts[j].Name == tostring(charParts[i].BodyPart) then
  140. -- charParts[i].BodyPart = vParts[j]
  141. -- end
  142. -- end
  143. -- end
  144. --end
  145.  
  146. --vParts[1].Name = "Head"
  147. --vParts[2].Name = "Torso"
  148. vParts[3].Name = "Left Arm"
  149. vParts[4].Name = "Right Arm"
  150. vParts[5].Name = "Left Leg"
  151. vParts[6].Name = "Right Leg"
  152.  
  153. -- bring back mah limbs
  154. vParts[3].Parent = vCharacter
  155. vParts[4].Parent = vCharacter
  156. vParts[5].Parent = vCharacter
  157. vParts[6].Parent = vCharacter
  158.  
  159. -- if right hand clone has stuff, transfer over to true right hand
  160. grabbedStuff = clonedParts[4]:GetChildren()
  161. for i = 1,#grabbedStuff do
  162. if (grabbedStuff[i].Name == "RightGrip") then
  163. print("Grabbed Something")
  164. grabbedStuff[i].Part0 = vParts[4]
  165. grabbedStuff[i].Parent = vParts[4]
  166. end
  167. end
  168.  
  169. for i = 2,#vParts do
  170. clonedParts[i].Parent = nil
  171. end
  172.  
  173. print("making visible")
  174. for i = 1,#vParts do
  175. vParts[i].Transparency = 0
  176. vParts[i].CanCollide = true
  177. end
  178. myFace.Parent = vCharacter.Head -- put back face
  179. for i = 1,#newHats do
  180. newHats[i].Parent = nil
  181. end
  182. for i = 1,#oldHats do
  183. oldHats[i].Transparency = 0
  184. end
  185. end
  186.  
  187.  
  188.  
  189. function atomSpin()
  190. for i = 1,20 do
  191. angle = i*math.pi/5
  192. Tool.GripRight = Vector3.new(math.cos(angle),math.sin(angle),0)
  193. Tool.GripForward = Vector3.new(-math.sin(angle),math.cos(angle),0)
  194. Tool.GripPos = Vector3.new(0, -.3+i/10, -0.7)
  195. wait(.02)
  196. end
  197. end
  198.  
  199. function gunOut()
  200. Tool.GripForward = Vector3.new(0,1,0)
  201. Tool.GripRight = Vector3.new(1,0,0)
  202. Tool.GripUp = Vector3.new(0,0,1)
  203. end
  204.  
  205.  
  206. function onActivated()
  207. if not Tool.Enabled then
  208. return
  209. end
  210.  
  211. Tool.Enabled = false
  212.  
  213.  
  214. local character = Tool.Parent;
  215. local humanoid = character.Humanoid
  216. if humanoid == nil then
  217. print("Humanoid not found")
  218. return
  219. end
  220.  
  221. local targetPos = humanoid.TargetPoint
  222. local lookAt = (targetPos - character.Head.Position).unit
  223.  
  224. local reload = 3
  225.  
  226. atomo = Tool.Parent:FindFirstChild("AtomoSound")
  227. if atomo == nil then
  228. atomo = Instance.new("Sound")
  229. atomo.Name = "AtomoSound"
  230. atomo.Volume = .9
  231. atomo.SoundId = "http://www.roblox.com/asset/?id=35275769"
  232. atomo.Parent = Tool.Parent
  233. end
  234.  
  235. atomo:Play()
  236.  
  237. atomSpin()
  238. spinParts()
  239. --atomGetBack()
  240. wait(reload)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement