SHOW:
         |
         |
         - or go back to the newest paste.    
    | 1 | if script == nil then return end  | |
| 2 | ||
| 3 | ||
| 4 | Name = "Knife"  | |
| 5 | ||
| 6 | ||
| 7 | Player = script:FindFirstChild("sammythecreator") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("95audrey")
 | |
| 8 | Name = "Knife"  | |
| 9 | - | Player = script:FindFirstChild("sammythecreator") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("YOURNAMEHERE")
 | 
| 9 | + | selected = true  | 
| 10 | Button1Down = true  | |
| 11 | - | selected = false  | 
| 11 | + | damage = 10  | 
| 12 | - | Button1Down = false  | 
| 12 | + | |
| 13 | - | damage = 3  | 
| 13 | + | |
| 14 | swordType2 = "normal"  | |
| 15 | ||
| 16 | ||
| 17 | function makeParts(format)  | |
| 18 | 	local model = Instance.new("Model")
 | |
| 19 | model.Name = Name  | |
| 20 | model.Parent = Player.Character  | |
| 21 | 	local pm2 = Instance.new("Part")
 | |
| 22 | pm2.Name = "Weld Point"  | |
| 23 | pm2.formFactor = "Symmetric"  | |
| 24 | pm2.Size = Vector3.new(1, 1, 1)  | |
| 25 | 	pm2.BrickColor = BrickColor.new("Really black")
 | |
| 26 | pm2.Transparency = 1  | |
| 27 | pm2.Locked = true  | |
| 28 | pm2.CanCollide = false  | |
| 29 | pm2.TopSurface = 0  | |
| 30 | pm2.BottomSurface = 0  | |
| 31 | pm2.Parent = model  | |
| 32 | if format ~= nil then  | |
| 33 | 		local w = Instance.new("Weld")
 | |
| 34 | w.Part0 = pm2  | |
| 35 | if format == "hand" then  | |
| 36 | 			w.Part1 = Player.Character:FindFirstChild("Right Arm")
 | |
| 37 | w.C0 = CFrame.new(0, 1.1, 0.7)  | |
| 38 | w.C1 = CFrame.new()  | |
| 39 | w.Parent = pm2  | |
| 40 | elseif format == "holster" then  | |
| 41 | 			w.Part1 = Player.Character:FindFirstChild("Torso")
 | |
| 42 | w.C0 = CFrame.new(0.6, -0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(90), 0)  | |
| 43 | w.C1 = CFrame.new()  | |
| 44 | w.Parent = pm2  | |
| 45 | model.Name = Name.. " (Holstered)"  | |
| 46 | else  | |
| 47 | 			print("Error: Incorrect format string!")
 | |
| 48 | end  | |
| 49 | end  | |
| 50 | 	local pm = Instance.new("Part")
 | |
| 51 | pm.Name = "Handle"  | |
| 52 | pm.formFactor = "Symmetric"  | |
| 53 | pm.Size = Vector3.new(1, 1, 1)  | |
| 54 | 	pm.BrickColor = BrickColor.new("Really black")
 | |
| 55 | pm.Locked = true  | |
| 56 | pm.CanCollide = false  | |
| 57 | pm.TopSurface = 0  | |
| 58 | pm.BottomSurface = 0  | |
| 59 | pm.Parent = model  | |
| 60 | 	local m = Instance.new("SpecialMesh")
 | |
| 61 | m.MeshType = "Brick"  | |
| 62 | m.Scale = Vector3.new(0.3, 0.5, 0.1)  | |
| 63 | m.Parent = pm  | |
| 64 | 	local w = Instance.new("Weld")
 | |
| 65 | w.Part0 = pm  | |
| 66 | w.Part1 = pm2  | |
| 67 | w.C0 = CFrame.new()  | |
| 68 | w.C1 = CFrame.new()  | |
| 69 | w.Parent = pm  | |
| 70 | 	local s = Instance.new("Sound")
 | |
| 71 | s.Name = "Slash"  | |
| 72 | s.SoundId = "rbxasset://sounds/swordslash.wav"  | |
| 73 | s.Volume = 1  | |
| 74 | s.Pitch = 2  | |
| 75 | s.Looped = false  | |
| 76 | s.Parent = pm  | |
| 77 | 	local s = Instance.new("Sound")
 | |
| 78 | s.Name = "Throw"  | |
| 79 | s.SoundId = "http://www.roblox.com/asset/?id=18426149"  | |
| 80 | s.Volume = 1  | |
| 81 | s.Pitch = 1  | |
| 82 | s.Looped = false  | |
| 83 | s.Parent = pm  | |
| 84 | 	local s = Instance.new("Sound")
 | |
| 85 | s.Name = "Impact"  | |
| 86 | s.SoundId = "http://www.roblox.com/asset/?id=10209596"  | |
| 87 | s.Volume = 1  | |
| 88 | s.Pitch = 1  | |
| 89 | s.Looped = false  | |
| 90 | s.Parent = pm  | |
| 91 | 	local p = Instance.new("Part")
 | |
| 92 | p.Name = "Grip"  | |
| 93 | p.formFactor = "Symmetric"  | |
| 94 | p.Size = Vector3.new(1, 1, 1)  | |
| 95 | 	p.BrickColor = BrickColor.new("Really black")
 | |
| 96 | p.CanCollide = false  | |
| 97 | p.Locked = true  | |
| 98 | p.TopSurface = 0  | |
| 99 | p.BottomSurface = 0  | |
| 100 | p.Parent = model  | |
| 101 | 	local m = Instance.new("SpecialMesh")
 | |
| 102 | m.MeshType = "Brick"  | |
| 103 | m.Scale = Vector3.new(0.25, 0.4, 0.9)  | |
| 104 | m.Parent = p  | |
| 105 | 	local w = Instance.new("Weld")
 | |
| 106 | w.Part0 = p  | |
| 107 | w.Part1 = pm  | |
| 108 | w.C0 = CFrame.new(0, 0, -0.5)  | |
| 109 | w.C1 = CFrame.new()  | |
| 110 | w.Parent = p  | |
| 111 | 	local p = Instance.new("Part")
 | |
| 112 | p.Name = "Blade"  | |
| 113 | p.formFactor = "Symmetric"  | |
| 114 | p.Size = Vector3.new(1, 1, 1)  | |
| 115 | 	p.BrickColor = BrickColor.new("Industrial white")
 | |
| 116 | p.Reflectance = 0.2  | |
| 117 | p.Locked = true  | |
| 118 | p.CanCollide = false  | |
| 119 | p.TopSurface = 0  | |
| 120 | p.BottomSurface = 0  | |
| 121 | p.Parent = model  | |
| 122 | 	local m = Instance.new("BlockMesh")
 | |
| 123 | m.Scale = Vector3.new(0.01, 0.3, 0.85)  | |
| 124 | m.Parent = p  | |
| 125 | 	local w = Instance.new("Weld")
 | |
| 126 | w.Part0 = p  | |
| 127 | w.Part1 = pm  | |
| 128 | w.C0 = CFrame.new(0, 0, 0.4)  | |
| 129 | w.C1 = CFrame.new()  | |
| 130 | w.Parent = p  | |
| 131 | p.Touched:connect(function(hit) onTouched(hit, p, "sword") end)  | |
| 132 | 	local p = Instance.new("Part")
 | |
| 133 | p.Name = "Blade Tip"  | |
| 134 | p.formFactor = "Symmetric"  | |
| 135 | p.Size = Vector3.new(1, 1, 1)  | |
| 136 | 	p.BrickColor = BrickColor.new("Industrial white")
 | |
| 137 | p.Reflectance = 0.2  | |
| 138 | p.CanCollide = false  | |
| 139 | p.Locked = true  | |
| 140 | p.TopSurface = 0  | |
| 141 | p.BottomSurface = 0  | |
| 142 | p.Parent = model  | |
| 143 | 	local m = Instance.new("SpecialMesh")
 | |
| 144 | m.MeshType = "Wedge"  | |
| 145 | m.Scale = Vector3.new(0.01, 0.3, 0.35)  | |
| 146 | m.Parent = p  | |
| 147 | 	local w = Instance.new("Weld")
 | |
| 148 | w.Part0 = p  | |
| 149 | w.Part1 = pm  | |
| 150 | w.C0 = CFrame.new(0, 0, 1) * CFrame.fromEulerAnglesXYZ(0, 0, math.rad(180))  | |
| 151 | w.C1 = CFrame.new()  | |
| 152 | w.Parent = p  | |
| 153 | p.Touched:connect(function(hit) onTouched(hit, p, "sword") end)  | |
| 154 | end  | |
| 155 | ||
| 156 | ||
| 157 | function removeParts(format)  | |
| 158 | if format == "hand" then  | |
| 159 | if Player.Character:FindFirstChild(Name) ~= nil then  | |
| 160 | Player.Character[Name]:Remove()  | |
| 161 | end  | |
| 162 | elseif format == "holster" then  | |
| 163 | if Player.Character:FindFirstChild(Name.. " (Holstered)") ~= nil then  | |
| 164 | Player.Character[Name.. " (Holstered)"]:Remove()  | |
| 165 | end  | |
| 166 | end  | |
| 167 | end  | |
| 168 | ||
| 169 | ||
| 170 | function onTouched(hit, source, format)  | |
| 171 | if format == "sword" then  | |
| 172 | 		if hit.Parent:FindFirstChild("Humanoid") ~= nil and hit.Parent ~= Player.Character then
 | |
| 173 | tagHumanoid(hit.Parent.Humanoid)  | |
| 174 | if swordType == "normal" then  | |
| 175 | hit.Parent.Humanoid:TakeDamage(2)  | |
| 176 | elseif swordType == "slash" then  | |
| 177 | hit.Parent.Humanoid:TakeDamage(damage)  | |
| 178 | elseif swordType == "stab" then  | |
| 179 | --Weld(hit, source)  | |
| 180 | local OldHealth = hit.Parent.Humanoid.Health  | |
| 181 | wait(0.5)  | |
| 182 | hit.Parent.Humanoid.Health = 0  | |
| 183 | end  | |
| 184 | delay(3, function() untagHumanoid(hit.Parent.Humanoid) end)  | |
| 185 | end  | |
| 186 | end  | |
| 187 | end  | |
| 188 | ||
| 189 | ||
| 190 | function SetAngle(Joint, Angle, Character)  | |
| 191 | if Character == nil then return false end  | |
| 192 | 	local Joints = {
 | |
| 193 | 		Character.Torso:FindFirstChild("Right Shoulder 2"),
 | |
| 194 | 		Character.Torso:FindFirstChild("Left Shoulder 2"),
 | |
| 195 | 		Character.Torso:FindFirstChild("Right Hip 2"),
 | |
| 196 | 		Character.Torso:FindFirstChild("Left Hip 2")
 | |
| 197 | }  | |
| 198 | if Joints[Joint] == nil then return false end  | |
| 199 | if Joint == 1 or Joint == 3 then  | |
| 200 | Joints[Joint].DesiredAngle = Angle  | |
| 201 | end  | |
| 202 | if Joint == 2 or Joint == 4 then  | |
| 203 | Joints[Joint].DesiredAngle = -Angle  | |
| 204 | end  | |
| 205 | end  | |
| 206 | ||
| 207 | ||
| 208 | function ForceAngle(Joint, Angle, Character)  | |
| 209 | if Character == nil then return false end  | |
| 210 | 	local Joints = {
 | |
| 211 | 		Character.Torso:FindFirstChild("Right Shoulder 2"),
 | |
| 212 | 		Character.Torso:FindFirstChild("Left Shoulder 2"),
 | |
| 213 | 		Character.Torso:FindFirstChild("Right Hip 2"),
 | |
| 214 | 		Character.Torso:FindFirstChild("Left Hip 2")
 | |
| 215 | }  | |
| 216 | if Joints[Joint] == nil then return false end  | |
| 217 | if Joint == 1 or Joint == 3 then  | |
| 218 | Joints[Joint].DesiredAngle = Angle  | |
| 219 | Joints[Joint].CurrentAngle = Angle  | |
| 220 | end  | |
| 221 | if Joint == 2 or Joint == 4 then  | |
| 222 | Joints[Joint].DesiredAngle = -Angle  | |
| 223 | Joints[Joint].CurrentAngle = -Angle  | |
| 224 | end  | |
| 225 | end  | |
| 226 | ||
| 227 | ||
| 228 | function SetSpeed(Joint, Speed, Character)  | |
| 229 | if Character == nil then return false end  | |
| 230 | 	local Joints = {
 | |
| 231 | 		Character.Torso:FindFirstChild("Right Shoulder 2"),
 | |
| 232 | 		Character.Torso:FindFirstChild("Left Shoulder 2"),
 | |
| 233 | 		Character.Torso:FindFirstChild("Right Hip 2"),
 | |
| 234 | 		Character.Torso:FindFirstChild("Left Hip 2")
 | |
| 235 | }  | |
| 236 | if Joints[Joint] == nil then return false end  | |
| 237 | Joints[Joint].MaxVelocity = Speed  | |
| 238 | end  | |
| 239 | ||
| 240 | ||
| 241 | function DisableLimb(Limb, Character)  | |
| 242 | if Character == nil then return false end  | |
| 243 | 	if Character:FindFirstChild("Torso") == nil then return false end
 | |
| 244 | 	local Joints = {
 | |
| 245 | 		Character.Torso:FindFirstChild("Right Shoulder"),
 | |
| 246 | 		Character.Torso:FindFirstChild("Left Shoulder"),
 | |
| 247 | 		Character.Torso:FindFirstChild("Right Hip"),
 | |
| 248 | 		Character.Torso:FindFirstChild("Left Hip")
 | |
| 249 | }  | |
| 250 | 	local Limbs = {
 | |
| 251 | 		Character:FindFirstChild("Right Arm"),
 | |
| 252 | 		Character:FindFirstChild("Left Arm"),
 | |
| 253 | 		Character:FindFirstChild("Right Leg"),
 | |
| 254 | 		Character:FindFirstChild("Left Leg")
 | |
| 255 | }  | |
| 256 | if Joints[Limb] == nil then return false end  | |
| 257 | if Limbs[Limb] == nil then return false end  | |
| 258 | 	local Joint = Instance.new("Motor")
 | |
| 259 | Joint.Parent = Character.Torso  | |
| 260 | Joint.Part0 = Character.Torso  | |
| 261 | Joint.Part1 = Limbs[Limb]  | |
| 262 | if Limb == 1 then  | |
| 263 | Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 264 | Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 265 | Joint.Name = "Right Shoulder 2"  | |
| 266 | elseif Limb == 2 then  | |
| 267 | Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 268 | Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 269 | Joint.Name = "Left Shoulder 2"  | |
| 270 | elseif Limb == 3 then  | |
| 271 | Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 272 | Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 273 | Joint.Name = "Right Hip 2"  | |
| 274 | elseif Limb == 4 then  | |
| 275 | Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 276 | Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 277 | Joint.Name = "Left Hip 2"  | |
| 278 | end  | |
| 279 | Joint.MaxVelocity = Joints[Limb].MaxVelocity  | |
| 280 | Joint.CurrentAngle = Joints[Limb].CurrentAngle  | |
| 281 | Joint.DesiredAngle = Joints[Limb].DesiredAngle  | |
| 282 | Joints[Limb]:Remove()  | |
| 283 | end  | |
| 284 | ||
| 285 | ||
| 286 | function ResetLimbCFrame(Limb, Character)  | |
| 287 | if Character == nil then return false end  | |
| 288 | if Character.Parent == nil then return false end  | |
| 289 | 	if Character:FindFirstChild("Torso") == nil then return false end
 | |
| 290 | 	local Joints = {
 | |
| 291 | 		Character.Torso:FindFirstChild("Right Shoulder 2"),
 | |
| 292 | 		Character.Torso:FindFirstChild("Left Shoulder 2"),
 | |
| 293 | 		Character.Torso:FindFirstChild("Right Hip 2"),
 | |
| 294 | 		Character.Torso:FindFirstChild("Left Hip 2")
 | |
| 295 | }  | |
| 296 | 	local Limbs = {
 | |
| 297 | 		Character:FindFirstChild("Right Arm"),
 | |
| 298 | 		Character:FindFirstChild("Left Arm"),
 | |
| 299 | 		Character:FindFirstChild("Right Leg"),
 | |
| 300 | 		Character:FindFirstChild("Left Leg")
 | |
| 301 | }  | |
| 302 | if Joints[Limb] == nil then return false end  | |
| 303 | if Limbs[Limb] == nil then return false end  | |
| 304 | if Limb == 1 then  | |
| 305 | Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 306 | Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 307 | elseif Limb == 2 then  | |
| 308 | Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 309 | Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 310 | elseif Limb == 3 then  | |
| 311 | Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 312 | Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)  | |
| 313 | elseif Limb == 4 then  | |
| 314 | Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 315 | Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)  | |
| 316 | end  | |
| 317 | end  | |
| 318 | ||
| 319 | ||
| 320 | function EnableLimb(Limb, Character)  | |
| 321 | if Character == nil then return false end  | |
| 322 | 	if Character:FindFirstChild("Torso") == nil then return false end
 | |
| 323 | 	local Joints = {
 | |
| 324 | 		Character.Torso:FindFirstChild("Right Shoulder 2"),
 | |
| 325 | 		Character.Torso:FindFirstChild("Left Shoulder 2"),
 | |
| 326 | 		Character.Torso:FindFirstChild("Right Hip 2"),
 | |
| 327 | 		Character.Torso:FindFirstChild("Left Hip 2")
 | |
| 328 | }  | |
| 329 | 	local Limbs = {
 | |
| 330 | 		Character:FindFirstChild("Right Arm"),
 | |
| 331 | 		Character:FindFirstChild("Left Arm"),
 | |
| 332 | 		Character:FindFirstChild("Right Leg"),
 | |
| 333 | 		Character:FindFirstChild("Left Leg")
 | |
| 334 | }  | |
| 335 | if Joints[Limb] == nil then return false end  | |
| 336 | if Limbs[Limb] == nil then return false end  | |
| 337 | if Limb == 1 then  | |
| 338 | Joints[Limb].Name = "Right Shoulder"  | |
| 339 | elseif Limb == 2 then  | |
| 340 | Joints[Limb].Name = "Left Shoulder"  | |
| 341 | elseif Limb == 3 then  | |
| 342 | Joints[Limb].Name = "Right Hip"  | |
| 343 | elseif Limb == 4 then  | |
| 344 | Joints[Limb].Name = "Left Hip"  | |
| 345 | end  | |
| 346 | 	Animate = Character:FindFirstChild("Animate")
 | |
| 347 | if Animate == nil then return false end  | |
| 348 | Animate = Animate:Clone()  | |
| 349 | Character.Animate:Remove()  | |
| 350 | Animate.Parent = Character  | |
| 351 | end  | |
| 352 | ||
| 353 | ||
| 354 | function playAnimation(format, mouse)  | |
| 355 | if format == "normal" then  | |
| 356 | SetSpeed(1, 0.2, Player.Character)  | |
| 357 | SetAngle(1, math.rad(90), Player.Character)  | |
| 358 | end  | |
| 359 | if format == "slashStart" then  | |
| 360 | SetSpeed(1, 0.75, Player.Character)  | |
| 361 | SetAngle(1, math.rad(190), Player.Character)  | |
| 362 | pcall(function() Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(math.random(70, 110)), 0) end)  | |
| 363 | pcall(function() Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0) end)  | |
| 364 | end  | |
| 365 | if format == "slashEnd1" then  | |
| 366 | SetSpeed(1, 0.9, Player.Character)  | |
| 367 | SetAngle(1, math.rad(0), Player.Character)  | |
| 368 | Player.Character[Name].Handle.Slash:Play()  | |
| 369 | wait(0.2)  | |
| 370 | ResetLimbCFrame(1, Player.Character)  | |
| 371 | SetSpeed(1, 0.5, Player.Character)  | |
| 372 | SetAngle(1, math.rad(90), Player.Character)  | |
| 373 | end  | |
| 374 | if format == "slashEnd2" then  | |
| 375 | SetSpeed(1, 0.9, Player.Character)  | |
| 376 | SetAngle(1, math.rad(25), Player.Character)  | |
| 377 | Player.Character[Name].Handle.Slash:Play()  | |
| 378 | wait(0.3)  | |
| 379 | ResetLimbCFrame(1, Player.Character)  | |
| 380 | SetSpeed(1, 0.1, Player.Character)  | |
| 381 | SetAngle(1, math.rad(90), Player.Character)  | |
| 382 | end  | |
| 383 | if format == "equip1" then  | |
| 384 | for i = 1, 0, -0.1 do  | |
| 385 | Player.Character[Name].Handle.Weld.C0 = CFrame.new(0, 0, i * 1.25) * CFrame.fromEulerAnglesXYZ(math.rad(i * (180 + 360)), 0, 0)  | |
| 386 | wait()  | |
| 387 | end  | |
| 388 | end  | |
| 389 | if format == "equip2" then  | |
| 390 | for i = 0, 1, 0.1 do  | |
| 391 | Player.Character[Name].Handle.Weld.C0 = CFrame.new(0, 0, i * 1.25) * CFrame.fromEulerAnglesXYZ(math.rad(i * (180 + 360)), 0, 0)  | |
| 392 | wait()  | |
| 393 | end  | |
| 394 | end  | |
| 395 | end  | |
| 396 | ||
| 397 | ||
| 398 | function Weld(x, y)  | |
| 399 | 	local weld = Instance.new("Weld")
 | |
| 400 | weld.Part0 = x  | |
| 401 | weld.Part1 = y  | |
| 402 | CJ = CFrame.new(x.Position)  | |
| 403 | C0 = x.CFrame:inverse() * CJ  | |
| 404 | C1 = y.CFrame:inverse() * CJ  | |
| 405 | weld.C0 = C0  | |
| 406 | weld.C1 = C1  | |
| 407 | weld.Parent = x  | |
| 408 | end  | |
| 409 | ||
| 410 | ||
| 411 | function tagHumanoid(humanoid)  | |
| 412 | 	local tag = Instance.new("ObjectValue")
 | |
| 413 | tag.Name = "creator"  | |
| 414 | tag.Value = Player  | |
| 415 | tag.Parent = humanoid  | |
| 416 | 	local tag = Instance.new("StringValue")
 | |
| 417 | tag.Name = "creatorType1"  | |
| 418 | tag.Value = Name  | |
| 419 | tag.Parent = humanoid  | |
| 420 | 	local tag = Instance.new("StringValue")
 | |
| 421 | tag.Name = "creatorType2"  | |
| 422 | tag.Value = "stabbed"  | |
| 423 | tag.Parent = humanoid  | |
| 424 | end  | |
| 425 | ||
| 426 | ||
| 427 | function untagHumanoid(humanoid)  | |
| 428 | if humanoid ~= nil then  | |
| 429 | 		local tag = humanoid:FindFirstChild("creator")
 | |
| 430 | if tag ~= nil then  | |
| 431 | tag:Remove()  | |
| 432 | end  | |
| 433 | 		local tag = humanoid:FindFirstChild("creatorType1")
 | |
| 434 | if tag ~= nil then  | |
| 435 | tag:Remove()  | |
| 436 | end  | |
| 437 | 		local tag = humanoid:FindFirstChild("creatorType2")
 | |
| 438 | if tag ~= nil then  | |
| 439 | tag:Remove()  | |
| 440 | end  | |
| 441 | end  | |
| 442 | end  | |
| 443 | ||
| 444 | ||
| 445 | function onButton1Down(mouse)  | |
| 446 | if selected == false then return end  | |
| 447 | if Player.Character:FindFirstChild(Name) ~= nil and Button1Down == false and canUse == true then  | |
| 448 | 		if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
 | |
| 449 | mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"  | |
| 450 | 		playAnimation("slashStart")
 | |
| 451 | Button1Down = true  | |
| 452 | end  | |
| 453 | end  | |
| 454 | ||
| 455 | ||
| 456 | function onButton1Up(mouse)  | |
| 457 | if selected == false or Button1Down == false then return end  | |
| 458 | Button1Down = false  | |
| 459 | if canUse == false then return end  | |
| 460 | canUse = false  | |
| 461 | coroutine.resume(coroutine.create(function()  | |
| 462 | for i = 1, 2 do  | |
| 463 | if Player.Character:FindFirstChild(Name) == nil then break end  | |
| 464 | 			if Player.Character[Name]:FindFirstChild("Blade") ~= nil then
 | |
| 465 | local part = Player.Character[Name].Blade:Clone()  | |
| 466 | part.Anchored = true  | |
| 467 | part.CanCollide = false  | |
| 468 | 				part.Parent = game:GetService("Workspace")
 | |
| 469 | coroutine.resume(coroutine.create(function(part2) for i = 0, 1, 0.1 do part2.Transparency = i wait() end part2:Remove() end), part)  | |
| 470 | end  | |
| 471 | 			if Player.Character[Name]:FindFirstChild("Blade Tip") ~= nil then
 | |
| 472 | local part = Player.Character[Name]["Blade Tip"]:Clone()  | |
| 473 | part.Anchored = true  | |
| 474 | part.CanCollide = false  | |
| 475 | 				part.Parent = game:GetService("Workspace")
 | |
| 476 | coroutine.resume(coroutine.create(function(part2) for i = 0, 1, 0.1 do part2.Transparency = i wait() end part2:Remove() end), part)  | |
| 477 | end  | |
| 478 | wait()  | |
| 479 | end  | |
| 480 | end))  | |
| 481 | if swordType2 == "normal" then  | |
| 482 | swordType = "slash"  | |
| 483 | 		playAnimation("slashEnd1")
 | |
| 484 | wait(0.1)  | |
| 485 | elseif swordType2 == "stab" then  | |
| 486 | swordType = "stab"  | |
| 487 | 		playAnimation("slashEnd2")
 | |
| 488 | wait(1)  | |
| 489 | end  | |
| 490 | canUse = true  | |
| 491 | swordType = "normal"  | |
| 492 | mouse.Icon = "rbxasset://textures\\GunCursor.png"  | |
| 493 | end  | |
| 494 | ||
| 495 | ||
| 496 | function onKeyDown(key, mouse)  | |
| 497 | if selected == false then return end  | |
| 498 | key = key:lower()  | |
| 499 | if key == "q" and Button1Down == false and canUse == true then  | |
| 500 | if mouse.Target == nil then return end  | |
| 501 | 		if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
 | |
| 502 | onDeselected(mouse)  | |
| 503 | 			removeParts("holster")
 | |
| 504 | 			script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
 | |
| 505 | end  | |
| 506 | end  | |
| 507 | if key == "e" and Button1Down == false and canUse == true then  | |
| 508 | if swordType2 == "normal" then  | |
| 509 | swordType2 = "stab"  | |
| 510 | canUse = false  | |
| 511 | 			playAnimation("equip2")
 | |
| 512 | canUse = true  | |
| 513 | elseif swordType2 == "stab" then  | |
| 514 | swordType2 = "normal"  | |
| 515 | canUse = false  | |
| 516 | 			playAnimation("equip1")
 | |
| 517 | canUse = true  | |
| 518 | end  | |
| 519 | end  | |
| 520 | if key == "-" and Button1Down == false and canUse == true then  | |
| 521 | if mouse.Target == nil then return end  | |
| 522 | 		if Player.Character:FindFirstChild(Name) == nil then makeParts("hand") end
 | |
| 523 | 		if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
 | |
| 524 | canUse = false  | |
| 525 | SetAngle(1, math.rad(200), Player.Character)  | |
| 526 | SetSpeed(1, 0.5, Player.Character)  | |
| 527 | wait(0.3)  | |
| 528 | SetAngle(1, math.rad(0), Player.Character)  | |
| 529 | SetSpeed(1, 0.75, Player.Character)  | |
| 530 | wait(0.05)  | |
| 531 | 		if Player.Character[Name].Handle:FindFirstChild("Weld") ~= nil then Player.Character[Name].Handle.Weld:Remove() end
 | |
| 532 | wait(0.2)  | |
| 533 | 		local Velocity = Instance.new("BodyVelocity")
 | |
| 534 | Velocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)  | |
| 535 | Velocity.velocity = (mouse.Hit.p - Player.Character[Name].Handle.CFrame.p).unit * 100  | |
| 536 | Velocity.Parent = Player.Character[Name].Handle  | |
| 537 | 		local Ang = Instance.new("BodyAngularVelocity")
 | |
| 538 | Ang.maxTorque = Vector3.new(math.huge, math.huge, math.huge)  | |
| 539 | Ang.angularvelocity = Vector3.new(math.random(-25, 25), math.random(-25, 25), math.random(-25, 25))  | |
| 540 | Ang.Parent = Player.Character[Name].Handle  | |
| 541 | Player.Character[Name].Handle.Slash:Stop()  | |
| 542 | Player.Character[Name].Handle.Throw.PlayOnRemove = true  | |
| 543 | Player.Character[Name].Handle.Throw:Remove()  | |
| 544 | local model = Player.Character[Name]  | |
| 545 | 		model.Parent = game:GetService("Workspace")
 | |
| 546 | model:MakeJoints()  | |
| 547 | canUse = true  | |
| 548 | onDeselected(mouse)  | |
| 549 | 		removeParts("holster")
 | |
| 550 | local temporary = script.Parent  | |
| 551 | script.Parent = model  | |
| 552 | temporary:Remove()  | |
| 553 | wait(0.1)  | |
| 554 | local Touched = false  | |
| 555 | local Touched2 = false  | |
| 556 | 		if script.Parent:FindFirstChild("Blade Tip") == nil then return end
 | |
| 557 | 		if script.Parent:FindFirstChild("Handle") == nil then return end
 | |
| 558 | script.Parent["Blade Tip"].Touched:connect(function(hit)  | |
| 559 | if hit.Parent == model then return end  | |
| 560 | 			if hit.Parent.className == "Hat" then hit:BreakJoints() if hit.Parent.Parent.className == "Model" then hit.Parent.Parent = game:GetService("Workspace") hit.CanCollide = true end end
 | |
| 561 | if Touched == true then return end  | |
| 562 | Touched = true  | |
| 563 | script.Parent.Handle.BodyVelocity:Remove()  | |
| 564 | script.Parent.Handle.BodyAngularVelocity:Remove()  | |
| 565 | script.Parent.Handle.Impact:Play()  | |
| 566 | script.Parent.Handle.Slash:Stop()  | |
| 567 | 			if hit.Parent:FindFirstChild("Humanoid") ~= nil then
 | |
| 568 | if hit.Name == "Head" then  | |
| 569 | hit.Parent.Humanoid:TakeDamage(1000)  | |
| 570 | else  | |
| 571 | hit.Parent.Humanoid:TakeDamage(1000)  | |
| 572 | wait(2)  | |
| 573 | 					local e = Instance.new("Explosion")
 | |
| 574 | e.BlastPressure = 1000000  | |
| 575 | e.BlastRadius = 5  | |
| 576 | e.Position = script.Parent["Blade Tip"].Position  | |
| 577 | 					e.Parent = game:GetService("Workspace")
 | |
| 578 | end  | |
| 579 | end  | |
| 580 | Weld(script.Parent.Handle, hit)  | |
| 581 | wait(0.1)  | |
| 582 | wait(3)  | |
| 583 | Touched2 = true  | |
| 584 | end)  | |
| 585 | script.Parent.Handle.Touched:connect(function(hit)  | |
| 586 | if Touched == true and Touched2 == true then  | |
| 587 | 				if game:GetService("Players"):GetPlayerFromCharacter(hit.Parent) ~= nil then
 | |
| 588 | local temporary = script.Parent  | |
| 589 | 					Tool = Instance.new("HopperBin")
 | |
| 590 | Tool.Name = Name  | |
| 591 | 					Tool.Parent = game:GetService("Players"):GetPlayerFromCharacter(hit.Parent).Backpack
 | |
| 592 | script.Parent = Tool  | |
| 593 | temporary:Remove()  | |
| 594 | Player = script.Parent.Parent.Parent  | |
| 595 | end  | |
| 596 | end  | |
| 597 | end)  | |
| 598 | coroutine.resume(coroutine.create(function()  | |
| 599 | while model ~= nil and Touched == false do  | |
| 600 | 				if model:FindFirstChild("Blade") ~= nil then
 | |
| 601 | local part = model.Blade:Clone()  | |
| 602 | part.Anchored = true  | |
| 603 | part.CanCollide = false  | |
| 604 | part.Parent = model  | |
| 605 | coroutine.resume(coroutine.create(function(part2) for i = 0, 1, 0.1 do part2.Transparency = i wait() end part2:Remove() end), part)  | |
| 606 | end  | |
| 607 | 				if model:FindFirstChild("Blade Tip") ~= nil then
 | |
| 608 | local part = model["Blade Tip"]:Clone()  | |
| 609 | part.Anchored = true  | |
| 610 | part.CanCollide = false  | |
| 611 | part.Parent = model  | |
| 612 | coroutine.resume(coroutine.create(function(part2) for i = 0, 1, 0.1 do part2.Transparency = i wait() end part2:Remove() end), part)  | |
| 613 | end  | |
| 614 | wait()  | |
| 615 | end  | |
| 616 | end))  | |
| 617 | while Touched == false do  | |
| 618 | script.Parent.Handle.Slash:Play()  | |
| 619 | wait(0.05)  | |
| 620 | end  | |
| 621 | end  | |
| 622 | if key == "x" and Button1Down == false and canUse == true then  | |
| 623 | if mouse.Target == nil then return end  | |
| 624 | 		if Player.Character:FindFirstChild(Name) == nil then makeParts("hand") end
 | |
| 625 | 		if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
 | |
| 626 | canUse = false  | |
| 627 | 		playAnimation("equip2")
 | |
| 628 | 		if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
 | |
| 629 | Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)  | |
| 630 | Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, 0, 0)  | |
| 631 | end  | |
| 632 | ForceAngle(1, 0, Player.Character)  | |
| 633 | SetAngle(1, math.rad(-50), Player.Character)  | |
| 634 | SetSpeed(1, 0.3, Player.Character)  | |
| 635 | wait(0.2)  | |
| 636 | for i = 90, 200, 20 do  | |
| 637 | 			if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
 | |
| 638 | Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(i), math.rad(5), 0)  | |
| 639 | Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, 0, 0)  | |
| 640 | end  | |
| 641 | wait()  | |
| 642 | end  | |
| 643 | wait(0.3)  | |
| 644 | for i = 200, 50, -50 do  | |
| 645 | 			if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
 | |
| 646 | Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(i), math.rad(5), 0)  | |
| 647 | Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, 0, 0)  | |
| 648 | end  | |
| 649 | wait()  | |
| 650 | end  | |
| 651 | wait(0.1)  | |
| 652 | for i = 1, 0, -0.01 do  | |
| 653 | Player.Character.Humanoid.Health = Player.Character.Humanoid.MaxHealth * i  | |
| 654 | Player.Character.Humanoid.WalkSpeed = i * 16  | |
| 655 | wait()  | |
| 656 | end  | |
| 657 | canUse = true  | |
| 658 | onDeselected(mouse)  | |
| 659 | 		removeParts("holster")
 | |
| 660 | Player.Character.Humanoid.Health = 0  | |
| 661 | end  | |
| 662 | end  | |
| 663 | ||
| 664 | ||
| 665 | function onSelected(mouse)  | |
| 666 | if selected == true then return end  | |
| 667 | selected = true  | |
| 668 | mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"  | |
| 669 | 	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
 | |
| 670 | if Player.Character.WeaponActivated.Value == nil then break end  | |
| 671 | if Player.Character.WeaponActivated.Value.Parent == nil then break end  | |
| 672 | wait()  | |
| 673 | end  | |
| 674 | mouse.Icon = "rbxasset://textures\\GunCursor.png"  | |
| 675 | 	local weapon = Instance.new("ObjectValue")
 | |
| 676 | weapon.Name = "WeaponActivated"  | |
| 677 | weapon.Value = script.Parent  | |
| 678 | weapon.Parent = Player.Character  | |
| 679 | DisableLimb(1, Player.Character)  | |
| 680 | 	removeParts("holster")
 | |
| 681 | 	makeParts("hand")
 | |
| 682 | 	playAnimation("normal")
 | |
| 683 | 	if swordType2 == "normal" then playAnimation("equip1") elseif swordType2 == "stab" then playAnimation("equip2") end
 | |
| 684 | mouse.Button1Down:connect(function() onButton1Down(mouse) end)  | |
| 685 | mouse.Button1Up:connect(function() onButton1Up(mouse) end)  | |
| 686 | mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)  | |
| 687 | end  | |
| 688 | ||
| 689 | ||
| 690 | function onDeselected(mouse)  | |
| 691 | if selected == false then return end  | |
| 692 | Button1Down = false  | |
| 693 | onButton1Up(nil)  | |
| 694 | selected = false  | |
| 695 | while canUse == false do  | |
| 696 | wait()  | |
| 697 | end  | |
| 698 | while canUse == false do  | |
| 699 | wait()  | |
| 700 | end  | |
| 701 | 	if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
 | |
| 702 | if Player.Character.WeaponActivated.Value == script.Parent then  | |
| 703 | Player.Character.WeaponActivated:Remove()  | |
| 704 | end  | |
| 705 | end  | |
| 706 | 	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
 | |
| 707 | if Player.Character.WeaponActivated.Value == nil then break end  | |
| 708 | if pcall(function() if Player.Character.WeaponActivated.Value.Parent == nil then return true end end) then break end  | |
| 709 | wait()  | |
| 710 | end  | |
| 711 | swordType = "normal"  | |
| 712 | EnableLimb(1, Player.Character)  | |
| 713 | 	removeParts("hand")
 | |
| 714 | 	makeParts("holster")
 | |
| 715 | end  | |
| 716 | ||
| 717 | ||
| 718 | if script.Parent.className ~= "HopperBin" then  | |
| 719 | 	if Player == nil then print("Error: Player not found!") return end
 | |
| 720 | 	Tool = Instance.new("HopperBin")
 | |
| 721 | Tool.Name = Name  | |
| 722 | Tool.Parent = Player.Backpack  | |
| 723 | script.Name = "Main"  | |
| 724 | script.Parent = Tool  | |
| 725 | elseif script.Parent.className == "HopperBin" then  | |
| 726 | while script.Parent.Parent.className ~= "Backpack" do  | |
| 727 | wait()  | |
| 728 | end  | |
| 729 | Player = script.Parent.Parent.Parent  | |
| 730 | 	makeParts("holster")
 | |
| 731 | script.Parent.Selected:connect(onSelected)  | |
| 732 | script.Parent.Deselected:connect(onDeselected)  | |
| 733 | end  |