SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | ply = game.Players.overhaleren |
2 | - | ply = game.Players.Overgamer10 |
2 | + | |
3 | torso = char.Torso | |
4 | ||
5 | legpos = CFrame.new(.5,-1.5,0) | |
6 | armpos = CFrame.new(1.5,.5,0) | |
7 | ||
8 | ang = CFrame.Angles | |
9 | cfn = CFrame.new | |
10 | ||
11 | Arms = {char["Left Arm"],char["Right Arm"]} | |
12 | Legs = {char["Left Leg"],char["Right Leg"]} | |
13 | ||
14 | track = false | |
15 | m = Instance.new("Model",char) | |
16 | ||
17 | meshids = {["blast"] = "http://www.roblox.com/asset/?id=20329976", ["penguin"] = "http://www.roblox.com/asset/?id=15853464", ["ring"] = "http://www.roblox.com/asset/?id=3270017", | |
18 | ["spike"] = "http://www.roblox.com/asset/?id=1033714",["cone"] = "http://www.roblox.com/asset/?id=1082802",["crown"] = "http://www.roblox.com/asset/?id=20329976",["arrow"] = "http://www.roblox.com/asset/?id=15886761", | |
19 | ["cloud"] = "http://www.roblox.com/asset/?id=1095708",["mjolnir"] = "http://www.roblox.com/asset/?id=1279013"} | |
20 | textureids = {["cone"] = "http://www.roblox.com/asset/?id=1082804",["rainbow"] = "http://www.roblox.com/asset/?id=28488599"} | |
21 | ||
22 | --TOOLS-- | |
23 | T = {["P"] = function(x,y,z,color,transparency,cancollide,anchored) | |
24 | c = Instance.new("Part",m) | |
25 | ||
26 | c.TopSurface,c.BottomSurface = 0,0 | |
27 | c.formFactor = "Custom" | |
28 | c.Size = Vector3.new(x,y,z) | |
29 | c.BrickColor = BrickColor.new(color) | |
30 | c.Transparency = transparency | |
31 | c.CanCollide = cancollide | |
32 | if anchored ~= nil then c.Anchored = anchored end | |
33 | return c | |
34 | end | |
35 | , | |
36 | ["W"] = function(part0,part1,x,y,z,rx,ry,rz) | |
37 | w = Instance.new("Weld",m) | |
38 | w.Part0,w.Part1 = part0,part1 | |
39 | w.C1 = CFrame.new(x,y,z) * CFrame.Angles(rx,ry,rz) | |
40 | return w | |
41 | end | |
42 | , | |
43 | ["F"] = function(parent,size,heat,color,secondcolor) | |
44 | f = Instance.new("Fire",parent) | |
45 | f.Size = size | |
46 | f.Heat = heat | |
47 | if color ~= nil then f.Color = BrickColor.new(color).Color end | |
48 | if secondcolor ~= nil then f.SecondaryColor = BrickColor.new(secondcolor).Color end | |
49 | return f | |
50 | end | |
51 | , | |
52 | ["BP"] = function(parent,position) | |
53 | local bp = Instance.new("BodyPosition",parent) | |
54 | bp.maxForce = Vector3.new()*math.huge | |
55 | bp.position = position | |
56 | end | |
57 | , | |
58 | ["R"] = function(part,x,y,z) | |
59 | if part == "lleg" then | |
60 | legw[1].C1 = CFrame.new(.5,-1.5,0)*ang(x,y,z) | |
61 | elseif part == "rleg" then | |
62 | legw[2].C1 = CFrame.new(-.5,-1.5,0)*ang(x,y,z) | |
63 | elseif part == "larm" then | |
64 | armw[1].C1 = CFrame.new(1.5,.5,0)*ang(x,y,z) | |
65 | elseif part == "rarm" then | |
66 | armw[2].C1 = CFrame.new(-1.5,.5,0)*ang(x,y,z) | |
67 | end | |
68 | end | |
69 | , | |
70 | ["Track"] = function(obj,t,lt) | |
71 | coroutine.resume(coroutine.create(function() | |
72 | while track do | |
73 | old = obj.Position | |
74 | wait() | |
75 | new = obj.Position | |
76 | ||
77 | mag = (old-new).magnitude | |
78 | dist = (old+new)/2 | |
79 | ||
80 | ray = T.P(t,mag+.2,t,obj.Color,t) | |
81 | Instance.new("CylinderMesh",ray) | |
82 | ray.Anchored = true | |
83 | ray.CanCollide = false | |
84 | ray.CFrame = CFrame.new(dist,old)*ang(math.pi/2,0,0) | |
85 | game:GetService("Debris"):AddItem(ray,lt) | |
86 | end | |
87 | end)) end, | |
88 | ["Reset"] = function(a) | |
89 | if a == "all" then | |
90 | T.R("lleg",0,0,0) T.R("rleg",0,0,0) T.R("rarm",0,0,0) T.R("larm",0,0,0) | |
91 | else | |
92 | for i,v in pairs({"lleg","llarm","rarm","rleg"}) do T.R(v,0,0,0) end | |
93 | end | |
94 | end | |
95 | , | |
96 | ["FM"] = function(parent,meshid,x,y,z,meshtexture) | |
97 | mesh = Instance.new("SpecialMesh",parent) | |
98 | mesh.MeshId = meshids[meshid] | |
99 | mesh.Scale = Vector3.new(x,y,z) | |
100 | if meshtexture ~= nil then | |
101 | mesh.TextureId = textureids[meshtexture] | |
102 | end | |
103 | return mesh | |
104 | end | |
105 | , | |
106 | ["BG"] = function(parent) | |
107 | local c = Instance.new("BodyGyro",parent) | |
108 | c.P = 20e+003 | |
109 | c.cframe = parent.CFrame | |
110 | c.maxTorque = Vector3.new(c.P,c.P,c.P) | |
111 | return c | |
112 | end | |
113 | , | |
114 | ["C"] = function(func) coroutine.resume(coroutine.create(func)) end | |
115 | , | |
116 | ["Lazor"] = function(from,to,size,color,lt,ball) | |
117 | mag = (from-to).magnitude | |
118 | ||
119 | p = T.P(size,mag,size,color,.5,false,true) | |
120 | p.Name = "Ray" | |
121 | p.CFrame = (CFrame.new(from,to) * CFrame.new(0,0,-mag/2))* ang(math.pi/2,0,0) | |
122 | if lt > 0 then | |
123 | game:GetService("Debris"):AddItem(p,lt) | |
124 | end | |
125 | ||
126 | if ball ~= nil then | |
127 | ball.Anchored = true | |
128 | ball.Parent = p | |
129 | ball.CFrame = p.CFrame * CFrame.new(0,-mag/2,0) | |
130 | end | |
131 | return p | |
132 | end | |
133 | } | |
134 | --------- | |
135 | ||
136 | function damage(hit,amount) | |
137 | for i,v in pairs(hit.Parent:GetChildren()) do | |
138 | if v:IsA("Humanoid") and v.Parent ~= char then | |
139 | ||
140 | if v.MaxHealth > 100 then v.Parent:BreakJoints() end | |
141 | v.Health = v.Health - amount | |
142 | ||
143 | amo = 0 | |
144 | for i,o in pairs(v.Parent:GetChildren()) do | |
145 | if o:IsA("BillboardGui") and o.Name == "satuttava" then | |
146 | amo = amo+1 | |
147 | end end | |
148 | ||
149 | local bbg = Instance.new("BillboardGui",v.Parent) | |
150 | bbg.Adornee = v.Torso | |
151 | bbg.Name = "satuttava" | |
152 | bbg.Size = UDim2.new(2,0,2,0) | |
153 | bbg.StudsOffset = Vector3.new(0,6+amo*2,0) | |
154 | ||
155 | box = Instance.new("TextLabel",bbg) | |
156 | box.Size = UDim2.new(1,0,1,0) | |
157 | box.BackgroundColor = BrickColor.new("White") | |
158 | box.Text = amount | |
159 | box.Position = UDim2.new(0,0,0,0) | |
160 | box.TextScaled = true | |
161 | game:GetService("Debris"):AddItem(bbg,.5) | |
162 | end | |
163 | end | |
164 | end | |
165 | ||
166 | ||
167 | function left() | |
168 | T.R("rleg",math.rad(100),0,math.rad(30)) | |
169 | T.R("lleg",math.rad(-10),0,math.rad(30)) | |
170 | end | |
171 | function right() | |
172 | T.R("rleg",math.rad(-10),0,math.rad(-30)) | |
173 | T.R("lleg",math.rad(100),0,math.rad(-30)) | |
174 | end | |
175 | ||
176 | function penguin(mouse) | |
177 | local orb = T.P(1,1,1,"White",0,false) | |
178 | msh = T.FM(orb,"penguin",1,1,1,"rainbow") | |
179 | ||
180 | local orb2 = orb:Clone() | |
181 | orb2.Parent = m | |
182 | ||
183 | w = T.W(orb,Arms[1],0,-1.45,0,0,0,0) | |
184 | w = T.W(orb2,Arms[2],0,-1.45,0,0,0,0) | |
185 | ||
186 | T.R("larm",math.rad(-50),0,0) | |
187 | T.R("rarm",0,0,-math.pi/2) | |
188 | wait(0.5) | |
189 | local fire = T.F(orb,5,1,"Pink","Cyan") | |
190 | T.C(function() while true do wait(0.05) fire.Color = BrickColor:random().Color end end) | |
191 | ||
192 | local fire2 = T.F(orb2,5,1,"Pink","Cyan") | |
193 | T.C(function() while true do wait(0.05) fire.Color = BrickColor:random().Color end end) | |
194 | ||
195 | wait(0.5) | |
196 | T.R("larm",math.rad(70),0,0) | |
197 | T.R("rarm",math.rad(70),0,0) | |
198 | ||
199 | ||
200 | for i = 1,50 do | |
201 | wait() | |
202 | for i,v in pairs({orb,orb2}) do | |
203 | T.Lazor(v.Position,torso.Position + torso.CFrame.lookVector * 30,1,BrickColor:random().Name,.1) | |
204 | end | |
205 | end | |
206 | ||
207 | orb:Remove() orb2:Remove() | |
208 | ||
209 | wait(.5) | |
210 | ||
211 | for i = 1,10 do | |
212 | wait() | |
213 | armw[1].C1 = armw[1].C1 * ang(math.rad(-7),0,0) | |
214 | armw[2].C1 = armw[2].C1 * ang(math.rad(-7),0,0) | |
215 | end | |
216 | ||
217 | end | |
218 | ||
219 | function punch(mouse) | |
220 | bg = T.BG(torso) | |
221 | ||
222 | orbo = Instance.new("Model",m) | |
223 | orb = T.P(2,2,2,"Cyan",0,1) | |
224 | orb.Parent = orbo | |
225 | ||
226 | Instance.new("SpecialMesh",orb).MeshType = 3 | |
227 | ||
228 | r = 3 | |
229 | track = true | |
230 | ||
231 | for i = 1,360,60 do | |
232 | local part = orb:Clone() | |
233 | part.Parent = orbo | |
234 | part.Size = Vector3.new(.5,.5,.5) | |
235 | local weld = T.W(part,orb,math.cos(math.rad(i))*r,0,math.sin(math.rad(i))*r,0,0,0) | |
236 | T.C(function() | |
237 | for o = 10,r,-.5 do | |
238 | wait() | |
239 | weld = T.W(part,orb,math.cos(math.rad(i))*o,0,math.sin(math.rad(i))*o,0,0,0) | |
240 | end | |
241 | end) | |
242 | end | |
243 | ||
244 | needle = T.P(.4,4,.4,"Black",0,1) | |
245 | needle.Parent = orbo | |
246 | mesh = T.FM(needle,"spike",.4,5.2,.4) | |
247 | T.W(needle,orb,0,-3,0,math.pi,0,0) | |
248 | ||
249 | T.W(orb,Arms[2],0,-1.5,0,0,0,0).Parent = orb | |
250 | ||
251 | T.R("rarm",0,0,-math.pi/2) | |
252 | T.R("larm",0,0,math.pi/2) | |
253 | T.R("rleg",0,0,math.rad(-40)) | |
254 | T.R("lleg",0,0,math.rad(40)) | |
255 | ||
256 | bp = Instance.new("BodyPosition",torso) | |
257 | bp.maxForce = Vector3.new() * math.huge | |
258 | bp.position = torso.Position + Vector3.new(0,100,0) | |
259 | ||
260 | touch = true | |
261 | mouse.Button1Down:connect(function() touch = false end) | |
262 | ||
263 | while touch == true do | |
264 | wait() | |
265 | bg.cframe = mouse.hit | |
266 | end | |
267 | ||
268 | local p = mouse.hit.p | |
269 | ||
270 | bg.cframe = cfn(torso.Position,p)*ang(-math.pi/2,0,0) | |
271 | T.Reset("all") T.R("rarm",math.pi,0,0) | |
272 | ||
273 | bp:Remove() | |
274 | bv = Instance.new("BodyVelocity",orb) | |
275 | bv.maxForce = Vector3.new() * math.huge | |
276 | bv.velocity = (torso.Position-p).unit * -300 | |
277 | ||
278 | needle.Touched:wait() | |
279 | e = Instance.new("Explosion",Workspace) | |
280 | e.BlastRadius = 20 | |
281 | e.BlastPressure = 0 | |
282 | e.Position = orb.Position | |
283 | e.Hit:connect(function(hit) damage(hit,600) end) | |
284 | T.C(function() | |
285 | local pos = (needle.CFrame * CFrame.new(0,-2,0)).p | |
286 | local part = T.P(1,1,1,"Neon orange",0,0,1) | |
287 | part.CFrame = CFrame.new(pos) | |
288 | ||
289 | local msh = T.FM(part,"blast",1,1,1) | |
290 | ||
291 | for i = 1,30,.5 do | |
292 | wait() | |
293 | msh.Scale = Vector3.new(i,i*.25,i) | |
294 | part.Transparency = i/30 | |
295 | end | |
296 | ||
297 | part:Remove() | |
298 | end) | |
299 | ||
300 | orbo:Remove() bg:Remove() T.Reset("all") | |
301 | ||
302 | end | |
303 | ||
304 | function dance() | |
305 | ||
306 | armw[1].C1 = cfn(1,1.5,0) * ang(0,0,math.pi/2) | |
307 | armw[2].C1 = cfn(-1,1.5,0) * ang(0,0,-math.pi/2) | |
308 | legw[1].C1 = cfn(1.5,-.5,0) | |
309 | legw[2].C1 = cfn(-1.5,-.5,0) | |
310 | ||
311 | motor1 = T.P(.1,.1,.1,"Cyan",1,0) | |
312 | motor2 = T.P(.1,.1,.1,"Cyan",1,0) | |
313 | T.W(motor1,Legs[1],0,-1.5,0,math.pi,0,0).Parent = motor1 | |
314 | T.W(motor2,Legs[2],0,-1.5,0,math.pi,0,0).Parent = motor2 | |
315 | ||
316 | T.F(motor1,4,3,"Bright red","New Yeller") | |
317 | T.F(motor2,4,3,"Bright red","New Yeller") | |
318 | ||
319 | backplant = T.P(.5,2.8,2,"Black",.2,0) | |
320 | T.W(backplant,torso,0,0,.9,0,math.pi/2,math.pi/2) | |
321 | Instance.new("FileMesh",backplant).MeshId = "http://www.roblox.com/asset/?id=1091940" | |
322 | ||
323 | spike = T.P(.4,1.8,.4,"Earth green",0,0) | |
324 | spike.Touched:connect(function(hit) damage(hit,10) end) | |
325 | T.W(spike,torso,0,-2,0,math.pi,0,0) | |
326 | mesh = T.FM(spike,"spike",.4,4,.4) | |
327 | end | |
328 | ||
329 | holding = false | |
330 | bp = nil | |
331 | ||
332 | split = function() T.R("lleg",0,0,math.rad(30)) | |
333 | T.R("rleg",0,0,math.rad(-30)) end | |
334 | ||
335 | function levitate() | |
336 | if bp == nil then | |
337 | split() | |
338 | bp = Instance.new("BodyPosition",torso) | |
339 | bp.maxForce = Vector3.new()*math.huge | |
340 | bp.position = torso.Position + Vector3.new(0,3,0) | |
341 | elseif bp ~= nil then bp:Remove() bp = nil T.Reset("all") | |
342 | end | |
343 | end | |
344 | ||
345 | function hopleft() | |
346 | if bp ~= nil then | |
347 | ||
348 | local orb = T.P(.1,.1,.1,"Neon orange",1) | |
349 | T.F(orb,5,0,"Cyan","Lime green") | |
350 | T.W(orb,Legs[1],0,-1.45,0,0,0,0) | |
351 | track = true T.Track(orb,.1,.5) | |
352 | ||
353 | left() | |
354 | local look = torso.CFrame.lookVector | |
355 | holding = true | |
356 | ||
357 | while holding do | |
358 | wait() | |
359 | bp.position = ((torso.CFrame + look) * CFrame.new(10,0,-5)).p | |
360 | end | |
361 | track = false orb:Remove() | |
362 | ||
363 | T.R("lleg",0,0,math.rad(30)) | |
364 | T.R("rleg",0,0,math.rad(-30)) | |
365 | end | |
366 | end | |
367 | ||
368 | function hopright() | |
369 | if bp ~= nil then | |
370 | ||
371 | local orb = T.P(.1,.1,.1,"Neon orange",1) | |
372 | T.W(orb,Legs[2],0,-1.45,0,0,0,0) | |
373 | T.F(orb,5,0,"Cyan","Lime green") | |
374 | ||
375 | track = true T.Track(orb,.1,.5) | |
376 | ||
377 | right() | |
378 | local look = torso.CFrame.lookVector | |
379 | holding = true | |
380 | ||
381 | while holding do | |
382 | wait() | |
383 | bp.position = ((torso.CFrame + look) * CFrame.new(-10,0,-5)).p | |
384 | end | |
385 | track = false orb:Remove() | |
386 | ||
387 | T.R("lleg",0,0,math.rad(30)) | |
388 | T.R("rleg",0,0,math.rad(-30)) | |
389 | end | |
390 | end | |
391 | ||
392 | function spell() | |
393 | T.C(function() | |
394 | pose() | |
395 | local pos = torso.CFrame - torso.CFrame.lookVector * 10 - Vector3.new(0,2,0) | |
396 | old = T.P(3,3,3,"Nougat",.25,1,1) | |
397 | old.CFrame = pos | |
398 | for i = 1,22.5+1 do | |
399 | local new = old:Clone() | |
400 | new.Parent = m | |
401 | wait() | |
402 | old = new | |
403 | new.CFrame = (old.CFrame * cfn(0,3,0))*ang(math.rad(-8),0,0) | |
404 | end | |
405 | T.Reset("rarm") T.R("larm",0,0,0) | |
406 | end) | |
407 | end | |
408 | ||
409 | local new,old = nil | |
410 | function rings(mode) | |
411 | if mode == 1 then | |
412 | for i,v in pairs(m:GetChildren()) do | |
413 | if v.Name =="Spere" then | |
414 | old = v | |
415 | end end | |
416 | ||
417 | ||
418 | local new = T.P(1,1,1,"Pink",0,false,false) | |
419 | new.Name = "Spere" | |
420 | T.FM(new,"cone",1.5,1.5,1.5,"cone") | |
421 | T.F(new,5,0,"White","Black") | |
422 | new.CFrame = torso.CFrame | |
423 | for i = 1,360,60 do | |
424 | p = T.P(5,.3,5,"Cyan",.2,false,false) | |
425 | p.Parent = new | |
426 | p.Position = torso.Position | |
427 | T.FM(p,"ring",5,5,.3) | |
428 | ||
429 | T.W(p,new,0,0,0,math.rad(i),0,0) | |
430 | ||
431 | end | |
432 | bodypos = T.BP(new,torso.Position) | |
433 | wait(.75) | |
434 | pcall(function() lazer = T.Lazor(cfn(old.Position).p,cfn(new.Position).p,.5,"Cyan",0) | |
435 | lazer.Touched:connect(function(hit) damage(hit,100) end) | |
436 | end) | |
437 | ||
438 | elseif mode == 0 then | |
439 | for i,v in pairs(m:GetChildren()) do | |
440 | if v.Name =="Spere" or v.Name == "Ray" then | |
441 | v:Remove() | |
442 | end end | |
443 | old = nil new = nil | |
444 | end | |
445 | end | |
446 | ||
447 | function spin() | |
448 | ||
449 | local orb = T.P(.1,.1,.1,"White",1,0) | |
450 | T.W(orb,Arms[1],0,-2,0,0,0,0) | |
451 | ||
452 | local connect = orb.Touched:connect(function(hit) damage(hit,1) end) | |
453 | ||
454 | local orb2 = T.P(.1,.1,.1,"White",1,0) | |
455 | T.W(orb2,Arms[2],0,-2,0,0,0,0) | |
456 | ||
457 | local connect2 = orb2.Touched:connect(function(hit) damage(hit,1) end) | |
458 | ||
459 | T.R("rarm",0,0,-math.pi/2) | |
460 | T.R("larm",0,0,math.pi/2) | |
461 | track = true | |
462 | T.Track(orb,.1,.5) | |
463 | T.Track(orb2,.1,.5) | |
464 | legw[2].C1 = legw[2].C1 * cfn(0,.4,0) | |
465 | ||
466 | bg = T.BG(torso) | |
467 | ||
468 | holding = true | |
469 | while holding do | |
470 | for i = 1,360,60 do | |
471 | wait() | |
472 | bg.cframe = bg.cframe * ang(0,math.rad(60),0) | |
473 | end | |
474 | end | |
475 | connect:disconnect() connect2:disconnect() | |
476 | track = false | |
477 | bg:Remove() | |
478 | T.Reset("all") | |
479 | end | |
480 | ||
481 | hop = Instance.new("HopperBin",ply.Backpack) | |
482 | hop.Name = "Tool" | |
483 | ||
484 | pose = function() | |
485 | T.R("larm",math.rad(150),0,math.rad(-20)) | |
486 | T.R("rarm",math.rad(150),0,math.rad(20)) | |
487 | end | |
488 | ||
489 | hop.Selected:connect(function(mouse) | |
490 | -------SET WELDS--------- | |
491 | armp = {T.P(1,1,1,"White",1),T.P(1,1,1,"White",1,1)} | |
492 | legp = {T.P(1,1,1,"White",1),T.P(1,1,1,"White",1,1)} | |
493 | ||
494 | armw = {T.W(armp[1],torso,1.5,.5,0,0,0,0),T.W(armp[2],torso,-1.5,.5,0,0,0,0)} | |
495 | legw = {T.W(legp[1],torso,.5,-1.5,0,0,0,0),T.W(legp[2],torso,-.5,-1.5,0,0,0,0)} | |
496 | ||
497 | others = { | |
498 | T.W(Arms[1],armp[1],0,-.5,0,0,0,0), | |
499 | T.W(Arms[2],armp[2],0,-.5,0,0,0,0), | |
500 | T.W(Legs[1],legp[1],0,-.5,0,0,0,0), | |
501 | T.W(Legs[2],legp[2],0,-.5,0,0,0,0) | |
502 | } | |
503 | ------------------------- | |
504 | ||
505 | ||
506 | mouse.KeyDown:connect(function(key) | |
507 | if key == "q" then hopleft() | |
508 | elseif key == "e" then hopright() | |
509 | elseif key == "r" then levitate() | |
510 | elseif key == "f" then spin() | |
511 | elseif key == "c" then penguin(mouse) | |
512 | elseif key == "t" then punch(mouse) | |
513 | elseif key == "y" then dance() | |
514 | elseif key == "h" then spell() | |
515 | elseif key == "v" then rings(1) elseif key == "b" then rings(0) | |
516 | end end) | |
517 | mouse.KeyUp:connect(function(key) for i,v in pairs({"e","q","r","f"}) do if key == v then holding = false end end end) | |
518 | end) | |
519 | ||
520 | hop.Deselected:connect(function() pcall(function()bp:Remove() bp = nil end) | |
521 | armp[1]:Remove() armp[2]:Remove() legp[1]:Remove() legp[2]:Remove() end) |