Advertisement
95audrey

Knife script

Mar 13th, 2016
3,220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. selected = true
  10. Button1Down = true
  11. damage = 10
  12. canUse = true
  13. swordType = "normal"
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement