Advertisement
KnightZoro

Death cube

Apr 25th, 2015
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.98 KB | None | 0 0
  1. me = game.Players.Zororion
  2. char = me.Character
  3. cube = nil
  4. size = 1
  5. full = 2
  6. upper = 13
  7. name = "Soul cube"
  8. parts = {}
  9. hold = false
  10. deb = true
  11. loldist = 10
  12. modes = {"bomb", "attack"}
  13. where = 1
  14. mode = modes[where]
  15.  
  16. function getavg(m)
  17. local x = {}
  18. local y = {}
  19. local z = {}
  20. for _,v in pairs(m:children()) do
  21. if v:IsA("BasePart") then
  22. table.insert(x,v.Position.X)
  23. table.insert(y,v.Position.Y)
  24. table.insert(z,v.Position.Z)
  25. end
  26. end
  27. local x2 = 0
  28. local y2 = 0
  29. local z2 = 0
  30. for _,v in pairs(x) do
  31. x2 = x2 + v
  32. end
  33. for _,v in pairs(y) do
  34. y2 = y2 + v
  35. end
  36. for _,v in pairs(z) do
  37. z2 = z2 + v
  38. end
  39. local finalx = x2 / #x
  40. local finaly = y2 / #y
  41. local finalz = z2 / #z
  42. local vec = Vector3.new(finalx,finaly,finalz)
  43. return vec
  44. end
  45.  
  46. function prop(part, parent, collide, tran, ref, x, y, z, color, anchor, form)
  47. part.Parent = parent
  48. part.formFactor = form
  49. part.CanCollide = collide
  50. part.Transparency = tran
  51. part.Reflectance = ref
  52. part.Size = Vector3.new(x,y,z)
  53. part.BrickColor = BrickColor.new(color)
  54. part.TopSurface = 0
  55. part.BottomSurface = 0
  56. part.Anchored = anchor
  57. part.Locked = true
  58. Instance.new("BlockMesh",part)
  59. part:BreakJoints()
  60. end
  61.  
  62. function getnoobs(pos)
  63. local hums = {}
  64. for _,v in pairs(workspace:children()) do
  65. for _,k in pairs(v:children()) do
  66. local to = v:findFirstChild("Torso")
  67. if k:IsA("Humanoid") and to ~= nil then
  68. if (to.Position - pos).magnitude < loldist then
  69. table.insert(hums,k)
  70. end
  71. end
  72. end
  73. end
  74. return hums
  75. end
  76.  
  77. function makecube(pos)
  78. parts = {}
  79. for _,v in pairs(workspace:children()) do
  80. if v.Name == name then
  81. v:remove()
  82. end
  83. end
  84. local mo = Instance.new("Model",workspace)
  85. mo.Name = name
  86. cube = mo
  87. local x, y, z = -full, -full, -full
  88. local center = CFrame.new(pos) * CFrame.new(0,upper,0)
  89. repeat
  90. local cu = Instance.new("Part")
  91. prop(cu,mo,false,0,0,size,size,size,"Really black",true,"Custom")
  92. cu.CFrame = center * CFrame.new(x,y,z)
  93. table.insert(parts,cu)
  94. x = x + size
  95. if x > full then
  96. x = -full
  97. y = y + size
  98. end
  99. if y > full then
  100. y = -full
  101. z = z + size
  102. end
  103. until z > full
  104. local lo = full+(size*0.1)
  105. for o=1,360, 90 do
  106. local p = Instance.new("Part")
  107. prop(p,mo,false,0,0.15,size,size,size,"Really black",true,"Custom")
  108. p.CFrame = center * CFrame.Angles(0,math.rad(o),0) * CFrame.new(lo,lo,lo)
  109. table.insert(parts,p)
  110. end
  111. for o=1,360, 90 do
  112. local p = Instance.new("Part")
  113. prop(p,mo,false,0,0.15,size,size,size,"Really black",true,"Custom")
  114. p.CFrame = center * CFrame.Angles(0,math.rad(o),0) * CFrame.new(lo,-lo,lo)
  115. table.insert(parts,p)
  116. end
  117. for o=1,360, 90 do
  118. local p = Instance.new("Part")
  119. prop(p,mo,false,0,0.15,size*1.5,size*1.5,size*1.5,"Really black",true,"Custom")
  120. p.CFrame = center * CFrame.Angles(0,math.rad(o),0) * CFrame.new(0,0,lo)
  121. table.insert(parts,p)
  122. end
  123. for o=-full,full,full*2 do
  124. local p = Instance.new("Part")
  125. prop(p,mo,false,0,0.15,size*1.5,size*1.5,size*1.5,"Really black",true,"Custom")
  126. p.CFrame = center * CFrame.Angles(0,0,0) * CFrame.new(0,o,0)
  127. table.insert(parts,p)
  128. end
  129. end
  130.  
  131. makecube(me.Character.Torso.Position)
  132.  
  133. function move(way)
  134. coroutine.resume(coroutine.create(function()
  135. for i,v in pairs(parts) do
  136. wait()
  137. if way == "fr" then
  138. v.CFrame = CFrame.new(v.Position) * CFrame.new(0,0,-3)
  139. elseif way == "ba" then
  140. v.CFrame = CFrame.new(v.Position) * CFrame.new(0,0,3)
  141. elseif way == "le" then
  142. v.CFrame = CFrame.new(v.Position) * CFrame.new(-3,0,0)
  143. elseif way == "ri" then
  144. v.CFrame = CFrame.new(v.Position) * CFrame.new(3,0,0)
  145. elseif way == "up" then
  146. v.CFrame = CFrame.new(v.Position) * CFrame.new(0,3,0)
  147. elseif way == "do" then
  148. v.CFrame = CFrame.new(v.Position) * CFrame.new(0,-3,0)
  149. end
  150. end
  151. end))
  152. end
  153.  
  154. if script.Parent.className ~= "HopperBin" then
  155. h = Instance.new("HopperBin",me.Backpack)
  156. h.Name = "SoulCube"
  157. script.Parent = h
  158. end
  159. bin = script.Parent
  160. function sel(mouse)
  161. mouse.KeyDown:connect(function(key)
  162. key = key:lower()
  163. if key == "t" then
  164. hold = true
  165. while hold do
  166. move("fr")
  167. wait(0.1)
  168. end
  169. elseif key == "g" then
  170. hold = true
  171. while hold do
  172. move("ba")
  173. wait(0.1)
  174. end
  175. elseif key == "f" then
  176. hold = true
  177. while hold do
  178. move("le")
  179. wait(0.1)
  180. end
  181. elseif key == "h" then
  182. hold = true
  183. while hold do
  184. move("ri")
  185. wait(0.1)
  186. end
  187. elseif key == "u" then
  188. hold = true
  189. while hold do
  190. move("up")
  191. wait(0.1)
  192. end
  193. elseif key == "j" then
  194. hold = true
  195. while hold do
  196. move("do")
  197. wait(0.1)
  198. end
  199. elseif key == "q" then
  200. where = where - 1
  201. if where < 1 then
  202. where = #modes
  203. end
  204. mode = modes[where]
  205. elseif key == "e" then
  206. where = where + 1
  207. if where > #modes then
  208. where = 1
  209. end
  210. mode = modes[where]
  211. elseif key == string.char(9) then
  212. makecube(me.Character.Torso.Position)
  213. end
  214. end)
  215. mouse.KeyUp:connect(function(key)
  216. key = key:lower()
  217. if key == "t" or key == "g" or key == "f" or key == "h" or key == "u" or key == "j" then
  218. hold = false
  219. end
  220. end)
  221. mouse.Button1Down:connect(function()
  222. if deb then
  223. if mode == "attack" then
  224. deb = false
  225. local poz = mouse.Hit.p
  226. lol = false
  227. for _,v in pairs(cube:children()) do
  228. local lastpos = v.CFrame
  229. v.Anchored = false
  230. v.Velocity = Vector3.new(math.random(-40,40),math.random(-40,40),0)
  231. coroutine.resume(coroutine.create(function()
  232. local b = Instance.new("BodyPosition",v)
  233. b.P = 12000
  234. b.maxForce = Vector3.new(math.huge,math.huge,math.huge)
  235. b.position = poz + Vector3.new(math.random(-10,10)/10,math.random(-10,10)/10,math.random(-10,10)/10)
  236. wait(2.2)
  237. local cf = CFrame.new(poz,b.position) * CFrame.new(0,0,math.random(120,135)/10).p
  238. b.position = cf
  239. lol = true
  240. wait(1.8)
  241. b.position = lastpos.p
  242. repeat wait() until (v.Position - b.position).magnitude < 3
  243. b:remove()
  244. v.Anchored = true
  245. for i=1,2 do
  246. v.CFrame = lastpos
  247. wait()
  248. end
  249. end))
  250. end
  251. repeat wait() until lol == true
  252. local pwn = Instance.new("Part")
  253. prop(pwn,cube,false,1,0,1,1,1,"Black",true,"Brick")
  254. pwn.CFrame = CFrame.new(poz)
  255. local fi = Instance.new("Fire",pwn)
  256. fi.Size = 1
  257. fi.Heat = 0
  258. fi.Color = Color3.new(1,0.3,0)
  259. fi.SecondaryColor = fi.Color
  260. for i=1,40,1 do
  261. wait()
  262. fi.Size = i
  263. end
  264. local hus = getnoobs(pwn.Position)
  265. for _,v in pairs(hus) do
  266. coroutine.resume(coroutine.create(function()
  267. for i=1, 15 do
  268. v.Health = v.Health - 4
  269. wait()
  270. end
  271. end))
  272. end
  273. for i=40,1,-2 do
  274. wait()
  275. fi.Size = i
  276. end
  277. pwn:remove()
  278. wait(2.4)
  279. deb = true
  280. elseif mode == "bomb" then
  281. deb = false
  282. local avrg = getavg(cube)
  283. for _,v in pairs(cube:children()) do
  284. local lastpos = v.CFrame
  285. v.Anchored = false
  286. coroutine.resume(coroutine.create(function()
  287. local b = Instance.new("BodyPosition",v)
  288. b.P = 15000
  289. b.maxForce = Vector3.new(math.huge,math.huge,math.huge)
  290. b.position = CFrame.new(v.Position, avrg) * CFrame.new(0,0,7).p
  291. wait(4)
  292. b.Parent = nil
  293. b.position = lastpos.p
  294. local hih = CFrame.new(v.Position, avrg)
  295. v.Velocity = hih.lookVector * 110
  296. wait(1.8)
  297. b.Parent = v
  298. repeat wait() until (v.Position - lastpos.p).magnitude < 4
  299. v.Anchored = true
  300. b:remove()
  301. v.CFrame = lastpos
  302. end))
  303. end
  304. local pwn = Instance.new("Part")
  305. prop(pwn,cube,false,1,0,1,1,1,"Black",true,"Brick")
  306. pwn.CFrame = CFrame.new(avrg)
  307. local fi = Instance.new("Fire",pwn)
  308. fi.Size = 1
  309. fi.Heat = 0
  310. fi.Color = Color3.new(1,0.2,0)
  311. fi.SecondaryColor = fi.Color
  312. for i=1,22,0.5 do
  313. wait()
  314. fi.Size = i
  315. end
  316. wait(2.4)
  317. pwn:remove()
  318. wait(1)
  319. loldist = 17
  320. local hus = getnoobs(pwn.Position)
  321. for _,v in pairs(hus) do
  322. v.Health = v.Health - math.random(90,110)
  323. end
  324. loldist = 10
  325. wait(1)
  326. deb = true
  327. end
  328. end
  329. end)
  330. end
  331. bin.Selected:connect(sel)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement