Advertisement
gangmanstyler2

gas

Apr 19th, 2015
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.94 KB | None | 0 0
  1. lp = game.Players.LocalPlayer
  2. pl = lp.Character
  3. tol = Instance.new("HopperBin",lp.Backpack)
  4. tol.Name = "Gas"
  5. burn = {}
  6. burning = {}
  7. colr={"Neon orange","Black","White","Bright yellow","Bright red","Bright blue","Bright green","Really black","Royal purple","Magenta","Pink"}
  8. col="Neon orange"
  9. Part = function(x,y,z,color,tr,cc,an,parent)
  10. local p = Instance.new('Part',parent or Weapon)
  11. p.formFactor = 'Custom'
  12. p.Size = Vector3.new(x,y,z)
  13. p.BrickColor = BrickColor.new(color)
  14. p.CanCollide = cc
  15. p.Transparency = tr
  16. p.Anchored = an
  17. p.TopSurface,p.BottomSurface = 0,0
  18. return p
  19. end
  20.  
  21. fir = function(parent)
  22. local fi = Instance.new('Fire',parent or Weapon)
  23. fi.Name = "Fire"
  24. table.insert(burning,parent)
  25. game.Debris:AddItem(parent,2)
  26. if parent.Name ~= "Match" then
  27. fi.Color=parent.BrickColor.Color
  28. function touch(hit)
  29. if hit.Parent:findFirstChild("Humanoid") ~= nil then
  30. if hit.Parent.Name==pl.Name then return end
  31. hit.Parent.Humanoid.Health=hit.Parent.Humanoid.Health - 10
  32. end
  33. end
  34. parent.Touched:connect(touch)
  35. end
  36. return fi
  37. end
  38.  
  39. Weld = function(p0,p1,x,y,z,rx,ry,rz,par)
  40. p0.Position = p1.Position
  41. local w = Instance.new('Motor',par or p0)
  42. w.Part0 = p0
  43. w.Part1 = p1
  44. w.C1 = CFrame.new(x,y,z)*CFrame.Angles(rx,ry,rz)
  45. return w
  46. end
  47.  
  48. Mesh = function(par,num,x,y,z)
  49. local msh = _
  50. if num == 1 then
  51. msh = Instance.new("CylinderMesh",par)
  52. elseif num == 2 then
  53. msh = Instance.new("SpecialMesh",par)
  54. msh.MeshType = 3
  55. elseif num == 3 then
  56. msh = Instance.new("BlockMesh",par)
  57. elseif type(num) == 'string' then
  58. msh = Instance.new("SpecialMesh",par)
  59. msh.MeshId = num
  60. end
  61. msh.Scale = Vector3.new(x,y,z)
  62. return msh
  63. end
  64.  
  65. mo=Instance.new("Model",pl)
  66. function throw()
  67. hot=false
  68. for i = 1,10 do
  69. wait()
  70. fakel2.C0=fakel2.C0* CFrame.Angles(0, 0, math.rad(-i))
  71. end
  72. mtch = Part(.2,.1,.2,'Black',0,true,false,mo)
  73. mtch:BreakJoints()
  74. mtch.Name = "Match"
  75. mtch.CFrame=pl["Left Arm"].CFrame + Vector3.new(.5,0,0)
  76. fir(mtch)
  77. game.Debris:AddItem(mtch,1)
  78. function touch(hit)
  79. if hit.Name=="veryhotfire" and hit:FindFirstChild("Fire") == nil then
  80. fir(hit)
  81. end
  82. end
  83. mtch.Touched:connect(touch)
  84. fakel2.C0=crnt
  85. end
  86.  
  87. function pour()
  88. brek=false
  89. while wait() do
  90. if brek==true then break end
  91. liq = Part(2,.1,2,col,.9,false,true,workspace)
  92. m = Mesh(liq,1,1,1,1)
  93. liq.CFrame = CFrame.new(por.CFrame.x,por.CFrame.y,por.CFrame.z)-Vector3.new(0,.4,0)
  94. liq.Name = "veryhotfire"
  95. end
  96. end
  97.  
  98. function depour()
  99. brek=true
  100. end
  101. num=0
  102. function onKeyDown(key)
  103. key = key:lower()
  104. if key == "e" then
  105. throw()
  106. elseif key == "q" then
  107. for i = 1,10 do
  108. wait()
  109. fakel2.C0=fakel2.C0* CFrame.Angles(0, 0, math.rad(-i))
  110. end
  111. box = Part(1,2,1,'Bright red',0,true,false,workspace)
  112. box.Material="CorrodedMetal"
  113. box:BreakJoints()
  114. m=Mesh(box,1,1,1,1)
  115. box.Name = "Crate"
  116. box.CFrame=pl["Left Arm"].CFrame + Vector3.new(1,0,0)*CFrame.Angles(0,0,math.pi/2)
  117. fakel2.C0=crnt
  118. elseif key == "r" then
  119. num=num+1
  120. col=colr[num]
  121. por.BrickColor=BrickColor.new(col)
  122. Spawn(function()
  123. tol.Name=col
  124. wait(1)
  125. tol.Name="Gas"
  126. end)
  127. if num==11 then num=0 end
  128. end
  129. end
  130. function onClicked(mouse)
  131. for i=1,10 do
  132. wait()
  133. mwl.C1 = CFrame.new(0,-1.5,0)*CFrame.Angles(-i/10,-math.pi/2,math.pi/2)
  134. end
  135. por.Transparency=0.4
  136. pour()
  137. end
  138. function deClicked(mouse)
  139. for i=1,10 do wait()
  140. mwl.C1 = CFrame.new(0,-1.5,0)*CFrame.Angles(-1+i/10,-math.pi/2,math.pi/2)
  141. por.Transparency=1
  142. depour()
  143. end
  144. end
  145.  
  146. mpa= Part(1.25,1.5,.6,'Really red',0,false,false,mo)
  147. mwl= Weld(mpa,pl.Torso,0,0,.8,0,0,0,mo)
  148. pa= Part(.6,1.5,.6,'Really red',0,false,false,mo)
  149. wl= Weld(pa,mpa,.61,0,0,0,0,0,mo)m=Mesh(pa,1,1,1,1)
  150. pa= Part(.6,1.5,.6,'Really red',0,false,false,mo)
  151. wl= Weld(pa,mpa,-.61,0,0,0,0,0,mo)m=Mesh(pa,1,1,1,1)
  152. pa= Part(.3,.3,.3,'Dark stone grey',0,false,false,mo)
  153. wl= Weld(pa,mpa,-.4,.75,0,0,0,0,mo)m=Mesh(pa,1,1,1,1)
  154. pa= Part(.2,.3,.2,'',0,false,false,mo)
  155. wl= Weld(pa,mpa,-.4,1,0,0,0,0,mo)m=Mesh(pa,1,1,1,1)
  156. noz= Part(.2,.7,.2,'',0,false,false,mo)
  157. wl= Weld(noz,mpa,-.625,1.335,0,0,0,math.pi/4,mo)m=Mesh(noz,1,1,1,1)
  158. por = Part(.15,3,.15,col,1,false,false,mo)
  159. wl= Weld(por,noz,-1.3,1.15,0,0,0,math.pi/3,mo)m=Mesh(por,1,1,1,1)
  160.  
  161. tol.Selected:connect(function(mouse)
  162. mouse.Button1Down:connect(function() onClicked(mouse) end)
  163. mouse.Button1Up:connect(function() deClicked(mouse) end)
  164. mouse.KeyDown:connect(onKeyDown)
  165.  
  166. wlds=Instance.new("Model",pl)
  167. mwl.Part1 = pl["Right Arm"]
  168. mwl.C1 = CFrame.new(0,-1.5,0)*CFrame.Angles(0,-math.pi/2,math.pi/2)
  169. bas = Part(1,1,1,'',1,false,false,wlds)
  170. bas2 = Part(1,1,1,'',1,false,false,wlds)
  171. bas:BreakJoints()
  172. bas2:BreakJoints()
  173. fakel = Instance.new("Weld",wlds)
  174. fakel.Part0 = pl.Torso
  175. fakel.Part1 = bas
  176. fakel2 = Instance.new("Weld",wlds)
  177. fakel2.Part0 = pl.Torso
  178. fakel2.Part1 = bas2
  179. coroutine.wrap(function()
  180. for angle = 0, 45, 5 do
  181. fakel.C0 = CFrame.new(1.5, 0.5, .15) * CFrame.Angles(math.rad(angle*1.5), math.rad(angle/2), math.rad(-angle/3))
  182. wait()
  183. end
  184. end)()
  185. coroutine.wrap(function()
  186. for angle = 0, 45, 5 do
  187. fakel2.C0 = CFrame.new(-.75, 0.5, -0.3) * CFrame.Angles(math.rad(angle*2), math.rad(0), math.rad(angle*1.25))
  188. wait()
  189. end
  190. crnt=fakel2.C0
  191. end)()
  192. welditbro = Instance.new("Weld", wlds)
  193. welditbro.C0 = CFrame.new(0, 0.5, 0)
  194. welditbro.Part0 = pl['Right Arm']
  195. welditbro.Part1 = bas
  196. welditbro2 = Instance.new("Weld", wlds)
  197. welditbro2.C0 = CFrame.new(0, 0.5, -0.3)
  198. welditbro2.Part0 = pl['Left Arm']
  199. welditbro2.Part1 = bas2
  200. end)
  201.  
  202. tol.Deselected:connect(function(mouse)
  203. wlds:remove()
  204. mwl.Part1 = pl.Torso
  205. mwl.C1 = CFrame.new(0,0,.8)
  206. end)
  207.  
  208. for _,check in pairs(workspace:GetChildren()) do
  209. if check.Name == "veryhotfire" or check.Name == "Crate" then
  210. table.insert(burn,check)
  211. end
  212. end
  213.  
  214. workspace.ChildAdded:connect(function(check)
  215. wait(0)
  216. if check.Name == "veryhotfire" or check.Name == "Crate" then
  217. table.insert(burn,check)
  218. end
  219. end)
  220.  
  221. while true do
  222. wait()
  223. for _,b in pairs(burning) do
  224. if b.Parent ~= nil then
  225. spread = false
  226. for _,g in pairs(burn) do
  227. if g.Parent ~= nil and g:FindFirstChild("Fire") == nil then
  228. dist = (b.Position - g.Position).magnitude
  229. if dist <= 3 then
  230. spread = true
  231. fir(g)
  232. if g.Name == "Crate" then
  233. delay(0,function()
  234. wait(1)
  235. b = Instance.new("Explosion",workspace)
  236. b.Position = g.Position
  237. g:Destroy()
  238. end)
  239. end
  240. end
  241. else
  242. table.remove(burn,_)
  243. end
  244. end
  245. else
  246. table.remove(burning,_)
  247. end
  248. if spread == true then
  249. wait()
  250. end
  251. end
  252. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement