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