Advertisement
Pancakess

pyro

Jan 13th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  3. do
  4. print("FE Compatibility code by Mokiros")
  5. script.Parent = Player.Character
  6.  
  7. --RemoteEvent for communicating
  8. local Event = Instance.new("RemoteEvent")
  9. Event.Name = "UserInput_Event"
  10.  
  11. --Fake event to make stuff like Mouse.KeyDown work
  12. local function fakeEvent()
  13. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  14. t.connect = t.Connect
  15. return t
  16. end
  17.  
  18. --Creating fake input objects with fake variables
  19. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  20. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  21. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  22. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  23. end}
  24. --Merged 2 functions into one by checking amount of arguments
  25. CAS.UnbindAction = CAS.BindAction
  26.  
  27. --This function will trigger the events that have been :Connect()'ed
  28. local function te(self,ev,...)
  29. local t = m[ev]
  30. if t and t._fakeEvent and t.Function then
  31. t.Function(...)
  32. end
  33. end
  34. m.TrigEvent = te
  35. UIS.TrigEvent = te
  36.  
  37. Event.OnServerEvent:Connect(function(plr,io)
  38. if plr~=Player then return end
  39. if io.isMouse then
  40. m.Target = io.Target
  41. m.Hit = io.Hit
  42. else
  43. local b = io.UserInputState == Enum.UserInputState.Begin
  44. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  45. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  46. end
  47. for _,t in pairs(CAS.Actions) do
  48. for _,k in pairs(t.Keys) do
  49. if k==io.KeyCode then
  50. t.Function(t.Name,io.UserInputState,io)
  51. end
  52. end
  53. end
  54. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  55. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  56. end
  57. end)
  58. Event.Parent = NLS([==[
  59. local Player = game:GetService("Players").LocalPlayer
  60. local Event = script:WaitForChild("UserInput_Event")
  61.  
  62. local UIS = game:GetService("UserInputService")
  63. local input = function(io,a)
  64. if a then return end
  65. --Since InputObject is a client-side instance, we create and pass table instead
  66. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  67. end
  68. UIS.InputBegan:Connect(input)
  69. UIS.InputEnded:Connect(input)
  70.  
  71. local Mouse = Player:GetMouse()
  72. local h,t
  73. --Give the server mouse data 30 times every second, but only if the values changed
  74. --If player is not moving their mouse, client won't fire events
  75. while wait(1/30) do
  76. if h~=Mouse.Hit or t~=Mouse.Target then
  77. h,t=Mouse.Hit,Mouse.Target
  78. Event:FireServer({isMouse=true,Target=t,Hit=h})
  79. end
  80. end]==],Player.Character)
  81. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  82. end
  83.  
  84. --Pyro by madiik
  85. --Note, The PYRO script doesn't support Airblast yet, It's still being created.
  86.  
  87. p = owner
  88. c = p.Character
  89. torso = c.Torso
  90. local firee = false
  91. local damage = 1
  92. local debounce = false
  93. local debounced = false
  94. local debounceair = false
  95. local firedebounce = false
  96. local removehatchet = false
  97. local hatchetequipped = false
  98. RunService = game:service'RunService'
  99. Debris = game:service'Debris'
  100. damagelist = {}
  101. time_until_extinguish = 50
  102. for _,v in pairs(c:children()) do
  103. pcall(function()
  104. if v.className == "Hat" then
  105. v:remove()
  106. end
  107. end)
  108. end
  109. ra = c["Right Arm"]
  110. la = c["Left Arm"]
  111. rs = c.Torso["Right Shoulder"]
  112. ls = c.Torso["Left Shoulder"]
  113.  
  114.  
  115. mask = Instance.new("Part")
  116. mask.Size = Vector3.new(2, 1, 1)
  117. mask.BrickColor = BrickColor.new("Dark stone grey")
  118. mask:BreakJoints()
  119. mask.Name = "Mask"
  120. mask.Parent = c
  121. ms4 = Instance.new("SpecialMesh", mask)
  122. ms4.Scale = Vector3.new(1.3, 1.15, 1.3)
  123. w9 = Instance.new("Weld", mask)
  124. w9.Part0 = mask
  125. w9.Part1 = c.Head
  126. w9.C0 = CFrame.new(0, 0, 0)
  127.  
  128. mask2 = Instance.new("Part")
  129. mask2.FormFactor = "Custom"
  130. mask2.Size = Vector3.new(0.4, 0.5, 0.4)
  131. mask2.BrickColor = BrickColor.new("Dark stone grey")
  132. mask2:BreakJoints()
  133. mask2.Parent = c
  134. ms5 = Instance.new("CylinderMesh", mask2)
  135. ms5.Scale = Vector3.new(1, 1, 1)
  136. w8 = Instance.new("Weld", mask2)
  137. w8.Part0 = mask2
  138. w8.Part1 = c.Head
  139. w8.C0 = CFrame.new(0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  140.  
  141. mask3 = Instance.new("Part")
  142. mask3.FormFactor = "Custom"
  143. mask3.Size = Vector3.new(0.4, 0.5, 0.4)
  144. mask3.BrickColor = BrickColor.new("Dark stone grey")
  145. mask3:BreakJoints()
  146. mask3.Parent = c
  147. ms6 = Instance.new("CylinderMesh", mask3)
  148. ms6.Scale = Vector3.new(1, 1, 1)
  149. w10 = Instance.new("Weld", mask3)
  150. w10.Part0 = mask3
  151. w10.Part1 = c.Head
  152. w10.C0 = CFrame.new(-0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  153.  
  154. mask4 = Instance.new("Part")
  155. mask4.FormFactor = "Custom"
  156. mask4.Size = Vector3.new(0.35, 0.51, 0.35)
  157. mask4.BrickColor = BrickColor.new("Black")
  158. mask4:BreakJoints()
  159. mask4.Reflectance = 0.4
  160. mask4.Parent = c
  161. ms7 = Instance.new("CylinderMesh", mask4)
  162. ms7.Scale = Vector3.new(1, 1, 1)
  163. w11 = Instance.new("Weld", mask4)
  164. w11.Part0 = mask4
  165. w11.Part1 = c.Head
  166. w11.C0 = CFrame.new(0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  167.  
  168. mask5 = Instance.new("Part")
  169. mask5.FormFactor = "Custom"
  170. mask5.Size = Vector3.new(0.35, 0.51, 0.35)
  171. mask5.BrickColor = BrickColor.new("Black")
  172. mask5.Reflectance = 0.4
  173. mask5:BreakJoints()
  174. mask5.Parent = c
  175. ms8 = Instance.new("CylinderMesh", mask5)
  176. ms8.Scale = Vector3.new(1, 1, 1)
  177. w12 = Instance.new("Weld", mask5)
  178. w12.Part0 = mask5
  179. w12.Part1 = c.Head
  180. w12.C0 = CFrame.new(-0.25, -0.4, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  181.  
  182. mask7 = Instance.new("Part")
  183. mask7.FormFactor = "Custom"
  184. mask7.Size = Vector3.new(0.2, 1.1, 0.2)
  185. mask7.BrickColor = BrickColor.new("Dark stone grey")
  186. mask7:BreakJoints()
  187. mask7.Parent = c
  188. ms8 = Instance.new("CylinderMesh", mask7)
  189. ms8.Scale = Vector3.new(1, 1, 1)
  190. w12 = Instance.new("Weld", mask7)
  191. w12.Part0 = mask7
  192. w12.Part1 = c.Head
  193. w12.C0 = CFrame.new(-0.6, -0.3, -0.1) * CFrame.Angles(math.pi/2, 0, 0)
  194. spot = Instance.new("SpotLight", mask)
  195. spot.Range = 60
  196. spot.Angle = 70
  197. spot.Color = Color3.new(1, 1, 0)
  198.  
  199. mask6 = Instance.new("Part")
  200. mask6.FormFactor = "Custom"
  201. mask6.Size = Vector3.new(0.35, 0.65, 0.35)
  202. mask6.BrickColor = BrickColor.new("Dark stone grey")
  203. mask6:BreakJoints()
  204. mask6.Parent = c
  205. ms9 = Instance.new("CylinderMesh", mask6)
  206. ms9.Scale = Vector3.new(1, 1, 1)
  207. w13 = Instance.new("Weld", mask6)
  208. w13.Part0 = mask6
  209. w13.Part1 = c.Head
  210. w13.C0 = CFrame.new(0.2, -0.4, 0) * CFrame.Angles(math.rad(115), math.rad(22.5), 0)
  211.  
  212.  
  213. tool = Instance.new("HopperBin", p.Backpack)
  214. tool.Name = "Pyro"
  215. tool.Selected:connect(function(mouse)
  216. bg2 = Instance.new("BodyGyro",c.Torso)
  217. bg2.P = 20e+003
  218. bg2.maxTorque = Vector3.new(4e+005,4e+005,4e+005)*math.huge
  219.  
  220.  
  221. game:service("RunService").Stepped:connect(function()
  222. 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)
  223. end)
  224.  
  225.  
  226.  
  227. rs.Part0 = nil
  228. rs.Part1 = nil
  229. ls.Part0 = nil
  230. ls.Part1 = nil
  231. rweld = Instance.new("Weld", c)
  232. rweld.C0 = CFrame.new(-1.48,0,0.2) * CFrame.Angles(math.rad(-18), math.rad(0), math.rad(0))
  233. rweld.Part0 = ra
  234. rweld.Part1 = torso
  235. lweld = Instance.new("Weld", c)
  236. lweld.C0 = CFrame.new(1.5,0.2,0.2) * CFrame.Angles(math.rad(-50), math.rad(22.5), math.rad(0))
  237. lweld.Part0 = la
  238. lweld.Part1 = torso
  239. neck = c.Torso.Neck
  240. neck.C0 = neck.C0 * CFrame.Angles(math.rad(0), math.rad(0), math.rad(60)) wait(0.01)
  241.  
  242. ballon1 = Instance.new("Part")
  243. ballon1.Size = Vector3.new(1, 2, 1)
  244. ballon1.BrickColor = BrickColor.new("White")
  245. ballon1:BreakJoints()
  246. ballon1.Parent = c
  247. Instance.new("SpecialMesh", ballon1)
  248. w = Instance.new("Weld", ballon1)
  249. w.Part0 = ballon1
  250. w.Part1 = torso
  251. w.C0 = CFrame.new(0.45, 0, -0.8)
  252.  
  253. ballon2 = Instance.new("Part")
  254. ballon2.Size = Vector3.new(1, 2, 1)
  255. ballon2.BrickColor = BrickColor.new("White")
  256. ballon2:BreakJoints()
  257. ballon2.Parent = c
  258. Instance.new("SpecialMesh", ballon2)
  259. w1 = Instance.new("Weld", ballon2)
  260. w1.Part0 = ballon2
  261. w1.Part1 = torso
  262. w1.C0 = CFrame.new(-0.45, 0, -0.8)
  263.  
  264. base = Instance.new("Part")
  265. base.FormFactor = "Custom"
  266. base.Size = Vector3.new(0.4, 5, 0.4)
  267. base:breakJoints()
  268. base.BrickColor = BrickColor.Black()
  269. base.Parent = c
  270. Instance.new("CylinderMesh", base)
  271. w2 = Instance.new("Weld", base)
  272. w2.Part0 = base
  273. w2.Part1 = torso
  274. w2.C0 = CFrame.new(1.1, 0.5, 0.5) * CFrame.Angles(math.pi/2,math.rad(120), 0)
  275.  
  276. sound = Instance.new("Sound", base)
  277. sound.SoundId = "http://roblox.com/asset/?id=10209616"
  278. sound.Volume = 1
  279. sound.Looped = true
  280.  
  281. fire = Instance.new("Part")
  282. fire.Parent = nil
  283. fire.FormFactor = "Custom"
  284. fire.Size = Vector3.new(8, 55, 4)
  285. fire.Transparency = 1
  286. fire.CanCollide = false
  287. fire.Anchored = true
  288. pl = Instance.new("PointLight", fire)
  289. pl.Range = 24
  290. pl.Color = Color3.new(255/255, 170/255, 0/255)
  291.  
  292. coroutine.wrap(function()
  293. while true do
  294. fire.CFrame = base.CFrame * CFrame.new(0, -30, 0)
  295. RunService.Stepped:wait()
  296. end
  297. end)()
  298.  
  299.  
  300. sm = Instance.new("Part", c)
  301. sm.FormFactor = "Custom"
  302. sm.BottomSurface = 0
  303. sm.TopSurface = 0
  304. sm.BrickColor = BrickColor.Black()
  305. sm.Size = Vector3.new(0.5, 0.5, 0.5)
  306. sm.Transparency = 0
  307. sm:BreakJoints()
  308.  
  309. pl7 = Instance.new("PointLight", sm)
  310. pl7.Range = 12
  311. pl7.Color = Color3.new(255/255, 170/255, 0/255)
  312.  
  313. smoke = Instance.new("Smoke", sm)
  314. smoke.Enabled = false
  315. smoke.Color = Color3.new(255/255, 170/255, 0/255)
  316. smoke.RiseVelocity = 15
  317. smoke.Size = 1
  318. w3 = Instance.new("Weld", sm)
  319. w3.Part0 = sm
  320. w3.Part1 = base
  321. w3.C0 = CFrame.new(0, -2.5, 0) * CFrame.Angles(math.pi, 0, 0)
  322.  
  323. p1 = Instance.new("Part", c)
  324. p1.FormFactor = "Custom"
  325. p1.BrickColor = BrickColor.Gray()
  326. p1.Size = Vector3.new(0.8, 1.7, 0.8)
  327. p1:BreakJoints()
  328. Instance.new("CylinderMesh", p1)
  329. w4 = Instance.new("Weld", p1)
  330. w4.Part0 = p1
  331. w4.Part1 = base
  332. w4.C0 = CFrame.new(0, 0.5, 0.3)
  333.  
  334. p2 = Instance.new("Part", c)
  335. p2.FormFactor = "Custom"
  336. p2.BrickColor = BrickColor.Black()
  337. p2.Size = Vector3.new(0.4, 1, 0.4)
  338. p2:BreakJoints()
  339. p2.BottomSurface = 0
  340. p2.TopSurface = 0
  341. w5 = Instance.new("Weld", p2)
  342. w5.Part0 = p2
  343. w5.Part1 = base
  344. w5.C0 = CFrame.new(0, 0, -2.5) * CFrame.Angles(math.pi/2, 0, 0)
  345.  
  346.  
  347. p3 = Instance.new("Part", c)
  348. p3.FormFactor = "Custom"
  349. p3.BrickColor = BrickColor.Black()
  350. p3.Size = Vector3.new(0.3, 1, 0.2)
  351. p3:BreakJoints()
  352. p3.BottomSurface = 0
  353. p3.TopSurface = 0
  354. w6 = Instance.new("Weld", p3)
  355. w6.Part0 = p3
  356. w6.Part1 = base
  357. w6.C0 = CFrame.new(0, -1, -0.3) * CFrame.Angles(math.pi/6, 0, 0)
  358.  
  359.  
  360. p4 = Instance.new("Part", c)
  361. p4.FormFactor = "Custom"
  362. p4.BrickColor = BrickColor.Black()
  363. p4.Size = Vector3.new(0.3, 1, 0.2)
  364. p4:BreakJoints()
  365. p4.BottomSurface = 0
  366. p4.TopSurface = 0
  367. w7 = Instance.new("Weld", p4)
  368. w7.Part0 = p4
  369. w7.Part1 = base
  370. w7.C0 = CFrame.new(0, -0.1, -1.5) * CFrame.Angles(math.pi/2, 0, 0)
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379. fiaar = Instance.new("Fire", sm)
  380. fiaar.Size = 1
  381. fiaar.Heat = 200
  382. fiaar.Enabled = false
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390. mouse.KeyDown:connect(function(key)
  391. if key == "e" then
  392. if debounceair then return end
  393. if firee then return end
  394. debounceair = true
  395. airblast()
  396. end
  397. if string.byte(key) == 48 then
  398. c.Humanoid.WalkSpeed = 28
  399. end
  400.  
  401.  
  402. end)
  403. mouse.KeyUp:connect(function(key)
  404. if string.byte(key) == 48 then
  405. c.Humanoid.WalkSpeed = 16
  406. end
  407. end)
  408.  
  409.  
  410. mouse.Button1Down:connect(function()
  411. if firee == false then
  412. firee = true
  413. end
  414. end)
  415.  
  416. mouse.Button1Up:connect(function()
  417. if firee == true then
  418. firee = false
  419. end
  420. end)
  421.  
  422. end)
  423. tool.Deselected:connect(function(mouse)
  424. ballon1:Destroy()
  425. ballon2:Destroy()
  426. base:Destroy()
  427. sm:Destroy()
  428. fire:Destroy()
  429. neck.C0 = neck.C0 * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-60)) wait(0.01)
  430. bg2:Destroy()
  431. p1:Destroy()
  432. p2:Destroy()
  433. p3:Destroy()
  434. p4:Destroy()
  435. rs.Part0 = c.Torso
  436. rs.Part1 = ra
  437. ls.Part0 = c.Torso
  438. ls.Part1 = la
  439. rweld:Destroy()
  440. lweld:Destroy()
  441.  
  442. end)
  443. function ahh(hit)
  444. if hit.Parent.Name == game.Players.LocalPlayer.Name then return end
  445. if hit ~= nil and hit.Parent ~= nil then
  446.  
  447. if hit.Parent:findFirstChild("Humanoid") ~= nil then
  448. coroutine.wrap(function()
  449. if not damagelist[hit.Parent.Name] then
  450. if hit.Parent.Humanoid.Health ~= 0 then
  451. damagelist[hit.Parent.Name] = {humanoid = hit.Parent.Humanoid, time = time_until_extinguish}
  452. for i,v in pairs(hit.Parent:children()) do
  453. if v:IsA("Part") then
  454. Instance.new("Fire", v)
  455. end
  456. end
  457. end
  458. else
  459. damagelist[hit.Parent.Name].time = time_until_extinguish
  460. end
  461. end)()
  462. end
  463. end
  464. end
  465.  
  466. coroutine.wrap(function()
  467. while wait() do
  468. for i,damageobject in pairs(damagelist) do
  469. damageobject.humanoid.Health = damageobject.humanoid.Health - damage
  470. damageobject.time = damageobject.time - 1
  471.  
  472. if damageobject.time < 1 then
  473. if damageobject.humanoid then
  474. for _,n in pairs(damageobject.humanoid.Parent:children()) do
  475. if n:IsA("Part") and n.Parent:IsA("Model") ~= nil and n:findFirstChild("Fire") ~= nil then
  476. n.Fire:Destroy()
  477. end
  478. end
  479. end
  480. damagelist[i] = nil
  481. end
  482. end
  483. if not debounceair then
  484. if firee then
  485. --coroutine.wrap(function()
  486. if base ~= nil then
  487. smoke.Enabled = true
  488. pl7.Enabled = true
  489. fiaar.Enabled = true
  490. fire.Parent = Workspace
  491. sound:play()
  492.  
  493. fire.Touched:connect(ahh)
  494. end
  495.  
  496. --end)()
  497. else
  498. if base ~= nil then
  499. smoke.Enabled = false
  500. fire.Parent = nil
  501. pl7.Enabled = false
  502. fiaar.Enabled = false
  503. sound:stop()
  504. end
  505. end
  506. end
  507. end
  508.  
  509. end)()
  510.  
  511.  
  512. function airblast()
  513. if hatchetequipped then return end
  514. if air ~= nil then return end
  515. air = Instance.new("Part")
  516. air.FormFactor = "Custom"
  517. air.Size = Vector3.new(8, 3, 8)
  518. air.Transparency = 0.8
  519. air:BreakJoints()
  520. air.BottomSurface = 0
  521. air.TopSurface = 0
  522. air.CanCollide = false
  523. air.Anchored = true
  524. air.Parent = Workspace
  525. coroutine.wrap(function()
  526. wait(0.15)
  527. air.CanCollide = true
  528. end)()
  529.  
  530. coroutine.wrap(function()
  531. for i = 0, 40, 1.2 do
  532. air.CFrame = base.CFrame * CFrame.new(0, -i, 0)
  533. RunService.Stepped:wait(0.0000001)
  534. end
  535. end)()
  536. coroutine.wrap(function()
  537. while air ~= nil do
  538. for _, model in pairs(workspace:children()) do
  539. if model:IsA("Model") and model:findFirstChild("Humanoid") ~= nil and model.Name ~= p.Name then
  540. if (model.Torso.CFrame.Position - air.CFrame.Position).magnitude < 3 then
  541. model.Torso.CFrame = base.CFrame * CFrame.new(0, 0, 30)
  542. end
  543. end
  544. end
  545. wait()
  546. end
  547. end)()
  548. wait(2)
  549. air:Destroy()
  550.  
  551. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement