Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function spinParts()
- local vCharacter = Tool.Parent
- --local vParts = {vCharacter:FindFirstChild("Torso"), vCharacter:FindFirstChild("Left Arm"), vCharacter:FindFirstChild("Right Arm"), vCharacter:FindFirstChild("Left Leg"), vCharacter:FindFirstChild("Right Leg")}
- --local startPos = {vParts[1].Position, vParts[2].Position, vParts[3].Position, vParts[4].Position, vParts[5].Position}
- --local startFrames = {vParts[1].CFrame, vParts[2].CFrame, vParts[3].CFrame, vParts[4].CFrame, vParts[5].CFram
- local vParts = {vCharacter:FindFirstChild("Torso"), vCharacter:FindFirstChild("Head"), vCharacter:FindFirstChild("Left Arm"), vCharacter:FindFirstChild("Right Arm"), vCharacter:FindFirstChild("Left Leg"), vCharacter:FindFirstChild("Right Leg")}
- for i = 2,#vParts do
- myPart = vParts[i]
- if myPart ~= nil then
- myPart.Transparency = 1
- myPart.CanCollide = false
- else
- print(i)
- end
- end
- local clonedParts = {}
- --just need to add hats to dummy head
- newHats = {}
- newHatTransforms = {}
- oldHats = {}
- charParts = vCharacter:GetChildren()
- numHatsSoFar = 1
- for i = 1,#charParts do
- if charParts[i].className == "Hat" then
- myHat = charParts[i]
- newHandle = myHat.Handle:Clone()
- newHandle.Parent = vCharacter
- newHats[numHatsSoFar] = newHandle
- oldHats[numHatsSoFar] = myHat.Handle
- --newHatTransforms[numHatsSoFar] = myHat.Handle.CFrame:inverse()*vParts[2].CFrame
- --newHatTransforms[numHatsSoFar] = myHat.Handle.CFrame*(vParts[2].CFrame:inverse())
- newHatTransforms[numHatsSoFar] = vParts[2].CFrame:inverse()*myHat.Handle.CFrame
- newHats[numHatsSoFar].Anchored = true
- myHat.Handle.Transparency = 1
- numHatsSoFar = numHatsSoFar + 1
- end
- end
- -- for i = 1,#vParts do
- randAng = math.random()*2*math.pi
- for i = 2,#vParts do
- myPart = vParts[i]
- if myPart ~= nil then
- clonedParts[i] = myPart:Clone()
- clonedParts[i].CanCollide = true
- clonedParts[i].Transparency = 0
- clonedParts[i].Parent = vCharacter
- newBP = Instance.new("BodyPosition")
- newBP.Parent = clonedParts[i]
- 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))
- end
- end
- -- and one more for the Torso
- newBP = Instance.new("BodyPosition")
- newBP.Parent = vParts[1]
- newBP.position = vParts[1].Position+Vector3.new(0,6,0) -- was 6
- newBP.maxForce = Vector3.new(0,10000,0)
- myFace = vCharacter.Head.face
- myFace.Parent = nil
- --oldFace = vCharacter.Head.face
- --vCharacter.Head.face.Texture = "http://www.roblox.com/asset/?id=0"
- --vParts[1].Name = "A"
- --vParts[2].Name = "B"
- vParts[3].Name = "C"
- vParts[4].Name = "D"
- vParts[5].Name = "E"
- vParts[6].Name = "F"
- --vParts[1].CFrame = vParts[1].CFrame + Vector3.new(0,10,0)
- -- float the limbs to the workspace
- vParts[3].Parent = vCharacter.Parent
- vParts[4].Parent = vCharacter.Parent
- vParts[5].Parent = vCharacter.Parent
- vParts[6].Parent = vCharacter.Parent
- for j = 1,20 do --1 to 20
- --below function will put hats on top of dummy head
- --do hat calcs first, for less lag there
- --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
- --if j == 15 then vParts[1].BodyPosition.Parent = nil end
- --if j > 15 then clonedParts[2].BodyPosition.position = vParts[2].Position
- --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
- cloneHead = clonedParts[2]
- for i = 1,#newHats do
- --newHats[i].CFrame = CFrame.new(cloneHeadPos)*CFrame.Angles(0,0,0)
- --newHats[i].CFrame = newHatTransforms[i]*cloneHead.CFrame
- newHats[i].CFrame = cloneHead.CFrame*newHatTransforms[i]
- end
- randAng = randAng + .5
- for i = 2,#vParts do
- --randArg was here, and i went from 2 to #vParts
- 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
- if j == 15 and i == 2 then vParts[1].BodyPosition.Parent = nil end
- if j > 15 then clonedParts[i].BodyPosition.position = vParts[i].Position
- 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
- end
- angle = 2*j*math.pi/5
- --Tool.GripRight = Vector3.new(math.cos(angle),math.sin(angle),0)
- --Tool.GripForward = Vector3.new(-math.sin(angle),math.cos(angle),0)
- Tool.GripRight = Vector3.new(math.cos(angle),0,-math.sin(angle))
- Tool.GripUp = Vector3.new(math.sin(angle),0,math.cos(angle))
- --if j <= 10 then Tool.GripPos = Vector3.new(0, 0.7, -.3+j/5+2) end
- if j <= 10 then Tool.GripPos = Vector3.new(0, 0.7, -.3+j/5+.6) end
- --if j > 10 then Tool.GripPos = Vector3.new(0,0.7-.1*(j-10),3.7-.3*(j-10)) end
- if j > 10 then Tool.GripPos = Vector3.new(0,0.7-.1*(j-10),2.3-.3*(j-10)) end
- wait(.05)
- end
- --if charParts[i].className == "CharacterMesh" then
- --for j = 1,#vParts do
- --print(tostring(charParts[i].BodyPart))
- --if vParts[j].Name == tostring(charParts[i].BodyPart) then
- --charParts[i].BodyPart = clonedParts[j]
- --end
- --end
- --end
- --end
- --for i = 1, #charParts do
- -- if charParts[i].className == "CharacterMesh" then
- -- for j = 1, #vParts do
- -- if vParts[j].Name == tostring(charParts[i].BodyPart) then
- -- charParts[i].BodyPart = vParts[j]
- -- end
- -- end
- -- end
- --end
- --vParts[1].Name = "Head"
- --vParts[2].Name = "Torso"
- vParts[3].Name = "Left Arm"
- vParts[4].Name = "Right Arm"
- vParts[5].Name = "Left Leg"
- vParts[6].Name = "Right Leg"
- -- bring back mah limbs
- vParts[3].Parent = vCharacter
- vParts[4].Parent = vCharacter
- vParts[5].Parent = vCharacter
- vParts[6].Parent = vCharacter
- -- if right hand clone has stuff, transfer over to true right hand
- grabbedStuff = clonedParts[4]:GetChildren()
- for i = 1,#grabbedStuff do
- if (grabbedStuff[i].Name == "RightGrip") then
- print("Grabbed Something")
- grabbedStuff[i].Part0 = vParts[4]
- grabbedStuff[i].Parent = vParts[4]
- end
- end
- for i = 2,#vParts do
- clonedParts[i].Parent = nil
- end
- print("making visible")
- for i = 1,#vParts do
- vParts[i].Transparency = 0
- vParts[i].CanCollide = true
- end
- myFace.Parent = vCharacter.Head -- put back face
- for i = 1,#newHats do
- newHats[i].Parent = nil
- end
- for i = 1,#oldHats do
- oldHats[i].Transparency = 0
- end
- end
- function atomSpin()
- for i = 1,20 do
- angle = i*math.pi/5
- Tool.GripRight = Vector3.new(math.cos(angle),math.sin(angle),0)
- Tool.GripForward = Vector3.new(-math.sin(angle),math.cos(angle),0)
- Tool.GripPos = Vector3.new(0, -.3+i/10, -0.7)
- wait(.02)
- end
- end
- function gunOut()
- Tool.GripForward = Vector3.new(0,1,0)
- Tool.GripRight = Vector3.new(1,0,0)
- Tool.GripUp = Vector3.new(0,0,1)
- end
- function onActivated()
- if not Tool.Enabled then
- return
- end
- Tool.Enabled = false
- local character = Tool.Parent;
- local humanoid = character.Humanoid
- if humanoid == nil then
- print("Humanoid not found")
- return
- end
- local targetPos = humanoid.TargetPoint
- local lookAt = (targetPos - character.Head.Position).unit
- local reload = 3
- atomo = Tool.Parent:FindFirstChild("AtomoSound")
- if atomo == nil then
- atomo = Instance.new("Sound")
- atomo.Name = "AtomoSound"
- atomo.Volume = .9
- atomo.SoundId = "http://www.roblox.com/asset/?id=35275769"
- atomo.Parent = Tool.Parent
- end
- atomo:Play()
- atomSpin()
- spinParts()
- --atomGetBack()
- wait(reload)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement