SHOW:
|
|
- or go back to the newest paste.
1 | local limbs = {} | |
2 | function ragdoll(PC) | |
3 | local limbcollider = Instance.new("Part", PC:findFirstChild("Right Arm")) | |
4 | limbcollider.Size = Vector3.new(1.4,1,1) | |
5 | limbcollider.Shape = "Cylinder" | |
6 | - | Tool.Parent = workspace.Lucas_YT111 |
6 | + | limbcollider.Transparency = 1 |
7 | - | Knife.Size = Vector3.new(1, 1, 1) |
7 | + | limbcollider.Name = "LimbCollider" |
8 | local limbcolliderweld = Instance.new("Weld", limbcollider) | |
9 | limbcolliderweld.Part0 = PC:findFirstChild("Right Arm") | |
10 | limbcolliderweld.Part1 = limbcollider | |
11 | limbcolliderweld.C0 = CFrame.fromEulerAnglesXYZ(0,0,math.pi/2) * CFrame.new(-0.3,0,0) | |
12 | local limbcollider2 = Instance.new("Part", PC:findFirstChild("Left Arm")) | |
13 | limbcollider2.Size = Vector3.new(1.4,1,1) | |
14 | limbcollider2.Shape = "Cylinder" | |
15 | limbcollider2.Transparency = 1 | |
16 | limbcollider2.Name = "LimbCollider" | |
17 | local limbcolliderweld2 = Instance.new("Weld", limbcollider) | |
18 | limbcolliderweld2.Part0 = PC:findFirstChild("Left Arm") | |
19 | limbcolliderweld2.Part1 = limbcollider2 | |
20 | limbcolliderweld2.C0 = CFrame.fromEulerAnglesXYZ(0,0,math.pi/2) * CFrame.new(-0.3,0,0) | |
21 | local limbcollider3 = Instance.new("Part", PC:findFirstChild("Right Leg")) | |
22 | limbcollider3.Size = Vector3.new(1.3,1,1) | |
23 | limbcollider3.Shape = "Cylinder" | |
24 | limbcollider3.Transparency = 1 | |
25 | limbcollider3.Name = "LimbCollider" | |
26 | local limbcolliderweld3 = Instance.new("Weld", limbcollider) | |
27 | - | part = Instance.new("Part",game.Workspace) |
27 | + | limbcolliderweld3.Part0 = PC:findFirstChild("Right Leg") |
28 | limbcolliderweld3.Part1 = limbcollider3 | |
29 | limbcolliderweld3.C0 = CFrame.fromEulerAnglesXYZ(0,0,math.pi/2) * CFrame.new(-0.3,0,0) | |
30 | local limbcollider4 = Instance.new("Part", PC:findFirstChild("Left Leg")) | |
31 | limbcollider4.Size = Vector3.new(1.3,1,1) | |
32 | limbcollider4.Shape = "Cylinder" | |
33 | - | function thinghere(plr,action,hit, target) |
33 | + | limbcollider4.Transparency = 1 |
34 | limbcollider4.Name = "LimbCollider" | |
35 | local limbcolliderweld4 = Instance.new("Weld", limbcollider) | |
36 | limbcolliderweld4.Part0 = PC:findFirstChild("Left Leg") | |
37 | limbcolliderweld4.Part1 = limbcollider4 | |
38 | limbcolliderweld4.C0 = CFrame.fromEulerAnglesXYZ(0,0,math.pi/2) * CFrame.new(-0.3,0,0) | |
39 | PC.Humanoid.PlatformStand = true | |
40 | table.insert(limbs,limbcollider) | |
41 | table.insert(limbs,limbcollider2) | |
42 | table.insert(limbs,limbcollider3) | |
43 | table.insert(limbs,limbcollider4) | |
44 | for i,v in pairs(PC:GetDescendants()) do | |
45 | - | attachment1.Parent = Knife |
45 | + | if v:IsA("Motor6D") and v.Parent.Name ~= "HumanoidRootPart" then |
46 | local Socket = Instance.new("BallSocketConstraint") | |
47 | local a1 = Instance.new("Attachment") | |
48 | local a2 = Instance.new("Attachment") | |
49 | a1.Parent = v.Part0 | |
50 | a2.Parent = v.Part1 | |
51 | - | local distance = (owner.Character.Torso.CFrame.Position - part.CFrame.Position).magnitude - 1 |
51 | + | Socket.Parent = v.Parent |
52 | Socket.Attachment0 = a1 | |
53 | Socket.Attachment1 = a2 | |
54 | a1.CFrame = v.C0 | |
55 | - | local weld = Instance.new("WeldConstraint") |
55 | + | a2.CFrame = v.C1 |
56 | Socket.LimitsEnabled = true | |
57 | Socket.TwistLimitsEnabled = true | |
58 | - | weld.Parent = part |
58 | + | v.Enabled = false |
59 | end | |
60 | end | |
61 | end | |
62 | function unragdoll(PC) | |
63 | - | count = 0 |
63 | + | PC.Humanoid.PlatformStand = false |
64 | for i,v in pairs(PC:GetDescendants()) do | |
65 | if v:IsA("Motor6D") then | |
66 | v.Enabled = true | |
67 | - | target = Mouse.Target |
67 | + | |
68 | - | E:FireServer("Down",Mouse.Hit, target) |
68 | + | |
69 | - | count = count + 1 |
69 | + | for i,v in pairs(limbs) do |
70 | - | if count == 1 then |
70 | + | v:Destroy() |
71 | - | owner.Character.Humanoid.PlatformStand = true |
71 | + | |
72 | - | bodygyro = Instance.new('BodyGyro', owner.Character.HumanoidRootPart) |
72 | + | |
73 | - | bodygyro.maxTorque = Vector3.new(math.huge,math.huge,math.huge) |
73 | + | |
74 | - | bodygyro.P = 10000 |
74 | + | |
75 | - | |
75 | + | |
76 | - | fly = Instance.new("BodyVelocity",owner.Character.HumanoidRootPart) |
76 | + | Knife2 = Instance.new("Part",Knife) |
77 | - | fly.MaxForce = Vector3.new(0,0,0) |
77 | + | |
78 | - | coroutine.wrap(function() |
78 | + | |
79 | - | while count == 1 do |
79 | + | Tool.Parent = owner.Character |
80 | - | task.wait() |
80 | + | Knife.Size = Vector3.new(1.25, 1.25, 1.75) |
81 | - | bodygyro.CFrame = CFrame.new(workspace.CurrentCamera.CFrame.Position,owner.Character.HumanoidRootPart.CFrame.Position) |
81 | + | |
82 | - | if owner.Character.Humanoid.MoveDirection ~= Vector3.new(0,0,0) then |
82 | + | |
83 | - | fly.MaxForce = Vector3.new(math.huge,math.huge,math.huge) |
83 | + | Knife.Material = Enum.Material.SmoothPlastic |
84 | - | fly.Velocity = owner.Character.HumanoidRootPart.CFrame.lookVector * math.huge |
84 | + | Knife2.Size = Vector3.new(0.25, 0.5, 0.75) |
85 | - | elseif owner.Character.Humanoid.MoveDirection == Vector3.new(0,0,0) then |
85 | + | Knife2.Massless = true |
86 | - | fly.MaxForce = Vector3.new(0,0,0) |
86 | + | Knife2.CanCollide = true |
87 | Knife2.Material = Enum.Material.SmoothPlastic | |
88 | Knife2.Color = Color3.fromRGB(20,20,20) | |
89 | - | end)() |
89 | + | local weld2 = Instance.new("Weld",Knife) |
90 | - | elseif count == 2 then |
90 | + | weld2.Part0 = Knife2 |
91 | - | bodygyro:Destroy() |
91 | + | weld2.Part1 = Knife |
92 | - | fly:Destroy() |
92 | + | weld2.C0 = CFrame.new(-0.675,0,0.4375) |
93 | - | owner.Character.Humanoid.PlatformStand = false |
93 | + | |
94 | - | count = 0 |
94 | + | |
95 | stab.SoundId = "rbxassetid://199607491" | |
96 | stab.Volume = 0.5 | |
97 | islunging = false | |
98 | Tool.Activated:connect(function() | |
99 | islunging = true | |
100 | - | E.OnServerEvent:Connect(thinghere) |
100 | + | |
101 | stab:Stop() | |
102 | stab:Play() | |
103 | local Anim = Instance.new("StringValue") | |
104 | Anim.Name = "toolanim" | |
105 | Anim.Value = "Lunge" | |
106 | Anim.Parent = Tool | |
107 | wait(0.5) | |
108 | islunging = false | |
109 | end) | |
110 | part = Instance.new("Part",owner.Character) | |
111 | part.Anchored = true | |
112 | part.CFrame = CFrame.new(0,1000,0) | |
113 | part.Size = Vector3.new(0.05,0.05,0.05) | |
114 | part.Transparency = 1 | |
115 | local weld = Instance.new("WeldConstraint",part) | |
116 | roped = false | |
117 | whatplayer = nil | |
118 | whatpart = nil | |
119 | function thinghere(plr,action, hit, target) | |
120 | pcall(function() | |
121 | if not roped then | |
122 | local Model = target:FindFirstAncestorOfClass("Model") | |
123 | if Model then | |
124 | local who = game:GetService("Players"):GetPlayerFromCharacter(Model) | |
125 | if who then | |
126 | whatplayer = who | |
127 | ragdoll(whatplayer.Character) | |
128 | whatpart = target | |
129 | whatpart:SetNetworkOwner(owner) | |
130 | for i,v in pairs(whatpart:GetDescendants()) do | |
131 | if v:IsA("Part") then | |
132 | v.Massless = true | |
133 | end | |
134 | end | |
135 | end | |
136 | end | |
137 | elseif roped then | |
138 | for i,v in pairs(whatpart:GetDescendants()) do | |
139 | if v:IsA("Part") then | |
140 | v.Massless = false | |
141 | end | |
142 | end | |
143 | unragdoll(whatplayer.Character) | |
144 | whatpart:SetNetworkOwner(whatplayer) | |
145 | end | |
146 | end) | |
147 | if roped then | |
148 | alignposition:Destroy() | |
149 | part.Anchored = true | |
150 | roped = false | |
151 | weld.Part0 = part | |
152 | weld.Part1 = part | |
153 | else | |
154 | if islunging then | |
155 | part.Anchored = false | |
156 | roped = true | |
157 | part.CFrame = hit | |
158 | local attachment0 = Instance.new("Attachment") | |
159 | attachment0.Parent = part | |
160 | local attachment1 = Instance.new("Attachment") | |
161 | attachment1.Parent = Knife2 | |
162 | alignposition = Instance.new("RopeConstraint") | |
163 | alignposition.Parent = Knife | |
164 | alignposition.Attachment0 = attachment0 | |
165 | alignposition.Attachment1 = attachment1 | |
166 | alignposition.Visible = true | |
167 | local distance = (owner.Character.Torso.CFrame.Position - part.CFrame.Position).magnitude | |
168 | alignposition.Length = distance | |
169 | alignposition.Thickness = 0.25 | |
170 | alignposition.Restitution = 0.25 | |
171 | weld.Part0 = target | |
172 | weld.Part1 = part | |
173 | end | |
174 | end | |
175 | end | |
176 | local E = Instance.new("RemoteEvent",NLS([[local E = script:FindFirstChildWhichIsA("RemoteEvent") | |
177 | local Mouse = owner:GetMouse() | |
178 | function ButtonDown() | |
179 | if Mouse.Hit ~= nil then | |
180 | E:FireServer("Down", Mouse.Hit, Mouse.Target) | |
181 | end | |
182 | end | |
183 | Mouse.Button1Down:Connect(ButtonDown) | |
184 | ]],owner.PlayerGui)) | |
185 | E.OnServerEvent:Connect(thinghere) | |
186 | Tool.GripPos = Vector3.new(0,0,-0.85) |