TheProNoob2004

TF2 Plyro FlameThrower [NEW][ProNoob'Studio]

Jul 8th, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.98 KB | None | 0 0
  1. --Pyro by madiik
  2. --Note, The PYRO script doesn't support Airblast yet, It's still being created.
  3.  
  4. p = game.Players.LocalPlayer
  5. c = p.Character
  6. torso = c.Torso
  7. local firee = false
  8. local damage = 1
  9. local debounce = false
  10. local debounced = false
  11. local debounceair = false
  12. local firedebounce = false
  13. local removehatchet = false
  14. local hatchetequipped = false
  15. RunService = game:service'RunService'
  16. Debris = game:service'Debris'
  17. local mouse = p:GetMouse()
  18. damagelist = {}
  19. time_until_extinguish = 50
  20. for _,v in pairs(c:children()) do
  21. pcall(function()
  22. if v.className == "Hat" then
  23. v:remove()
  24. end
  25. end)
  26. end
  27. ra = c["Right Arm"]
  28. la = c["Left Arm"]
  29. rs = c.Torso["Right Shoulder"]
  30. ls = c.Torso["Left Shoulder"]
  31.  
  32.  
  33. mask = Instance.new("Part")
  34. mask.Size = Vector3.new(2, 1, 1)
  35. mask.BrickColor = BrickColor.new("Dark stone grey")
  36. mask:BreakJoints()
  37. mask.Name = "Mask"
  38. mask.Parent = c
  39. ms4 = Instance.new("SpecialMesh", mask)
  40. ms4.Scale = Vector3.new(1.3, 1.15, 1.3)
  41. w9 = Instance.new("Weld", mask)
  42. w9.Part0 = mask
  43. w9.Part1 = c.Head
  44. w9.C0 = CFrame.new(0, 0, 0)
  45.  
  46. mask2 = Instance.new("Part")
  47. mask2.FormFactor = "Custom"
  48. mask2.Size = Vector3.new(0.4, 0.5, 0.4)
  49. mask2.BrickColor = BrickColor.new("Dark stone grey")
  50. mask2:BreakJoints()
  51. mask2.Parent = c
  52. ms5 = Instance.new("CylinderMesh", mask2)
  53. ms5.Scale = Vector3.new(1, 1, 1)
  54. w8 = Instance.new("Weld", mask2)
  55. w8.Part0 = mask2
  56. w8.Part1 = c.Head
  57. w8.C0 = CFrame.new(0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  58.  
  59. mask3 = Instance.new("Part")
  60. mask3.FormFactor = "Custom"
  61. mask3.Size = Vector3.new(0.4, 0.5, 0.4)
  62. mask3.BrickColor = BrickColor.new("Dark stone grey")
  63. mask3:BreakJoints()
  64. mask3.Parent = c
  65. ms6 = Instance.new("CylinderMesh", mask3)
  66. ms6.Scale = Vector3.new(1, 1, 1)
  67. w10 = Instance.new("Weld", mask3)
  68. w10.Part0 = mask3
  69. w10.Part1 = c.Head
  70. w10.C0 = CFrame.new(-0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  71.  
  72. mask4 = Instance.new("Part")
  73. mask4.FormFactor = "Custom"
  74. mask4.Size = Vector3.new(0.35, 0.51, 0.35)
  75. mask4.BrickColor = BrickColor.new("Black")
  76. mask4:BreakJoints()
  77. mask4.Reflectance = 0.4
  78. mask4.Parent = c
  79. ms7 = Instance.new("CylinderMesh", mask4)
  80. ms7.Scale = Vector3.new(1, 1, 1)
  81. w11 = Instance.new("Weld", mask4)
  82. w11.Part0 = mask4
  83. w11.Part1 = c.Head
  84. w11.C0 = CFrame.new(0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  85.  
  86. mask5 = Instance.new("Part")
  87. mask5.FormFactor = "Custom"
  88. mask5.Size = Vector3.new(0.35, 0.51, 0.35)
  89. mask5.BrickColor = BrickColor.new("Black")
  90. mask5.Reflectance = 0.4
  91. mask5:BreakJoints()
  92. mask5.Parent = c
  93. ms8 = Instance.new("CylinderMesh", mask5)
  94. ms8.Scale = Vector3.new(1, 1, 1)
  95. w12 = Instance.new("Weld", mask5)
  96. w12.Part0 = mask5
  97. w12.Part1 = c.Head
  98. w12.C0 = CFrame.new(-0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  99.  
  100. mask7 = Instance.new("Part")
  101. mask7.FormFactor = "Custom"
  102. mask7.Size = Vector3.new(0.2, 1.1, 0.2)
  103. mask7.BrickColor = BrickColor.new("Dark stone grey")
  104. mask7:BreakJoints()
  105. mask7.Parent = c
  106. ms8 = Instance.new("CylinderMesh", mask7)
  107. ms8.Scale = Vector3.new(1, 1, 1)
  108. w12 = Instance.new("Weld", mask7)
  109. w12.Part0 = mask7
  110. w12.Part1 = c.Head
  111. w12.C0 = CFrame.new(-0.6, -0.3, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  112. spot = Instance.new("SpotLight", mask)
  113. spot.Range = 60
  114. spot.Angle = 70
  115. spot.Color = Color3.new(1, 1, 0)
  116.  
  117. mask6 = Instance.new("Part")
  118. mask6.FormFactor = "Custom"
  119. mask6.Size = Vector3.new(0.35, 0.65, 0.35)
  120. mask6.BrickColor = BrickColor.new("Dark stone grey")
  121. mask6:BreakJoints()
  122. mask6.Parent = c
  123. ms9 = Instance.new("CylinderMesh", mask6)
  124. ms9.Scale = Vector3.new(1, 1, 1)
  125. w13 = Instance.new("Weld", mask6)
  126. w13.Part0 = mask6
  127. w13.Part1 = c.Head
  128. w13.C0 = CFrame.new(0.2, -0.4, 0) * CFrame.Angles(math.rad(115), math.rad(22.5), 0)
  129.  
  130.  
  131. tool = Instance.new("HopperBin", p.Backpack)
  132. tool.Name = "Pyro"
  133. tool.Selected:connect(function(mouse)
  134. bg2 = Instance.new("BodyGyro",c.Torso)
  135. bg2.P = 20e+003
  136. bg2.maxTorque = Vector3.new(4e+005,4e+005,4e+005)*math.huge
  137.  
  138.  
  139. game:service("RunService").Stepped:connect(function()
  140. bg2.cframe = CFrame.new(c.Torso.Position,Vector3.new(mouse.hit.p.x,c.Torso.Position.y,mouse.hit.p.z)) * CFrame.Angles(0, math.rad(-60), 0)
  141. end)
  142.  
  143.  
  144.  
  145. rs.Part0 = nil
  146. rs.Part1 = nil
  147. ls.Part0 = nil
  148. ls.Part1 = nil
  149. rweld = Instance.new("Weld", c)
  150. rweld.C0 = CFrame.new(-1.48,0,0.2) * CFrame.Angles(math.rad(-18), math.rad(0), math.rad(0))
  151. rweld.Part0 = ra
  152. rweld.Part1 = torso
  153. lweld = Instance.new("Weld", c)
  154. lweld.C0 = CFrame.new(1.5,0.2,0.2) * CFrame.Angles(math.rad(-50), math.rad(22.5), math.rad(0))
  155. lweld.Part0 = la
  156. lweld.Part1 = torso
  157. neck = c.Torso.Neck
  158. neck.C0 = neck.C0 * CFrame.Angles(math.rad(0), math.rad(0), math.rad(60)) wait(0.01)
  159.  
  160. ballon1 = Instance.new("Part")
  161. ballon1.Size = Vector3.new(1, 2, 1)
  162. ballon1.BrickColor = BrickColor.new("White")
  163. ballon1:BreakJoints()
  164. ballon1.Parent = c
  165. Instance.new("SpecialMesh", ballon1)
  166. w = Instance.new("Weld", ballon1)
  167. w.Part0 = ballon1
  168. w.Part1 = torso
  169. w.C0 = CFrame.new(0.45, 0, -0.8)
  170.  
  171. ballon2 = Instance.new("Part")
  172. ballon2.Size = Vector3.new(1, 2, 1)
  173. ballon2.BrickColor = BrickColor.new("White")
  174. ballon2:BreakJoints()
  175. ballon2.Parent = c
  176. Instance.new("SpecialMesh", ballon2)
  177. w1 = Instance.new("Weld", ballon2)
  178. w1.Part0 = ballon2
  179. w1.Part1 = torso
  180. w1.C0 = CFrame.new(-0.45, 0, -0.8)
  181.  
  182. base = Instance.new("Part")
  183. base.FormFactor = "Custom"
  184. base.Size = Vector3.new(0.4, 5, 0.4)
  185. base:breakJoints()
  186. base.BrickColor = BrickColor.Black()
  187. base.Parent = c
  188. Instance.new("CylinderMesh", base)
  189. w2 = Instance.new("Weld", base)
  190. w2.Part0 = base
  191. w2.Part1 = torso
  192. w2.C0 = CFrame.new(1.1, 0.5, 0.5) * CFrame.Angles(math.pi/2,math.rad(120), 0)
  193.  
  194. sound = Instance.new("Sound", base)
  195. sound.SoundId = "http://roblox.com/asset/?id=10209616"
  196. sound.Volume = 1
  197. sound.Looped = true
  198.  
  199. fire = Instance.new("Part")
  200. fire.Parent = nil
  201. fire.FormFactor = "Custom"
  202. fire.Size = Vector3.new(8, 55, 4)
  203. fire.Transparency = 1
  204. fire.CanCollide = false
  205. fire.Anchored = true
  206. pl = Instance.new("PointLight", fire)
  207. pl.Range = 24
  208. pl.Color = Color3.new(255/255, 170/255, 0/255)
  209.  
  210. coroutine.wrap(function()
  211. while true do
  212. fire.CFrame = base.CFrame * CFrame.new(0, -30, 0)
  213. RunService.Stepped:wait()
  214. end
  215. end)()
  216.  
  217.  
  218. sm = Instance.new("Part", c)
  219. sm.FormFactor = "Custom"
  220. sm.BottomSurface = 0
  221. sm.TopSurface = 0
  222. sm.BrickColor = BrickColor.Black()
  223. sm.Size = Vector3.new(0.5, 0.5, 0.5)
  224. sm.Transparency = 0
  225. sm:BreakJoints()
  226.  
  227. pl7 = Instance.new("PointLight", sm)
  228. pl7.Range = 12
  229. pl7.Color = Color3.new(255/255, 170/255, 0/255)
  230.  
  231. smoke = Instance.new("Smoke", sm)
  232. smoke.Enabled = false
  233. smoke.Color = Color3.new(255/255, 170/255, 0/255)
  234. smoke.RiseVelocity = 15
  235. smoke.Size = 1
  236. w3 = Instance.new("Weld", sm)
  237. w3.Part0 = sm
  238. w3.Part1 = base
  239. w3.C0 = CFrame.new(0, -2.5, 0) * CFrame.Angles(math.pi, 0, 0)
  240.  
  241. p1 = Instance.new("Part", c)
  242. p1.FormFactor = "Custom"
  243. p1.BrickColor = BrickColor.Gray()
  244. p1.Size = Vector3.new(0.8, 1.7, 0.8)
  245. p1:BreakJoints()
  246. Instance.new("CylinderMesh", p1)
  247. w4 = Instance.new("Weld", p1)
  248. w4.Part0 = p1
  249. w4.Part1 = base
  250. w4.C0 = CFrame.new(0, 0.5, 0.3)
  251.  
  252. p2 = Instance.new("Part", c)
  253. p2.FormFactor = "Custom"
  254. p2.BrickColor = BrickColor.Black()
  255. p2.Size = Vector3.new(0.4, 1, 0.4)
  256. p2:BreakJoints()
  257. p2.BottomSurface = 0
  258. p2.TopSurface = 0
  259. w5 = Instance.new("Weld", p2)
  260. w5.Part0 = p2
  261. w5.Part1 = base
  262. w5.C0 = CFrame.new(0, 0, -2.5) * CFrame.Angles(math.pi/2, 0, 0)
  263.  
  264.  
  265. p3 = Instance.new("Part", c)
  266. p3.FormFactor = "Custom"
  267. p3.BrickColor = BrickColor.Black()
  268. p3.Size = Vector3.new(0.3, 1, 0.2)
  269. p3:BreakJoints()
  270. p3.BottomSurface = 0
  271. p3.TopSurface = 0
  272. w6 = Instance.new("Weld", p3)
  273. w6.Part0 = p3
  274. w6.Part1 = base
  275. w6.C0 = CFrame.new(0, -1, -0.3) * CFrame.Angles(math.pi/6, 0, 0)
  276.  
  277.  
  278. p4 = Instance.new("Part", c)
  279. p4.FormFactor = "Custom"
  280. p4.BrickColor = BrickColor.Black()
  281. p4.Size = Vector3.new(0.3, 1, 0.2)
  282. p4:BreakJoints()
  283. p4.BottomSurface = 0
  284. p4.TopSurface = 0
  285. w7 = Instance.new("Weld", p4)
  286. w7.Part0 = p4
  287. w7.Part1 = base
  288. w7.C0 = CFrame.new(0, -0.1, -1.5) * CFrame.Angles(math.pi/2, 0, 0)
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297. fiaar = Instance.new("Fire", sm)
  298. fiaar.Size = 1
  299. fiaar.Heat = 200
  300. fiaar.Enabled = false
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308. mouse.KeyDown:connect(function(key)
  309. if key == "e" then
  310. if debounceair then return end
  311. if firee then return end
  312. debounceair = true
  313. airblast()
  314. end
  315. if string.byte(key) == 48 then
  316. c.Humanoid.WalkSpeed = 28
  317. end
  318.  
  319.  
  320. end)
  321. mouse.KeyUp:connect(function(key)
  322. if string.byte(key) == 48 then
  323. c.Humanoid.WalkSpeed = 16
  324. end
  325. end)
  326.  
  327.  
  328. mouse.Button1Down:connect(function()
  329. if firee == false then
  330. firee = true
  331. end
  332. end)
  333.  
  334. mouse.Button1Up:connect(function()
  335. if firee == true then
  336. firee = false
  337. end
  338. end)
  339.  
  340. end)
  341. tool.Deselected:connect(function(mouse)
  342. ballon1:Destroy()
  343. ballon2:Destroy()
  344. base:Destroy()
  345. sm:Destroy()
  346. fire:Destroy()
  347. neck.C0 = neck.C0 * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-60)) wait(0.01)
  348. bg2:Destroy()
  349. p1:Destroy()
  350. p2:Destroy()
  351. p3:Destroy()
  352. p4:Destroy()
  353. rs.Part0 = c.Torso
  354. rs.Part1 = ra
  355. ls.Part0 = c.Torso
  356. ls.Part1 = la
  357. rweld:Destroy()
  358. lweld:Destroy()
  359.  
  360. end)
  361. function ahh(hit)
  362. if hit.Parent.Name == game.Players.LocalPlayer.Name then return end
  363. if hit ~= nil and hit.Parent ~= nil then
  364.  
  365. if hit.Parent:findFirstChild("Humanoid") ~= nil then
  366. coroutine.wrap(function()
  367. if not damagelist[hit.Parent.Name] then
  368. if hit.Parent.Humanoid.Health ~= 0 then
  369. damagelist[hit.Parent.Name] = {humanoid = hit.Parent.Humanoid, time = time_until_extinguish}
  370. for i,v in pairs(hit.Parent:children()) do
  371. if v:IsA("Part") then
  372. Instance.new("Fire", v)
  373. end
  374. end
  375. end
  376. else
  377. damagelist[hit.Parent.Name].time = time_until_extinguish
  378. end
  379. end)()
  380. end
  381. end
  382. end
  383.  
  384. coroutine.wrap(function()
  385. while wait() do
  386. for i,damageobject in pairs(damagelist) do
  387. damageobject.humanoid.Health = damageobject.humanoid.Health - damage
  388. damageobject.time = damageobject.time - 1
  389.  
  390. if damageobject.time < 1 then
  391. if damageobject.humanoid then
  392. for _,n in pairs(damageobject.humanoid.Parent:children()) do
  393. if n:IsA("Part") and n.Parent:IsA("Model") ~= nil and n:findFirstChild("Fire") ~= nil then
  394. n.Fire:Destroy()
  395. end
  396. end
  397. end
  398. damagelist[i] = nil
  399. end
  400. end
  401. if not debounceair then
  402. if firee then
  403. --coroutine.wrap(function()
  404. if base ~= nil then
  405. smoke.Enabled = true
  406. pl7.Enabled = true
  407. fiaar.Enabled = true
  408. fire.Parent = Workspace
  409. sound:play()
  410.  
  411. fire.Touched:connect(ahh)
  412. end
  413.  
  414. --end)()
  415. else
  416. if base ~= nil then
  417. smoke.Enabled = false
  418. fire.Parent = nil
  419. pl7.Enabled = false
  420. fiaar.Enabled = false
  421. sound:stop()
  422. end
  423. end
  424. end
  425. end
  426.  
  427. end)()
  428.  
  429.  
  430. function airblast()
  431. if hatchetequipped then return end
  432. if air ~= nil then return end
  433. air = Instance.new("Part")
  434. air.FormFactor = "Custom"
  435. air.Size = Vector3.new(8, 3, 8)
  436. air.Transparency = 0.8
  437. air:BreakJoints()
  438. air.BottomSurface = 0
  439. air.TopSurface = 0
  440. air.CanCollide = false
  441. air.Anchored = true
  442. air.Parent = Workspace
  443. coroutine.wrap(function()
  444. wait(0.15)
  445. air.CanCollide = true
  446. end)()
  447.  
  448. coroutine.wrap(function()
  449. for i = 0, 40, 1.2 do
  450. air.CFrame = base.CFrame * CFrame.new(0, -i, 0)
  451. RunService.Stepped:wait(0.0000001)
  452. end
  453. end)()
  454. coroutine.wrap(function()
  455. while air ~= nil do
  456. for _, model in pairs(workspace:children()) do
  457. if model:IsA("Model") and model:findFirstChild("Humanoid") ~= nil and model.Name ~= p.Name then
  458. if (model.Torso.CFrame.Position - air.CFrame.Position).magnitude < 3 then
  459. model.Torso.CFrame = base.CFrame * CFrame.new(0, 0, 30)
  460. end
  461. end
  462. end
  463. wait()
  464. end
  465. end)()
  466. wait(2)
  467. air:Destroy()
  468.  
  469. end
Add Comment
Please, Sign In to add comment