View difference between Paste ID: Wr5Peshe and byHXdjgQ
SHOW: | | - or go back to the newest paste.
1
local modelName="Storm Maker"
2
repeat wait() until game.Players.LocalPlayer and game.Players.LocalPlayer.Character
3
local player=game.Players.LocalPlayer
4
local char=player.Character
5
6
7
local humanoid=char.Humanoid
8
local head=char.Head
9
local torso=char.Torso
10
local LA=char:findFirstChild("Left Arm")
11
local RA=char:findFirstChild("Right Arm")
12
local LL=char:findFirstChild("Left Leg")
13
local RL=char:findFirstChild("Right Leg")
14
15
16
local LS=torso:findFirstChild("Left Shoulder")
17
local RS=torso:findFirstChild("Right Shoulder")
18
local LH=torso:findFirstChild("Left Hip")
19
local RH=torso:findFirstChild("Right Hip")
20
LS.Part0=torso RS.Part0=torso LH.Part0=torso RH.Part0=torso
21
22
23
local s=function(f) Spawn(f) end
24
local c=function(f) coroutine.resume(coroutine.create(f)) end
25
pcall(function() player.Backpack[modelName]:remove() end) 
26
pcall(function() char["CharacterParts"]:remove() end)
27
pcall(function() char[modelName]:remove() end)
28
pcall(function() player.PlayerGui[modelName]:remove() end)
29
pcall(function() for i, v in pairs(char:children()) do if v:isA("BasePart") then v.Transparency=0 end end end)
30
31
local model=Instance.new("Model", char) model.Name="CharacterParts"
32
local model2=Instance.new("Model", char) model2.Name=modelName
33
local bin=Instance.new("HopperBin", player.Backpack) bin.Name=modelName
34
local gui=Instance.new("ScreenGui") gui.Name=modelName
35
local skincolor="Really black"
36
local body={}
37
local animate={}
38
local obj={}
39
local onTrail=false
40
local onKey=false
41
local onHit=false
42
local onBlock=false
43
local onHold=false
44
local onClick=false
45
local onClick2=false
46
local onAttack=false
47
local onCast=false
48
local cast=0
49
local colorSet={
50
	Handle="Dark orange";
51
	Blade="Mid gray";
52
	Extra="Bright blue";
53
}
54
local combo=0
55
local dmg=math.random(5, 10)
56
local m
57
58
local add={
59
	Part=function(par, a, c, col, t, s, cf, ms)
60
		local p=Instance.new("Part", par) pcall(function() p.TopSurface="Smooth" p.BottomSurface="Smooth" p.formFactor="Custom" p.Anchored=a p.CanCollide=c p.BrickColor=BrickColor.new(col) p.Transparency=t p.Size=s p.CFrame=cf or CFrame.new()  end)
61
		local m=Instance.new("BlockMesh", p) pcall(function() m.Scale=ms or Vector3.new(1, 1, 1) end)
62
		return p
63
	end;
64
	Wedge=function(par, a, c, col, t, s, cf, ms)
65
		local p=Instance.new("WedgePart", par) pcall(function() p.TopSurface="Smooth" p.BottomSurface="Smooth" p.formFactor="Custom" p.Anchored=a p.CanCollide=c p.BrickColor=BrickColor.new(col) p.Transparency=t p.Size=s p.CFrame=cf or CFrame.new()  end)
66
		local m=Instance.new("SpecialMesh", p) pcall(function() m.Scale=ms or Vector3.new(1, 1, 1) m.MeshType="Wedge" end)
67
		return p
68
	end;
69
	Gui=function(ins, par, bc, bg, tc, fs, text, t, s, pos)
70
		local g=Instance.new(ins, par) pcall(function() g.BorderColor=BrickColor.new(bc) g.BackgroundColor=BrickColor.new(bg) g.TextColor=BrickColor.new(tc) g.FontSize=fs g.Font="ArialBold" g.Text=text g.BackgroundTransparency=t g.Size=s g.Position=pos  end)
71
		return g
72
	end;
73
	Weld=function(par, p1, cf)
74
		local w=Instance.new("Weld", par) pcall(function() w.Part0=w.Parent or par w.Part1=p1 w.C1=cf or CFrame.new() end)
75
		return w
76
	end;
77
	Mesh=function(ins, par, s, of, t, id, tid)
78
		local m=Instance.new(ins, par) pcall(function() m.Scale=s or Vector3.new(1, 1, 1) m.Offset=of or Vector3.new() m.MeshId=id or "" m.TextureId=tid or "" m.MeshType=t end)
79
		return m
80
	end;
81
	Sound=function(parent, id, pitch, volume)
82
		local s=Instance.new("Sound", parent) pcall(function() s.SoundId=id s.Volume=volume s.Pitch=pitch end)
83
		return s
84
	end;
85
}
86
87
88
local Sounds={
89
	Slash="rbxasset://sounds//swordslash.wav";
90
	Hit="http://www.roblox.com/asset/?id=11113679 ";
91
	Equip="rbxasset://sounds/unsheath.wav";
92
	Charge="http://www.roblox.com/asset/?id=2101137";
93
	ElectricShortage="http://roblox.com/asset/?id=10209481";
94
	Elec="http://www.roblox.com/asset/?id=2800815";
95
	ElectricSound="http://www.roblox.com/asset/?id=10756118";
96
	Abscond="http://www.roblox.com/asset/?id=2767090";
97
}
98
99
100
local Decals={
101
	SlashDecal="http://www.roblox.com/asset/?id=25539335";
102
}
103
104
105
local Meshes={
106
	Charge="http://www.roblox.com/asset/?id=20329976";
107
	Noob="http://www.roblox.com/asset/?id=29515710";
108
	Ring="http://www.roblox.com/asset/?id=3270017";
109
	Crown="http://www.roblox.com/asset/?id=1323306";
110
}
111
112
113
body.Torso=add.Part(model2, false, false, skincolor, 1, Vector3.new(2, 2, 1), nil)
114
body.TorsoW=add.Weld(body.Torso, torso, nil)
115
function createParts()
116
	for i, v in pairs(char:children()) do if v:isA("CharacterMesh") then v:remove() end end
117
	torso.Transparency=1 body.Torso.Transparency=0
118
	
119
	gui.Parent=player.PlayerGui
120
	body.Head=add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil)
121
	body.LA, body.RA=add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil), add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil)
122
	body.LL, body.RL=add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil), add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil)
123
	
124
	
125
	body.HeadW=add.Weld(body.Head, body.Torso, CFrame.new(0, 1.5, 0))
126
	body.LAW, body.RAW=add.Weld(body.LA, body.Torso, CFrame.new(-1.5, .5, 0)), add.Weld(body.RA, body.Torso, CFrame.new(1.5, .5, 0))
127
	body.LLW, body.RLW=add.Weld(body.LL, body.Torso, CFrame.new(-.5, -1.5, 0)), add.Weld(body.RL, body.Torso, CFrame.new(.5, -1.5, 0))
128
	
129
	
130
	add.Weld(body.Head, head, nil)
131
	add.Weld(LA, body.LA, CFrame.new(0, -.5, 0))
132
	add.Weld(RA, body.RA, CFrame.new(0, -.5, 0))
133
	LH.Part0=body.Torso
134
	RH.Part0=body.Torso
135
	
136
	
137
	body.Part=add.Part(model, false, false, "White", 0, Vector3.new(.2, 1, .2))
138
	add.Weld(body.Part, body.Torso, CFrame.new(.25, 0, -.45))
139
	body.Part=add.Part(model, false, false, "White", 0, Vector3.new(.7, .2, .2))
140
	add.Weld(body.Part, body.Torso, CFrame.new(0, -.5, -.45))
141
	
142
	
143
	animate={
144
		["Head"]=function(cf)
145
			body.HeadW.C1=CFrame.new(0, 1.5, 0)*cf
146
		end;
147
		["Torso"]=function(cf)
148
			body.TorsoW.C1=(cf or CFrame.new()*CFrame.Angles(0, 0, 0))
149
		end;
150
		["LA"]=function(cf)
151
			body.LAW.C1=CFrame.new(-1.5, .5, 0)*(cf or CFrame.new()*CFrame.Angles(0, 0, 0))
152
		end;
153
		["RA"]=function(cf)
154
			body.RAW.C1=CFrame.new(1.5, .5, 0)*(cf or CFrame.new()*CFrame.Angles(0, 0, 0))
155
		end;
156
		["LL"]=function(cf)
157
			LLW=add.Weld(LL, body.LL, CFrame.new(0, -1, 0))
158
			body.LLW.C1=CFrame.new(-.5, -1, 0)*(cf or CFrame.new()*CFrame.Angles(0, 0, 0))
159
			c(function()
160
				wait()
161
				LLW:remove()
162
			end)
163
		end;
164
		["RL"]=function(cf)
165
			RLW=add.Weld(RL, body.RL, CFrame.new(0, -1, 0))
166
			body.RLW.C1=CFrame.new(.5, -1, 0)*(cf or CFrame.new()*CFrame.Angles(0, 0, 0))
167
			c(function()
168
				wait()
169
				RLW:remove()
170
			end)
171
		end;
172
	}
173
	
174
	obj.AL=add.Gui("TextLabel", gui, "Really black", "Really black", "White", "Size18", "Attack(ClickPLAYER)", 0, UDim2.new(0, 150, 0, 50), UDim2.new(0, 0, 0, 150))
175
	obj.AL2=add.Gui("TextLabel", obj.AL, "Really black", "Really black", "White", "Size18", "StaticRemnant(Z)", 0, UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 1, 0))
176
	obj.AL3=add.Gui("TextLabel", obj.AL2, "Really black", "Really black", "White", "Size18", "ElectricVortex(X)", 0, UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 1, 0))
177
	obj.AL4=add.Gui("TextLabel", obj.AL3, "Really black", "Really black", "White", "Size18", "BallLightning(C)", 0, UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 1, 0))
178
	
179
	for i, v in pairs(model2:children()) do
180
		if i~=1 then return end
181
	end
182
end
183
184
185
function removeParts()
186
	pcall(function()
187
		if torso then
188
			LS.Part0=torso
189
			RS.Part0=torso LH.Part0=torso
190
			RH.Part0=torso
191
			torso.Transparency=0
192
			body.Torso.Transparency=1
193
		end
194
		player.PlayerGui[modelName]:remove()
195
		for i, v in pairs(model:children()) do
196
			v:remove()
197
		end
198
	end)
199
end
200
function play(soundid, pitch, vol)
201
	local sound=add.Sound(workspace, soundid, pitch or 1, volume or 1)
202
	sound:play()
203
	s(function() wait(5) sound:remove() end)
204
end
205
function fade(part, incr)
206
	if part:isA("BasePart") then
207
		for i=part.Transparency, 1, incr do wait() part.Transparency=i end
208
	elseif part:isA("Model") then
209
		for i, v in pairs(part:children() or part) do
210
			if v:isA("BasePart") then
211
				for i=part.Transparency, 1, incr do wait() v.Transparency=i end
212
			end
213
		end
214
	end
215
end
216
function appear(part, incr)
217
	if part:isA("BasePart") then
218
		for i=part.Transparency, 0, -incr do wait() part.Transparency=i end
219
	elseif part:isA("Model") then
220
		for i, v in pairs(part:children() or part) do
221
			if v:isA("BasePart") then
222
				for i=part.Transparency, 0, -incr do wait() v.Transparency=i end
223
			end
224
		end
225
	end
226
end
227
function computePos(pos, pos2)
228
	local pos3=Vector3.new(pos2.x, pos.y, pos2.z) 
229
	return CFrame.new(pos, pos3)
230
end
231
function rayCast(pos, dir, max, ingore)
232
	return workspace:findPartOnRay(Ray.new(pos, dir.unit*(max or 9999)), ignore)
233
end
234
function nearPos(pos, dis)
235
	local temp
236
	local distance=dis
237
	for i, v in pairs(workspace:children()) do
238
		if v:isA("Model") then
239
			temp=v:findFirstChild("Torso")
240
			local humanoid=v:findFirstChild("Humanoid")
241
			if temp and humanoid and v~=char and (temp.CFrame.p-pos).magnitude<distance then
242
				distance=(temp.CFrame.p-pos).magnitude
243
				return temp.Parent 
244
			end
245
		end
246
	end
247
end
248
function lightningGen(startPos, endPos, col)
249
	local magnitude=(startPos-endPos).magnitude
250
	local distance=(startPos+endPos)/2
251
	local pattern=add.Part(workspace, true, false, "White", 1, Vector3.new(.2, .2, magnitude), CFrame.new(distance, startPos))
252
	local startPosProx=startPos
253
	for i=1, 9 do
254
		local startPosProx2=startPosProx local random=Vector3.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
255
		local findSize=pattern.Size.z/10 local findOffSet=pattern.CFrame.lookVector*-1
256
		local compute=i*findSize*findOffSet local newStartPos=startPos
257
		local newEndPos=CFrame.new(random+compute+newStartPos).p
258
		local magnitude=(startPosProx2-newEndPos).magnitude
259
		local distance=(startPosProx2+newEndPos)/2
260
		local lightning=add.Part(workspace, true, false, col or "Bright yellow", 0, Vector3.new(.2, .2, magnitude), CFrame.new(distance, startPosProx2))
261
		s(function()
262
			fade(lightning, .1) lightning:remove()
263
		end)
264
		startPosProx=newEndPos
265
	end 
266
	pattern:remove()
267
end
268
function trail(pos, cf, col, thick)
269
	onTrail=true
270
	s(function()
271
		local old=(pos.CFrame*(cf or CFrame.new())).p 
272
		while onTrail do wait()
273
			local new=(pos.CFrame*(cf or CFrame.new())).p
274
			local mag=(old-new).magnitude
275
			local dis=(old+new)/2 local trail=add.Part(char, true, false, col or "White", 0, Vector3.new(1, mag, 1), CFrame.new(dis, new)*CFrame.Angles(math.pi/2, 0, 0))
276
			trail.Name="Effect" local tMesh=add.Mesh("CylinderMesh", trail, Vector3.new(thick or 1, 1, thick or 1), nil, nil)
277
			old=new
278
			s(function()
279
				for i=1, 0, -.1 do wait() tMesh.Scale=tMesh.Scale*Vector3.new(i, 1, i) end trail:remove()
280
			end)
281
			s(function()
282
				fade(trail, .1)
283
			end)
284
		end
285
	end)
286
end
287
function stickHit(from, to)
288
	local stickW=add.Weld(from, to, to.CFrame:inverse()*from.CFrame)
289
	stickW.C0=from.CFrame:inverse()*from.CFrame
290
	return stickW
291
end
292
function glowMesh(prt, size, speed)
293
	local glow=prt:clone() add.Weld(prt, glow)
294
	glow.Parent=workspace
295
	glow.Anchored=false
296
	glow.CanCollide=false
297
	for i, v in pairs(glow:children()) do
298
		if v:isA("SpecialMesh") or v:isA("BlockMesh") or v:isA("CylinderMesh") then
299
			s(function()
300
				for i=0, size, speed do wait() v.Scale=v.Scale+Vector3.new(i, i, i) end
301
			end)
302
			s(function()
303
				fade(glow, .1) glow:remove()
304
			end)
305
		end
306
	end
307
end
308
function charge(prt, cf, col, start, endval, incr)
309
	local aura=add.Part(workspace, false, false, col or "Bright yellow", 0, Vector3.new(1, 1, 1), cf or torso.CFrame)
310
	local auraM=add.Mesh("SpecialMesh", aura, Vector3.new(start, .5, start), nil, "File") auraM.MeshId=Meshes.Charge
311
	add.Weld(aura, prt or torso, cf*CFrame.Angles(0, math.rad(math.random(-45, 45)), 0))
312
	s(function()
313
		for i=start, endval, incr do wait()
314
			auraM.Scale=Vector3.new(i, auraM.Scale.y, i)
315
		end
316
		aura:remove()
317
	end)
318
	s(function()
319
		fade(aura, .1)
320
	end)
321
end
322
function makeCircle(prt, prts, dis, incr)
323
	local radius=dis+(prts+incr)
324
	for i=1, prts do
325
		local prt2=prt:clone()
326
		prt2.Parent=model
327
		local x = math.sin((360/prts + 360/prts*i)/(180/math.pi))*radius
328
		local y = 0
329
		local z = math.cos((360/prts + 360/prts*i)/(180/math.pi))*radius
330
		prt2.CFrame=prt.CFrame:toWorldSpace(CFrame.new(x,y,z))
331
		prt:remove()
332
		return prt2
333
	end
334
end
335
function antiExplosion(model)
336
	local ffs={}
337
	for i, v in pairs(model:children()) do
338
		pcall(function()
339
			local ff2=Instance.new("ForceField", v.Handle)
340
			table.insert(ffs, ff2) end)
341
			if v:isA("BasePart") then
342
				local ff=Instance.new("ForceField", v)
343
				table.insert(ffs, ff)
344
			end
345
		end
346
	return ffs
347
end
348
function dmgHit(prt)
349
	prt.Touched:connect(function(h)
350
		if onKey==true and h.Parent:findFirstChild("Humanoid") and onHit==false and h.Parent~=char then
351
			onHit=true print("dmg")
352
			local fakeM=Instance.new("Model", workspace) 
353
			fakeM.Name=-dmg
354
			local hHuman=h.Parent:findFirstChild("Humanoid")
355
			hHuman.Health=hHuman.Health-dmg
356
			local hTorso=h.Parent:findFirstChild("Torso")
357
			local fakeH=Instance.new("Humanoid", fakeM) fakeH.MaxHealth=0 fakeH.Health=0
358
			local label=add.Part(fakeM, true, false, "Bright red", 0, Vector3.new(.5, .5, .5), h.CFrame*CFrame.new(math.random(-4, 4), 4, math.random(-4, 4))) label.Name="Head"
359
			game.Debris:addItem(fakeM, 1)
360
			wait(.1)
361
			onHit=false
362
		end
363
	end)
364
end
365
function blockHit(prt)
366
	prt.Touched:connect(function(h)
367
		if onBlock==true and onKey==true and not h.Parent:findFirstChild("Humanoid") and onHit==false and h.Parent~=char then
368
			onHit=true
369
			play(Sounds.Hit, 1, 1)
370
			print'Blocked'
371
			local bp=Instance.new("BodyPosition", h) bp.maxForce=Vector3.new(math.huge, math.huge, math.huge) bp.position=(CFrame.new(torso.CFrame.p, h.CFrame.p)*CFrame.new(0, 0, -math.random(100, 200))).p
372
			local bg=Instance.new("BodyGyro", h) bg.maxTorque=Vector3.new(math.huge, math.huge, math.huge) bg.cframe=CFrame.new(h.CFrame.p, torso.CFrame.p)
373
			game.Debris:addItem(bp, .2) game.Debris:addItem(bg, .2)
374
			wait(.1)
375
			onHit=false
376
		end
377
	end)
378
end
379
function idle()
380
	animate.LA(CFrame.Angles(0, 0, -math.rad(15)))
381
	animate.RA(CFrame.Angles(0, 0, math.rad(15)))
382
end
383
function StaticRemnant()
384
	casted()
385
	play(Sounds.ElectricShortage, 1, 1)
386
	play(Sounds.Abscond, 1, 1)
387
	local trans=.5
388
	local color="Bright blue"
389
	local rem=add.Part(workspace, true, false, color, .25, Vector3.new(4, 4, 4), torso.CFrame*CFrame.new(0, -.2, 0))
390
	local remM=add.Mesh("SpecialMesh", rem, Vector3.new(7, 7, 7), nil, nil, Meshes.Noob)
391
	s(function()
392
		while wait() do
393
			for i=.25, .5, .01 do wait()
394
				rem.Transparency=i
395
				remM.Scale=remM.Scale+Vector3.new(i*.05, i*.05, i*.05)
396
			end
397
			for i=.5, .25, -.01 do wait()
398
				rem.Transparency=i
399
				remM.Scale=remM.Scale-Vector3.new(i*.05, i*.05, i*.05)
400
			end
401
		end
402
	end)
403
	rem.Touched:connect(function(h)
404
		if h.Parent:findFirstChild("Humanoid") and onHit==false and h.Parent~=char then
405
			onHit=true
406
			play(Sounds.ElectricSound, 1, 1)
407
			local blast=add.Part(workspace, true, false, color, .25, Vector3.new(4, 4, 1), rem.CFrame*CFrame.new(0, -3, 0)*CFrame.Angles(math.rad(90), 0, 0))
408
			local blastM=add.Mesh("SpecialMesh", blast, blast.Size, nil, nil, Meshes.Ring)
409
			local blast2=add.Part(workspace, true, false, color, .25, Vector3.new(4, 1, 4), rem.CFrame*CFrame.new(0, -3, 0))
410
			local blast2M=add.Mesh("SpecialMesh", blast2, blast.Size, nil, nil, Meshes.Charge)
411
			s(function()
412
			for i=blast.Size.x, 12, 1 do wait()
413
				blastM.Scale=Vector3.new(i, i, i)
414
				blast2M.Scale=Vector3.new(i, i*.2, i)
415
			end
416
			blast:remove()
417
			blast2:remove()
418
			end)
419
			rem:remove()
420
			local fakeM=Instance.new("Model", workspace) 
421
			fakeM.Name=-20
422
			local hHuman=h.Parent:findFirstChild("Humanoid")
423
			hHuman.Health=hHuman.Health-20
424
			local hTorso=h.Parent:findFirstChild("Torso")
425
			local fakeH=Instance.new("Humanoid", fakeM) fakeH.MaxHealth=0 fakeH.Health=0
426
			local label=add.Part(fakeM, true, false, "Bright red", 0, Vector3.new(.5, .5, .5), h.CFrame*CFrame.new(math.random(-4, 4), 4, math.random(-4, 4))) label.Name="Head"
427
			game.Debris:addItem(fakeM, 1)
428
			wait(.1)
429
			onHit=false
430
		end
431
	end)
432
	game.Debris:addItem(rem, 12)
433
	wait(2)
434
end
435
function ElectricVortex(target)
436
	casted()
437
	onClick=false
438
	humanoid.WalkSpeed=8
439
	for i=0, 1, .2 do wait()
440
		animate.Torso(CFrame.Angles(0, -math.rad(45)*i, 0))
441
		animate.RA(CFrame.Angles(0, 0, math.rad(135)*i))
442
	end
443
	for i=0, 1, .2 do wait()
444
		animate.Torso(CFrame.Angles(0, -math.rad(45-90*i), 0))
445
		animate.RA(CFrame.Angles(-math.rad(45)*i, 0, math.rad(135)))
446
	end
447
	for i=1, 0, -.2 do wait()
448
		animate.Torso(CFrame.Angles(0, math.rad(45)*i, 0))
449
		animate.RA(CFrame.Angles(-math.rad(45)*i, 0, math.rad(135)*i))
450
	end
451
	idle()
452
	local start=add.Part(model, true, false, "Bright blue", .2, Vector3.new(1.5, 1.5, 1.5), torso.CFrame)
453
	local startM=add.Mesh("SpecialMesh", start, nil, nil, "Sphere")
454
	local bg=Instance.new("BodyGyro", target) bg.maxTorque=Vector3.new(math.huge, math.huge, math.huge) bg.D=100
455
	local bv=Instance.new("BodyVelocity", target) bv.maxForce=Vector3.new(math.huge, math.huge, math.huge)
456
	for i=0, 1, .01 do wait()
457
		bv.velocity=target.CFrame.lookVector*10
458
		bg.cframe=CFrame.new(target.CFrame.p, start.CFrame.p)
459
		local mag=(start.CFrame.p-target.CFrame.p).magnitude
460
		local dis=(start.CFrame.p+target.CFrame.p)/2
461
		local con=add.Part(workspace, true, false, "Bright blue", .2, Vector3.new(1, mag, 1), CFrame.new(dis, start.CFrame.p)*CFrame.Angles(math.rad(90), 0, 0))
462
		local conM=add.Mesh("CylinderMesh", con)
463
		s(function()
464
			for i=.2, 1, .1 do wait() con.Transparency=i end con:remove()
465
		end)
466
		play(Sounds.Electric, 1, 1)
467
		play(Sounds.ElectricSound, 1, 1)
468
	end
469
	loop=false
470
	bg:remove()
471
	bv:remove()
472
	start:remove()
473
	humanoid.WalkSpeed=16
474
end
475
function BallLightning()
476
	casted()
477
	humanoid.WalkSpeed=0
478
	onKey=true
479
	play(Sounds.Electric, 1, 1)
480
	play(Sounds.ElectricSound, 1, 1)
481
	for i=0, 1, .2 do wait()
482
		animate.Torso(CFrame.Angles(-math.rad(90)*i, 0, 0))
483
	end
484
	torso.CFrame=computePos(torso.CFrame.p, m.Hit.p)
485
	local ball=add.Part(workspace, false, false, "Cyan", 0, Vector3.new(7, 7, 7), torso.CFrame)
486
	for i, v in pairs(char:children()) do if v.ClassName=="Part" then dmgHit(v) end end
487
	dmgHit(ball)
488
	local ballM=add.Mesh("SpecialMesh", ball, nil, nil, "Sphere")
489
	local ballW=add.Weld(ball, torso)
490
	local bp=Instance.new("BodyPosition", torso) bp.maxForce=bp.maxForce*math.huge bp.D=bp.D*1.5
491
	trail(ball, CFrame.new(), "Cyan", ball.Size.x)
492
	local pos=m.Hit.p
493
	dmg=(torso.CFrame.p-m.Hit.p).magnitude/2
494
	bp.position=Vector3.new(pos.x, pos.y, pos.z)
495
	wait(.4)
496
	for i=1, 0, -.2 do wait()
497
		animate.Torso(CFrame.Angles(-math.rad(90)*i, 0, 0))
498
	end
499
	bp:remove()
500
	ball:remove()
501
	onKey=false
502
	onTrail=false
503
	dmg=math.random(5, 10)
504
	humanoid.WalkSpeed=16
505
	idle()
506
end
507
function findClick()
508
	if onClick then
509
		local dis=nearPos(torso.CFrame.p, 25)
510
		local tgt=m.Target
511
		if tgt and dis then
512
			if tgt.Parent:findFirstChild("Humanoid") then
513
				m.Icon=""
514
				ElectricVortex(tgt.Parent:findFirstChild("Torso"))
515
			end
516
		end
517
	end
518
	if onClick2 then
519
		onClick2=false
520
		m.Icon=""
521
		BallLightning()
522
	end
523
end
524
function Attack()
525
	if not onAttack then
526
		onAttack=true
527
		play(Sounds.Electric, 1, 1)
528
		play(Sounds.ElectricSound, 1, 1)
529
		for i=0, 1, .2 do wait()
530
			animate.Torso(CFrame.Angles(0, -math.rad(45)*i, 0))
531
			animate.RA(CFrame.Angles(0, 0, math.rad(135)*i))
532
		end
533
		for i=0, 1, .2 do wait()
534
			animate.Torso(CFrame.Angles(0, -math.rad(45-90*i), 0))
535
			animate.RA(CFrame.Angles(-math.rad(45)*i, 0, math.rad(135)))
536
		end
537
		for i=1, 0, -.2 do wait()
538
			animate.Torso(CFrame.Angles(0, math.rad(45)*i, 0))
539
			animate.RA(CFrame.Angles(-math.rad(45)*i, 0, math.rad(135)*i))
540
			end
541
		local bolt=add.Part(workspace, false, false, "Cyan", 0, Vector3.new(.2, .2, 1.5), CFrame.new(body.RA.CFrame.p, m.Hit.p))
542
		local bf=Instance.new("BodyForce", bolt) bf.force=Vector3.new(0, bolt:getMass()*196.25, 0)
543
		local bv=Instance.new("BodyVelocity", bolt) bv.maxForce=bv.maxForce*math.huge bv.velocity=bolt.CFrame.lookVector*100
544
		idle()
545
		game.Debris:addItem(bolt, 5)
546
		bolt.Touched:connect(function(h)
547
			if not onCast and h.Parent:findFirstChild("Humanoid") and onHit==false and h.Parent~=char then
548
				onHit=true print("dmg")
549
				dmg=math.random(5, 10)
550
				local blast=add.Part(workspace, true, false, "Bright blue", .25, Vector3.new(2, .5, 2), CFrame.new(h.CFrame.p, torso.CFrame.p)*CFrame.Angles(-math.rad(90), 0, 0))
551
				local blastM=add.Mesh("SpecialMesh", blast, blast.Size, nil, nil, Meshes.Charge)
552
				game.Debris:addItem(blast, 1)
553
				bolt:remove()
554
				local effect
555
				local fakeM=Instance.new("Model", workspace) 
556
				fakeM.Name=-dmg
557
				local hHuman=h.Parent:findFirstChild("Humanoid")
558
				hHuman.Health=hHuman.Health-dmg
559
				local hTorso=h.Parent:findFirstChild("Torso")
560
				local fakeH=Instance.new("Humanoid", fakeM) fakeH.MaxHealth=0 fakeH.Health=0
561
				local label=add.Part(fakeM, true, false, "Bright red", 0, Vector3.new(.5, .5, .5), h.CFrame*CFrame.new(math.random(-4, 4), 4, math.random(-4, 4))) label.Name="Head"
562
				game.Debris:addItem(fakeM, 1)
563
				wait(.1)
564
				onHit=false
565
			elseif onCast and h.Parent:findFirstChild("Humanoid") and onHit==false and h.Parent~=char then
566
				onTrail=false
567
				onHit=true
568
				print("dmg")
569
				onCast=false
570
				cast=0
571
				dmg=math.random(20, 25)
572
				local blast=add.Part(workspace, true, false, "Bright blue", .25, Vector3.new(2, .5, 2), CFrame.new(h.CFrame.p, torso.CFrame.p)*CFrame.Angles(-math.rad(90), 0, 0))
573
				local blastM=add.Mesh("SpecialMesh", blast, blast.Size, nil, nil, Meshes.Charge)
574
				game.Debris:addItem(blast, 1)
575
				bolt:remove()
576
				local effect
577
				local fakeM=Instance.new("Model", workspace) 
578
				fakeM.Name=-dmg.." Slowed!"
579
				local hHuman=h.Parent:findFirstChild("Humanoid")
580
				hHuman.Health=hHuman.Health-dmg
581
				local hTorso=h.Parent:findFirstChild("Torso")
582
				local fakeH=Instance.new("Humanoid", fakeM) fakeH.MaxHealth=0 fakeH.Health=0
583
				local label=add.Part(fakeM, true, false, "Bright red", 0, Vector3.new(.5, .5, .5), h.CFrame*CFrame.new(math.random(-4, 4), 4, math.random(-4, 4))) label.Name="Head"
584
				game.Debris:addItem(fakeM, 1)
585
				s(function()
586
					s(function() hHuman.WalkSpeed=2 wait(.6) hHuman.WalkSpeed=16 end)
587
					local blast=add.Part(workspace, true, false, "Bright blue", .25, Vector3.new(4, 1, 4), hTorso.CFrame*CFrame.new(0, -3, 0))
588
					local blastM=add.Mesh("SpecialMesh", blast, blast.Size, nil, nil, Meshes.Charge)
589
					s(function()
590
					for i=blast.Size.x, 12, 1 do wait()
591
						blastM.Scale=Vector3.new(i, i*.2, i)
592
					end
593
					blast:remove()
594
					end)
595
				end)
596
				wait(.1)
597
				onHit=false
598
			end
599
		end)
600
		onAttack=false
601
	end
602
end
603
function keyDown(key)
604
	local key=key:lower()
605
	if key=="z" and not onKey then
606
		onCast=true
607
		onKey=true
608
		StaticRemnant()
609
		onKey=false
610
	end
611
	if key=="x" and not onClick then
612
		onClick=true
613
		m.Icon="http://www.roblox.com/asset/?id=81886817"
614
		s(function()
615
			while onClick do wait()
616
				local tgt=m.Target
617
				local dis=nearPos(torso.CFrame.p, 25)
618
				if tgt and dis then
619
					if tgt.Parent:findFirstChild("Humanoid") then
620
						print(tgt)
621
						m.Button1Down:connect(findClick)
622
					end
623
				end
624
			end
625
		end)
626
	elseif key=="x" and onClick then
627
		onClick=false
628
		m.Icon=""
629
	end
630
	if key=="c" and not onClick then
631
		onClick2=true
632
		m.Icon="http://www.roblox.com/asset/?id=81886817"
633
		m.Button1Down:connect(findClick)
634
	elseif key=="c" and onClick then
635
		onClick2=false
636
		m.Icon=""
637
	end
638
end
639
function casted()
640
	onCast=true
641
	cast=cast+1
642
	if cast>1 then return end
643
	s(function()
644
	trail(body.RA, CFrame.new(0, -1.5, 0), "Cyan", .8)
645
	while onCast do wait()
646
		local effect=add.Part(workspace, false, false, "Cyan", .5, Vector3.new(1, 1, 1), body.RA.CFrame*CFrame.new(0, -1.5, 0))
647
		local effectW=add.Weld(effect, body.RA, CFrame.new(0, -1.5, 0)*CFrame.Angles(math.rad(math.random(-45, 45)),math.rad(math.random(-45, 45)),math.rad(math.random(-45, 45))))
648
		s(function()
649
			for i=.5, 1, .1 do wait()
650
				effect.Transparency=i
651
			end
652
			effect:remove()
653
		end)
654
	end
655
	end)
656
end
657
bin.Selected:connect(function(mouse)
658
	onKey=false
659
	m=mouse
660
	createParts()
661
	for i=0, 1, .1 do wait()
662
		animate.LA(CFrame.Angles(0, 0, -math.rad(15)*i))
663
		animate.RA(CFrame.Angles(0, 0, math.rad(15)*i))
664
	end
665
	mouse.KeyDown:connect(keyDown)
666
	mouse.Button1Down:connect(Attack)
667
	charge(torso, CFrame.new(0, -2.5, 0), "Bright blue", 5, 10, .2)
668
	idle()
669
end)
670
bin.Deselected:connect(function()
671
	removeParts()
672
	onKey=true
673
	for i=1, 0, -.1 do wait()
674
		animate.LA(CFrame.Angles(0, 0, -math.rad(15)*i))
675
		animate.RA(CFrame.Angles(0, 0, math.rad(15)*i))
676
	end
677
end)