Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Nothing interesting here
- local plr = game:service'Players'.LocalPlayer
- local char = plr.Character
- local hum = char.Humanoid
- local rarm = char["Right Arm"]
- local larm= char["Left Arm"]
- local rleg= char["Right Leg"]
- local lleg = char["Left Leg"]
- local root = char.HumanoidRootPart
- local tors = char.Torso
- local head = char.Head
- local sine = 0;
- local change = 1;
- local RunS = game:GetService("RunService")
- local mouse = plr:GetMouse()
- local defAnim = true;
- local Attachments = {}
- function GetAttach(p)
- for _,v in next, p:children() do
- if v:IsA'Attachment' then
- table.insert(Attachments,v)
- end
- GetAttach(v)
- end
- end
- GetAttach(char)
- wait(1)
- local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
- local V3 = {N=Vector3.new}
- local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge}
- local Effects,Sounds = {},{};
- --Stop animations
- for _,v in next, hum:GetPlayingAnimationTracks() do
- v:Stop();
- end
- pcall(game.Destroy,char:FindFirstChild'Animate')
- pcall(game.Destroy,hum:FindFirstChild'Animator')
- hum:SetStateEnabled("Dead",false)
- hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
- -- Sounds
- Sounds['Wet'] = {Id=256738023,Loop=false,Pitch=1}
- Sounds['Swoosh1'] = {Id=320557353,Loop=false,Pitch=1}
- Sounds['Swoosh2'] = {Id=320557382,Loop=false,Pitch=1}
- Sounds['Swoosh3'] = {Id=320557413,Loop=false,Pitch=1}
- Sounds['Swoosh4'] = {Id=320557453,Loop=false,Pitch=1}
- Sounds['Swoosh5'] = {Id=320557487,Loop=false,Pitch=1}
- Sounds['Swoosh6'] = {Id=320557537,Loop=false,Pitch=1}
- Sounds['Swoosh7'] = {Id=320557563,Loop=false,Pitch=1}
- Sounds['Swoosh8'] = {Id=320557518,Loop=false,Pitch=1}
- Sounds['ShrekRemix'] = {Id=163306929,Loop=true,Pitch=1,Volume = 4}
- Sounds['CreoDimension'] = {Id=927529620,Loop=true,Pitch=1,Volume=4}
- Sounds['BlackBlizzard'] = {Id=657626121,Loop=true,Pitch=1,Volume=4}
- Sounds['ColbreakzFantasy'] = {Id=876981900,Loop=true,Pitch=1,Volume=4}
- Sounds['NeflCrystals'] = {Id=340106355,Loop=true,Pitch=1,Volume=4}
- Sounds['EvilMortyRemix'] = {Id=1057401232,Loop=true,Pitch=1,Volume=10}
- Sounds['SayoFuckYouDan-Nara'] = {Id=1205183071,Loop=true,Pitch=1,Volume=1}
- -- Functions
- local NewInstance = function(instance,parent,properties)
- local inst = Instance.new(instance,parent)
- if(properties)then
- for i,v in next, properties do
- pcall(function() inst[i] = v end)
- end
- end
- return inst;
- end
- function clerp(a, b, t)
- local qa = {
- QuaternionFromCFrame(a)
- }
- local qb = {
- QuaternionFromCFrame(b)
- }
- local ax, ay, az = a.x, a.y, a.z
- local bx, by, bz = b.x, b.y, b.z
- local _t = 1 - t
- return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
- end
- function QuaternionFromCFrame(cf)
- local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
- local trace = m00 + m11 + m22
- if trace > 0 then
- local s = math.sqrt(1 + trace)
- local recip = 0.5 / s
- return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
- else
- local i = 0
- if m00 < m11 then
- i = 1
- end
- if m22 > (i == 0 and m00 or m11) then
- i = 2
- end
- if i == 0 then
- local s = math.sqrt(m00 - m11 - m22 + 1)
- local recip = 0.5 / s
- return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
- elseif i == 1 then
- local s = math.sqrt(m11 - m22 - m00 + 1)
- local recip = 0.5 / s
- return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
- elseif i == 2 then
- local s = math.sqrt(m22 - m00 - m11 + 1)
- local recip = 0.5 / s
- return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
- end
- end
- end
- function QuaternionToCFrame(px, py, pz, x, y, z, w)
- local xs, ys, zs = x + x, y + y, z + z
- local wx, wy, wz = w * xs, w * ys, w * zs
- local xx = x * xs
- local xy = x * ys
- local xz = x * zs
- local yy = y * ys
- local yz = y * zs
- local zz = z * zs
- 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))
- end
- function QuaternionSlerp(a, b, t)
- local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
- local startInterp, finishInterp
- if cosTheta >= 1.0E-4 then
- if 1 - cosTheta > 1.0E-4 then
- local theta = math.acos(cosTheta)
- local invSinTheta = 1 / math.sin(theta)
- startInterp = math.sin((1 - t) * theta) * invSinTheta
- finishInterp = math.sin(t * theta) * invSinTheta
- else
- startInterp = 1 - t
- finishInterp = t
- end
- elseif 1 + cosTheta > 1.0E-4 then
- local theta = math.acos(-cosTheta)
- local invSinTheta = 1 / math.sin(theta)
- startInterp = math.sin((t - 1) * theta) * invSinTheta
- finishInterp = math.sin(t * theta) * invSinTheta
- else
- startInterp = t - 1
- finishInterp = t
- end
- 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
- end
- local sndFromData = function(data,parent)
- if(typeof(data) == 'table')then
- local snd = NewInstance("Sound",parent or char,{SoundId = "rbxassetid://"..data.Id,Looped=data.Loop or false,Pitch = data.Pitch or 1,Volume = data.Volume or 1})
- return snd;
- else
- return error('Argument passed into sndFromData must be a table!',1)
- end
- end
- function UnbindLoops()
- pcall(RunS.UnbindFromRenderStep,RunS,"N_Effects")
- pcall(RunS.UnbindFromRenderStep,RunS,"N_Animations")
- end;
- UnbindLoops() -- Just so if the loops already exist from previously running a script using this template, there's no errors
- function ragdoll()
- char.Archivable = true
- local clone = game.Players.LocalPlayer.Character:Clone()
- clone.Parent = workspace
- for i,v in pairs(clone:GetChildren()) do
- if v.ClassName == "Script" or v.ClassName == "LocalScript" then
- v:destroy()
- end
- for i,p in pairs(v:GetChildren()) do
- if p.ClassName == "Weld" or p.ClassName == "Motor6D" or p.ClassName == "BodyVelocity" then
- p:destroy()
- end
- end
- end
- local leftarm = clone:findFirstChild("Left Arm")
- local rightrm = clone:findFirstChild("Right Arm")
- local leftleg = clone:findFirstChild("Left Leg")
- local rightleg = clone:findFirstChild("Right Leg")
- local head = clone:findFirstChild("Head")
- char:Destroy()
- workspace.CurrentCamera.CameraSubject = head
- if head then
- local attachment = Instance.new("Attachment", clone.Head)
- attachment.Position = Vector3.new(0, -0.5, 0)
- attachment.Name = "lol"
- attachment.Visible = false
- clone.Torso.NeckAttachment.Visible = false
- clone.Torso.NeckAttachment.Position = clone.Torso.NeckAttachment.Position + Vector3.new(0,0,0)
- local ball = Instance.new("BallSocketConstraint", clone)
- ball.Attachment0 = clone.Torso.NeckAttachment
- ball.Attachment1 = attachment
- ball.LimitsEnabled = true
- ball.TwistLimitsEnabled = true
- ball.UpperAngle = 90
- ball.Restitution = 0.5
- ball.TwistUpperAngle = 90
- ball.TwistLowerAngle = -90
- local collidepartofleftleg = Instance.new("Part", clone.Torso)
- collidepartofleftleg.Name = "Bone"
- collidepartofleftleg.Size = Vector3.new(0.7,0.7,0.7)
- collidepartofleftleg.Transparency = 1
- collidepartofleftleg:BreakJoints()
- local weeld = Instance.new("Weld", collidepartofleftleg)
- weeld.Part0 = collidepartofleftleg
- weeld.Part1 = clone["Head"]
- end
- if leftleg ~= nil then
- local glue = Instance.new("Glue", clone.Torso)
- glue.Part0 = clone.Torso
- glue.Part1 = leftleg
- glue.Name = "Left leg"
- local collider = Instance.new("Part", leftleg)
- collider.Position = Vector3.new(0,999,0)
- collider.Size = Vector3.new(1.5, 1, 1)
- collider.Shape = "Cylinder"
- local weld = Instance.new("Weld", collider)
- weld.Part0 = leftleg
- weld.Part1 = collider
- weld.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
- collider.TopSurface = "Smooth"
- collider.BottomSurface = "Smooth"
- collider.formFactor = "Symmetric"
- glue.C0 = CFrame.new(-0.5, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
- glue.C1 = CFrame.new(-0, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
- collider.Transparency = 1
- end
- ------------
- if rightleg ~= nil then
- local glue1 = Instance.new("Glue", clone.Torso)
- glue1.Part0 = clone.Torso
- glue1.Part1 = rightleg
- glue1.Name = "Right leg"
- local collider1 = Instance.new("Part", rightleg)
- collider1.Position = Vector3.new(0,999,0)
- collider1.Size = Vector3.new(1.5, 1, 1)
- collider1.Shape = "Cylinder"
- local weld1 = Instance.new("Weld", collider1)
- weld1.Part0 = rightleg
- weld1.Part1 = collider1
- weld1.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
- collider1.TopSurface = "Smooth"
- collider1.BottomSurface = "Smooth"
- collider1.formFactor = "Symmetric"
- glue1.C0 = CFrame.new(0.5, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
- glue1.C1 = CFrame.new(0, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
- collider1.Transparency = 1
- end
- ------------
- if rightrm ~= nil then
- local glue11 = Instance.new("Glue", clone.Torso)
- glue11.Part0 = clone.Torso
- glue11.Part1 = rightrm
- glue11.Name = "Right shoulder"
- local collider11 = Instance.new("Part", rightrm)
- collider11.Position = Vector3.new(0,9999,0)
- collider11.Size = Vector3.new(1.5,1,1)
- collider11.Shape = "Cylinder"
- local weld11 = Instance.new("Weld", collider11)
- weld11.Part0 = rightrm
- weld11.Part1 = collider11
- weld11.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
- collider11.TopSurface = "Smooth"
- collider11.BottomSurface = "Smooth"
- collider11.formFactor = "Symmetric"
- glue11.C0 = CFrame.new(1.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0)
- glue11.C1 = CFrame.new(0, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0)
- collider11.Transparency = 1
- end
- ------------
- if leftarm ~= nil then
- local glue111 = Instance.new("Glue", clone.Torso)
- glue111.Part0 = clone.Torso
- glue111.Part1 = leftarm
- glue111.Name = "Left shoulder"
- local collider111 = Instance.new("Part", leftarm)
- collider111.Position = Vector3.new(0,9999,0)
- collider111.Size = Vector3.new(1.5,1,1)
- collider111.Shape = "Cylinder"
- local weld111 = Instance.new("Weld", collider111)
- weld111.Part0 = leftarm
- weld111.Part1 = collider111
- weld111.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
- collider111.TopSurface = "Smooth"
- collider111.BottomSurface = "Smooth"
- collider111.formFactor = "Symmetric"
- glue111.C0 = CFrame.new(-1.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- glue111.C1 = CFrame.new(0, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- collider111.Transparency = 1
- ----------------
- end
- wait(0.5)
- coroutine.resume(coroutine.create(function()
- while wait() do
- clone.Head.CanCollide = false
- game:GetService("RunService").Stepped:wait()
- end
- end))
- return clone
- end
- -- Build
- New = function(Object, Parent, Name, Data)
- local Object = Instance.new(Object)
- for Index, Value in pairs(Data or {}) do
- Object[Index] = Value
- end
- Object.Parent = Parent
- Object.Name = Name
- return Object
- end
- Model = New("Model",workspace,"Model",{})
- ring = New("Part",Model,"ring",{CanCollide=false,BrickColor = BrickColor.new("Brick yellow"),Elasticity = 0,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(1, 1, 1),CFrame = CFrame.new(-72.0287933, 6.52005148, 33.66502, -0.0191105176, -0.965736747, 0.258819014, -0.246841118, -0.246295646, -0.937234163, 0.96886754, -0.0817982107, -0.233676717),Anchored = false,BottomSurface = Enum.SurfaceType.Smooth,TopSurface = Enum.SurfaceType.Smooth,Color = Color3.new(0.843137, 0.772549, 0.603922),})
- Mesh = New("SpecialMesh",ring,"Mesh",{MeshId = "http://www.roblox.com/asset/?id=3270017",MeshType = Enum.MeshType.FileMesh,})
- roof = New("Part",Model,"roof",{CanCollide=false,BrickColor = BrickColor.new("Reddish brown"),FormFactor = Enum.FormFactor.Plate,Size = Vector3.new(3.83999777, 0.200000256, 3.35999894),CFrame = CFrame.new(-71.9617996, 14.1185007, 33.3817253, 0.999999523, 0.000339658902, 0.000940953556, -0.000311135052, 0.999545336, -0.030149797, -0.000950766378, 0.0301494878, 0.999544978),Anchored = true,BottomSurface = Enum.SurfaceType.Smooth,TopSurface = Enum.SurfaceType.Smooth,Color = Color3.new(0.411765, 0.25098, 0.156863),})
- tors.CFrame = tors.CFrame * CFrame.new(0,4,0)
- local storedCF = tors.CFrame
- roof.CFrame = storedCF * CFrame.new(0,9,0)
- ring.CFrame = head.CFrame
- local a0 = Instance.new("Attachment",roof)
- local a1 = Instance.new("Attachment",ring)
- local rope = Instance.new("RopeConstraint",roof)
- rope.Thickness = 0.1
- rope.Color = ring.BrickColor
- rope.Attachment0 = a0
- rope.Visible = true
- rope.Attachment1 = a1
- rope.Length = (roof.CFrame.p - ring.CFrame.p).magnitude
- wait(.05)
- local rag = ragdoll()
- plr.Character = rag
- Model.Parent = rag
- local hw = Instance.new("Weld",rag)
- hw.Part0 = rag.Head
- hw.Part1 = ring
- hw.C1 = CFrame.new(0,0,0.5)*CFrame.Angles(math.rad(90),0,0)
- local Music = sndFromData(Sounds["SayoFuckYouDan-Nara"],rag.Torso)
- Music:Play()
- -- Check State
- function CheckState(rPart)
- if(rPart.Velocity.y > 1 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
- return 'Jump';
- elseif(rPart.Velocity.y < -1 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
- return 'Fall';
- elseif(math.abs(rPart.Velocity.x) > 2 or math.abs(rPart.Velocity.z) > 2 and hum:GetState() ~= Enum.HumanoidStateType.Freefall)then
- return 'Walk';
- end
- return 'Idle';
- end
- -- Died event
- hum.Died:connect(function() -- When the player dies
- UnbindLoops() -- Unbind all of the loops used
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement