View difference between Paste ID: Mb9b67Zm and UrkiywxK
SHOW: | | - or go back to the newest paste.
1
--Dio Burando
2
FakeHeartbeat=Instance.new('BindableEvent',script)
3
FakeHeartbeat.Name='Heartbeat'
4
5
script:WaitForChild'Heartbeat'
6
7
frame=1/30
8
tf=0
9
lastframea=tick()
10
script.Heartbeat:Fire()
11
12
game:service'RunService'.Heartbeat:connect(function(s,p)
13
	tf = tf + s
14
	if tf >= frame then
15
		for i=1, math.floor(tf/frame) do
16
			script.Heartbeat:Fire()
17
		end
18
		lastframea=tick()
19
		tf = tf - frame * math.floor(tf/frame)
20
	end
21
end)
22
wait()
23
Tool=script.Parent
24
JogarMaxm=game.Players.LocalPlayer
25-
repeat wait() until vPlayer.Character; vPlayer = JogarMaxm
25+
repeat wait() until .Character;  = JogarMaxm
26
repeat wait() until #script:children() >= 4 and script:FindFirstChild("Armor") ~= nil
27
28
29
RightShoulder=nil
30
LeftShoulder=nil
31
RightHip=nil
32
LeftHip=nil
33
Neck=nil
34
RootJoint=nil
35
36
RightShoulderC0=CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
37
RightShoulderC1=CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
38
LeftShoulderC0=CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
39
LeftShoulderC1=CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
40
RightHipC0=CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
41
RightHipC1=CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
42
LeftHipC0=CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
43
LeftHipC1=CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
44
NeckC0=CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
45
NeckC1=CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
46
RootJointC0=CFrame.new(0, 0, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) 
47
RootJointC1=CFrame.new(0, 0, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
48
49
Grip=nil
50
GripC0=CFrame.new(0,-.7,0)*CFrame.fromEulerAnglesXYZ(-math.pi/2,0,math.pi)
51
52
TrackFunction=nil
53
PlayerAnimationScript=nil
54
equipdebounce=true
55
56
PlayerCanJump = true
57
58
StickDir=5
59
StickPos=5
60
PlayerCombatKeys={}
61
62
radiushelp = .2
63
64
InfoGui=nil
65
66
SoundTable={["Airdash"] = "153092348",
67
["BarrierHit"] = "153092205",
68
["Grapple"] = "153092304",
69
["Hit_Damage_Heavycut"] = "153092274",
70
["Hit_Damage_Heavydelaysmack"] = "153092217",
71
["Hit_Damage_Heavysmack"] = "153092227",
72
["Hit_Damage_Lightcut"] = "153092285",
73
["Hit_Damage_Lightsmack"] = "153092249",
74
["Hit_Damage_Mediumcut"] = "153092292",
75
["Hit_Damage_Medsmack"] = "153092238",
76
["Hit_Damage_Medsmack_Alt"] = "153092213",
77
["Hit_Damage_Tinycut"] = "153092296",
78
["Overdrive_Begin"] = "153092315",
79
["Overdrive_End"] = "153092334",
80
["none"]="",
81
}
82
83
BodyVel=Instance.new("BodyVelocity")
84
BodyVel.Name="HumanoidMover"
85
BodyVel.P=400
86
BodyVel.maxForce=Vector3.new(220000,0,220000)
87
BodyVel.Parent=nil
88
89
BodyGyro=Instance.new("BodyGyro")
90
BodyGyro.P=13000
91
BodyGyro.maxTorque=Vector3.new(185000,185000,185000)
92
BodyGyro.D=1000
93
94
CanAttack=true
95
96
PlayerInputs={}
97
PlayerInputCullThreshold=30
98
PlayerInputAgeCullFactor=30
99
PlayerInputStringFrame=.7
100
101
CurrentCameraState="3D"
102
CanChangeCameraState=false
103
CameraResetTime=180
104
PlayerFacing="Right"
105
DesiredPlayerFacing="Right"
106
CameraPlane=CFrame.new(0,0,0)
107
CameraOutDir=Vector3.new(0,0,0)
108
FirstTick=false
109
110
DesiredWalkspeed=16
111
112
113
--
114
Cooldowns={
115
	["E"]=0,
116
	["Z"]=0,
117
	["X"]=0,
118
	["C"]=0,
119
	["V"]=45,
120
	["EZ"]=0,
121
	["EX"]=0,
122
	["EC"]=0,
123
	["EV"]=45,	
124
}
125
126
--
127
Trap = nil
128
TrapType = ""
129
TrapMovespeed = 16 * 1.25 / 30
130
--
131
132
133
134
TwoDInputs={}
135
136
fwait=function(num) --RS hooked thread yielding
137
	if num == 0 or num == nil then
138
		FakeHeartbeat.Event:wait(0)
139
	else
140
		for i = 0, num do
141
			FakeHeartbeat.Event:wait(0)
142
		end
143
	end
144
end
145
146
setlastnormal=function(key)
147
	lastnormal=key
148
	coroutine.resume(coroutine.create(function(k,kt)
149
		while k == lastnormal do
150
			if kt + 1.2 < tick() then
151
				break
152
			end
153
			fwait()
154
		end
155
		lastnormal=""
156
		----print("Done")
157
	end),lastnormal,tick())
158
end
159
160
BillboardGui=function(image,position,size) --returns a basic billboard gui object for further manipulation
161
	local billpar = Instance.new("Part")
162
	billpar.Transparency=1
163
	billpar.formFactor="Custom"
164
	billpar.Size=Vector3.new(1,1,1)
165
	billpar.Anchored=true
166
	billpar.CanCollide=false
167
	billpar.CFrame = CFrame.new(position)
168
	billpar.Name="BillboardGuiPart"
169
	local bill = Instance.new("BillboardGui",billpar)
170
	bill.Adornee=billpar
171
	bill.Size=UDim2.new(1,0,1,0)
172
	bill.SizeOffset=Vector2.new(size,size)
173
	local d = Instance.new("ImageLabel",bill)
174
	d.BackgroundTransparency=1
175
	d.Size=UDim2.new(1,0,1,0)
176
	d.Image=image
177
	return billpar
178
end
179
NewPart=function(size,cframe,color,meshtype,meshscale) --returns a basic part for further manipulation
180
	local par = Instance.new("Part")
181
	par.formFactor="Custom"
182
	par.TopSurface=0
183
	par.BottomSurface=0
184
	par.Size=size
185
	par.CFrame=cframe
186
	par.BrickColor=BrickColor.new(color)
187
	if meshtype then
188
		local m = Instance.new(meshtype,par)
189
		m.Scale=meshscale
190
	end
191
	return par
192
end
193
CFrameFromTopBack=function(at, top, back)
194
	--Credit to basic mathematics
195
	local right = top:Cross(back)
196
	return CFrame.new(at.x, at.y, at.z,
197
	right.x, top.x, back.x,
198
	right.y, top.y, back.y,
199
	right.z, top.z, back.z)
200
end
201
202
Triangle=function(a, b, c, col)
203
	--Credit to Fenrier
204
	local edg1 = (c-a):Dot((b-a).unit)
205
	local edg2 = (a-b):Dot((c-b).unit)
206
	local edg3 = (b-c):Dot((a-c).unit)
207
	if edg1 <= (b-a).magnitude and edg1 >= 0 then
208
		a, b, c = a, b, c
209
	elseif edg2 <= (c-b).magnitude and edg2 >= 0 then
210
		a, b, c = b, c, a
211
	elseif edg3 <= (a-c).magnitude and edg3 >= 0 then
212
		a, b, c = c, a, b
213
	else 
214
		assert(false, "unreachable")
215
	end
216
	
217
	local len1 = (c-a):Dot((b-a).unit)
218
	local len2 = (b-a).magnitude - len1
219
	local width = (a + (b-a).unit*len1 - c).magnitude
220
	local maincf = CFrameFromTopBack(a, (b-a):Cross(c-b).unit, -(b-a).unit)
221
	
222
	local list = {}
223
224
	if len1 > 0.01 then
225
		local w1 = Instance.new('WedgePart', vPlayer.Character.Weapon)
226
		game:GetService("Debris"):AddItem(w1,5)
227
		coroutine.resume(coroutine.create(function(p)
228
			for i=1, 7 do
229
				p.Transparency=.5 + i/14
230
				fwait()
231
			end
232
			p:Remove()
233
		end),w1)
234
		w1.FormFactor = "Custom"
235
		w1.BrickColor = col
236
		w1.Material = "SmoothPlastic"
237
		w1.CanCollide = false
238
		local sz = Vector3.new(0.2, width, len1)
239
		w1.Size = sz
240
		local sp = Instance.new("SpecialMesh",w1)
241
		sp.MeshType = "Wedge"
242
		sp.Scale = Vector3.new(0,1,1) * sz/w1.Size
243
		w1:BreakJoints()
244
		w1.Anchored = true
245
		w1.Transparency = 0
246
		w1.CFrame = maincf*CFrame.Angles(math.pi,0,math.pi/2)*CFrame.new(0,width/2,len1/2)
247
	end
248
249
	if len2 > 0.01 then
250
		local w2 = Instance.new('WedgePart', vPlayer.Character.Weapon)
251
		game:GetService("Debris"):AddItem(w2,5)
252
		coroutine.resume(coroutine.create(function(p)
253
			for i=1, 7 do
254
				p.Transparency=.5 + i/14
255
				fwait()
256
			end
257
			p:Remove()
258
		end),w2)
259
		w2.Material = "SmoothPlastic"
260
		w2.FormFactor = "Custom"
261
		w2.BrickColor = col
262
		w2.Material = "SmoothPlastic"
263
		w2.CanCollide = false
264
		local sz = Vector3.new(0.2, width, len2)
265
		w2.Size = sz
266
		local sp = Instance.new("SpecialMesh",w2)
267
		sp.MeshType = "Wedge"
268
		sp.Scale = Vector3.new(0,1,1) * sz/w2.Size
269
		w2:BreakJoints()
270
		w2.Anchored = true
271
		w2.Transparency = 0
272
		w2.CFrame = maincf*CFrame.Angles(math.pi,math.pi,-math.pi/2)*CFrame.new(0,width/2,-len1 - len2/2)
273
	end
274
	return unpack(list)
275
end
276
277
CameraPlane = function()
278
	local buttspoop = (workspace.CurrentCamera.CoordinateFrame.p - (workspace.CurrentCamera.CoordinateFrame*CFrame.new(0,0,5)).p).unit
279
	return Vector3.new(buttspoop.x,0,buttspoop.z).unit
280
end
281
MousePlane = function()
282
	local mouse = game.Players.LocalPlayer:GetMouse()
283
	local buttspoop = (game.Players.LocalPlayer.Character.HumanoidRootPart.Position - mouse.Hit.p).unit
284
	return -Vector3.new(buttspoop.x,0,buttspoop.z).unit
285
end
286
CanStun = true --blorb
287
InputNormals={}
288
289
--Normal Specials
290
GetIgnoreList=function()
291
	--nevermind
292
	local lel={}
293
	local filter={}
294
	lol=function(p)
295
		for _,v in pairs(p) do
296
			if v:IsA("BasePart") or v.className==("UnionOperation") then
297
				table.insert(lel,v)
298
				if #v:children()>0 then
299
					  lol(v:children())
300
				end
301
			end
302
		end
303
	end
304
	lol(workspace:children())
305
	for _,v in pairs(lel) do
306
		if v.Parent.className=="Tool" or v.Parent:FindFirstChild("Humanoid") or v.CanCollide==false or v.Parent.className=="Hat" or (v.Parent.className=="Model" and v.Parent:FindFirstChild("Humanoid")==nil) then
307
			table.insert(filter,v)
308
		end
309
	end
310
	lel=nil
311
	return filter
312
end
313
VProj = function(size,position,direction,speed,ignl) -- :/
314
	speed = speed * .7
315
	local direction = direction + Vector3.new(math.random(-3,3),math.random(-3,3)+.1,math.random(-3,3)).unit * .16 --add some flava
316
	position = position + direction*1.1
317
	local pc = NewPart(Vector3.new(.1,.1,.1),CFrame.new(position + Vector3.new(math.random(-3,3),math.random(-3,3),math.random(-3,3)).unit * .2),"Really black")
318
	pc.Parent=workspace
319
	pc.Anchored=true
320
	pc.CanCollide=false
321
	pc.Transparency=1
322
	pc.Name="Blast"
323
	game:GetService("Debris"):AddItem(pc,10)
324
	print(#ignl)
325
	for i=1, 20 do
326
		if size < 1.1 then
327
		if i==3 then
328
			
329
			local plc = NewPart(Vector3.new(1,1,1),CFrame.new(pc.CFrame.p,pc.CFrame.p + direction*10) * CFrame.Angles(math.pi/2,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(1,1.3,1))
330
					plc.Mesh.MeshType="FileMesh"
331
					plc.Anchored=true
332
					plc.CanCollide=false
333
					plc.Parent=workspace
334
					plc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
335
					plc.Name="Shockwave"
336
					game:GetService("Debris"):AddItem(plc,5)
337
					
338
					coroutine.resume(coroutine.create(function(p,s)
339
						for ii=1, 8 do
340
							p.Transparency=ii/8
341
							p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(30 + ii),0)
342
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.5,-.1,.5) + Vector3.new(.5,0,.5) * s
343
							fwait()
344
						end
345
						p:Remove()
346
					end),plc,size)
347
			
348
		end
349
		else
350
		if i%2 == 0 then
351
						local plc = NewPart(Vector3.new(1,1,1),CFrame.new(pc.CFrame.p,pc.CFrame.p + direction*10) * CFrame.Angles(math.pi/2,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(1,1.3,1))
352
					plc.Mesh.MeshType="FileMesh"
353
					plc.Anchored=true
354
					plc.CanCollide=false
355
					plc.Parent=workspace
356
					plc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
357
					plc.Name="Shockwave"
358
					game:GetService("Debris"):AddItem(plc,5)
359
					
360
					coroutine.resume(coroutine.create(function(p,s)
361
						for ii=1, 8 do
362
							p.Transparency=ii/8
363
							p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(30 + ii),0)
364
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.5,-.1,.5) + Vector3.new(.5,0,.5) * s
365
							fwait()
366
						end
367
						p:Remove()
368
					end),plc,size)
369
		end
370
		end
371
372
					local eff = NewPart(Vector3.new(.1,.1,.1),pc.CFrame * CFrame.new(math.random(-15,15)/120,math.random(-15,15)/120,math.random(-15,15)/120) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)) - direction*.3,"Really black","BlockMesh",Vector3.new(size,size,size)*15)
373
					eff.Parent=vPlayer.Character.Weapon
374
					eff.Name="Trail"
375
					eff.Anchored=true
376
					eff.CanCollide=false
377
					game:GetService("Debris"):AddItem(eff,5)
378
					coroutine.resume(coroutine.create(function(p,A)
379
						local R = Vector3.new(math.random(-5,5),math.random(7,9),math.random(-5,5)) / 50 
380
						for ii=1, 5 do
381
							p.Mesh.Scale = p.Mesh.Scale / 1.2
382
							p.Transparency=ii/5
383
							p.CFrame = p.CFrame * A
384
							fwait()
385
						end
386
						p:Remove()
387
					end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)))
388
		
389
		fwait(.05)
390
		local par,loc=workspace:FindPartOnRayWithIgnoreList(Ray.new(pc.Position,direction*(speed)),ignl)
391
		if par then
392
			local v = par -- :|
393
			if v.Parent.className=="Tool" or (v.CanCollide==false and v.Parent:FindFirstChild("Humanoid")==false) or v.Parent.className=="Hat" then
394
					print("8)")
395
					pc.CFrame = pc.CFrame-- + Vector3.new(math.random(-1,1),math.random(-1,1)-.2,math.random(-1,1))
396
			else
397
				print(par)
398
				if (loc - pc.CFrame.p).magnitude < 25 then --I shouldn't have to do this, but raycast insists on being wierd.
399
					pc.CFrame = CFrame.new(loc)
400
				else
401
					print("!",loc)
402
				end
403
				print(loc,"|",pc.CFrame.p)
404
				ccpos = loc
405
				break
406
			end
407
		else
408
			pc.CFrame = pc.CFrame + direction*(speed)
409
		end
410
		
411
					local eff = NewPart(Vector3.new(.1,.1,.1),pc.CFrame * CFrame.new(math.random(-15,15)/120,math.random(-15,15)/120,math.random(-15,15)/120) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)) - direction*speed/2,"Really black","BlockMesh",Vector3.new(size,size,size)*15)
412
					eff.Parent=vPlayer.Character.Weapon
413
					eff.Name="Trail"
414
					eff.Anchored=true
415
					eff.CanCollide=false
416
					game:GetService("Debris"):AddItem(eff,5)
417
					coroutine.resume(coroutine.create(function(p,A)
418
						local R = Vector3.new(math.random(-5,5),math.random(7,9),math.random(-5,5)) / 50 
419
						for ii=1, 5 do
420
							p.Mesh.Scale = p.Mesh.Scale / 1.2
421
							p.Transparency=ii/5
422
							p.CFrame = p.CFrame * A
423
							fwait()
424
						end
425
						p:Remove()
426
					end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)))
427
		fwait(.03)
428
429
	end
430
	print(pc.CFrame.p,'()')
431
	--if par == nil then print("(") end
432
					local eff = NewPart(Vector3.new(1,1,1),pc.CFrame * CFrame.new(math.random(-15,15)/20,math.random(-15,15)/20,math.random(-15,15)/20) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)),"Really black","BlockMesh",Vector3.new(size,size,size))
433
					eff.Parent=workspace
434
					eff.Name="Trail"
435
					eff.Anchored=true
436
					eff.CanCollide=false
437
					game:GetService("Debris"):AddItem(eff,5)
438
					coroutine.resume(coroutine.create(function(p,A,s)
439
						local R = Vector3.new(math.random(-5,5),math.random(7,9),math.random(-5,5)) / 50 
440
						for i=1, 8 do
441
							p.Mesh.Scale = p.Mesh.Scale + Vector3.new(1.5,1.5,1.5) + Vector3.new(.1,.1,.1)*s
442
							p.Transparency=.5 + i/8
443
							p.CFrame = p.CFrame * A
444
							fwait()
445
						end
446
						p:Remove()
447
					end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)),size)
448
					
449
					if size > 1.1 then
450
					local eff = NewPart(Vector3.new(1,1,1),pc.CFrame * CFrame.new(math.random(-15,15)/20,math.random(-15,15)/20,math.random(-15,15)/20) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)),"Really black","BlockMesh",Vector3.new(size,size,size))
451
					eff.Parent=workspace
452
					eff.Name="Trail"
453
					eff.Anchored=true
454
					eff.CanCollide=false
455
					game:GetService("Debris"):AddItem(eff,5)
456
457
458
					
459
					coroutine.resume(coroutine.create(function(p,A,s)
460
						local R = Vector3.new(math.random(-5,5),math.random(7,9),math.random(-5,5)) / 50 
461
						for i=1, 18 do
462
							p.Mesh.Scale = p.Mesh.Scale + Vector3.new(1.5,1.5,1.5) + Vector3.new(.1,.1,.1)*s
463
							p.Transparency=.5 + i/36
464
							p.CFrame = p.CFrame * A
465
							fwait()
466
						end
467
						p:Remove()
468
					end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)),size*2)
469
					
470
					local p=Instance.new("Sound",eff)
471
					p.Volume=1
472
					p.Pitch=1.07
473
					p.SoundId="http://www.roblox.com/asset/?id=231917744"
474
					wait()
475
					p:Play()
476
					game:GetService("Debris"):AddItem(p,3)
477
					else
478
											local p=Instance.new("Sound",eff)
479
					p.Volume=1
480
					p.Pitch=1
481
					p.SoundId="http://www.roblox.com/asset/?id=231917845"
482
					wait()
483
					p:Play()
484
					game:GetService("Debris"):AddItem(p,3)
485
					end
486
					
487
					local plc = NewPart(Vector3.new(1,1,1),CFrame.new(pc.CFrame.p + Vector3.new(0,4,0)) * CFrame.Angles(0,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(3,7,3))
488
					plc.Mesh.MeshType="FileMesh"
489
					plc.Anchored=true
490
					plc.CanCollide=false
491
					plc.Parent=workspace
492
					plc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
493
					plc.Name="Shockwave"
494
					game:GetService("Debris"):AddItem(plc,5)
495
					
496
					coroutine.resume(coroutine.create(function(p,s)
497
						for ii=1, 10 do
498
							p.Transparency=ii/10
499
							p.CFrame = p.CFrame * CFrame.Angles(0,-math.rad(15 + ii),0) - Vector3.new(0,.25,0)
500
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(1,-.5,1) + Vector3.new(.3,0,.3) * s
501
							fwait()
502
						end
503
						p:Remove()
504
					end),plc,size)
505
					
506
					local plc = NewPart(Vector3.new(1,1,1),CFrame.new(pc.CFrame.p + Vector3.new(0,2,0)) * CFrame.Angles(0,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(3,3.5,3))
507
					plc.Mesh.MeshType="FileMesh"
508
					plc.Anchored=true
509
					plc.CanCollide=false
510
					plc.Parent=workspace
511
					plc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
512
					plc.Name="Shockwave"
513
					game:GetService("Debris"):AddItem(plc,5)
514
					
515
					coroutine.resume(coroutine.create(function(p,s)
516
						for ii=1, 10 do
517
							p.Transparency=ii/10
518
							p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(10 + ii),0) - Vector3.new(0,.125,0)
519
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(2,-.25,2) + Vector3.new(.5,0,.5) * s
520
							fwait()
521
						end
522
						p:Remove()
523
					end),plc,size)
524
					
525
								for _,v in pairs(GetNubsInRadius(pc.CFrame.p + Vector3.new(0,1,0),15+size^2)) do
526
									--print("DAMN SON",time())
527
									if size < 1.1 then
528
									applyDamage(v,7,Vector3.new(),false,false,nil,.01,1,"",.95,false,true)
529
									else
530
									applyDamage(v,12,Vector3.new(0,55,0),true,false,nil,.1,1,"",.95,false,true)
531
									end
532
									applyCameraShake(v,250,6)
533
								end
534
							for _,v in pairs(game.Players:children()) do
535
								if v.Character then
536
									if v.Character:FindFirstChild("Torso") then
537
										if (v.Character.Torso.Position-pc.CFrame.p).magnitude <= 40 then
538
											applyCameraShake(v.Character,55 - (v.Character.Torso.Position-pc.CFrame.p).magnitude,8)
539
										end
540
									end
541
								end
542
							end
543
							
544
				local par,loc = workspace:FindPartOnRay(Ray.new(pc.Position + Vector3.new(0,1,0),Vector3.new(0,-3,0)),vPlayer.Character)
545
				local pz = NewPart(Vector3.new(12,12,1),CFrame.new(loc) * CFrame.Angles(math.pi/2,0,0),"Really black","BlockMesh",Vector3.new(1,1,0))
546
				pz.Transparency=1
547
				pz.Anchored=true
548
				pz.CanCollide=false
549
				pz.Parent=workspace
550
				pz.Name="Rune"
551
				local d1 = Instance.new("Decal",pz)
552
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
553
				d1.Face="Front"
554
				d1.Name="d1"
555
				local d1 = Instance.new("Decal",pz)
556
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
557
				d1.Face="Back"
558
				d1.Name="d2"
559
			
560
				coroutine.resume(coroutine.create(function(p,dir)
561
					for i=1, 5 do
562
						p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(10 + i*2))
563
						p.d1.Transparency=.9+i/50
564
						p.d2.Transparency=.9+i/50
565
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(2,2,0)
566
						fwait()
567
					end
568
					p:Remove()
569
				end),pz)
570
				
571
				game:GetService("Debris"):AddItem(pz,6)	
572
		
573
	pc:Remove()
574
end
575
576
InputNormals["C"]=function() --Eliminator
577
578
    if TrackFunction~=nil then
579
		TrackFunction:disconnect()
580
		TrackFunction=nil
581
 	end
582
583
	CanInterrupt(false)
584
	PlayerIsAttacking=true
585
	
586
	local rawframes=0
587
	Tool.Status.AnimFrame.Value=0
588
	
589
	local DidHit=false
590
	
591
	ccctime = tick()
592
	
593
	local CPlane=MousePlane()
594
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
595
	BodyGyro.cframe = CFrame.new(vPlayer.Character.HumanoidRootPart.CFrame.p,vPlayer.Character.HumanoidRootPart.CFrame.p + CPlane * 50)
596
	local cl = 0
597
	local clastframe = lastframe
598
	local cframes = 0
599
	BodyVel.Parent=vPlayer.Character.HumanoidRootPart
600
	BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
601
	
602
	p=Instance.new("Sound",vPlayer.Character.Torso)
603
	p.Volume=1
604
	p.Pitch=1
605
	p.SoundId="http://www.roblox.com/asset/?id=235097614"
606
	wait()
607
	p:Play()
608
	game:GetService("Debris"):AddItem(p,3)
609
	
610
	TrackFunction=FakeHeartbeat.Event:connect(function()
611
		if rawframes < 7 then
612
			CPlane = MousePlane()
613
			BodyGyro.cframe=clerp(BodyGyro.cframe,CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50),1)
614
		
615
616
		else
617
			CPlane = vPlayer.Character.HumanoidRootPart.CFrame.lookVector
618
		end
619
		if rawframes < 47 then
620
						if (rawframes+1)%6 == 0 then
621
					local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position) * CFrame.Angles(0,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(1,7,1))
622
					pc.Mesh.MeshType="FileMesh"
623
					pc.Anchored=true
624
					pc.CanCollide=false
625
					pc.Parent=workspace
626
					pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
627
					pc.Name="Shockwave"
628
					game:GetService("Debris"):AddItem(pc,5)
629
					
630
					coroutine.resume(coroutine.create(function(p)
631
						for ii=1, 10 do
632
							p.Transparency=ii/10
633
							p.CFrame = p.CFrame * CFrame.Angles(0,-math.rad(15 + ii),0) - Vector3.new(0,.25,0)
634
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(1,-.5,1)
635
							fwait()
636
						end
637
						p:Remove()
638
					end),pc)
639
					
640
					local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position - Vector3.new(0,2.5,0)) * CFrame.Angles(0,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(11,1,11))
641
					pc.Mesh.MeshType="FileMesh"
642
					pc.Anchored=true
643
					pc.CanCollide=false
644
					pc.Parent=workspace
645
					pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
646
					pc.Name="Shockwave"
647
					game:GetService("Debris"):AddItem(pc,5)
648
					
649
					coroutine.resume(coroutine.create(function(p)
650
						for ii=1, 10 do
651
							p.Transparency=ii/10
652
							p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(10 + ii),0) - Vector3.new(0,0,0)
653
							p.Mesh.Scale=p.Mesh.Scale - Vector3.new(.5,0,.5)
654
							fwait()
655
						end
656
						p:Remove()
657
					end),pc)
658
			end
659
		end
660
		if rawframes <= 7 then
661
			cl = cl + (rawframes-0) * .036
662
			LerpWelds(clastframe,cl,Animations["ShatterCannon"]["Animation"](0))
663
			print(cl)
664
			if rawframes == 2 then
665
				p=Instance.new("Sound",vPlayer.Character.Torso)
666
				p.Volume=.33
667
				p.Pitch=.8
668
				p.SoundId="http://www.roblox.com/asset/?id=231917794"
669
				wait()
670
				p:Play()
671
				game:GetService("Debris"):AddItem(p,3)
672
			end
673
		elseif rawframes > 7 and rawframes <= 29 then
674
			
675
			if rawframes == 7 + 1 then
676
				
677
678
				
679
							local pz = NewPart(Vector3.new(2,2,1),CFrame.new(vPlayer.Character["HumanoidRootPart"].Position + CPlane * 3,vPlayer.Character["HumanoidRootPart"].Position + CPlane * 5),"Really black","BlockMesh",Vector3.new(1,1,0))
680
			pz.Transparency=1
681
			pz.Anchored=true
682
			pz.CanCollide=false
683
			pz.Parent=workspace
684
			pz.Name="Rune"
685
			local d1 = Instance.new("Decal",pz)
686
			d1.Texture="http://www.roblox.com/asset/?id=233522684"
687
			d1.Face="Front"
688
			d1.Name="d1"
689
			d1.Transparency=1
690
			local d1 = Instance.new("Decal",pz)
691
			d1.Texture="http://www.roblox.com/asset/?id=233522684"
692
			d1.Face="Back"
693
			d1.Name="d2"
694
			d1.Transparency=1
695
			
696
			coroutine.resume(coroutine.create(function(p,dir)
697
				for i=1, 28 do
698
					fwait()
699
					p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(2))
700
					if i <= 10 then
701
						p["d1"].Transparency = 1-i/12
702
						p["d2"].Transparency = 1-i/12
703
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.3,.3,0)
704
					end
705
				end
706
				for i=1, 8 do
707
					fwait()
708
					p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(2))
709
				end
710
				for i=1, 8 do
711
					fwait()
712
					p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(2 + i))
713
					p["d1"].Transparency = i/8
714
					p["d2"].Transparency = i/8
715
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.1 + i*.1,.1 + i*.1,0)
716
				end
717
				p:Remove()
718
			end),pz,CPlane)
719
			
720
721
				
722
				cl = 0
723
			end
724
			if rawframes == 12 then
725
							local pz = NewPart(Vector3.new(2,2,1),CFrame.new(vPlayer.Character["HumanoidRootPart"].Position + CPlane * 4.2,vPlayer.Character["HumanoidRootPart"].Position + CPlane * 7),"Really black","BlockMesh",Vector3.new(1,1,0))
726
			pz.Transparency=1
727
			pz.Anchored=true
728
			pz.CanCollide=false
729
			pz.Parent=workspace
730
			pz.Name="Rune"
731
			local d1 = Instance.new("Decal",pz)
732
			d1.Texture="http://www.roblox.com/asset/?id=233083678"
733
			d1.Face="Front"
734
			d1.Name="d1"
735
			d1.Transparency=1
736
			local d1 = Instance.new("Decal",pz)
737
			d1.Texture="http://www.roblox.com/asset/?id=233083678"
738
			d1.Face="Back"
739
			d1.Name="d2"
740
			d1.Transparency=1
741
			
742
			coroutine.resume(coroutine.create(function(p,dir)
743
				for i=1, 28 do
744
					fwait()
745
					p.CFrame = p.CFrame * CFrame.Angles(0,0,-math.rad(3))
746
					if i <= 10 then
747
						p["d1"].Transparency = 1-i/12
748
						p["d2"].Transparency = 1-i/12
749
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.15,.15,0)
750
						
751
					end
752
				end
753
				for i=1, 3 do
754
					fwait()
755
					p.CFrame = p.CFrame * CFrame.Angles(0,0,-math.rad(3))
756
				end
757
				for i=1, 8 do
758
					fwait()
759
					p.CFrame = p.CFrame * CFrame.Angles(0,0,-math.rad(3 - i))
760
					p["d1"].Transparency = i/8
761
					p["d2"].Transparency = i/8
762
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.1 + i*.1,.1 + i*.1,0)
763
				end
764
				p:Remove()
765
			end),pz,CPlane)
766
			
767
			game:GetService("Debris"):AddItem(pz,6)		
768
			end
769
			cframes = rawframes - 7
770
			cl = cl+cframes * .004
771
			LerpWelds({Animations["ShatterCannon"]["Animation"](0)},cl,Animations["ShatterCannon"]["Animation"](1))
772
			Grip.C0 = Grip.C0 * CFrame.fromEulerAnglesXYZ(0,0,-math.rad(710/27*cframes))
773
		elseif rawframes > 29 and rawframes <= 34 then
774
			cframes = rawframes - 29	
775
			LerpWelds({Animations["ShatterCannon"]["Animation"](0)},1 + (cl-1) * (cframes / 6),Animations["ShatterCannon"]["Animation"](1))		
776
			print(1 + (cl-1) * (cframes / 6),"|")
777
			Grip.C0 = Grip.C0 * CFrame.fromEulerAnglesXYZ(0,0,-math.rad(710/27*(cframes + 22)))
778
			print(720/27*(cframes + 26))
779
780
		elseif rawframes > 43 and rawframes <= 46 then
781
			if rawframes == 43 + 1 then
782
				cl = 0
783
								local par,loc = workspace:FindPartOnRay(Ray.new(vPlayer.Character.Torso.Position,Vector3.new(0,-3,0)),vPlayer.Character)
784
				local pz = NewPart(Vector3.new(6,6,1),CFrame.new(loc) * CFrame.Angles(math.pi/2,0,0),"Really black","BlockMesh",Vector3.new(1,1,0))
785
				pz.Transparency=1
786
				pz.Anchored=true
787
				pz.CanCollide=false
788
				pz.Parent=workspace
789
				pz.Name="Rune"
790
				local d1 = Instance.new("Decal",pz)
791
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
792
				d1.Face="Front"
793
				d1.Name="d1"
794
				local d1 = Instance.new("Decal",pz)
795
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
796
				d1.Face="Back"
797
				d1.Name="d2"
798
			
799
				coroutine.resume(coroutine.create(function(p,dir)
800
					for i=1, 5 do
801
						p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(10 + i*2))
802
						p.d1.Transparency=.9+i/50
803
						p.d2.Transparency=.9+i/50
804
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(2,2,0)
805
						fwait()
806
					end
807
					p:Remove()
808
				end),pz,CPlane)
809
				
810
				game:GetService("Debris"):AddItem(pz,6)	
811
				
812
				
813
				p=Instance.new("Sound",vPlayer.Character.Torso)
814
				p.Volume=1
815
				p.Pitch=.7
816
				p.SoundId="http://www.roblox.com/asset/?id=231917856"
817
				wait()
818
				p:Play()
819
				game:GetService("Debris"):AddItem(p,3)
820
				
821
					local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position) * CFrame.Angles(0,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(3,5,3))
822
					pc.Mesh.MeshType="FileMesh"
823
					pc.Anchored=true
824
					pc.CanCollide=false
825
					pc.Parent=workspace
826
					pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
827
					pc.Name="Shockwave"
828
					pc.Transparency=.5
829
					game:GetService("Debris"):AddItem(pc,5)
830
					
831
					coroutine.resume(coroutine.create(function(p)
832
						for ii=1, 15 do
833
							p.Transparency=ii/15
834
							p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(5 + ii),0) - Vector3.new(0,.25,0)
835
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(1.3,-.33,1.3)
836
							fwait()
837
						end
838
						p:Remove()
839
					end),pc)
840
					
841
			local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position + CPlane*(6),vPlayer.Character.Torso.Position - CPlane*(9.5)) * CFrame.Angles(-math.pi/2,math.random(-10,10),0),"Institutional white","SpecialMesh",Vector3.new(7.3,6,7.3))
842
			pc.Mesh.MeshType="FileMesh"
843
			pc.Parent=workspace
844
			pc.Anchored=true
845
			pc.CanCollide=false
846
			pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
847
			pc.Name="Shockwave"
848
			pc.Transparency=.5
849
			game:GetService("Debris"):AddItem(pc,5)
850
					
851
			coroutine.resume(coroutine.create(function(p)
852
				for ii=1, 9 do
853
					p.Transparency=.5 + ii/18
854
					p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(3 + ii),0) * CFrame.new(0,.5,0)
855
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(4/4,-.3,4/4)
856
					fwait()
857
				end
858
				p:Remove()
859
			end),pc)
860
			
861
						local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position + CPlane*(15),vPlayer.Character.Torso.Position - CPlane*(9.5)) * CFrame.Angles(-math.pi/2,math.random(-10,10),0),"Institutional white","SpecialMesh",Vector3.new(4,4,4))
862
			pc.Mesh.MeshType="FileMesh"
863
			pc.Parent=workspace
864
			pc.Anchored=true
865
			pc.CanCollide=false
866
			pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
867
			pc.Name="Shockwave"
868
			pc.Transparency=.5
869
			game:GetService("Debris"):AddItem(pc,5)
870
					
871
			coroutine.resume(coroutine.create(function(p)
872
				for ii=1, 9 do
873
					p.Transparency=.5 + ii/18
874
					p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(3 + ii),0) * CFrame.new(0,.5,0)
875
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(4/4,-.2,4/4)
876
					fwait()
877
				end
878
				p:Remove()
879
			end),pc)
880
			
881
						local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position + CPlane*(23),vPlayer.Character.Torso.Position - CPlane*(9.5)) * CFrame.Angles(-math.pi/2,math.random(-10,10),0),"Institutional white","SpecialMesh",Vector3.new(2,2,2))
882
			pc.Mesh.MeshType="FileMesh"
883
			pc.Parent=workspace
884
			pc.Anchored=true
885
			pc.CanCollide=false
886
			pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
887
			pc.Name="Shockwave"
888
			pc.Transparency=.5
889
			game:GetService("Debris"):AddItem(pc,5)
890
					
891
			coroutine.resume(coroutine.create(function(p)
892
				for ii=1, 9 do
893
					p.Transparency=.5 + ii/18
894
					p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(3 + ii),0) * CFrame.new(0,.5,0)
895
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(2/4,-.1,2/4)
896
					fwait()
897
				end
898
				p:Remove()
899
			end),pc)			
900
			
901
			
902
			local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position + CPlane*(0),vPlayer.Character.Torso.Position - CPlane*(9.5)) * CFrame.Angles(0,0,0),"Black","SpecialMesh",Vector3.new(2.5,2.5,2))
903
			pc.Mesh.MeshType="Sphere"
904
			pc.Parent=workspace
905
			pc.Anchored=true
906
			pc.CanCollide=false
907
			pc.Transparency=.5
908
			game:GetService("Debris"):AddItem(pc,5)
909
					
910
			coroutine.resume(coroutine.create(function(p)
911
				for ii=1, 10 do
912
					p.Transparency=ii/10
913
					p.CFrame = p.CFrame * CFrame.Angles(0,0,0) * CFrame.new(0,0,(ii*.45 + .5)/1.5)
914
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(-2.5/10,-2.5/10,ii*.9 + .4)
915
					fwait()
916
				end
917
				p:Remove()
918
			end),pc)
919
				
920
			local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position + CPlane*(0),vPlayer.Character.Torso.Position - CPlane*(9.5)) * CFrame.Angles(0,0,0),"Royal purple","SpecialMesh",Vector3.new(2,2,3))
921
			pc.Mesh.MeshType="Sphere"
922
			pc.Parent=workspace
923
			pc.Anchored=true
924
			pc.CanCollide=false
925
			pc.Transparency=.5
926
			game:GetService("Debris"):AddItem(pc,5)
927
					
928
			coroutine.resume(coroutine.create(function(p)
929
				for ii=1, 10 do
930
					p.Transparency=ii/10
931
					p.CFrame = p.CFrame * CFrame.Angles(0,0,0) * CFrame.new(0,0,(ii*.75 + .5)/1.5)
932
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(-2/10,-2/10,ii*.9 + .85)
933
					fwait()
934
				end
935
				p:Remove()
936
			end),pc)	
937
			
938
			local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position + CPlane*(0),vPlayer.Character.Torso.Position - CPlane*(9.5)) * CFrame.Angles(0,0,0),"Really black","SpecialMesh",Vector3.new(4,4,2))
939
			pc.Mesh.MeshType="Sphere"
940
			pc.Parent=workspace
941
			pc.Anchored=true
942
			pc.CanCollide=false
943
			pc.Transparency=.5
944
			game:GetService("Debris"):AddItem(pc,5)
945
					
946
			coroutine.resume(coroutine.create(function(p)
947
				for ii=1, 10 do
948
					p.Transparency=ii/10
949
					p.CFrame = p.CFrame * CFrame.Angles(0,0,0) * CFrame.new(0,0,(ii*.5 + .5)/1.5)
950
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(-4/10,-4/10,ii*.9 + .85)
951
					fwait()
952
				end
953
				p:Remove()
954
			end),pc)	
955
			
956
			local pc = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character.Torso.Position + CPlane*(0),vPlayer.Character.Torso.Position - CPlane*(9.5)) * CFrame.Angles(0,0,0),"Really black","SpecialMesh",Vector3.new(5,5,2))
957
			pc.Mesh.MeshType="Sphere"
958
			pc.Parent=workspace
959
			pc.Anchored=true
960
			pc.CanCollide=false
961
			pc.Transparency=.5
962
			game:GetService("Debris"):AddItem(pc,5)
963
					
964
			coroutine.resume(coroutine.create(function(p)
965
				for ii=1, 12 do
966
					p.Transparency=ii/12
967
					p.CFrame = p.CFrame * CFrame.Angles(0,0,0) * CFrame.new(0,0,(ii*.5 + .5)/1.5)
968
					p.Mesh.Scale=p.Mesh.Scale + Vector3.new(-5/12,-5/12,ii*.9 + .85)
969
					fwait()
970
				end
971
				p:Remove()
972
			end),pc)				
973
						
974
								for _,v in pairs(GetNubsInRadius(vPlayer.Character.HumanoidRootPart.Position + Vector3.new(0,1,0),25)) do
975
									applyCameraShake(v,360,4)
976
								end		
977
						applyCameraShake(vPlayer.Character,360,4)
978
				
979
			end
980
			cframes = rawframes - 43
981
			cl = cframes*.33
982
			LerpWelds({Animations["ShatterCannon"]["Animation"](1)},cl,Animations["ShatterCannon"]["Animation"](2))
983
			print(cl,"D")
984
		elseif rawframes >= 60 then
985
			LerpWelds({Animations["ShatterCannon"]["Animation"](2)},(rawframes-60)/10,Animations["Stand"]["Animation"](0))
986
		end
987
		if rawframes > 46 and rawframes <= 53 then
988
			BodyVel.velocity = CPlane * 50
989
			for _,v in pairs(GetNubsInRadius(vPlayer.Character.HumanoidRootPart.Position + CPlane * ((rawframes-45)*3.3),7)) do
990
991
				applyCameraShake(v,500,18)
992
				DidHit=true
993
				if v.Humanoid:FindFirstChild("SADebounce"..asset) == nil then
994
					for sus = 1, 3 do
995
				local pc = NewPart(Vector3.new(1,1,1),CFrame.new(v.Torso.Position,v.Torso.Position - CPlane*(9.5)) * CFrame.Angles(math.random(-30,30)/50,math.random(-30,30)/50,math.random(-30,30)/50),"Really black","SpecialMesh",Vector3.new(3,3,2))
996
				pc.Mesh.MeshType="FileMesh"
997
				pc.Mesh.MeshId="http://www.roblox.com/asset/?id=3270017"
998
				pc.Parent=workspace
999
				pc.Anchored=true
1000
				pc.CanCollide=false
1001
				pc.Transparency=.5
1002
				game:GetService("Debris"):AddItem(pc,5)
1003
					
1004
				coroutine.resume(coroutine.create(function(p)
1005
					for ii=1, 18 do
1006
						p.Transparency=ii/18
1007
						p.CFrame = p.CFrame * CFrame.Angles(0,0,0) * CFrame.new(0,0,0)
1008
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(1.6 - ii*.07,1.6-ii*.07,0)
1009
						fwait()
1010
					end
1011
					p:Remove()
1012
				end),pc)	
1013
					end
1014
					end
1015
				applyDamage(v,40,CPlane*80 + Vector3.new(0,20,0),true,false,nil,1,1,"231917970",.82,true,true)
1016
			end
1017
			
1018
		else
1019
			BodyVel.velocity = BodyVel.velocity/1.3
1020
		end
1021
		if rawframes == 70 then
1022
			TrackFunction:disconnect()
1023
			TrackFunction=nil
1024
			DesiredWalkspeed=18
1025
			PlayerIsAttacking=false
1026
			CanInterrupt(true)
1027
			setlastnormal("")
1028
			Stand()
1029
		end
1030
		rawframes=rawframes+1
1031
 	end)
1032
end
1033
1034
InputNormals["X"]=function() --Blackstar
1035
1036
    if TrackFunction~=nil then
1037
		TrackFunction:disconnect()
1038
		TrackFunction=nil
1039
 	end
1040
1041
	CanInterrupt(false)
1042
	PlayerIsAttacking=true
1043
	
1044
	local rawframes=0
1045
	Tool.Status.AnimFrame.Value=0
1046
	
1047
	local DidHit=false
1048
	
1049
	ccctime = tick()
1050
	
1051
	local CPlane=MousePlane()
1052
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
1053
	
1054
	local cl = 0
1055
	local clastframe = lastframe
1056
	local cproj = nil
1057
	local cprojtab = {}
1058
	local cpm = Instance.new("Model")
1059
	game:GetService("Debris"):AddItem(cpm,10)
1060
	cpm.Name="BSHolder"
1061
	TrackFunction=FakeHeartbeat.Event:connect(function()
1062
		if rawframes < 4 then
1063
			CPlane = MousePlane()
1064
		end
1065
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
1066
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
1067
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
1068
		if rawframes==0 then
1069
			BodyGyro.Parent.CFrame=BodyGyro.cframe
1070
		end
1071
		if rawframes < 25 then
1072
									local pc = NewPart(Vector3.new(1,1,1),vPlayer.Character["Left Arm"].CFrame * CFrame.new(0,-1.5,0) * CFrame.Angles(math.random(-10,10),math.random(-10,10),math.random(-10,10)),"Really black","BlockMesh",Vector3.new(1.6,1.6,1.6))
1073
				pc.CanCollide=false
1074
				pc.Anchored=true
1075
				pc.Parent=workspace
1076
				game:GetService("Debris"):AddItem(pc,5)
1077
				coroutine.resume(coroutine.create(function(p)
1078
					local R = CFrame.Angles(math.random(-3,3),math.random(-4,4),math.random(-5,5))
1079
					local C = Vector3.new(math.random(-5,5)/40,math.random(-5,5)/40,math.random(-5,5)/40)
1080
					for i=1, 20 do
1081
						p.Mesh.Scale = p.Mesh.Scale - Vector3.new(1,1,1)/30
1082
						p.Transparency = .5 + i/40
1083
						p.CFrame = p.CFrame * R - Vector3.new(0,9.82/30/11*i,0) + C
1084
						fwait()
1085
					end
1086
					p:Remove()
1087
				end),pc)
1088
		end
1089
		if rawframes <= 5 then
1090
			LerpWelds(clastframe,rawframes/5,Animations["BlackSpace"]["Animation"](0))
1091
			if rawframes == 1 then
1092
				p=Instance.new("Sound",vPlayer.Character.Torso)
1093
				p.Volume=.85
1094
				p.Pitch=.9
1095
				p.SoundId="http://www.roblox.com/asset/?id=233091161"
1096
				wait()
1097
				p:Play()
1098
				game:GetService("Debris"):AddItem(p,3)
1099
				
1100
			end
1101
1102
		elseif rawframes > 5 and rawframes <= 8 then
1103
			LerpWelds(clastframe,1 + (rawframes - 6)*.02,Animations["BlackSpace"]["Animation"](0))
1104
			if rawframes == 6 then
1105
				local pz = NewPart(Vector3.new(2,2,1),(vPlayer.Character["HumanoidRootPart"].CFrame*CFrame.new(0,.4,-4.7)),"Really black","BlockMesh",Vector3.new(1.5,1.5,0))
1106
				pz.Transparency=1
1107
				pz.Anchored=true
1108
				pz.CanCollide=false
1109
				pz.Parent=workspace
1110
				pz.Name="Rune"
1111
				local d1 = Instance.new("Decal",pz)
1112
				d1.Texture="http://www.roblox.com/asset/?id=233069802"
1113
				d1.Face="Front"
1114
				d1.Name="d1"
1115
				local d1 = Instance.new("Decal",pz)
1116
				d1.Texture="http://www.roblox.com/asset/?id=233069802"
1117
				d1.Face="Back"
1118
				d1.Name="d2"
1119
				
1120
				coroutine.resume(coroutine.create(function(p,dir)
1121
					for i=1, 28 do
1122
						fwait()
1123
						p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(28 - i))
1124
						if i <= 7 then
1125
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(i*.12,i*.12,0)
1126
						end
1127
						if i > 20 then
1128
							p.d1.Transparency=(i-20)/8
1129
							p.d2.Transparency=(i-20)/8
1130
							p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad((i-20)*5))
1131
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.1,.1,0)
1132
						end
1133
					end
1134
					p:Remove()
1135
				end),pz,CPlane)
1136
				
1137
				game:GetService("Debris"):AddItem(pz,6)
1138
			elseif rawframes == 8 then
1139
				local pz = NewPart(Vector3.new(2,2,1),(vPlayer.Character["HumanoidRootPart"].CFrame*CFrame.new(0,.4,-4.7)),"Really black","BlockMesh",Vector3.new(1.5,1.5,0))
1140
				pz.Transparency=1
1141
				pz.Anchored=true
1142
				pz.CanCollide=false
1143
				pz.Parent=workspace
1144
				pz.Name="Rune"
1145
				local d1 = Instance.new("Decal",pz)
1146
				d1.Texture="http://www.roblox.com/asset/?id=233069844"
1147
				d1.Face="Front"
1148
				d1.Name="d1"
1149
				local d1 = Instance.new("Decal",pz)
1150
				d1.Texture="http://www.roblox.com/asset/?id=233069844"
1151
				d1.Face="Back"
1152
				d1.Name="d2"
1153
				
1154
				coroutine.resume(coroutine.create(function(p,dir)
1155
					for i=1, 28 do
1156
						fwait()
1157
						p.CFrame = p.CFrame * CFrame.Angles(0,0,-math.rad(28 - i))
1158
						if i <= 7 then
1159
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(i*.048,i*.048,0)
1160
						end
1161
						if i > 20 then
1162
							p.d1.Transparency=(i-20)/8
1163
							p.d2.Transparency=(i-20)/8
1164
							p.CFrame = p.CFrame * CFrame.Angles(0,0,-math.rad((i-20)*5))
1165
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.1,.1,0)
1166
						end
1167
					end
1168
					p:Remove()
1169
				end),pz,CPlane)
1170
				
1171
				game:GetService("Debris"):AddItem(pz,6)					
1172
			end
1173
		elseif rawframes > 8 and rawframes <= 12 then
1174
			LerpWelds(clastframe,1.04 - (rawframes - 8)*.02,Animations["BlackSpace"]["Animation"](0))
1175
1176
		elseif rawframes > 12 and rawframes <= 17 then
1177
			cl = cl + (rawframes-12)*.066
1178
			if rawframes == 15 then
1179
				p=Instance.new("Sound",vPlayer.Character.Torso)
1180
				p.Volume=.4
1181
				p.Pitch=.7
1182
				p.SoundId="http://www.roblox.com/asset/?id=233856140"
1183
				wait()
1184
				p:Play()
1185
				game:GetService("Debris"):AddItem(p,3)
1186
			end
1187
			LerpWelds({Animations["BlackSpace"]["Animation"](0)},cl,Animations["BlackSpace"]["Animation"](1))
1188
			print(cl)
1189
		elseif rawframes > 17 and rawframes <= 20 then
1190
1191
			LerpWelds({Animations["BlackSpace"]["Animation"](0)},1 + (rawframes - 17)*.02,Animations["BlackSpace"]["Animation"](1))
1192
		elseif rawframes > 20 and rawframes <= 23 then
1193
			
1194
			LerpWelds({Animations["BlackSpace"]["Animation"](0)},1.04 - (rawframes - 20)*.02,Animations["BlackSpace"]["Animation"](1))
1195
		elseif rawframes > 25 and rawframes <= 34 then
1196
			LerpWelds({Animations["BlackSpace"]["Animation"](1)},(rawframes-25)/9,Animations["Stand"]["Animation"](0))
1197
		end
1198
		if rawframes == 17 then
1199
					
1200
					
1201
					
1202
					local eb = BillboardGui("http://www.roblox.com/asset/?id=234376736",(vPlayer.Character["HumanoidRootPart"].CFrame*CFrame.new(0,.4,-6)).p,0)
1203
					eb.Parent=workspace
1204
					eb.BillboardGui.ImageLabel.Rotation=math.random(-180,180)
1205
					eb.BillboardGui.Size=UDim2.new(8,0,8,0)
1206
					eb.BillboardGui.ImageLabel.ImageTransparency=.5
1207
					game:GetService("Debris"):AddItem(eb,3)
1208
					
1209
					p=Instance.new("Sound",eb)
1210
					p.Volume=1
1211
					p.Pitch=1
1212
					p.SoundId="http://www.roblox.com/asset/?id=231917975"
1213
					wait()
1214
					p:Play()
1215
					game:GetService("Debris"):AddItem(p,3)
1216
					coroutine.resume(coroutine.create(function(p,cdir)
1217
						
1218
						for i=1, 50 do
1219
							p.CFrame = p.CFrame + cdir*.2
1220
							if i >= 45 then
1221
								p.BillboardGui.ImageLabel.ImageTransparency=p.BillboardGui.ImageLabel.ImageTransparency+.1
1222
							end
1223
							p.BillboardGui.ImageLabel.Rotation = p.BillboardGui.ImageLabel.Rotation - (i + 5)
1224
							if i % 8 == 0 and i <= 40 then
1225
								
1226
													local pc = NewPart(Vector3.new(1,1,1),CFrame.new(p.Position - Vector3.new(0,2.2,0)) * CFrame.Angles(0,math.random(-10,10),0),"Light stone grey","SpecialMesh",Vector3.new(12,2,12))
1227
					pc.Mesh.MeshType="FileMesh"
1228
					pc.Anchored=true
1229
					pc.CanCollide=false
1230
					pc.Parent=workspace
1231
					pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
1232
					pc.Name="Shockwave"
1233
					game:GetService("Debris"):AddItem(pc,5)
1234
					
1235
					coroutine.resume(coroutine.create(function(p)
1236
						for ii=1, 20 do
1237
							p.Transparency=.75 + ii/80
1238
							p.CFrame = p.CFrame * CFrame.Angles(0,-math.rad(3 + ii),0) - Vector3.new(0,.05,0)
1239
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.4,-.1,.4)
1240
							fwait()
1241
						end
1242
						p:Remove()
1243
					end),pc)
1244
					
1245
					if i < 40 then
1246
								
1247
							local pc = NewPart(Vector3.new(1,1,1),CFrame.new(p.Position) * CFrame.Angles(0 + math.rad(90),0,0),"Really black","SpecialMesh",Vector3.new(5,5,2))
1248
				pc.Mesh.MeshType="FileMesh"
1249
				pc.Mesh.MeshId="http://www.roblox.com/asset/?id=3270017"
1250
				pc.Parent=workspace
1251
				pc.Anchored=true
1252
				pc.CanCollide=false
1253
				pc.Transparency=.5
1254
				game:GetService("Debris"):AddItem(pc,5)
1255
					
1256
				coroutine.resume(coroutine.create(function(p,cdir)
1257
					for ii=1, 12 do
1258
						p.Transparency=ii/12
1259
						p.CFrame = p.CFrame * CFrame.Angles(0,0,0) * CFrame.new(0,0,0) + cdir*.15
1260
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(1.4,1.4,0)
1261
						fwait()
1262
					end
1263
					p:Remove()
1264
				end),pc,cdir)	
1265
				end
1266
							end
1267
							if i % 5 == 0 and i <= 50 then
1268
								
1269
								local pc = NewPart(Vector3.new(1,1,1),CFrame.new(p.Position) * CFrame.Angles(math.random(-30,30)/50 + math.rad(90),math.random(-30,30)/50,math.random(-30,30)/50),"Really black","SpecialMesh",Vector3.new(8,8,3))
1270
				pc.Mesh.MeshType="FileMesh"
1271
				pc.Mesh.MeshId="http://www.roblox.com/asset/?id=3270017"
1272
				pc.Parent=workspace
1273
				pc.Anchored=true
1274
				pc.CanCollide=false
1275
				pc.Transparency=.5
1276
				game:GetService("Debris"):AddItem(pc,5)
1277
					
1278
				coroutine.resume(coroutine.create(function(p,cdir)
1279
					for ii=1, 12 do
1280
						p.Transparency=ii/12
1281
						p.CFrame = p.CFrame * CFrame.Angles(0,0,0) * CFrame.new(0,0,0) + cdir*.15
1282
						p.Mesh.Scale=p.Mesh.Scale - Vector3.new(.7,.7,0)
1283
						fwait()
1284
					end
1285
					p:Remove()
1286
				end),pc,cdir)	
1287
				
1288
								
1289
								for _,v in pairs(GetNubsInRadius(p.Position,28)) do
1290
									local sitoop = (p.Position - v.Torso.Position)*8
1291
									if (p.Position - v.Torso.Position).magnitude <= 8 then
1292
										applyDamage(v,1,Vector3.new(),false,false,nil,.01,1,"233856106",math.random(190,210)/100,false,false)
1293
									
1294
										local pz = Instance.new("BodyPosition",v.Torso)
1295
										pz.P=3500
1296
										pz.D=1500
1297
										pz.maxForce=Vector3.new(180000,180000,180000)
1298
										pz.position=p.Position + cdir*4
1299
										game:GetService("Debris"):AddItem(pz,.1)
1300
									
1301
										local cpro = NewPart(Vector3.new(1,1,1),CFrame.new(v.Torso.Position + Vector3.new(math.random(-2,2),math.random(-2,2),math.random(-2,2))),"Really black","BlockMesh",Vector3.new(1,1,1))
1302
										cpro.Anchored = true
1303
										cpro.CanCollide = false
1304
										cpro.Reflectance = .1
1305
										cpro.Parent=workspace
1306
										cpro.Transparency = .5
1307
										game:GetService("Debris"):AddItem(cpro,10)
1308
										coroutine.resume(coroutine.create(function(p,cdir,R)
1309
											for ii=1, 10 do
1310
												p.Mesh.Scale = p.Mesh.Scale + Vector3.new(.5,.5,.5)
1311
												p.Transparency = .5 + ii/20
1312
												p.CFrame = p.CFrame * R
1313
												fwait()
1314
											end
1315
										end),cpro,cdir,CFrame.Angles(math.random(-30,30)/100,math.random(-30,30)/100,math.random(-30,30)/100))
1316
									
1317
									else
1318
										--applyDamage(v,0,Vector3.new(sitoop.x,0,sitoop.z) / 6.25,false,false,nil,.01,1,"",0,false,false)
1319
									end
1320
									applyCameraShake(v,50,5)
1321
									
1322
									local cpro = NewPart(Vector3.new(1,1,1),CFrame.new(v.Torso.Position + Vector3.new(math.random(-2,2),math.random(-2,2),math.random(-2,2))),"Really black","SpecialMesh",Vector3.new(1,1,1))
1323
									cpro.Anchored = true
1324
									cpro.Mesh.MeshType="Sphere"
1325
									cpro.CanCollide = false
1326
									cpro.Reflectance = .1
1327
									cpro.Parent=workspace
1328
									cpro.Transparency = .5
1329
									game:GetService("Debris"):AddItem(cpro,10)
1330
									coroutine.resume(coroutine.create(function(p,cdir)
1331
									for ii=1, 7 do
1332
										p.Mesh.Scale = p.Mesh.Scale + Vector3.new(.5,.5,.5)
1333
										p.Transparency = .5 + ii/14
1334
										p.CFrame = p.CFrame + cdir*.15
1335
										fwait()
1336
									end
1337
									end),cpro,cdir)
1338
									
1339
								end
1340
								
1341
								local cpro = NewPart(Vector3.new(1,1,1),p.CFrame,"Really black","SpecialMesh",Vector3.new(6,6,6))
1342
								cpro.Anchored = true
1343
								cpro.Mesh.MeshType="Sphere"
1344
								cpro.CanCollide = false
1345
								cpro.Reflectance = .1
1346
								cpro.Parent=workspace
1347
								cpro.Transparency = .5
1348
								game:GetService("Debris"):AddItem(cpro,10)
1349
								coroutine.resume(coroutine.create(function(p,cdir)
1350
									for ii=1, 10 do
1351
										p.Mesh.Scale = p.Mesh.Scale + Vector3.new(.75,.75,.75)
1352
										p.Transparency = .5 + ii/20
1353
										p.CFrame = p.CFrame + cdir*.15
1354
										fwait()
1355
									end
1356
								end),cpro,cdir)
1357
								
1358
																local cpro = NewPart(Vector3.new(1,1,1),p.CFrame,"Really black","SpecialMesh",Vector3.new(12,12,12))
1359
								cpro.Anchored = true
1360
								cpro.Mesh.MeshType="Sphere"
1361
								cpro.CanCollide = false
1362
								cpro.Reflectance = .1
1363
								cpro.Parent=workspace
1364
								cpro.Transparency = .5
1365
								game:GetService("Debris"):AddItem(cpro,10)
1366
								coroutine.resume(coroutine.create(function(p,cdir)
1367
									for ii=1, 10 do
1368
										p.Mesh.Scale = p.Mesh.Scale - Vector3.new(.95,.95,.95)
1369
										p.Transparency = .5 + ii/20
1370
										p.CFrame = p.CFrame + cdir*.15
1371
										fwait()
1372
									end
1373
								end),cpro,cdir)
1374
								
1375
																								local cpro = NewPart(Vector3.new(1,1,1),p.CFrame,"Really black","SpecialMesh",Vector3.new(17,17,17))
1376
								cpro.Anchored = true
1377
								cpro.Mesh.MeshType="Sphere"
1378
								cpro.CanCollide = false
1379
								cpro.Reflectance = .1
1380
								cpro.Parent=workspace
1381
								cpro.Transparency = .5
1382
								game:GetService("Debris"):AddItem(cpro,10)
1383
								coroutine.resume(coroutine.create(function(p,cdir)
1384
									for ii=1, 15 do
1385
										p.Mesh.Scale = p.Mesh.Scale - Vector3.new(1.2,1.2,1.2)
1386
										p.Transparency = .75 + ii/60
1387
										p.CFrame = p.CFrame + cdir*.15
1388
										fwait()
1389
									end
1390
								end),cpro,cdir)
1391
								
1392
							end
1393
							
1394
							fwait()
1395
						end
1396
						p:Remove()
1397
					end),eb,CPlane)
1398
					
1399
		end
1400
		BodyVel.velocity=BodyVel.velocity/1.1
1401
		if rawframes == 34 then
1402
			TrackFunction:disconnect()
1403
			TrackFunction=nil
1404
			DesiredWalkspeed=18
1405
			PlayerIsAttacking=false
1406
			CanInterrupt(true)
1407
			setlastnormal("")
1408
			Stand()
1409
		end
1410
		rawframes=rawframes+1
1411
 	end)
1412
end
1413
--//Normal Specials
1414
1415
--Basic Combo / Normals
1416
InputNormals["M"]=function()
1417
1418
    if TrackFunction~=nil then
1419
		TrackFunction:disconnect()
1420
		TrackFunction=nil
1421
 	end
1422
1423
	CanInterrupt(false)
1424
	PlayerIsAttacking=true
1425
	
1426
	local rawframes=0
1427
	Tool.Status.AnimFrame.Value=0
1428
	
1429
	local DidHit=false
1430
	
1431
	ccctime = tick()
1432
	
1433
	local CPlane=MousePlane()
1434
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
1435
	
1436
	local cl = 0
1437
	local clastframe = lastframe
1438
	TrackFunction=FakeHeartbeat.Event:connect(function()
1439
		if rawframes < 4 then
1440
			CPlane = MousePlane()
1441
		end
1442
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
1443
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
1444
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
1445
		if rawframes==0 then
1446
			BodyGyro.Parent.CFrame=BodyGyro.cframe
1447
		end
1448
		if rawframes <= 5 then
1449
			LerpWelds(clastframe,rawframes/5,Animations["Z"]["Animation"](0))
1450
			if rawframes == 1 then
1451
				p=Instance.new("Sound",vPlayer.Character.Torso)
1452
				p.Volume=1
1453
				p.Pitch=.8
1454
				p.SoundId="http://www.roblox.com/asset/?id=233856140"
1455
				wait()
1456
				p:Play()
1457
				game:GetService("Debris"):AddItem(p,3)
1458
				
1459
			end
1460
		elseif rawframes > 5 and rawframes <= 9 then
1461
			LerpWelds(clastframe,1 + (rawframes - 6)*.02,Animations["Z"]["Animation"](0))
1462
		elseif rawframes > 9 and rawframes <= 13 then
1463
			LerpWelds(clastframe,1.06 - (rawframes - 10)*.02,Animations["Z"]["Animation"](0))
1464
		elseif rawframes > 13 then
1465
			----print((rawframes-22)/7)
1466
			LerpWelds({Animations["Z"]["Animation"](0)},(rawframes-13)/7,Animations["Stand"]["Animation"](0))
1467
		end
1468
		if rawframes >= 1 and rawframes <= 5 then
1469
			BodyVel.velocity=CPlane*(rawframes*4 + 5)
1470
		else
1471
			BodyVel.velocity=BodyVel.velocity/1.2
1472
		end
1473
		if rawframes >= 2 and rawframes <= 6 and rawframes%2==0 then
1474
			for _,v in pairs(GetNubsInRadius(vPlayer.Character.Torso.Position + CPlane * 2.5,3.6)) do
1475
				applyDamage(v,8,CPlane*30,false,false,nil,.2,1,"153092238",1,false,true)
1476
				applyCameraShake(v,70,5)
1477
				DidHit=true
1478
			end
1479
		end
1480
		if rawframes==7 then
1481
			setlastnormal("M")
1482
			CanInterrupt(true)
1483
1484
			----print("JORJ")
1485
		end
1486
		if rawframes == 20 then
1487
			TrackFunction:disconnect()
1488
			TrackFunction=nil
1489
			DesiredWalkspeed=18
1490
			PlayerIsAttacking=false
1491
			CanInterrupt(true)
1492
			setlastnormal("")
1493
			Stand()
1494
		end
1495
		rawframes=rawframes+1
1496
 	end)
1497
end
1498
1499
InputNormals["MM"]=function()
1500
1501
    if TrackFunction~=nil then
1502
		TrackFunction:disconnect()
1503
		TrackFunction=nil
1504
 	end
1505
1506
	CanInterrupt(false)
1507
	PlayerIsAttacking=true
1508
	
1509
	local rawframes=0
1510
	Tool.Status.AnimFrame.Value=0
1511
	
1512
	local DidHit=false
1513
	
1514
	local CPlane=MousePlane()
1515
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
1516
	
1517
	local lpos=vPlayer.Character.Weapon.Blade.CFrame
1518
	local cpos=nil
1519
	
1520
	local cl = 0
1521
	local clastframe = lastframe
1522
	TrackFunction=FakeHeartbeat.Event:connect(function()
1523
		if rawframes < 6 then
1524
			CPlane = MousePlane()
1525
		end
1526
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
1527
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
1528
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
1529
		if rawframes==0 then
1530
			BodyGyro.Parent.CFrame=BodyGyro.cframe
1531
		end
1532
		if rawframes <= 4 then
1533
			LerpWelds(clastframe,rawframes/4,Animations["ZZ"]["Animation"](0))
1534
			if rawframes == 1 then
1535
				p=Instance.new("Sound",vPlayer.Character.Weapon.Blade)
1536
				p.Volume=1
1537
				p.Pitch=.6
1538
				p.SoundId="http://www.roblox.com/asset/?id=234365549"
1539
				wait()
1540
				p:Play()
1541
				game:GetService("Debris"):AddItem(p,3)
1542
			end
1543
		elseif rawframes > 4 and rawframes <= 6 then
1544
			LerpWelds({Animations["ZZ"]["Animation"](0)},(rawframes-4)/2,Animations["ZZ"]["Animation"](1))
1545
		elseif rawframes > 6 and rawframes <= 8 then
1546
			LerpWelds({Animations["ZZ"]["Animation"](1)},(rawframes-6)/2,Animations["ZZ"]["Animation"](2))
1547
		elseif rawframes > 8 and rawframes <= 11 then
1548
			LerpWelds({Animations["ZZ"]["Animation"](1)},1 + (rawframes - 8)*.03,Animations["ZZ"]["Animation"](2))
1549
		elseif rawframes > 11 and rawframes <= 15 then
1550
			LerpWelds({Animations["ZZ"]["Animation"](1)},1.08 - (rawframes-11) * .03,Animations["ZZ"]["Animation"](2))
1551
		elseif rawframes > 15 then
1552
			LerpWelds({Animations["ZZ"]["Animation"](2)},(rawframes-15)/6,Animations["Stand"]["Animation"](0))
1553
		end
1554
		if rawframes >= 3 and rawframes <= 5 then
1555
			BodyVel.velocity=CPlane*(rawframes*4 + 15)
1556
		else
1557
			BodyVel.velocity=BodyVel.velocity/1.5
1558
		end
1559
		if rawframes >= 4 and rawframes <= 10 and rawframes%2==0 then
1560
			for _,v in pairs(GetNubsInRadius(vPlayer.Character.HumanoidRootPart.Position + CPlane * 2,4)) do
1561
				applyDamage(v,9,CPlane*40,false,false,nil,.4,1,"201858024",.6,true,true)
1562
				applyCameraShake(v,90,5)
1563
				DidHit=true
1564
			end
1565
		end
1566
		if rawframes < 19 then
1567
			if rawframes%2 == 0 then
1568
				--print("borb")
1569
				lpos=vPlayer.Character.Weapon.Blade.CFrame
1570
				if cpos and (cpos.p - vPlayer.Character.Weapon.Blade.CFrame.p).magnitude > .1 then
1571
					--print('bub')
1572
					local h = vPlayer.Character.Weapon.Blade.Size.y / 2
1573
					local a,b=Triangle((cpos * CFrame.new(0,h,0)).p,(cpos * CFrame.new(0,-h,0)).p,(lpos * CFrame.new(0,h,0)).p,BrickColor.new("Black"))
1574
					if a then game:GetService("Debris"):AddItem(a,5) end
1575
					if b then game:GetService("Debris"):AddItem(b,5) end
1576
					local a,b=Triangle((lpos * CFrame.new(0,h,0)).p,(lpos * CFrame.new(0,-h,0)).p,(cpos * CFrame.new(0,-h,0)).p,BrickColor.new("Black"))
1577
					if a then game:GetService("Debris"):AddItem(a,5) end
1578
					if b then game:GetService("Debris"):AddItem(b,5) end
1579
					cpos = lpos
1580
				elseif not cpos then
1581
					cpos = lpos
1582
				end
1583
			end
1584
		end
1585
		if rawframes==10 then
1586
			CanInterrupt(true)
1587
			setlastnormal("MM")
1588
			----print("JORJ")
1589
		end
1590
		if rawframes == 21 then
1591
			TrackFunction:disconnect()
1592
			TrackFunction=nil
1593
			DesiredWalkspeed=18
1594
			PlayerIsAttacking=false
1595
			CanInterrupt(true)
1596
			setlastnormal("")
1597
			Stand()
1598
		end
1599
		rawframes=rawframes+1
1600
 	end)
1601
end
1602
InputNormals["MMM"]=function()
1603
1604
    if TrackFunction~=nil then
1605
		TrackFunction:disconnect()
1606
		TrackFunction=nil
1607
 	end
1608
1609
	CanInterrupt(false)
1610
	PlayerIsAttacking=true
1611
	
1612
	local rawframes=0
1613
	Tool.Status.AnimFrame.Value=0
1614
	
1615
	local DidHit=false
1616
	
1617
	local CPlane=MousePlane()
1618
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
1619
	
1620
	local cl = 0
1621
	local clastframe = lastframe
1622
	
1623
	local lpos=vPlayer.Character.Weapon.Blade.CFrame
1624
	local cpos=nil
1625
	
1626
	TrackFunction=FakeHeartbeat.Event:connect(function()
1627
		if rawframes < 8 then
1628
			CPlane = MousePlane()
1629
		end
1630
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
1631
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
1632
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
1633
		if rawframes==0 then
1634
			BodyGyro.Parent.CFrame=BodyGyro.cframe
1635
		end
1636
		if rawframes <= 8 then
1637
			LerpWelds(clastframe,rawframes/8,Animations["ZZZ"]["Animation"](0))
1638
		elseif rawframes > 8 and rawframes <= 15 then
1639
			cl = cl + (rawframes - 8) * .036
1640
			LerpWelds({Animations["ZZZ"]["Animation"](0)},cl,Animations["ZZZ"]["Animation"](1))
1641
			if rawframes == 9 then
1642
				p=Instance.new("Sound",vPlayer.Character.Weapon.Blade)
1643
				p.Volume=1
1644
				p.Pitch=.85
1645
				p.SoundId="http://www.roblox.com/asset/?id=234365573"
1646
				wait()
1647
				p:Play()
1648
				game:GetService("Debris"):AddItem(p,3)
1649
			end
1650
		elseif rawframes > 15 and rawframes <= 21 then	
1651
			LerpWelds({Animations["ZZZ"]["Animation"](0)},1 + (rawframes - 15) * .01,Animations["ZZZ"]["Animation"](1))		
1652
			--print(1 + (rawframes - 15) * .01)
1653
		elseif rawframes > 21 and rawframes <= 25 then
1654
			LerpWelds({Animations["ZZZ"]["Animation"](0)},1.1 - (rawframes-21)*.04,Animations["ZZZ"]["Animation"](1))		
1655
		elseif rawframes > 25 then
1656
			LerpWelds({Animations["ZZZ"]["Animation"](1)},(rawframes-25)/6,Animations["Stand"]["Animation"](0))
1657
		end
1658
		if rawframes >= 7 and rawframes <= 8 then
1659
			BodyVel.velocity=CPlane*(rawframes*5 + 26)
1660
		else
1661
			BodyVel.velocity=BodyVel.velocity/1.7
1662
		end
1663
		if rawframes >= 8 and rawframes <= 14 and rawframes%2==0 then
1664
			for _,v in pairs(GetNubsInRadius(vPlayer.Character.HumanoidRootPart.Position + CPlane * 2,4)) do
1665
				applyDamage(v,9,CPlane*50,false,false,nil,.6,1,"201858024",.5,true,true)
1666
				applyCameraShake(v,90,5)
1667
				DidHit=true
1668
			end
1669
		end
1670
		if rawframes < 18 then
1671
			if rawframes%2 == 0 then
1672
				--print("borb")
1673
				lpos=vPlayer.Character.Weapon.Blade.CFrame
1674
				if cpos and (cpos.p - vPlayer.Character.Weapon.Blade.CFrame.p).magnitude > .1 then
1675
					--print('bub')
1676
					local h = vPlayer.Character.Weapon.Blade.Size.y / 2
1677
					local a,b=Triangle((cpos * CFrame.new(0,h,0)).p,(cpos * CFrame.new(0,-h,0)).p,(lpos * CFrame.new(0,h,0)).p,BrickColor.new("Black"))
1678
					if a then game:GetService("Debris"):AddItem(a,5) end
1679
					if b then game:GetService("Debris"):AddItem(b,5) end
1680
					local a,b=Triangle((lpos * CFrame.new(0,h,0)).p,(lpos * CFrame.new(0,-h,0)).p,(cpos * CFrame.new(0,-h,0)).p,BrickColor.new("Black"))
1681
					if a then game:GetService("Debris"):AddItem(a,5) end
1682
					if b then game:GetService("Debris"):AddItem(b,5) end
1683
					cpos = lpos
1684
				elseif not cpos then
1685
					cpos = lpos
1686
				end
1687
			end
1688
		end
1689
		if rawframes==16 then
1690
			CanInterrupt(true)
1691
			setlastnormal("MMM")
1692
			----print("JORJ")
1693
		end
1694
		if rawframes == 31 then
1695
			TrackFunction:disconnect()
1696
			TrackFunction=nil
1697
			DesiredWalkspeed=18
1698
			PlayerIsAttacking=false
1699
			CanInterrupt(true)
1700
			setlastnormal("")
1701
			Stand()
1702
		end
1703
		rawframes=rawframes+1
1704
 	end)
1705
end
1706
1707
InputNormals["MMMM"]=function()
1708
1709
    if TrackFunction~=nil then
1710
		TrackFunction:disconnect()
1711
		TrackFunction=nil
1712
 	end
1713
1714
	CanInterrupt(false)
1715
	PlayerIsAttacking=true
1716
	
1717
	local rawframes=0
1718
	Tool.Status.AnimFrame.Value=0
1719
	
1720
	local DidHit=false
1721
	
1722
	local CPlane=MousePlane()
1723
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
1724
	
1725
	local cl = 0
1726
	local clastframe = lastframe
1727
	TrackFunction=FakeHeartbeat.Event:connect(function()
1728
		if rawframes < 9 then
1729
			CPlane=MousePlane()
1730
		end
1731
		
1732
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
1733
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
1734
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
1735
		if rawframes==0 then
1736
			BodyGyro.Parent.CFrame=BodyGyro.cframe
1737
		end
1738
		BodyVel.velocity=BodyVel.velocity/1.25
1739
		if rawframes <= 5 then
1740
			LerpWelds(clastframe,rawframes/5,Animations["ZZZZ"]["Animation"](0))
1741
		elseif rawframes > 5 and rawframes <= 10 then
1742
			LerpWelds({Animations["ZZZZ"]["Animation"](0)},(rawframes-5)/5,Animations["ZZZZ"]["Animation"](1))
1743
			if rawframes == 6 then
1744
				p=Instance.new("Sound",vPlayer.Character.Torso)
1745
				p.Volume=.25
1746
				p.Pitch=.9
1747
				p.SoundId="http://www.roblox.com/asset/?id=233856140"
1748
				wait()
1749
				p:Play()
1750
				game:GetService("Debris"):AddItem(p,3)
1751
			end
1752
			
1753
				local pc = NewPart(Vector3.new(1,1,1),vPlayer.Character["Left Arm"].CFrame * CFrame.new(0,-1.5,0) * CFrame.Angles(math.random(-10,10),math.random(-10,10),math.random(-10,10)),"Really black","BlockMesh",Vector3.new(1.6,1.6,1.6))
1754
				pc.CanCollide=false
1755
				pc.Anchored=true
1756
				pc.Parent=workspace
1757
				game:GetService("Debris"):AddItem(pc,5)
1758
				coroutine.resume(coroutine.create(function(p)
1759
					local R = CFrame.Angles(math.random(-3,3),math.random(-4,4),math.random(-5,5))
1760
					local C = Vector3.new(math.random(-5,5)/40,math.random(-5,5)/40,math.random(-5,5)/40)
1761
					for i=1, 20 do
1762
						p.Mesh.Scale = p.Mesh.Scale - Vector3.new(1,1,1)/30
1763
						p.Transparency = i/20
1764
						p.CFrame = p.CFrame * R - Vector3.new(0,9.82/30/11*i,0) + C
1765
						fwait()
1766
					end
1767
					p:Remove()
1768
				end),pc)
1769
		elseif rawframes > 20 and rawframes <= 26 then
1770
			LerpWelds({Animations["ZZZZ"]["Animation"](0)},1-(rawframes-20)*.02,Animations["ZZZZ"]["Animation"](1))
1771
		elseif rawframes > 26 and rawframes <= 33 then
1772
			LerpWelds({Animations["ZZZZ"]["Animation"](1)},(rawframes-26)/7.05-.10,Animations["ZZZZ"]["Animation"](2))
1773
		elseif rawframes > 40 then
1774
			LerpWelds({Animations["ZZZZ"]["Animation"](2)},(rawframes-40)/9,Animations["Stand"]["Animation"](0))
1775
		end
1776
		if rawframes == 30 then
1777
			
1778
			cpos = vPlayer.Character.Torso.Position + CPlane * 30
1779
			coroutine.resume(coroutine.create(function(pos,dir)
1780
				for i=0, 2 do
1781
					local pc = NewPart(Vector3.new(1,1,1),CFrame.new(pos - dir*(i*10) - Vector3.new(0,3,0)) * CFrame.Angles(0,math.random(-10,10),0),"Really black","SpecialMesh",Vector3.new(7,1,7))
1782
					pc.Mesh.MeshType="FileMesh"
1783
					pc.Parent=workspace
1784
					pc.Anchored=true
1785
					pc.CanCollide=false
1786
					pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
1787
					pc.Name="Shockwave"
1788
					game:GetService("Debris"):AddItem(pc,5)
1789
					
1790
					coroutine.resume(coroutine.create(function(p)
1791
						for ii=1, 15 do
1792
							p.Transparency=ii/15
1793
							p.CFrame = p.CFrame * CFrame.Angles(0,math.rad(15 + ii),0) + Vector3.new(0,.35,0)
1794
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(-6/15,.7,-6/15)
1795
							fwait()
1796
						end
1797
						p:Remove()
1798
					end),pc)
1799
					
1800
					local pc = NewPart(Vector3.new(1,1,1),CFrame.new(pos - dir*(i*8) + Vector3.new(0,0,0)) * CFrame.Angles(0,math.random(-10,10),0),"Black","SpecialMesh",Vector3.new(1,7,1))
1801
					pc.Mesh.MeshType="FileMesh"
1802
					pc.Anchored=true
1803
					pc.CanCollide=false
1804
					pc.Parent=workspace
1805
					pc.Mesh.MeshId="http://www.roblox.com/asset/?id=20329976"
1806
					pc.Name="Shockwave"
1807
					game:GetService("Debris"):AddItem(pc,5)
1808
					
1809
					coroutine.resume(coroutine.create(function(p)
1810
						for ii=1, 10 do
1811
							p.Transparency=ii/10
1812
							p.CFrame = p.CFrame * CFrame.Angles(0,-math.rad(15 + ii),0) - Vector3.new(0,.25,0)
1813
							p.Mesh.Scale=p.Mesh.Scale + Vector3.new(1,-.5,1)
1814
							fwait()
1815
						end
1816
						p:Remove()
1817
					end),pc)
1818
					
1819
					local p=Instance.new("Sound",pc)
1820
					p.Volume=1
1821
					p.Pitch=.85
1822
					p.SoundId="http://www.roblox.com/asset/?id=233856106"
1823
					wait()
1824
					p:Play()
1825
					game:GetService("Debris"):AddItem(p,3)	
1826
					
1827
					for _,v in pairs(GetNubsInRadius(pc.CFrame.p + Vector3.new(0,0,0),7.5)) do
1828
						--print("DAMN SON",time())
1829
						applyDamage(v,3,-dir*(58.5 - i*5),false,false,nil,.01,1,"",1.125,false,true)
1830
						applyCameraShake(v,70,3)
1831
						DidHit=true
1832
					end
1833
									
1834
					fwait(.215)
1835
				end
1836
			end),cpos,CPlane)
1837
			
1838
		end
1839
		if rawframes == 8 then
1840
			
1841
			local pz = NewPart(Vector3.new(1,1,1),CFrame.new(vPlayer.Character["Left Arm"].Position) + CPlane * .5,"Really black","SpecialMesh",Vector3.new(2,2,0))
1842
			pz.Anchored=true
1843
			pz.CanCollide=false
1844
			pz.Parent=workspace
1845
			pz.Mesh.MeshType="Sphere"
1846
			game:GetService("Debris"):AddItem(pz,5)
1847
			
1848
			local p=Instance.new("Sound",pz)
1849
			p.Volume=1
1850
			p.Pitch=.65
1851
			p.SoundId="http://www.roblox.com/asset/?id=231917788"
1852
			wait()
1853
			p:Play()
1854
			game:GetService("Debris"):AddItem(p,3)
1855
			local p=Instance.new("Sound",pz)
1856
			p.Volume=1
1857
			p.Pitch=1
1858
			p.SoundId="http://www.roblox.com/asset/?id=233091183"
1859
			wait()
1860
			p:Play()
1861
			game:GetService("Debris"):AddItem(p,3)			
1862
			
1863
			local pc = NewPart(Vector3.new(1,1,1),vPlayer.Character["Left Arm"].CFrame * CFrame.new(0,-1.5,0) * CFrame.Angles(math.random(-10,10),math.random(-10,10),math.random(-10,10)),"Really black","BlockMesh",Vector3.new(1.6,1.6,1.6))
1864
				pc.CanCollide=false
1865
				pc.Anchored=true
1866
				pc.Parent=workspace
1867
				game:GetService("Debris"):AddItem(pc,5)
1868
				coroutine.resume(coroutine.create(function(p)
1869
					local R = CFrame.Angles(math.random(-3,3),math.random(-4,4),math.random(-5,5))
1870
					for i=1, 15 do
1871
						p.Mesh.Scale = p.Mesh.Scale + Vector3.new(2,2,2)/15
1872
						p.Transparency = i/15
1873
						p.CFrame = p.CFrame * R
1874
						fwait()
1875
					end
1876
					p:Remove()
1877
				end),pc)
1878
				
1879
			coroutine.resume(coroutine.create(function(p,dir)
1880
				for i=1, 15 do
1881
					fwait()
1882
					p.CFrame = p.CFrame + dir * 1.5
1883
					
1884
					local pc = NewPart(Vector3.new(1,1,1),CFrame.new(p.Position) * CFrame.Angles(math.random(-10,10),math.random(-10,10),math.random(-10,10)),"Really black","BlockMesh",Vector3.new(1,1,1))
1885
					pc.CanCollide=false
1886
					pc.Anchored=true
1887
					pc.Parent=workspace
1888
					game:GetService("Debris"):AddItem(pc,5)
1889
					
1890
							if i%3 == 0 then
1891
								for _,v in pairs(GetNubsInRadius(p.CFrame.p - CPlane*2,4.5)) do
1892
									--print("DAMN SON",time())
1893
									applyDamage(v,2,dir*52.5,false,false,nil,.01,1,"231917784",.95,false,true)
1894
									applyCameraShake(v,50,3)
1895
									DidHit=true
1896
								end
1897
							end
1898
					
1899
					coroutine.resume(coroutine.create(function(p,c)
1900
						for ii=1, 8 do
1901
							p.Mesh.Scale = p.Mesh.Scale * 1.1 + Vector3.new(c,c,c)
1902
							p.Transparency=ii/8
1903
							fwait()
1904
						end
1905
						p:Remove()
1906
					end),pc,i/20)
1907
				end
1908
				p:Remove()
1909
			end),pz,CPlane)
1910
			
1911
			local pz = NewPart(Vector3.new(2,2,1),CFrame.new(vPlayer.Character["Left Arm"].Position + CPlane * 1.5,vPlayer.Character["Left Arm"].Position + CPlane * 2),"Really black","BlockMesh",Vector3.new(1.5,1.5,0))
1912
			pz.Transparency=1
1913
			pz.Anchored=true
1914
			pz.CanCollide=false
1915
			pz.Parent=workspace
1916
			pz.Name="Rune"
1917
			local d1 = Instance.new("Decal",pz)
1918
			d1.Texture="http://www.roblox.com/asset/?id=233069844"
1919
			d1.Face="Front"
1920
			d1.Name="d1"
1921
			local d1 = Instance.new("Decal",pz)
1922
			d1.Texture="http://www.roblox.com/asset/?id=233069844"
1923
			d1.Face="Back"
1924
			d1.Name="d2"
1925
			
1926
			coroutine.resume(coroutine.create(function(p,dir)
1927
				for i=1, 28 do
1928
					fwait()
1929
					p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(1 + i*2))
1930
					p.d1.Transparency=i/28
1931
					p.d2.Transparency=i/28
1932
					if i <= 14 then
1933
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(i*.02,i*.02,0)
1934
					end
1935
				end
1936
				p:Remove()
1937
			end),pz,CPlane)
1938
			
1939
			game:GetService("Debris"):AddItem(pz,6)		
1940
		
1941
		end
1942
		if rawframes==38 then
1943
			CanInterrupt(true)
1944
			setlastnormal("MMMM")
1945
			----print("JORJ")
1946
		end
1947
		if rawframes == 48 then
1948
			TrackFunction:disconnect()
1949
			TrackFunction=nil
1950
			DesiredWalkspeed=18
1951
			PlayerIsAttacking=false
1952
			CanInterrupt(true)
1953
			setlastnormal("")
1954
			Stand()
1955
		end
1956
		rawframes=rawframes+1
1957
 	end)
1958
end
1959
1960
InputNormals["MMMMM"]=function()
1961
1962
    if TrackFunction~=nil then
1963
		TrackFunction:disconnect()
1964
		TrackFunction=nil
1965
 	end
1966
1967
	CanInterrupt(false)
1968
	PlayerIsAttacking=true
1969
	
1970
	local rawframes=0
1971
	Tool.Status.AnimFrame.Value=0
1972
	
1973
	local DidHit=false
1974
	
1975
	local CPlane=MousePlane()
1976
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
1977
	
1978
	local lpos=vPlayer.Character.Weapon.Blade.CFrame
1979
	local cpos=nil
1980
	
1981
	local cl = 0
1982
	local clastframe = lastframe
1983
	TrackFunction=FakeHeartbeat.Event:connect(function()
1984
		if rawframes < 6 then
1985
			CPlane = MousePlane()
1986
		end
1987
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
1988
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
1989
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
1990
		if rawframes==0 then
1991
			BodyGyro.Parent.CFrame=BodyGyro.cframe
1992
		end
1993
		if rawframes <= 5 then
1994
			LerpWelds(clastframe,rawframes/5,Animations["ZZZZZ"]["Animation"](0))
1995
			if rawframes == 3 then
1996
				p=Instance.new("Sound",vPlayer.Character.Weapon.Blade)
1997
				p.Volume=1
1998
				p.Pitch=.8
1999
				p.SoundId="http://www.roblox.com/asset/?id=234365549"
2000
				wait()
2001
				p:Play()
2002
				game:GetService("Debris"):AddItem(p,3)
2003
			end
2004
		elseif rawframes > 5 and rawframes <= 8 then
2005
			LerpWelds({Animations["ZZZZZ"]["Animation"](0)},(rawframes-5)/4,Animations["ZZZZZ"]["Animation"](1))
2006
		elseif rawframes > 8 and rawframes <= 11 then
2007
			LerpWelds({Animations["ZZZZZ"]["Animation"](1)},(rawframes-8)/3,Animations["ZZZZZ"]["Animation"](2))
2008
		elseif rawframes > 11 and rawframes <= 14 then
2009
			LerpWelds({Animations["ZZZZZ"]["Animation"](1)},1 + (rawframes - 11)*.03,Animations["ZZZZZ"]["Animation"](2))
2010
		elseif rawframes > 14 and rawframes <= 19 then
2011
			LerpWelds({Animations["ZZZZZ"]["Animation"](1)},1.08 - (rawframes-14) * .03,Animations["ZZZZZ"]["Animation"](2))
2012
		elseif rawframes > 19 then
2013
			LerpWelds({Animations["ZZZZZ"]["Animation"](2)},(rawframes-19)/8,Animations["Stand"]["Animation"](0))
2014
		end
2015
		if rawframes >= 1 and rawframes <= 5 then
2016
			BodyVel.velocity=CPlane*(rawframes*4 + 5)
2017
		else
2018
			BodyVel.velocity=BodyVel.velocity/1.2
2019
		end
2020
		if rawframes >= 6 and rawframes <= 10 then
2021
			for _,v in pairs(GetNubsInRadius(vPlayer.Character.Weapon.Blade.Position - CPlane * .5 - Vector3.new(0,.5,0),3.3)) do
2022
				applyDamage(v,7,CPlane*30,false,false,nil,.1,1,"201858024",.85,true,true)
2023
				applyCameraShake(v,120,5)
2024
				DidHit=true
2025
			end
2026
		end
2027
		if rawframes == 11 then
2028
				p=Instance.new("Sound",vPlayer.Character.Weapon.Blade)
2029
				p.Volume=1
2030
				p.Pitch=1.1
2031
				p.SoundId="http://www.roblox.com/asset/?id=191395766"
2032
				wait()
2033
				p:Play()
2034
				game:GetService("Debris"):AddItem(p,3)
2035
				
2036
								local par,loc = workspace:FindPartOnRay(Ray.new(vPlayer.Character.Weapon.Blade.Position,Vector3.new(0,-3,0)),vPlayer.Character)
2037
				local pz = NewPart(Vector3.new(2,2,1),CFrame.new(loc) * CFrame.Angles(math.pi/2,0,0),"Really black","BlockMesh",Vector3.new(.5,.5,0))
2038
				pz.Transparency=1
2039
				pz.Anchored=true
2040
				pz.CanCollide=false
2041
				pz.Parent=workspace
2042
				pz.Name="Rune"
2043
				local d1 = Instance.new("Decal",pz)
2044
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
2045
				d1.Face="Front"
2046
				d1.Name="d1"
2047
				local d1 = Instance.new("Decal",pz)
2048
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
2049
				d1.Face="Back"
2050
				d1.Name="d2"
2051
			
2052
				coroutine.resume(coroutine.create(function(p,dir)
2053
					for i=1, 5 do
2054
						fwait()
2055
						p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(10 + i*2))
2056
						p.d1.Transparency=.5+i/10
2057
						p.d2.Transparency=.5+i/10
2058
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(.5,.5,0)
2059
					end
2060
					p:Remove()
2061
				end),pz,CPlane)
2062
				
2063
				game:GetService("Debris"):AddItem(pz,6)	
2064
				
2065
		end
2066
		if rawframes < 18 then
2067
			if rawframes%2 == 0 then
2068
				--print("borb")
2069
				lpos=vPlayer.Character.Weapon.Blade.CFrame
2070
				if cpos and (cpos.p - vPlayer.Character.Weapon.Blade.CFrame.p).magnitude > .1 then
2071
					--print('bub')
2072
					local h = vPlayer.Character.Weapon.Blade.Size.y / 2
2073
					local a,b=Triangle((cpos * CFrame.new(0,h,0)).p,(cpos * CFrame.new(0,-h,0)).p,(lpos * CFrame.new(0,h,0)).p,BrickColor.new("Black"))
2074
					if a then game:GetService("Debris"):AddItem(a,5) end
2075
					if b then game:GetService("Debris"):AddItem(b,5) end
2076
					local a,b=Triangle((lpos * CFrame.new(0,h,0)).p,(lpos * CFrame.new(0,-h,0)).p,(cpos * CFrame.new(0,-h,0)).p,BrickColor.new("Black"))
2077
					if a then game:GetService("Debris"):AddItem(a,5) end
2078
					if b then game:GetService("Debris"):AddItem(b,5) end
2079
					cpos = lpos
2080
				elseif not cpos then
2081
					cpos = lpos
2082
				end
2083
			end
2084
		end
2085
		if rawframes==17 then
2086
			CanInterrupt(true)
2087
			setlastnormal("MMMMM")
2088
			----print("JORJ")
2089
		end
2090
		if rawframes == 26 then
2091
			TrackFunction:disconnect()
2092
			TrackFunction=nil
2093
			DesiredWalkspeed=18
2094
			PlayerIsAttacking=false
2095
			CanInterrupt(true)
2096
			setlastnormal("")
2097
			Stand()
2098
		end
2099
		rawframes=rawframes+1
2100
 	end)
2101
end
2102
2103
InputNormals["MMMMMM"]=function()
2104
2105
    if TrackFunction~=nil then
2106
		TrackFunction:disconnect()
2107
		TrackFunction=nil
2108
 	end
2109
2110
	CanInterrupt(false)
2111
	PlayerIsAttacking=true
2112
	
2113
	local rawframes=0
2114
	Tool.Status.AnimFrame.Value=0
2115
	
2116
	local DidHit=false
2117
	
2118
	local CPlane=MousePlane()
2119
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
2120
	
2121
	local cl = 0
2122
	local clastframe = lastframe
2123
	
2124
		local lpos=vPlayer.Character.Weapon.Blade.CFrame
2125
	local cpos=nil
2126
	
2127
	TrackFunction=FakeHeartbeat.Event:connect(function()
2128
		if rawframes < 8 then
2129
			CPlane = MousePlane()
2130
		end
2131
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
2132
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
2133
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
2134
		if rawframes==0 then
2135
			BodyGyro.Parent.CFrame=BodyGyro.cframe
2136
		end
2137
		if rawframes <= 5 then
2138
			LerpWelds(clastframe,rawframes/5,Animations["ZZZZZZ"]["Animation"](0))
2139
			if rawframes == 1 then
2140
				p=Instance.new("Sound",vPlayer.Character.Torso)
2141
				p.Volume=1
2142
				p.Pitch=1
2143
				p.SoundId="http://www.roblox.com/asset/?id=233856140"
2144
				wait()
2145
				p:Play()
2146
				game:GetService("Debris"):AddItem(p,3)
2147
			end
2148
		elseif rawframes > 5 and rawframes <= 9 then
2149
			LerpWelds(clastframe,1 + (rawframes - 5)*.01,Animations["ZZZZZZ"]["Animation"](0))
2150
		elseif rawframes > 9 and rawframes <= 13 then
2151
			LerpWelds(clastframe,1.03 - (rawframes - 9)*.01,Animations["ZZZZZZ"]["Animation"](0))
2152
		elseif rawframes > 16 then
2153
			----print((rawframes-22)/7)
2154
			LerpWelds({Animations["ZZZZZZ"]["Animation"](0)},(rawframes-16)/11,Animations["Stand"]["Animation"](0))
2155
		end
2156
		if rawframes >= 1 and rawframes <= 5 then
2157
			BodyVel.velocity=CPlane*(rawframes*6 + 10)
2158
		else
2159
			BodyVel.velocity=BodyVel.velocity/1.2
2160
		end
2161
		if rawframes >= 4 and rawframes <= 7 and rawframes%2==0 then
2162
			for _,v in pairs(GetNubsInRadius(vPlayer.Character.Torso.Position + CPlane * 2.5,3.6)) do
2163
				applyDamage(v,7,CPlane*45,false,false,nil,.33,1,"153092238",.8,false,true)
2164
				applyCameraShake(v,140,5)
2165
				DidHit=true
2166
			end
2167
		end
2168
		if rawframes==12 then
2169
			CanInterrupt(true)
2170
			setlastnormal("MMMMMM")
2171
			----print("JORJ")
2172
		end
2173
		if rawframes == 27 then
2174
			TrackFunction:disconnect()
2175
			TrackFunction=nil
2176
			DesiredWalkspeed=18
2177
			PlayerIsAttacking=false
2178
			CanInterrupt(true)
2179
			setlastnormal("")
2180
			Stand()
2181
		end
2182
		rawframes=rawframes+1
2183
 	end)
2184
end
2185
2186
InputNormals["MMMMMMM"]=function()
2187
2188
    if TrackFunction~=nil then
2189
		TrackFunction:disconnect()
2190
		TrackFunction=nil
2191
 	end
2192
2193
	CanInterrupt(false)
2194
	PlayerIsAttacking=true
2195
	
2196
	local rawframes=0
2197
	Tool.Status.AnimFrame.Value=0
2198
	
2199
	local DidHit=false
2200
	
2201
	local CPlane=MousePlane()
2202
	vPlayer.Character.HumanoidRootPart.CFrame=CFrame.new(vPlayer.Character.HumanoidRootPart.Position,vPlayer.Character.HumanoidRootPart.Position + CPlane * 50)
2203
	
2204
			local lpos=vPlayer.Character.Weapon.Blade.CFrame
2205
	local cpos=nil
2206
	
2207
	local cl = 0
2208
	local clastframe = lastframe
2209
	TrackFunction=FakeHeartbeat.Event:connect(function()
2210
		if rawframes < 6 then
2211
			CPlane = MousePlane()
2212
		end
2213
		BodyVel.Parent=vPlayer.Character.HumanoidRootPart
2214
		BodyGyro.Parent=vPlayer.Character.HumanoidRootPart
2215
		BodyGyro.cframe=CFrame.new(BodyGyro.Parent.Position,BodyGyro.Parent.Position + CPlane * 50)
2216
		if rawframes==0 then
2217
			BodyGyro.Parent.CFrame=BodyGyro.cframe
2218
		end
2219
		if rawframes <= 6 then
2220
			LerpWelds(clastframe,rawframes/6,Animations["ZZZZZZZ"]["Animation"](0))
2221
			if rawframes == 2 then
2222
				p=Instance.new("Sound",vPlayer.Character.Weapon.Blade)
2223
				p.Volume=1
2224
				p.Pitch=.9
2225
				p.SoundId="http://www.roblox.com/asset/?id=234365549"
2226
				wait()
2227
				p:Play()
2228
				game:GetService("Debris"):AddItem(p,3)
2229
			end
2230
		elseif rawframes > 6 and rawframes <= 10 then
2231
			LerpWelds(clastframe,.98 + (rawframes - 6)*.005,Animations["ZZZZZZZ"]["Animation"](0))
2232
			if rawframes == 7 then
2233
				p=Instance.new("Sound",vPlayer.Character.Weapon.Blade)
2234
				p.Volume=1
2235
				p.Pitch=1.5
2236
				p.SoundId="http://www.roblox.com/asset/?id=231917806"
2237
				wait()
2238
				p:Play()
2239
				game:GetService("Debris"):AddItem(p,3)
2240
				
2241
				local par,loc = workspace:FindPartOnRay(Ray.new(vPlayer.Character.Weapon.Blade.Position,Vector3.new(0,-1,0)),vPlayer.Character)
2242
				local pz = NewPart(Vector3.new(2,2,1),CFrame.new(loc) * CFrame.Angles(math.pi/2,0,0),"Really black","BlockMesh",Vector3.new(2.5,2.5,0))
2243
				pz.Transparency=1
2244
				pz.Anchored=true
2245
				pz.CanCollide=false
2246
				pz.Parent=workspace
2247
				pz.Name="Rune"
2248
				local d1 = Instance.new("Decal",pz)
2249
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
2250
				d1.Face="Front"
2251
				d1.Name="d1"
2252
				local d1 = Instance.new("Decal",pz)
2253
				d1.Texture="http://www.roblox.com/asset/?id=234376725"
2254
				d1.Face="Back"
2255
				d1.Name="d2"
2256
			
2257
				coroutine.resume(coroutine.create(function(p,dir)
2258
					for i=1, 5 do
2259
						fwait()
2260
						p.CFrame = p.CFrame * CFrame.Angles(0,0,math.rad(20 + i*2))
2261
						p.d1.Transparency=.5+i/10
2262
						p.d2.Transparency=.5+i/10
2263
						p.Mesh.Scale=p.Mesh.Scale + Vector3.new(1.5,1.5,0)
2264
					end
2265
					p:Remove()
2266
				end),pz,CPlane)
2267
				
2268
				game:GetService("Debris"):AddItem(pz,6)	
2269
				
2270
				for _,v in pairs(GetNubsInRadius(vPlayer.Character.Weapon.Blade.Position + CPlane * 1.5 + Vector3.new(0,2,0),15)) do
2271
					applyCameraShake(v,50,15)
2272
				end
2273
				applyCameraShake(vPlayer.Character,100,15)
2274
			end
2275
		elseif rawframes > 10 and rawframes <= 15 then
2276
			LerpWelds(clastframe,1.01 - (rawframes - 10)*.005,Animations["ZZZZZZZ"]["Animation"](0))
2277
		elseif rawframes > 17 then
2278
			----print((rawframes-22)/7)
2279
			LerpWelds({Animations["ZZZZZZZ"]["Animation"](0)},(rawframes-17)/10,Animations["Stand"]["Animation"](0))
2280
		end
2281
		if rawframes >= 3 and rawframes <= 5 then
2282
			BodyVel.velocity=CPlane*(rawframes*4 + 30)
2283
		else
2284
			BodyVel.velocity=BodyVel.velocity/1.7
2285
		end
2286
		if rawframes >= 3 and rawframes <= 9 and rawframes%2==0 then
2287
			for _,v in pairs(GetNubsInRadius(vPlayer.Character.Weapon.Blade.Position + CPlane * 1.5 + Vector3.new(0,2,0),5)) do
2288
				applyDamage(v,12,CPlane*115,false,false,nil,1,1,"201858024",.55,true,true)
2289
				applyCameraShake(v,250,10)
2290
				DidHit=true
2291
			end
2292
		end
2293
		if rawframes==20 then
2294
			CanInterrupt(true)
2295
			setlastnormal("")
2296
			----print("JORJ")
2297
			--print(tick() - ccctime)
2298
		end
2299
		if rawframes <= 20 then
2300
				lpos=vPlayer.Character.Weapon.Blade.CFrame
2301
				if cpos and (cpos.p - vPlayer.Character.Weapon.Blade.CFrame.p).magnitude > .1 then
2302
					--print('bub')
2303
					local h = vPlayer.Character.Weapon.Blade.Size.y / 2
2304
					local a,b=Triangle((cpos * CFrame.new(0,h,0)).p,(cpos * CFrame.new(0,-h,0)).p,(lpos * CFrame.new(0,h,0)).p,BrickColor.new("Black"))
2305
					if a then game:GetService("Debris"):AddItem(a,5) end
2306
					if b then game:GetService("Debris"):AddItem(b,5) end
2307
					local a,b=Triangle((lpos * CFrame.new(0,h,0)).p,(lpos * CFrame.new(0,-h,0)).p,(cpos * CFrame.new(0,-h,0)).p,BrickColor.new("Black"))
2308
					if a then game:GetService("Debris"):AddItem(a,5) end
2309
					if b then game:GetService("Debris"):AddItem(b,5) end
2310
					cpos = lpos
2311
				elseif not cpos then
2312
					cpos = lpos
2313
				end
2314
		end
2315
		if rawframes == 27 then
2316
			TrackFunction:disconnect()
2317
			TrackFunction=nil
2318
			DesiredWalkspeed=18
2319
			PlayerIsAttacking=false
2320
			CanInterrupt(true)
2321
			setlastnormal("")
2322
			Stand()
2323
		end
2324
		rawframes=rawframes+1
2325
 	end)
2326
end
2327
2328
GetNubs=function()
2329
	scrubs={}
2330
	for _,v in pairs(game.Workspace:children()) do
2331
		if v:FindFirstChild("Humanoid")~=nil and v:FindFirstChild("Torso")~=nil and v.Name~=game.Players.LocalPlayer.Name then
2332
			table.insert(scrubs,v)
2333
		end
2334
	end
2335
	return scrubs
2336
end
2337
Nubs={}
2338
2339
2340
GetNubsInRadius=function(pos,radius)
2341
	radius=radius+radiushelp
2342
	scrubs=Nubs
2343
	filtered={}
2344
	
2345
	--[[local vpar = Instance.new("Part",workspace)
2346
	vpar.Transparency=.5
2347
	vpar.CanCollide=false
2348
	vpar.Anchored=true
2349
	vpar.formFactor="Symmetric"
2350
	vpar.Size=Vector3.new(1,1,1)
2351
	vpar.TopSurface = 0 vpar.BottomSurface = 0
2352
	vpar.CFrame = CFrame.new(pos)
2353
	vpar.BrickColor=BrickColor:Red()
2354
	local m = Instance.new("SpecialMesh",vpar)
2355
	m.MeshType="Sphere"
2356
	m.Scale=Vector3.new(radius,radius,radius)
2357
	game:GetService("Debris"):AddItem(vpar,3)]]
2358
	
2359
	
2360
	for _,v in pairs(scrubs) do
2361
		if v:FindFirstChild("Torso")~=nil then
2362
			if (v.Torso.Position-pos).magnitude<=radius then
2363
				table.insert(filtered,v)
2364
			end
2365
		end
2366
	end
2367
	return filtered
2368
end
2369
2370
noy=function(pos)
2371
	return Vector3.new(pos.x,0,pos.z)
2372
end
2373
2374
applyCameraShake=function(Noob,Intens,Time)
2375
	Intens = Intens / 5.2
2376
	if game.Players:GetPlayerFromCharacter(Noob)~=nil then
2377
		local ss=script.CamShake:clone()
2378
		ss.Disabled=false
2379
		ss.intensity.Value=Intens
2380
		ss.times.Value=Time
2381
		ss.Parent=Noob
2382
2383
	end
2384
end
2385
2386
LastHitTime=time()
2387
LastDamage=0
2388
ComboHits=0
2389
asset = math.random(1,10^8)
2390
----print("asset roll: "..asset)
2391
applyDamage=function(Noob,Damage,KnockDir,Down,ForceDown,addFunc,DebounceTime,aYvel,hitsound,hitpitch,canburn,canproc)
2392
	if KnockDir==nil then
2393
		KnockDir=Vector3.new(0,0,0)
2394
	end
2395
	if Down==nil then
2396
		Down=false
2397
	end
2398
	if addFunc==nil then
2399
		addFunc=function() end
2400
	end
2401
	if aYvel==nil then
2402
		aYvel=0
2403
	end
2404
	if hitsound == nil then hitsound = "" end
2405
	if hitpitch == nil then hitpitch = 1 end
2406
	local h=Noob:FindFirstChild("Humanoid")
2407
	local t=Noob:FindFirstChild("HumanoidRootPart")
2408
	if t==nil then
2409
		t=Noob:FindFirstChild("Torso")
2410
	end
2411
	if h~=nil and t~=nil then
2412
		if h:FindFirstChild("SADebounce"..asset) == nil then
2413
			
2414
			local b = Instance.new("BoolValue",h)
2415
			b.Name="SADebounce"..asset
2416
			game:GetService("Debris"):AddItem(b,DebounceTime)
2417
		else
2418
			print("NOE")
2419
			return
2420
		end
2421
		local s = Instance.new("Sound",t)
2422
		s.Volume=1
2423
		s.Pitch=hitpitch
2424
		s.SoundId="http://www.roblox.com/asset/?id="..hitsound
2425
		wait()
2426
		s:Play()
2427
		game:GetService("Debris"):AddItem(s,2)
2428
		if hitsound == "201858024" then
2429
			local s = Instance.new("Sound",t)
2430
			s.Volume=1
2431
			s.Pitch=hitpitch
2432
			s.SoundId="http://www.roblox.com/asset/?id="..hitsound
2433
			wait()
2434
			s:Play()
2435
			game:GetService("Debris"):AddItem(s,2)			
2436
		end
2437
		if addFunc~=nil then
2438
			addFunc(Noob)
2439
		end
2440
		coroutine.resume(coroutine.create(function(t,KnockDir,aYvel,KnockForce,aHitstop)
2441
			if t:FindFirstChild("AIDS"..asset) then t["AIDS"..asset]:Remove() end
2442
			v=Instance.new("BodyVelocity")
2443
			v.Name="AIDS"..asset
2444
			v.P=36
2445
			if KnockDir.magnitude > 0 then
2446
				v.Parent=t
2447
			end
2448
			aYvel = 0
2449
			if KnockDir.y > 1 then
2450
				aYvel=1.2
2451
			end
2452
			v.maxForce=Vector3.new(98000,aYvel*98000,98000)
2453
			v.velocity=Vector3.new(KnockDir.x,KnockDir.y,KnockDir.z)*1.1
2454
			game:GetService("Debris"):AddItem(v,.25)
2455
		end),t,KnockDir,aYvel)
2456
		if Down==true then
2457
			g=Instance.new("BodyAngularVelocity")
2458
			g.P=200
2459
			g.maxTorque=Vector3.new(80000,80000,80000)
2460
			g.angularvelocity=(KnockDir / 1.5 + Vector3.new(math.random(-20,20),math.random(-20,20),math.random(-20,20)))/3
2461
			g.Parent=t
2462
			game:GetService("Debris"):AddItem(g,.5)
2463
			----print(g.Parent)
2464
			if game.Players:GetPlayerFromCharacter(t.Parent) then
2465
				local s = script.ForceState:clone() s.Value.Value="FallingDown" s.Parent=t.Parent
2466
			end
2467
			h:ChangeState(Enum.HumanoidStateType["FallingDown"])
2468
			if ForceDown==true then
2469
				g:Remove()
2470
				t.CFrame=t.CFrame*CFrame.fromEulerAnglesXYZ(math.pi/2,0,0)+Vector3.new(0,.3,0)
2471
				g=Instance.new("BodyGyro")
2472
				g.P=400
2473
				g.maxTorque=Vector3.new(80000,80000,80000)
2474
				g.D=20
2475
				g.cframe=CFrame.new(vPlayer.Character.Torso.Position,vPlayer.Character.Torso.Position-Vector3.new(0,50,0))
2476
				g.Parent=v.Parent
2477
				game:GetService("Debris"):AddItem(g,1)
2478
			end
2479
		end
2480
		
2481
		local enemymana = 1
2482
		
2483
		if enemymana<=0 and canproc == true then
2484
			local s = Instance.new("Sound",t)
2485
			s.Volume=.77
2486
			s.Pitch=.5
2487
			s.SoundId="http://www.roblox.com/asset/?id=".."234365587"
2488
			wait()
2489
			s:Play()
2490
			game:GetService("Debris"):AddItem(s,2)	
2491
			local eff = NewPart(Vector3.new(1,1,1),CFrame.new(t.Position + Vector3.new(math.random(-15,15)/10,math.random(-15,15)/10,math.random(-15,15)/10)) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)),"Really black","SpecialMesh",Vector3.new(1,1,1))
2492
			eff.Parent=workspace
2493
			eff.Mesh.MeshType="Sphere"
2494
			eff.Name="BloodEffect"
2495
			eff.Anchored=true
2496
			eff.CanCollide=false
2497
			game:GetService("Debris"):AddItem(eff,5)
2498
			coroutine.resume(coroutine.create(function(p,A,V,diff)
2499
				for i=1, 10 do
2500
					p.Mesh.Scale = p.Mesh.Scale + Vector3.new(.2,.2,.2)
2501
					p.Transparency=.25 + i/(10/(3/4))
2502
					p.CFrame = t.CFrame * A + diff
2503
					fwait()
2504
				end
2505
				p:Remove()
2506
			end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)),KnockDir/30,(t.Position-eff.Position))
2507
			
2508
			local pla = eff.Position
2509
			local diff = (pla - t.Position)
2510
					local eb = BillboardGui("http://www.roblox.com/asset/?id=235269395",pla,0)
2511
					eb.Parent=workspace
2512
					eb.BillboardGui.ImageLabel.Rotation=math.random(-180,180)
2513
					eb.BillboardGui.Size=UDim2.new(2,0,2,0)
2514
					game:GetService("Debris"):AddItem(eb,3)
2515
					coroutine.resume(coroutine.create(function(p,par,diff)
2516
						local r = math.random(-3,3)*9
2517
						if r > -6 and r < 1 then
2518
							r = -6
2519
						elseif r < 6 and r > -1 then
2520
							r = 6
2521
						end
2522
						for i=1, 12 do
2523
							p.BillboardGui.ImageLabel.ImageTransparency=i/12
2524
							p.BillboardGui.Size=UDim2.new(2 + i/2,0,2 + i/2,0)
2525
							p.BillboardGui.ImageLabel.Rotation = p.BillboardGui.ImageLabel.Rotation + r
2526
							p.CFrame = par.CFrame + diff
2527
							fwait()
2528
						end
2529
						p:Remove()
2530
					end),eb,t,diff)
2531
			
2532
			local pla = eff.Position
2533
			coroutine.resume(coroutine.create(function(par,diff,h)
2534
				for i=1, 3 do
2535
					fwait(.15)
2536
					h:TakeDamage(1) --Ignores defense/anything else pleoz
2537
					local eff = NewPart(Vector3.new(1,1,1),par.CFrame * CFrame.new(math.random(-15,15)/10,math.random(-20,15)/10,math.random(-5,5)/10) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)),"Really black","SpecialMesh",Vector3.new(.5,.5,.5))
2538
					eff.Parent=workspace
2539
					eff.Name="BloodEffect"
2540
					eff.Mesh.MeshType="Sphere"
2541
					eff.Anchored=true
2542
					eff.CanCollide=false
2543
					game:GetService("Debris"):AddItem(eff,5)
2544
					coroutine.resume(coroutine.create(function(p,A,V)
2545
						local R = Vector3.new(math.random(-5,5),math.random(7,9),math.random(-5,5)) / 50 
2546
						for i=1, 6 do
2547
							p.Mesh.Scale = p.Mesh.Scale + Vector3.new(.75,.75,.75)
2548
							p.Transparency=.25 + i/(6/(3/4))
2549
							p.CFrame = p.CFrame * A
2550
							fwait()
2551
						end
2552
						p:Remove()
2553
					end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)),KnockDir/30)
2554
					local eb = BillboardGui("http://www.roblox.com/asset/?id=233069772",eff.Position,0)
2555
					eb.Parent=workspace
2556
					eb.BillboardGui.ImageLabel.Rotation=math.random(-180,180)
2557
					eb.BillboardGui.Size=UDim2.new(2,0,2,0)
2558
					game:GetService("Debris"):AddItem(eb,3)
2559
					coroutine.resume(coroutine.create(function(p)
2560
						local r = math.random(-3,3)*9
2561
						if r > -12 and r < 1 then
2562
							r = -12
2563
						elseif r < 12 and r > -1 then
2564
							r = 12
2565
						end
2566
						for i=1, 6 do
2567
							p.BillboardGui.ImageLabel.ImageTransparency=.25 + i/(6/(3/4))
2568
							p.BillboardGui.Size=UDim2.new(2 + i/2,0,2 + i/2,0)
2569
							p.BillboardGui.ImageLabel.Rotation = p.BillboardGui.ImageLabel.Rotation + r
2570
							fwait()
2571
						end
2572
						p:Remove()
2573
					end),eb)
2574
				end
2575
			end),t,(t.Position-pla),h)
2576
		elseif enemymana>0 and canburn == true then
2577
			local eff = NewPart(Vector3.new(1,1,1),CFrame.new(t.Position + Vector3.new(math.random(-15,15)/10,math.random(-15,15)/10,math.random(-15,15)/10)) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)),"Bright blue","BlockMesh",Vector3.new(.6,.6,.6))
2578
			eff.Parent=workspace
2579
			eff.Name="BloodEffect"
2580
			eff.Anchored=true
2581
			eff.CanCollide=false
2582
			game:GetService("Debris"):AddItem(eff,5)
2583
			coroutine.resume(coroutine.create(function(p,A,V,diff,par)
2584
				for i=1, 10 do
2585
					p.Mesh.Scale = p.Mesh.Scale + Vector3.new(.4,.4,.4)
2586
					p.Transparency=.25 + i/(10/(3/4))
2587
					p.CFrame = par.CFrame * A + diff
2588
					fwait()
2589
				end
2590
				p:Remove()
2591
			end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)),KnockDir/30,(eff.Position-t.Position),t)
2592
			local pla = eff.Position
2593
			local diff = (pla - t.Position)
2594
					local eb = BillboardGui("http://www.roblox.com/asset/?id=235269378",pla,0)
2595
					eb.Parent=workspace
2596
					eb.BillboardGui.ImageLabel.Rotation=math.random(-180,180)
2597
					eb.BillboardGui.Size=UDim2.new(2,0,2,0)
2598
					game:GetService("Debris"):AddItem(eb,3)
2599
					coroutine.resume(coroutine.create(function(p,par,diff)
2600
						local r = math.random(-3,3)*9
2601
						if r > -6 and r < 1 then
2602
							r = -6
2603
						elseif r < 6 and r > -1 then
2604
							r = 6
2605
						end
2606
						for i=1, 8 do
2607
							p.BillboardGui.ImageLabel.ImageTransparency=i/8
2608
							p.BillboardGui.Size=UDim2.new(2 + i/2,0,2 + i/2,0)
2609
							p.BillboardGui.ImageLabel.Rotation = p.BillboardGui.ImageLabel.Rotation + r
2610
							p.CFrame = par.CFrame + diff
2611
							fwait()
2612
						end
2613
						p:Remove()
2614
					end),eb,t,diff)
2615
			
2616
			coroutine.resume(coroutine.create(function(par,diff,man,manaloss,scrub)
2617
				print(manaloss+1," lost mana")
2618
				for i=1, manaloss+1 do
2619
					man = man - 1
2620
					--scrub.Value.Value = scrub.Value.Value-1
2621
					local eff = NewPart(Vector3.new(1,1,1),CFrame.new(par.Position + diff + Vector3.new(math.random(-5,5)/20,math.random(-5,5)/20,math.random(-5,5)/20)) * CFrame.Angles(math.random(-15,15),math.random(-15,15),math.random(-15,15)),"Bright blue","BlockMesh",Vector3.new(.5,.5,.5))
2622
					eff.Parent=workspace
2623
					eff.Name="BloodEffect"
2624
					eff.Anchored=true
2625
					eff.CanCollide=false
2626
					game:GetService("Debris"):AddItem(eff,5)
2627
					coroutine.resume(coroutine.create(function(p,A,V)
2628
						local R = Vector3.new(math.random(-5,5),math.random(7,9),math.random(-5,5)) / 50 
2629
						for i=1, 20 do
2630
							p.Mesh.Scale = p.Mesh.Scale + Vector3.new(.05,.05,.05)
2631
							p.Transparency=.5 + i/40
2632
							p.CFrame = p.CFrame * A + R - Vector3.new(0,9.82/30/9*(i-1),0)
2633
							fwait()
2634
						end
2635
						p:Remove()
2636
					end),eff,CFrame.Angles(math.rad(math.random(-4,4)*4),math.rad(math.random(-4,4)*3),math.rad(math.random(-4,4)*2)),KnockDir/30)
2637
					fwait(.3)
2638
				end
2639
			end),t,(t.Position-pla),enemymana,math.ceil(Damage*.4),t.Parent)
2640
		end
2641
		h:TakeDamage(Damage*1)
2642
	end
2643
end
2644
2645
coroutine.resume(coroutine.create(function()
2646
	while true do
2647
		fwait()
2648
		if Hitstop>1 then
2649
			vPlayer.Character.HumanoidRootPart.Anchored=true
2650
		else
2651
			vPlayer.Character.HumanoidRootPart.Anchored=false
2652
		end
2653
		if Comboing==true then
2654
			if InfoGui==nil then
2655
				
2656
				InfoGui=script.InfoGui:clone()
2657
				if vPlayer:FindFirstChild("PlayerGui")~=nil then
2658
					InfoGui.Parent=vPlayer.PlayerGui
2659
				end
2660
				
2661
				Scrubs=0
2662
				for _,v in pairs(ComboNubs) do
2663
					Scrubs=Scrubs+1
2664
				end
2665
				if Scrubs==0 then Scrubs=1 end
2666
				
2667
				InfoGui.Frame.HitsLabel.Text=ComboHits
2668
				InfoGui.Frame.DamageLabel.Text=LastDamage
2669
				InfoGui.Frame.EffectiveDamageLabel.Text=LastDamage / Scrubs
2670
				
2671
			else
2672
				
2673
				Scrubs=0
2674
				for _,v in pairs(ComboNubs) do
2675
					Scrubs=Scrubs+1
2676
				end
2677
				if Scrubs==0 then Scrubs=1 end
2678
				
2679
				InfoGui.Frame.HitsLabel.Text=ComboHits
2680
				InfoGui.Frame.DamageLabel.Text=math.floor(LastDamage)
2681
				InfoGui.Frame.EffectiveDamageLabel.Text=math.floor(LastDamage / Scrubs)
2682
				TimeDiff = LastHitTime - time()
2683
				
2684
				InfoGui.Frame.HitstunFrame.Fill.Size=UDim2.new(0,40 * TimeDiff,0,10)
2685
				InfoGui.Frame.HitstunFrame.Fill.Position=UDim2.new(.5,-20 * TimeDiff,0,0)
2686
				
2687
			end
2688
		else
2689
			if InfoGui~=nil then
2690
				coroutine.resume(coroutine.create(function(g)
2691
					for i=1, 15 do
2692
						g.Frame.Position=g.Frame.Position+UDim2.new(0,10 + i,0,0)
2693
						fwait(.03)
2694
					end
2695
					g:Remove()
2696
				end),InfoGui)
2697
				InfoGui=nil
2698
			end
2699
		end
2700
		if LastHitTime<=time() and Comboing==true then
2701
			Scrubs=0
2702
			for _,v in pairs(ComboNubs) do
2703
				Scrubs=Scrubs+1
2704
			end
2705
			if Scrubs==0 then Scrubs=1 end
2706
			ComboNubs={}
2707
			LastDamage=LastDamage/Scrubs
2708
			----print("Combo Ended: "..LastDamage.." effective damage.")
2709
			fwait(.05)
2710
			ComboHits=0
2711
			LastDamage=0
2712
			Comboing=false
2713
		end
2714
	end
2715
end))
2716
2717
addonHoldDown=function(Noob)
2718
	local t=Noob:FindFirstChild("HumanoidRootPart")
2719
	if t==nil then
2720
		t=Noob:FindFirstChild("Torso")
2721
	end
2722
	add=Vector3.new(0,0,0)
2723
	if t:FindFirstChild("AIDS")~=nil then
2724
		add=t.AIDS.velocity
2725
		t.AIDS:Remove()
2726
		----print(":)")
2727
	end
2728
	v=Instance.new("BodyPosition")
2729
	v.P=2000
2730
	v.D=v.D/2
2731
	v.maxForce=Vector3.new(6000000000,600000,6000000000)
2732
	v.position=t.Position-Vector3.new(0,10,0)+add
2733
	v.Parent=t
2734
	game:GetService("Debris"):AddItem(v,1.2)
2735
	Noob.Humanoid.PlatformStand=true
2736
	coroutine.resume(coroutine.create(function(noob,t)
2737
		fwait(.5)
2738
		while t:FindFirstChild("BodyPosition")~=nil do
2739
			fwait(.01)
2740
		end
2741
		noob.PlatformStand=false
2742
	end),Noob.Humanoid,t)
2743
end
2744
2745
addonCullMovers=function(Noob)
2746
	local t=Noob:FindFirstChild("HumanoidRootPart")
2747
	if t==nil then
2748
		t=Noob:FindFirstChild("Torso")
2749
	end
2750
	for _,v in pairs(t:children()) do
2751
		if v:IsA("BodyMover") then
2752
			v:Remove()
2753
		end
2754
	end
2755
end
2756
2757
LerpWelds=function(orig,alpha,RJ0,N0,RS0,LS0,RH0,LH0,GR0,RJ1,N1,RS1,LS1,RH1,LH1)
2758
	local e = tick()
2759
	RootJoint.C0 = clerp(orig[1],RJ0,alpha)
2760
	Neck.C0 = clerp(orig[2],N0,alpha)
2761
	RightShoulder.C0 = clerp(orig[3],RS0,alpha)
2762
	LeftShoulder.C0 = clerp(orig[4],LS0,alpha)
2763
	RightHip.C0 = clerp(orig[5],RH0,alpha)
2764
	LeftHip.C0 = clerp(orig[6],LH0,alpha)
2765
	Grip.C0 = clerp(orig[7],GR0,alpha)
2766
	
2767
	RootJoint.C1 = clerp(orig[8],RJ1,alpha)
2768
	Neck.C1 = clerp(orig[9],N1,alpha)
2769
	RightShoulder.C1 = clerp(orig[10],RS1,alpha)
2770
	LeftShoulder.C1 = clerp(orig[11],LS1,alpha)
2771
	RightHip.C1 = clerp(orig[12],RH1,alpha)
2772
	LeftHip.C1 = clerp(orig[13],LH1,alpha)
2773
	
2774
	lastframe = {RootJoint.C0,Neck.C0,RightShoulder.C0,LeftShoulder.C0,RightHip.C0,LeftHip.C0,Grip.C0,RootJoint.C1,Neck.C1,RightShoulder.C1,LeftShoulder.C1,RightHip.C1,LeftHip.C1}
2775
	return (tick() - e)
2776
end
2777
2778
sRootJoint,sNeck,sRightShoulder,sLeftShoulder,sRightHip,sLeftHip,sGrip = Instance.new("Motor6D"),Instance.new("Motor6D"),Instance.new("Motor6D"),Instance.new("Motor6D"),Instance.new("Motor6D"),Instance.new("Motor6D"),Instance.new("Motor6D"),Instance.new("Motor6D")
2779
sresetWelds=function()
2780
	sRootJoint.C0=RootJointC0
2781
	sNeck.C0=NeckC0
2782
	sRightShoulder.C0=RightShoulderC0
2783
	sLeftShoulder.C0=LeftShoulderC0
2784
	sRightHip.C0=RightHipC0
2785
	sLeftHip.C0=LeftHipC0
2786
	sRootJoint.C1=RootJointC1
2787
	sNeck.C1=NeckC1
2788
	sRightShoulder.C1=RightShoulderC1
2789
	sLeftShoulder.C1=LeftShoulderC1
2790
	sRightHip.C1=RightHipC1
2791
	sLeftHip.C1=LeftHipC1
2792
	sGrip.C0=GripC0
2793
end
2794
2795
--//XLegoX's spherical linear interpolation
2796
2797
function clerp(a,b,t) 
2798
	local qa = {QuaternionFromCFrame(a)}
2799
	local qb = {QuaternionFromCFrame(b)} 
2800
	local ax, ay, az = a.x, a.y, a.z 
2801
	local bx, by, bz = b.x, b.y, b.z
2802
	local _t = 1-t
2803
	return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t)) 
2804
end 
2805
2806
function QuaternionFromCFrame(cf) 
2807
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() 
2808
	local trace = m00 + m11 + m22 
2809
	if trace > 0 then 
2810
	local s = math.sqrt(1 + trace) 
2811
	local recip = 0.5/s 
2812
	return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 
2813
	else 
2814
	local i = 0 
2815
	if m11 > m00 then
2816
	i = 1
2817
	end
2818
	if m22 > (i == 0 and m00 or m11) then 
2819
	i = 2 
2820
	end 
2821
	if i == 0 then 
2822
	local s = math.sqrt(m00-m11-m22+1) 
2823
	local recip = 0.5/s 
2824
	return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip 
2825
	elseif i == 1 then 
2826
	local s = math.sqrt(m11-m22-m00+1) 
2827
	local recip = 0.5/s 
2828
	return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip 
2829
	elseif i == 2 then 
2830
	local s = math.sqrt(m22-m00-m11+1) 
2831
	local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip 
2832
	end 
2833
	end 
2834
end
2835
2836
function QuaternionToCFrame(px, py, pz, x, y, z, w) 
2837
	local xs, ys, zs = x + x, y + y, z + z 
2838
	local wx, wy, wz = w*xs, w*ys, w*zs 
2839
	local xx = x*xs 
2840
	local xy = x*ys 
2841
	local xz = x*zs 
2842
	local yy = y*ys 
2843
	local yz = y*zs 
2844
	local zz = z*zs 
2845
	return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) 
2846
end
2847
2848
function QuaternionSlerp(a, b, t) 
2849
	local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] 
2850
	local startInterp, finishInterp; 
2851
	if cosTheta >= 0.0001 then 
2852
	if (1 - cosTheta) > 0.0001 then 
2853
	local theta = math.acos(cosTheta) 
2854
	local invSinTheta = 1/math.sin(theta) 
2855
	startInterp = math.sin((1-t)*theta)*invSinTheta 
2856
	finishInterp = math.sin(t*theta)*invSinTheta  
2857
	else 
2858
	startInterp = 1-t 
2859
	finishInterp = t 
2860
	end 
2861
	else 
2862
	if (1+cosTheta) > 0.0001 then 
2863
	local theta = math.acos(-cosTheta) 
2864
	local invSinTheta = 1/math.sin(theta) 
2865
	startInterp = math.sin((t-1)*theta)*invSinTheta 
2866
	finishInterp = math.sin(t*theta)*invSinTheta 
2867
	else 
2868
	startInterp = t-1 
2869
	finishInterp = t 
2870
	end 
2871
	end 
2872
	return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp 
2873
end
2874
2875
PlayerKeys={}
2876
2877
-----
2878
2879
-----
2880
2881
CurrentAnimation=nil
2882
Hitstop=0
2883
2884
DesiredWalkspeed=18
2885
2886
-----
2887
-----
2888
-----
2889
-----
2890
2891
CanInterrupt=function(t)
2892
	Tool.Status.AnimCanBeInterrupted.Value=t
2893
end
2894
2895
PlayerCanJump=function()
2896
	if CurrentAnimation~=nil then
2897
		local doescancel=false
2898
		for _,v in pairs(CurrentAnimation["Cancels"]) do
2899
			if v=="Jump" or v=="Everything" then
2900
				doescancel=true
2901
				break
2902
			end
2903
		end
2904
		if Tool.Status.AnimCanBeInterrupted.Value==true then
2905
			return doescancel
2906
		else
2907
			return false
2908
		end
2909
	end
2910
end
2911
2912
2913
2914
2915
-----------
2916
-----------
2917
2918
--[[Section 3: ATTACKING]]
2919
2920
ComboNubs={}
2921
GetNubs=function()
2922
	scrubs={}
2923
	for _,v in pairs(game.Workspace:children()) do
2924
		if v:FindFirstChild("Humanoid")~=nil and v:FindFirstChild("Torso")~=nil and v.Name~=game.Players.LocalPlayer.Name then
2925
			table.insert(scrubs,v)
2926
		end
2927
	end
2928
	Nubs=scrubs
2929
end
2930
2931
PlaySound=function(SName,Vol,Pitch,Par)
2932
	if Par==nil then Par=script end
2933
	local s=Instance.new("Sound")
2934
	s.Volume=Vol
2935
	s.Pitch=Pitch
2936
	s.SoundId="http://www.roblox.com/asset/?id="..SName
2937
	s.Parent=Par
2938
	wait()
2939
	s:Play()
2940
	game:GetService("Debris"):AddItem(s,10)
2941
end
2942
2943
-----------
2944
-----------
2945
2946
2947
-----
2948
2949
2950
-------
2951
-------
2952
2953
--[[Section 4: HARD ANIMSET FUNCTIONS]]
2954
2955
Stand=function()
2956
	if TrackFunction~=nil then
2957
		TrackFunction:disconnect()
2958
	end
2959
	if CurrentAnimation~=Animations["Stand"] then
2960
		RequestAnimationChange("Stand",0)
2961
		Tool.Status.AnimFrame.Value=0
2962
	end
2963
	local el = 40
2964
	local elv = 1
2965
	local cel = 0
2966
	local clastframe = lastframe
2967
	TrackFunction=FakeHeartbeat.Event:connect(function(Step)
2968
		if cel > 3 then
2969
			LerpWelds({Animations["Stand"]["Animation"](0)},1,Animations["Stand"]["Animation"](0))
2970
		elseif cel <= 3 then
2971
			LerpWelds(clastframe,cel/3,Animations["Stand"]["Animation"](0))
2972
		end
2973
		cel = cel + 1
2974
	end)
2975
end
2976
2977
Walk=function()
2978
	if TrackFunction~=nil then
2979
		TrackFunction:disconnect()
2980
	end
2981
	if CurrentAnimation~=Animations["Walk"] then
2982
		RequestAnimationChange("Walk",0)
2983
		Tool.Status.AnimFrame.Value=0
2984
	end
2985
	local e = 0
2986
	local clastframe = lastframe
2987
	TrackFunction=FakeHeartbeat.Event:connect(function(Step)
2988
		if e <= 5 then
2989
			LerpWelds(clastframe,e/5,Animations["Walk"]["Animation"](0))
2990
		else
2991
			LerpWelds(clastframe,1,Animations["Walk"]["Animation"](0))
2992
		end
2993
		e = e+1
2994
	end)
2995
end
2996
2997
DesiredWalkspeedLast=18
2998
PlayerInAir=false
2999
lastplayervel=0
3000
3001
Jump=function()
3002
	if Tool.Status.AnimCanBeInterrupted.Value==false then return end
3003
	if TrackFunction~=nil then
3004
		TrackFunction:disconnect()
3005
	end
3006
	
3007
	if CurrentAnimation~=Animations["Jump"] then
3008
		RequestAnimationChange("Jump",0)
3009
		Tool.Status.AnimFrame.Value=0
3010
		------print("Jumping!")
3011
	end
3012
	Hitstop=0
3013
	local e = 0
3014
	local clastframe = lastframe
3015
	TrackFunction=FakeHeartbeat.Event:connect(function(Step)
3016
		if e <= 3 then
3017
			LerpWelds(clastframe,e/3,Animations["Jump"]["Animation"](0))
3018
		else
3019
			LerpWelds(clastframe,1,Animations["Jump"]["Animation"](0))
3020
		end
3021
		e = e+1
3022
	end)
3023
	enddir=Vector3.new(0,0,0)
3024
	
3025
	lastplayervel=enddir
3026
	
3027
	v_h=vPlayer.Character.Torso:FindFirstChild("JUMP_PROP")
3028
	if v_h==nil then
3029
		v_h=Instance.new("BodyVelocity")
3030
		v_h.P=650
3031
		v_h.maxForce=Vector3.new(0,2800000,0)
3032
		v_h.velocity=Vector3.new(lastplayervel.x,55,lastplayervel.z)
3033
		v_h.Parent=vPlayer.Character.Torso
3034
		v_h.Name="JUMP_PROP"
3035
	else
3036
		v_h.P=650
3037
		v_h.maxForce=Vector3.new(0,2800000,0)
3038
		v_h.velocity=Vector3.new(lastplayervel.x,75,lastplayervel.z)
3039
	end
3040
3041
	
3042
	local cpos=vPlayer.Character.Torso.CFrame*CFrame.new(0,-1,0)
3043
	local par,loc=game.Workspace:FindPartOnRay(Ray.new(cpos.p,Vector3.new(0,-8,0)),vPlayer.Character)
3044
	
3045
	timejump=time()
3046
	bumped=false
3047
	canland=false
3048
	PlayerState="Jumping"
3049
	CanInterrupt(true)
3050
	local ttimejump=time()
3051
	local rr = TrackFunction
3052
	DesiredMovespeed=19
3053
	while v_h.Parent~=nil and timejump==ttimejump do
3054
		PlayerInAir=true
3055
		if time()-timejump>.4 then
3056
			canland=true
3057
		end
3058
		if (loc-cpos.p).magnitude<6 and canland==true or rawequal(rr,TrackFunction) == false then
3059
			break
3060
		end
3061
		local ss = game:GetService("RunService").Heartbeat:wait()
3062
		cpos=vPlayer.Character.Torso.CFrame*CFrame.new(0,.8,0)
3063
		par,loc=game.Workspace:FindPartOnRay(Ray.new(cpos.p,Vector3.new(0,-15,0)),vPlayer.Character)
3064
		if vPlayer.Character.HumanoidRootPart.Anchored==false then
3065
			v_h.velocity=v_h.velocity-Vector3.new(0,186.2*ss,0)
3066
		end
3067
	end
3068
	if timejump~=ttimejump or rawequal(rr,TrackFunction) == false then
3069
		return
3070
	end
3071
	
3072
	PlayerState="Standing"
3073
	PlayerInAir=false
3074
	
3075
	DesiredMovespeed=19
3076
	vPlayer.Character.Humanoid.WalkSpeed=DesiredMovespeed
3077
	v_h:Remove()
3078
	CanInterrupt(true)
3079
	PlayerIsAttacking=false
3080
	Stand()
3081
end
3082
Jump_Cont=function()
3083
	lastplayervel = vPlayer.Character.Torso.Velocity
3084
	cpos=vPlayer.Character.Torso.CFrame*CFrame.new(0,.8,0)
3085
	par,loc=game.Workspace:FindPartOnRay(Ray.new(cpos.p,Vector3.new(0,-15,0)),vPlayer.Character)
3086
	if (loc-cpos.p).magnitude<4 then
3087
		PlayerState="Standing"
3088
		CanInterrupt(true)
3089
		return Stand()
3090
	end
3091
	if TrackFunction~=nil then
3092
		TrackFunction:disconnect()
3093
		TrackFunction=nil
3094
	end
3095
	
3096
	if CurrentAnimation~=Animations["Jump"] then
3097
		RequestAnimationChange("Jump",0)
3098
		Tool.Status.AnimFrame.Value=0
3099
		CurrentAnimation = Animations["Jump"]
3100
		------print("Jumping!")
3101
	end
3102
	Hitstop=0
3103
	local e = 0
3104
	local clastframe = lastframe
3105
	TrackFunction=FakeHeartbeat.Event:connect(function(Step)
3106
		if e <= 4 then
3107
			LerpWelds(clastframe,e/4,Animations["Jump"]["Animation"](0))
3108
		else
3109
			LerpWelds(clastframe,1,Animations["Jump"]["Animation"](0))
3110
		end
3111
		e = e+1
3112
	end)
3113
	timejump=time()
3114
	bumped=false
3115
	canland=false
3116
	PlayerState="Jumping"
3117
	CanInterrupt(true)
3118
	local ttimejump=time()
3119
	local rr = TrackFunction
3120
3121
	v_h=vPlayer.Character.Torso:FindFirstChild("JUMP_PROP")
3122
	if v_h==nil then
3123
		v_h=Instance.new("BodyVelocity")
3124
		v_h.P=650
3125
		v_h.maxForce=Vector3.new(0,2800000,0)
3126
		v_h.velocity=Vector3.new(lastplayervel.x,lastplayervel.y,lastplayervel.z)
3127
		v_h.Parent=vPlayer.Character.Torso
3128
		v_h.Name="JUMP_PROP"
3129
	else
3130
		v_h.P=650
3131
		v_h.maxForce=Vector3.new(0,2800000,0)
3132
		v_h.velocity=Vector3.new(lastplayervel.x,lastplayervel.y,lastplayervel.z)
3133
	end
3134
3135
	local cpos=vPlayer.Character.Torso.CFrame*CFrame.new(0,-1,0)
3136
	local par,loc=game.Workspace:FindPartOnRay(Ray.new(cpos.p,Vector3.new(0,-8,0)),vPlayer.Character)
3137
	
3138
	timejump=time()
3139
	bumped=false
3140
	canland=false
3141
	PlayerState="Jumping"
3142
	CanInterrupt(true)
3143
	local ttimejump=time()
3144
	local rr = TrackFunction
3145
	DesiredMovespeed = 18
3146
	while v_h.Parent~=nil and timejump==ttimejump do
3147
		PlayerInAir=true
3148
		if time()-timejump>.4 then
3149
			canland=true
3150
		end
3151
		if (loc-cpos.p).magnitude<6 and canland==true or rawequal(rr,TrackFunction) == false then
3152
			break
3153
		end
3154
		local ss = game:GetService("RunService").Heartbeat:wait()
3155
		cpos=vPlayer.Character.Torso.CFrame*CFrame.new(0,.8,0)
3156
		par,loc=game.Workspace:FindPartOnRay(Ray.new(cpos.p,Vector3.new(0,-15,0)),vPlayer.Character)
3157
		if vPlayer.Character.HumanoidRootPart.Anchored==false then
3158
			v_h.velocity=v_h.velocity-Vector3.new(0,186.2*ss,0)
3159
		end
3160
	end
3161
	
3162
	if timejump~=ttimejump or rawequal(rr,TrackFunction) == false then
3163
		return
3164
	end
3165
	
3166
	PlayerState="Standing"
3167
	PlayerInAir=false
3168
	
3169
	DesiredMovespeed=19
3170
	vPlayer.Character.Humanoid.WalkSpeed=DesiredMovespeed
3171
	v_h:Remove()
3172
	CanInterrupt(true)
3173
	DesiredMovespeed=19
3174
	PlayerIsAttacking=false
3175
	CanDoubleJump=true
3176
	TrackFunction:disconnect()
3177
	TrackFunction = nil
3178
	Walk()
3179
end
3180
3181
3182
-------
3183
-------
3184
3185
-------------------------------
3186
--------------------------------
3187
---------CORE FUNCTIONS----------
3188
--------------------------------
3189
-------------------------------
3190
Hitstop=0
3191
RequestNewFrame=function(f)
3192
	if CurrentAnimation==nil then return end
3193
	if Hitstop~=nil then
3194
		if Hitstop>0 then
3195
			Hitstop=Hitstop-1
3196
		else
3197
			CurrentAnimation["Animation"](0)
3198
			------print(f)
3199
		end
3200
	end
3201
	return f
3202
end
3203
RequestAnimationChange=function(n,f)
3204
	_nanim=Animations[n]
3205
	if CurrentAnimation~=nil then
3206
		local doescancel=false
3207
		for _,v in pairs(CurrentAnimation["Cancels"]) do
3208
			if v==_nanim["Reference"] or v=="Everything" then
3209
				doescancel=true
3210
				break
3211
			end
3212
		end
3213
		if doescancel==true and Tool.Status.AnimCanBeInterrupted.Value==true then
3214
			CurrentAnimation=_nanim
3215
3216
			return CurrentAnimation
3217
		else
3218
3219
		end
3220
	else
3221
		CurrentAnimation=Animations[n] --:/
3222
	end
3223
	return false
3224
end
3225
3226
getWelds=function(c) --designate weld variables
3227
	local t=c.Torso
3228
	local hrp=c.HumanoidRootPart.RootJoint
3229
	RightShoulder=t:FindFirstChild("Right Shoulder")
3230
	LeftShoulder=t:FindFirstChild("Left Shoulder")
3231
	RightHip=t:FindFirstChild("Right Hip")
3232
	LeftHip=t:FindFirstChild("Left Hip")
3233
	RootJoint=hrp
3234
	Neck=t:FindFirstChild("Neck")
3235
end
3236
resetWelds=function(ext,occ) --extent 1-3; occlusion
3237
	--1 == reset desiredangle/currentangle
3238
	--2 == reset C0/C1
3239
	--3 == reset both des/cur/c0/c1
3240
	local r={RightShoulder,LeftShoulder,RightHip,LeftHip,RootJoint,Neck}
3241
	for _,v in pairs(r) do
3242
		for i=1, #occ do
3243
			if occ[i]==v then
3244
				table.remove(r,_)
3245
			end
3246
		end
3247
	end
3248
	for _,v in pairs(r) do
3249
		if v.Name=="Right Shoulder" then
3250
			if ext==1 then
3251
				v.DesiredAngle=0
3252
				v.CurrentAngle=0
3253
			elseif ext==2 then
3254
				v.C0=RightShoulderC0
3255
				v.C1=RightShoulderC1
3256
			elseif ext==3 then
3257
				v.DesiredAngle=0
3258
				v.CurrentAngle=0
3259
				v.C0=RightShoulderC0
3260
				v.C1=RightShoulderC1
3261
			end
3262
		elseif v.Name=="Left Shoulder" then
3263
			if ext==1 then
3264
				v.DesiredAngle=0
3265
				v.CurrentAngle=0
3266
			elseif ext==2 then
3267
				v.C0=LeftShoulderC0
3268
				v.C1=LeftShoulderC1
3269
			elseif ext==3 then
3270
				v.DesiredAngle=0
3271
				v.CurrentAngle=0
3272
				v.C0=LeftShoulderC0
3273
				v.C1=LeftShoulderC1
3274
			end
3275
		elseif v.Name=="Right Hip" then
3276
			if ext==1 then
3277
				v.DesiredAngle=0
3278
				v.CurrentAngle=0
3279
			elseif ext==2 then
3280
				v.C0=RightHipC0
3281
				v.C1=RightHipC1
3282
			elseif ext==3 then
3283
				v.DesiredAngle=0
3284
				v.CurrentAngle=0
3285
				v.C0=RightHipC0
3286
				v.C1=RightHipC1
3287
			end
3288
		elseif v.Name=="Left Hip" then
3289
			if ext==1 then
3290
				v.DesiredAngle=0
3291
				v.CurrentAngle=0
3292
			elseif ext==2 then
3293
				v.C0=LeftHipC0
3294
				v.C1=LeftHipC1
3295
			elseif ext==3 then
3296
				v.DesiredAngle=0
3297
				v.CurrentAngle=0
3298
				v.C0=LeftHipC0
3299
				v.C1=LeftHipC1
3300
			end
3301
		elseif v.Name=="Neck" then
3302
			if ext==1 then
3303
				v.DesiredAngle=0
3304
				v.CurrentAngle=0
3305
			elseif ext==2 then
3306
				v.C0=NeckC0
3307
				v.C1=NeckC1
3308
			elseif ext==3 then
3309
				v.DesiredAngle=0
3310
				v.CurrentAngle=0
3311
				v.C0=NeckC0
3312
				v.C1=NeckC1
3313
			end
3314
		elseif v.Name=="RootJoint" then
3315
			if ext==1 then
3316
				v.DesiredAngle=0
3317
				v.CurrentAngle=0
3318
			elseif ext==2 then
3319
				v.C0=RootJointC0
3320
				v.C1=RootJointC1
3321
			elseif ext==3 then
3322
				v.DesiredAngle=0
3323
				v.CurrentAngle=0
3324
				v.C0=RootJointC0
3325
				v.C1=RootJointC1
3326
			end
3327
		elseif v.Name=="RightGrip" then
3328
			if ext==1 then
3329
			elseif ext==2 then
3330
				Grip.C0=nGrip.C0
3331
				Grip.C1=nGrip.C1
3332
			elseif ext==3 then
3333
				Grip.C0=nGrip.C0
3334
				Grip.C1=nGrip.C1
3335
			end
3336
		end
3337
	end
3338
end
3339
3340
setMotorParameters=function(Motor,DesiredAngle,CurrentAngle,MaxVelocity,C0,C1)
3341
	if C0==nil then C0=Motor.C0 end
3342
	if C1==nil then C1=Motor.C1 end
3343
	if DesiredAngle==nil then DesiredAngle=Motor.DesiredAngle end
3344
	if CurrentAngle==nil then CurrentAngle=Motor.CurrentAngle end
3345
	if MaxVelocity==nil then MaxVelocity=Motor.MaxVelocity end
3346
	Motor.C0=C0
3347
	Motor.C1=C1
3348
	Motor.DesiredAngle=DesiredAngle
3349
	Motor.CurrentAngle=CurrentAngle
3350
	Motor.MaxVelocity=MaxVelocity
3351
end
3352
3353
PlayerIsAttacking=false
3354
PlayerBeingAttacked=false
3355
PlayerState="Standing"
3356
3357
getCharacterState=function()
3358
	if Tool.Status.AnimCanBeInterrupted.Value==false or PlayerIsAttacking==true then return end
3359
	local CPlayer=game.Players.LocalPlayer.Character
3360
	local moveVelocity=CPlayer.HumanoidRootPart.Velocity.magnitude
3361
	if PlayerIsAttacking==false and PlayerState~="Jumping" then
3362
		if moveVelocity >= 5 then
3363
			PlayerState="Moving"
3364
			if StickPos>3 or CurrentCameraState=="3D" then
3365
				if MovementPreference=="Walk" then
3366
					if CurrentAnimation~=Animations["Walk"] and Tool.Status.AnimCanBeInterrupted.Value==true and PlayerState~="Jumping" then
3367
						Walk()
3368
					end
3369
				end
3370
			end
3371
		else
3372
			PlayerState="Standing"
3373
			----print("SS")
3374
			if StickPos>3 or CurrentCameraState=="3D" then
3375
				if CurrentAnimation~=Animations["Stand"] and Tool.Status.AnimCanBeInterrupted.Value==true then
3376
					DesiredWalkspeed=18
3377
					Stand()
3378
				end
3379
			end
3380
		end
3381
	end
3382
end
3383
lastinput=time()
3384
MovementPreference="Walk"
3385
3386
playerDash=function()
3387
end
3388
3389
----
3390
3391
NewInput=function(Key,atTick,Edge)
3392
	local new={["Input"]=Key,["Tick"]=atTick,["Edge"]=Edge,["Age"]=0}
3393
	table.insert(PlayerInputs,new)
3394
end
3395
3396
FindInputStrings=function()
3397
	
3398
	local curtime=tick()
3399
	local strunginputs={}
3400
	for _,v in pairs(PlayerInputs) do
3401
		if curtime - v["Tick"] <= PlayerInputStringFrame then
3402
			table.insert(strunginputs,v)
3403
		end
3404
	end
3405
	table.sort(strunginputs,(function(x,y) if x["Tick"]<y["Tick"] then return true end return false end))
3406
	
3407
	return strunginputs
3408
end
3409
3410
MorphInputs=function(i)
3411
	
3412
	i=string.upper(i)
3413
	
3414
	if CurrentCameraState=="3D" then
3415
		i=string.gsub(i,"A","")
3416
		i=string.gsub(i,"S","<")
3417
		i=string.gsub(i,"D","")
3418
		i=string.gsub(i,"W",">")
3419
	else
3420
		if PlayerFacing=="Left" then
3421
			i=string.gsub(i,"A","<")
3422
			i=string.gsub(i,"S","v")
3423
			i=string.gsub(i,"D",">")
3424
			i=string.gsub(i,"W","^")
3425
		else
3426
			i=string.gsub(i,"A",">")
3427
			i=string.gsub(i,"S","v")
3428
			i=string.gsub(i,"D","<")
3429
			i=string.gsub(i,"W","^")
3430
		end
3431
	end
3432
	
3433
	return i
3434
	
3435
end
3436
3437
CullPlayerInput=function()
3438
	local toremove={}
3439
	for _,v in pairs(PlayerInputs) do
3440
		v["Age"]=v["Age"]+1
3441
		if tick() - v["Tick"] > (PlayerInputStringFrame+.05) or _>PlayerInputCullThreshold then
3442
			table.remove(PlayerInputs,_)
3443
		end
3444
	end
3445
	table.sort(PlayerInputs,(function(x,y) if x["Tick"]<y["Tick"] then return true end return false end))
3446
end
3447
3448
IgnoreEdge=function(st)
3449
	str=string.gsub(st,".%-","")
3450
	str=string.gsub(str,"%+","")
3451
	return str
3452
end
3453
RequestNewAnimation=RequestAnimationChange
3454
LastDashInput=time()
3455
3456
CheckDeb=true
3457
LastKeyCheck=""
3458
LastCheckTime=time()
3459
lastnormal=""
3460
CheckNormals=function()
3461
	KeyCheck=""
3462
	if PlayerKeys["mouse"]~=nil then
3463
		KeyCheck="M"
3464
	else
3465
		lastnormal=""
3466
	end
3467
	local ee = ""
3468
	if PlayerKeys["e"] ~= nil then
3469
		ee = "E"
3470
	end
3471
	if PlayerKeys["z"] ~= nil then
3472
		KeyCheck = "Z"
3473
	end
3474
	if PlayerKeys["x"] ~= nil then
3475
		KeyCheck = "X"
3476
	end
3477
	if PlayerKeys["c"] ~= nil then
3478
		KeyCheck = "C"
3479
	end
3480
	if PlayerKeys["v"] ~= nil then
3481
		KeyCheck = "V"
3482
	end
3483
	
3484
3485
3486
3487
	KeyCheck = string.upper(KeyCheck)
3488
	if InputNormals[ee..lastnormal..KeyCheck]~=nil and CheckDeb==true and LastKeyCheck~=KeyCheck and Tool.Status.AnimCanBeInterrupted.Value==true and PlayerState~="Jumping" then
3489
		LastKeyCheck=KeyCheck
3490
		LastCheckTime=time()
3491
		Hitstop=0
3492
		print("JIMMIES RUSTLED")
3493
		----print(j..lastnormal..KeyCheck)
3494
		GetNubs()
3495
		InputNormals[ee..lastnormal..KeyCheck]()
3496
	end
3497
	if time()-LastCheckTime > .23 then
3498
		LastKeyCheck=""
3499
	end
3500
end
3501
timejump=time()
3502
DetectInput=function()
3503
	local Scrub=FindInputStrings()
3504
	DURRD=false
3505
	if PlayerIsAttacking==false then
3506
		BodyGyro:Remove()
3507
		BodyVel:Remove()
3508
		vPlayer.Character.Humanoid.WalkSpeed=DesiredWalkspeed
3509
	else
3510
		vPlayer.Character.Humanoid.WalkSpeed=0
3511
	end
3512
	if #Scrub>0 then
3513
		local input=""
3514
		for _,v in pairs(Scrub) do
3515
			input=input..v["Input"]..v["Edge"]
3516
		end
3517
		input=string.upper(MorphInputs(input))
3518
		edgelessinput=string.upper(IgnoreEdge(input))
3519
		DURRD=false
3520
		
3521
		--[[for _,v in pairs(InputNormals) do
3522
			for __,vv in pairs(v["Inputs"]) do
3523
				print(vv.Name)
3524
				if edgelessinput==vv and Tool.Status.AnimCanBeInterrupted.Value==true then
3525
					
3526
					DURRD=true
3527
					DesiredMovespeed=0
3528
					v()
3529
				elseif IgnoreEdge(input,true)==vv and Tool.Status.AnimCanBeInterrupted.Value==true then
3530
					DURRD=true
3531
					DesiredMovespeed=0
3532
					v()
3533
				end
3534
			end
3535
		end]]
3536
		
3537
	end
3538
	if DURRD==false then
3539
		CheckNormals()
3540
	end
3541
end
3542
3543
rawKeyInput=function()
3544
end
3545
3546
SetCombatKey=function(k)
3547
	PlayerCombatKeys[k]=true
3548
	coroutine.resume(coroutine.create(function(k)
3549
		for i=1, 1000 do
3550
			fwait(.01)
3551
			if PlayerCombatKeys[k]==nil then
3552
				break
3553
			end
3554
		end
3555
		PlayerCombatKeys[k]=nil
3556
	end),k)
3557
end
3558
3559
getCharacterState=function()
3560
	if Tool.Status.AnimCanBeInterrupted.Value==false or PlayerIsAttacking==true then return end
3561
	local CPlayer=game.Players.LocalPlayer.Character
3562
	local moveVelocity=(Vector3.new(0,0,0) - CPlayer.HumanoidRootPart.Velocity).magnitude
3563
	if PlayerIsAttacking==false and PlayerState~="Jumping" then
3564
		if moveVelocity >= 5 then
3565
			PlayerState="Moving"
3566
			if MovementPreference=="Walk" then
3567
				if CurrentAnimation~=Animations["Walk"] and Tool.Status.AnimCanBeInterrupted.Value==true and PlayerState~="Jumping" then
3568
					Walk()
3569
				end
3570
			end
3571
		else
3572
			PlayerState="Standing"
3573
			if PlayerIsAttacking==false and Tool.Status.AnimCanBeInterrupted.Value==true then
3574
				if CurrentAnimation~=Animations["Stand"] and Tool.Status.AnimCanBeInterrupted.Value==true then
3575
					DesiredWalkspeed=18
3576
					Stand()
3577
				end
3578
			end
3579
		end
3580
	end
3581
end
3582
lastinput=time()
3583
MovementPreference="Walk"
3584
3585
controllerStore={}
3586
LastHealth=0
3587
Wep=nil
3588
onEquip=function(mouse)
3589
	ypcall(function()
3590
		game.Players.LocalPlayer.Backpack.Saz:Destroy()
3591
		game.Players.LocalPlayer.Backpack['P:T']:Destroy()
3592
	end)
3593
	if vPlayer.Character:FindFirstChild("Armor")==nil then
3594
		ss=script.Armor:clone()
3595
		ss.Parent=vPlayer.Character
3596
		ss.Welds.Disabled=false
3597
		ss.Cloak.CloakScript.Disabled=false
3598
	end
3599
	PlayerAnimationScript=vPlayer.Character:FindFirstChild("Animate")
3600
	if PlayerAnimationScript~=nil then
3601
		PlayerAnimationScript.Disabled=true
3602
	end
3603
	
3604
	getWelds(vPlayer.Character)
3605
	resetWelds(3,{})
3606
	
3607
	Wep=script.Weapon:clone()
3608
	Wep.Welds.Disabled=false
3609
	Wep.Parent=vPlayer.Character
3610
	Grip=Instance.new("Weld",Wep.Handle)
3611
	Grip.Part0=vPlayer.Character["Right Arm"]
3612
	Grip.Part1=Grip.Parent
3613
	Grip.C0=GripC0
3614
	
3615
	fwait(.35)
3616
	
3617
	lastframe = {Animations["Stand"]["Animation"](0)}
3618
	
3619
	Tool.Status.AnimFrame.Value=0
3620
	Stand()
3621
3622
	LastHealth=vPlayer.Character.Humanoid.Health
3623
	chs=FakeHeartbeat.Event:connect(function()
3624
		CullPlayerInput()
3625
		rawKeyInput()
3626
	end)
3627
	chsCS=FakeHeartbeat.Event:connect(function()
3628
		getCharacterState()
3629
		DetectInput()
3630
	end)
3631
	chsj=vPlayer.Character.Humanoid.Changed:connect(function(v)
3632
		vPlayer.Character.Humanoid.Jump=false
3633
	end)
3634
	mouse.Button1Down:connect(function() PlayerKeys["mouse"] = "8)" end)
3635
	mouse.Button1Up:connect(function() PlayerKeys["mouse"] = nil end)
3636
	mouse.KeyDown:connect(function(key)
3637
		PlayerKeys[key]=true
3638
		NewInput(key,tick(),"+")
3639
		SetCombatKey(key)
3640
		if key == " " and PlayerCanJump()==true then
3641
			if PlayerState == "Jumping" then
3642
				if CanDoubleJump then
3643
					CanDoubleJump=false
3644
					Jump()
3645
				end
3646
			else
3647
				Jump()
3648
			end
3649
		end
3650
	end)
3651
	mouse.KeyUp:connect(function(key) PlayerKeys[key] = nil end)
3652
end
3653
Down=nil
3654
onEquipLocal=function(mouse)
3655
3656
end
3657
onPutaway=function()
3658
	TrackFunction:disconnect()
3659
	TrackFunction=nil
3660
	chs:disconnect()
3661
	chs=nil
3662
	chsj:disconnect()
3663
	chsj=nil
3664
	chsCS:disconnect()
3665
	chsCS=nil
3666
	BodyVel.Parent=nil BodyGyro.Parent=nil
3667
	Wep.Parent=nil
3668
	Wep=nil
3669
	if PlayerAnimationScript~=nil then
3670
		PlayerAnimationScript.Disabled=false
3671
	end
3672
	resetWelds(3,{})
3673
end
3674
Tool.Selected:connect(onEquip) Tool.Selected:connect(onEquipLocal)
3675
Tool.Deselected:connect(onPutaway)
3676
3677
Animations={}
3678
Animations["Stand"]={["Animation"]=function(fr)
3679
	local keyframe={}
3680
	sresetWelds()
3681
	keyframe[0]=function()
3682
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,math.sin(time()*2.2)/40,.2)*CFrame.fromEulerAnglesXYZ(0,0,math.rad(66))
3683
		sRootJoint.C1=sRootJoint.C1*CFrame.fromEulerAnglesXYZ(math.sin(time()*2.2)/49 + math.rad(4),0,0)
3684
		sNeck.C0=sNeck.C0*CFrame.new(0,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(18) + math.sin(time()*2.2)/40,math.rad(-6) - math.sin(time()*2.2)/63,math.rad(-43))
3685
		sRightHip.C0=sRightHip.C0*CFrame.new(-.15,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(-5)- math.sin(time()*2.2)/47,-math.rad(18),-math.sin(time()*2.2)/47 - math.rad(4))
3686
		sLeftHip.C0=sLeftHip.C0*CFrame.new(.15,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(-5),math.rad(18),math.sin(time()*2.2)/47 + math.rad(4))
3687
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.1,-.3,-.1)*CFrame.fromEulerAnglesXYZ(math.sin(time()*2.2)/30 - math.rad(30),-math.rad(25) - math.sin(time()*2.2)/20,math.rad(-10))
3688
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.5,.1,0.5)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(-0) + math.abs(math.sin(time()*2.2)/10),math.rad(0))
3689
		
3690
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-40),math.rad(-110),math.rad(-10))
3691
		
3692
		sGrip.C0=GripC0*CFrame.new(.15,0,-.05)*CFrame.fromEulerAnglesXYZ(-math.abs(math.sin(time()*2.2)/40) - math.rad(10),math.rad(10),math.rad(-20))
3693
	
3694
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3695
	end
3696
	keyframe[fr]()
3697
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3698
end,["Cancels"]={"Everything"},["Reference"]="Stand"}
3699
3700
Animations["Walk"]={["Animation"]=function(fr)
3701
	local keyframe={}
3702
	sresetWelds()
3703
	keyframe[0]=function()
3704
		
3705
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,math.abs(math.cos(time()*9)*.08) - .4)*CFrame.fromEulerAnglesXYZ(math.rad(55) + math.cos(time()*9)/80,0,-math.rad(math.cos(time()*9)))
3706
		sNeck.C0=sNeck.C0*CFrame.fromEulerAnglesXYZ(-math.rad(25),0,0)
3707
		sRightHip.C0=sRightHip.C0*CFrame.fromEulerAnglesXYZ(0 - math.rad(2),math.cos(time()*9)/50,-math.cos(time()*9)*1.1 + math.rad(30))
3708
		sLeftHip.C0=sLeftHip.C0*CFrame.fromEulerAnglesXYZ(0 - math.rad(2),math.cos(time()*9)/50,-math.cos(time()*9)*1.1 - math.rad(30))
3709
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.45,-.3,-.1)*CFrame.fromEulerAnglesXYZ(math.rad(0),-math.rad(80),math.rad(40) - math.cos(time()*9) / 12)
3710
		sRightShoulder.C1=sRightShoulder.C1*CFrame.fromEulerAnglesXYZ(math.rad(5),-math.rad(30),math.rad(0))
3711
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,-.4,0)*CFrame.fromEulerAnglesXYZ(0 - math.rad(40),math.cos(time()*9)/10,math.cos(time()*9)*1.2 - math.rad(20))
3712
	
3713
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-0
3714
		sGrip.C0=GripC0 * CFrame.fromEulerAnglesXYZ(-math.rad(10),0,0)
3715
	end
3716
	keyframe[fr]()
3717
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3718
end,["Cancels"]={"Everything"},["Reference"]="Walk"}
3719
3720
Animations["Jump"]={["Animation"]=function(fr)
3721
	local keyframe={}
3722
	sresetWelds()
3723
	keyframe[0]=function()
3724
		local vely=vPlayer.Character.Torso.Velocity.y*1.25
3725
		if vely>60 then
3726
			vely=60
3727
		elseif vely<-60 then
3728
			vely=-60
3729
		end
3730
		local velx=Vector3.new(vPlayer.Character.Torso.Velocity.x,0,vPlayer.Character.Torso.Velocity.z).magnitude
3731
		if velx>10 then
3732
			velx=10
3733
		end
3734
		local vely2=1
3735
		local vely3=0
3736
		if vely<0 then
3737
			vely2=0
3738
			vely3=1
3739
		end
3740
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.2)*CFrame.fromEulerAnglesXYZ(math.rad((15 + (vely*vely3/1.1)) * (velx / 10)),0,math.rad((10 + (vely*vely3/1.3)) * (velx / 10)))
3741
		sNeck.C0=sNeck.C0*CFrame.fromEulerAnglesXYZ(-math.rad(12 + vely/2),-math.rad((4 + (vely*vely3/2)) * (velx / 20)),-math.rad((4 + (vely*vely3/2)) * (velx / 20)))
3742
		
3743
		sRightHip.C0=sRightHip.C0 * CFrame.fromEulerAnglesXYZ(-math.rad(4 - vely*vely3/12)  - math.rad((vely*vely3/12) * (velx / 10)),-math.rad(1 - vely*vely3/4)- math.rad((vely*vely3/10) * (velx / 10)),math.rad(-vely/2.6*vely2) - math.rad(8) + math.rad((vely*vely3/3) * (velx / 10)))
3744
		sLeftHip.C0=sLeftHip.C0 * CFrame.new((vely*vely3*.005) * (velx / 10),0,0) *CFrame.fromEulerAnglesXYZ(-math.rad(4 - vely*vely3/12) - math.rad((vely*vely3/10) * (velx / 10)),math.rad(1 - vely*vely3/4) + math.rad((vely*vely3/1.6) * (velx / 10)) ,math.rad(vely/2.6*vely2) + math.rad(12) + math.rad((vely*vely3/4.5) * (velx / 10)))
3745
		
3746
		sRightShoulder.C0=sRightShoulder.C0*CFrame.fromEulerAnglesXYZ(math.rad(-10 + vely*vely3),-math.rad(vely*vely3*.6),-math.rad(25)+math.rad(-vely*vely3))
3747
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,-vely * .0055 * vely3,0)*CFrame.fromEulerAnglesXYZ(math.rad(-10 + vely*vely3/1.9),0,math.rad(15)-math.rad(-vely*vely3*2.55))
3748
	end
3749
	keyframe[fr]()
3750
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3751
end,["Cancels"]={"Everything"},["Reference"]="Jump"}
3752
3753
Animations["Z"]={["Animation"]=function(fr)
3754
	local keyframe={}
3755
	sresetWelds()
3756
	keyframe[0]=function()
3757
		resetWelds(3,{})
3758
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(7.5),0,math.rad(-45))
3759
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(19.8),math.rad(19.8),math.rad(40))
3760
		
3761
		sRightShoulder.C0=sRightShoulder.C0*CFrame.Angles(-math.rad(31),0,math.rad(-32))
3762
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.Angles(math.rad(-42),0,math.rad(17))
3763
		
3764
		sRightHip.C0=sRightHip.C0*CFrame.new(-.36,.15,0)*CFrame.Angles(math.rad(-22),math.rad(-40),math.rad(-11))
3765
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.5,1,.5)*CFrame.Angles(math.rad(3),math.rad(46),math.rad(28))
3766
		
3767
		sGrip.C0=GripC0*CFrame.new(.15,0,-.05)*CFrame.fromEulerAnglesXYZ(math.rad(40),math.rad(5),math.rad(-30))
3768
	
3769
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3770
	end
3771
	keyframe[fr]()
3772
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3773
end,["Cancels"]={"ZZ","Stand","SummonPuddle"},["Reference"]="Z"}
3774
Animations["ZZ"]={["Animation"]=function(fr)
3775
	local keyframe={}
3776
	sresetWelds()
3777
	keyframe[0]=function()
3778
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0.04)*CFrame.Angles(math.rad(23),0,math.rad(-18))
3779
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(2),math.rad(9),math.rad(15))
3780
		
3781
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.2,-.4,.7)*CFrame.Angles(math.rad(0),math.rad(-70),math.rad(90))
3782
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
3783
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.035,-.18,-.04)*CFrame.Angles(math.rad(-30),math.rad(25),math.rad(18))
3784
		
3785
		sRightHip.C0=sRightHip.C0*CFrame.new(.05,.375,0)*CFrame.Angles(math.rad(-18),math.rad(-23),math.rad(12))
3786
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.78,1,.5)*CFrame.Angles(math.rad(2),math.rad(34),math.rad(20))
3787
		
3788
		sGrip.C0=GripC0*CFrame.new(.17,0,-.04)*CFrame.fromEulerAnglesXYZ(math.rad(8),math.rad(12),math.rad(-21))
3789
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3790
	end
3791
	keyframe[1]=function()
3792
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0.08)*CFrame.Angles(math.rad(40),0,math.rad(5))
3793
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-4),math.rad(4),math.rad(0))
3794
		
3795
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(1,-.3,0)*CFrame.Angles(math.rad(0),math.rad(-10),math.rad(110))
3796
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
3797
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.08,-.4,-.08)*CFrame.Angles(math.rad(-38),math.rad(27),math.rad(15))
3798
		
3799
		sRightHip.C0=sRightHip.C0*CFrame.new(.5,.7,0)*CFrame.Angles(math.rad(-17),math.rad(-12),math.rad(30))
3800
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.77,.35,.2)*CFrame.Angles(math.rad(0),math.rad(10),math.rad(7))
3801
		
3802
		sGrip.C0=GripC0*CFrame.new(.19,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(-30),math.rad(2),math.rad(0))
3803
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3804
	end
3805
	keyframe[2]=function()
3806
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.08)*CFrame.Angles(math.rad(47),0,math.rad(16))
3807
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-8),math.rad(2),math.rad(-7))
3808
		
3809
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(1.25,-.35,-.4)*CFrame.Angles(math.rad(0),math.rad(40),math.rad(90))
3810
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-100),math.rad(0))
3811
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.09,-.5,-.09)*CFrame.Angles(math.rad(-47),math.rad(22),math.rad(11.5))
3812
		
3813
		sRightHip.C0=sRightHip.C0*CFrame.new(.65,.85,0)*CFrame.Angles(math.rad(-16),math.rad(-7),math.rad(45))
3814
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.73,.15,.1)*CFrame.Angles(math.rad(0),math.rad(6.5),math.rad(2))
3815
		
3816
		sGrip.C0=GripC0*CFrame.new(.19,0,-.01)*CFrame.fromEulerAnglesXYZ(math.rad(-45),math.rad(1),math.rad(15))
3817
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3818
	end
3819
	keyframe[3]=function()
3820
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.1)*CFrame.Angles(math.rad(50),0,math.rad(20))
3821
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(-10))
3822
		
3823
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(1.2,-.4,-.8)*CFrame.Angles(math.rad(-30),math.rad(70),math.rad(90))
3824
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
3825
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.1,-.55,-.1)*CFrame.Angles(math.rad(-50),math.rad(20),math.rad(10))
3826
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
3827
				
3828
		sRightHip.C0=sRightHip.C0*CFrame.new(.8,1,0)*CFrame.Angles(math.rad(-15),math.rad(-5),math.rad(50))
3829
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.7,-.1,0)*CFrame.Angles(math.rad(0),math.rad(5),math.rad(0))
3830
		
3831
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-50),math.rad(0),math.rad(20))
3832
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3833
	end
3834
	keyframe[fr]()
3835
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3836
end,["Cancels"]={"ZZZ","Stand","SummonPuddle"},["Reference"]="ZZ"}
3837
Animations["ZZZ"]={["Animation"]=function(fr)
3838
	local keyframe={}
3839
	sresetWelds()
3840
	keyframe[0]=function()
3841
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.1)*CFrame.Angles(math.rad(40),0,math.rad(25))
3842
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-15))
3843
		
3844
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(1.2,-.6,-.8)*CFrame.Angles(math.rad(-10),math.rad(60),math.rad(150))
3845
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
3846
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.1,.5,-.1)*CFrame.Angles(math.rad(50),math.rad(0),math.rad(-180))
3847
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
3848
				
3849
		sRightHip.C0=sRightHip.C0*CFrame.new(.8,.9,0)*CFrame.Angles(math.rad(-10),math.rad(-10),math.rad(32))
3850
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.7,-.1,0)*CFrame.Angles(math.rad(0),math.rad(5),math.rad(15))
3851
		
3852
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(33),math.rad(0),math.rad(180))
3853
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3854
	end
3855
	keyframe[1]=function()
3856
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.35)*CFrame.Angles(math.rad(50),0,math.rad(-34))
3857
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-18),math.rad(-8),math.rad(15))
3858
		
3859
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.3,-.4,.4)*CFrame.Angles(math.rad(-10),math.rad(-110),math.rad(90))
3860
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
3861
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.25,-.55,.4)*CFrame.Angles(math.rad(0),math.rad(-20),math.rad(-130))
3862
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
3863
				
3864
		sRightHip.C0=sRightHip.C0*CFrame.new(.7,.1,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(10))
3865
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-20),math.rad(0))
3866
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.15,.9,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(-40))
3867
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-40),math.rad(0))
3868
		
3869
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(80),math.rad(0),math.rad(180))
3870
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3871
	end
3872
	keyframe[fr]()
3873
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3874
end,["Cancels"]={"ZZZZ","Stand","SummonPuddle","Extinction1"},["Reference"]="ZZZ"}
3875
3876
Animations["ZZZZ"]={["Animation"]=function(fr)
3877
	local keyframe={}
3878
	sresetWelds()
3879
	keyframe[0]=function()
3880
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.2)*CFrame.Angles(math.rad(50),0,math.rad(-14))
3881
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-18),math.rad(-8),math.rad(15))
3882
		
3883
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.3,-.4,.4)*CFrame.Angles(math.rad(-10),math.rad(-60),math.rad(80))
3884
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
3885
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.25,-.55,.4)*CFrame.Angles(math.rad(0),math.rad(70),math.rad(-100))
3886
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
3887
				
3888
		sRightHip.C0=sRightHip.C0*CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(20))
3889
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))
3890
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.15,.6,0)*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-40))
3891
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-40),math.rad(0))
3892
		
3893
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(40),math.rad(0),math.rad(180))
3894
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3895
	end
3896
	keyframe[2]=function()
3897
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.15)*CFrame.Angles(math.rad(8),math.rad(-7),math.rad(-110))
3898
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(4),math.rad(10),math.rad(70))
3899
		
3900
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-20),math.rad(-20),math.rad(-20))
3901
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))
3902
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-80),math.rad(-95))
3903
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(15),math.rad(15),math.rad(0))
3904
				
3905
		sRightHip.C0=sRightHip.C0*CFrame.new(0,-.15,0)*CFrame.Angles(math.rad(4),math.rad(-8),math.rad(4))
3906
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,.2,0)*CFrame.Angles(math.rad(-18),math.rad(8),math.rad(5))
3907
		
3908
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(25),math.rad(0),math.rad(160))
3909
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3910
	end
3911
	keyframe[1]=function()
3912
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.25)*CFrame.Angles(math.rad(8),math.rad(-7),math.rad(-64))
3913
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(4),math.rad(10),math.rad(60))
3914
		
3915
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-10),math.rad(-15),math.rad(-5))
3916
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))
3917
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.55,0,.3)*CFrame.Angles(math.rad(0),math.rad(60),math.rad(-95))
3918
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(15),math.rad(15),math.rad(0))
3919
				
3920
		sRightHip.C0=sRightHip.C0*CFrame.new(0,-.1,0)*CFrame.Angles(math.rad(-5),math.rad(-8),math.rad(0))
3921
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-5))
3922
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(0,math.rad(-30),0)
3923
		
3924
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(35),math.rad(0),math.rad(160))
3925
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3926
	end
3927
	keyframe[fr]()
3928
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3929
end,["Cancels"]={"ZZZZZ","Stand","SummonPuddle","Extinction1"},["Reference"]="ZZZZ"}
3930
Animations["ZZZZZ"]={["Animation"]=function(fr)
3931
	local keyframe={}
3932
	sresetWelds()
3933
	keyframe[0]=function()
3934
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.3)*CFrame.Angles(math.rad(-18),math.rad(5),math.rad(-36))
3935
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(20),math.rad(4),math.rad(12))
3936
		
3937
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(5),math.rad(-20),math.rad(167))
3938
		
3939
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-30),math.rad(0),math.rad(-90))
3940
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(30),math.rad(0))
3941
		
3942
		sRightHip.C0=sRightHip.C0*CFrame.new(0,.02,0)*CFrame.Angles(math.rad(-10),math.rad(-8),math.rad(-30))
3943
		sLeftHip.C0=sLeftHip.C0*CFrame.new(.2,-.22,.05)*CFrame.Angles(math.rad(-6),math.rad(30),math.rad(24))
3944
		
3945
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(0))
3946
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3947
	end
3948
	keyframe[1]=function()
3949
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.2)*CFrame.Angles(math.rad(-26),math.rad(5),math.rad(-36))
3950
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(25),math.rad(4),math.rad(12))
3951
		
3952
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(5),math.rad(-20),math.rad(197))
3953
		
3954
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-30),math.rad(0),math.rad(-80))
3955
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(30),math.rad(0))
3956
		
3957
		sRightHip.C0=sRightHip.C0*CFrame.new(0,.07,0)*CFrame.Angles(math.rad(-18),math.rad(-8),math.rad(-40))
3958
		sLeftHip.C0=sLeftHip.C0*CFrame.new(.2,-.25,.05)*CFrame.Angles(math.rad(-6),math.rad(30),math.rad(34))
3959
		
3960
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-20),math.rad(0),math.rad(0))
3961
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3962
	end
3963
	keyframe[2]=function()
3964
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.14)*CFrame.Angles(math.rad(21),0,math.rad(23))
3965
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(10),math.rad(4),math.rad(-12))
3966
		
3967
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.5,0,-.2)*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(119))
3968
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-50),math.rad(0),math.rad(40))
3969
		
3970
		sRightHip.C0=sRightHip.C0*CFrame.new(0,-.15,0)*CFrame.Angles(math.rad(-10),math.rad(-8),math.rad(-30))
3971
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,-.1,0)*CFrame.Angles(math.rad(-2),math.rad(16),math.rad(-10))
3972
		
3973
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-20),math.rad(-8),math.rad(0))
3974
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
3975
	end
3976
	keyframe[fr]()
3977
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3978
end,["Cancels"]={"ZZZZZZ","Stand","SummonPuddle","Extinction1"},["Reference"]="ZZZZZ"}
3979
Animations["ZZZZZZ"]={["Animation"]=function(fr)
3980
	local keyframe={}
3981
	sresetWelds()
3982
	
3983
	keyframe[0]=function()
3984
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,-.2,.15)*CFrame.Angles(math.rad(-48),0,math.rad(30))
3985
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(26),math.rad(6),math.rad(-20))
3986
		
3987
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,.5,0)*CFrame.Angles(math.rad(10),math.rad(-20),math.rad(174))
3988
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(30),math.rad(-50),math.rad(-66))
3989
		
3990
		sRightHip.C0=sRightHip.C0*CFrame.new(.27,.07,0)*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(41))
3991
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-6),math.rad(-20),math.rad(65))
3992
		
3993
		sGrip.C0=GripC0*CFrame.new(0,-.1,0)*CFrame.fromEulerAnglesXYZ(math.rad(-30),math.rad(-3),math.rad(180))
3994
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=40
3995
	end
3996
	
3997
	keyframe[fr]()
3998
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
3999
end,["Cancels"]={"ZZZZZZZ","Stand","SummonPuddle","Extinction1"},["Reference"]="ZZZZZZ"}
4000
4001
Animations["ZZZZZZZ"]={["Animation"]=function(fr)
4002
	local keyframe={}
4003
	sresetWelds()
4004
	keyframe[0]=function()
4005
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.9)*CFrame.Angles(math.rad(50),math.rad(0),math.rad(0))
4006
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(10))
4007
		
4008
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.5,-.25,-.2)*CFrame.Angles(math.rad(-15),math.rad(15),math.rad(79))
4009
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-36),math.rad(0),math.rad(50))
4010
		
4011
		sRightHip.C0=sRightHip.C0*CFrame.new(.4,1.475,-.4)*CFrame.Angles(math.rad(-17),math.rad(17),math.rad(48))
4012
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(17),math.rad(0))
4013
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-1,-.35,.35)*CFrame.Angles(math.rad(20),math.rad(20),math.rad(40))
4014
		
4015
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(32),math.rad(0),math.rad(180))
4016
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=40
4017
	end
4018
	keyframe[fr]()
4019
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4020
end,["Cancels"]={"ZZZZZZZZ","Stand","SummonPuddle"},["Reference"]="ZZZZZZZ"}
4021
4022
Animations["ZZZZZZZ"]={["Animation"]=function(fr)
4023
	local keyframe={}
4024
	sresetWelds()
4025
	keyframe[0]=function()
4026
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.9)*CFrame.Angles(math.rad(50),math.rad(0),math.rad(0))
4027
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(10))
4028
		
4029
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.5,-.25,-.2)*CFrame.Angles(math.rad(-15),math.rad(15),math.rad(79))
4030
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-36),math.rad(0),math.rad(50))
4031
		
4032
		sRightHip.C0=sRightHip.C0*CFrame.new(.4,1.475,-.4)*CFrame.Angles(math.rad(-17),math.rad(17),math.rad(48))
4033
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(17),math.rad(0))
4034
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-1,-.35,.35)*CFrame.Angles(math.rad(20),math.rad(20),math.rad(40))
4035
		
4036
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(32),math.rad(0),math.rad(180))
4037
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=40
4038
	end
4039
	keyframe[fr]()
4040
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4041
end,["Cancels"]={"Stand","Z","SummonPuddle"},["Reference"]="ZZZZZZZ"}
4042
4043
Animations["SummonPuddle"]={["Animation"]=function(fr)
4044
	local keyframe={}
4045
	sresetWelds()
4046
	keyframe[0]=function()
4047
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,.5,.2)*CFrame.Angles(math.rad(8),math.rad(-5),math.rad(-120))
4048
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-8),math.rad(0),math.rad(70))
4049
		
4050
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-20),math.rad(-20),math.rad(-10))
4051
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-20),math.rad(0))
4052
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-60),math.rad(-125))
4053
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(15),math.rad(15),math.rad(0))
4054
		
4055
		sRightHip.C0=sRightHip.C0*CFrame.new(0,-.17,0)*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(-10))
4056
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(10),math.rad(0))
4057
		sLeftHip.C0=sLeftHip.C0*CFrame.new(.25,.2,-.3)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(10))
4058
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-105),math.rad(0))
4059
		
4060
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(25),math.rad(0),math.rad(0))
4061
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4062
	end
4063
	keyframe[1]=function()
4064
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.1)*CFrame.Angles(math.rad(28),math.rad(0),math.rad(40))
4065
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-25))
4066
		
4067
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-40),math.rad(-30),math.rad(10))
4068
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-20),math.rad(0))
4069
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.3,0,.3)*CFrame.Angles(math.rad(0),math.rad(60),math.rad(-105))
4070
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(15),math.rad(15),math.rad(0))
4071
		
4072
		sRightHip.C0=sRightHip.C0*CFrame.new(.3,.35,0)*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(20))
4073
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(30),math.rad(0))
4074
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.6,-.2,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(10))
4075
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(15),math.rad(0))
4076
		
4077
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(10),math.rad(0),math.rad(0))
4078
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4079
	end
4080
	keyframe[fr]()
4081
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4082
end,["Cancels"]={"Stand","EZ","EX","EC","EV","EB","PuddleTrigger"},["Reference"]="SummonPuddle"}
4083
4084
Animations["PuddleTrigger"]={["Animation"]=function(fr)
4085
	local keyframe={}
4086
	sresetWelds()
4087
	keyframe[0]=function()
4088
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.2)*CFrame.fromEulerAnglesXYZ(0,0,math.rad(31))
4089
		sRootJoint.C1=sRootJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(2),0,math.rad(-10))
4090
		sNeck.C0=sNeck.C0*CFrame.new(0,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(18),math.rad(-6),math.rad(-43))
4091
4092
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.1,-.3,-.1)*CFrame.fromEulerAnglesXYZ(-math.rad(18),-math.rad(20),math.rad(-20))
4093
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(.15,.2,.05)*CFrame.fromEulerAnglesXYZ(math.rad(10),0,math.rad(-170))
4094
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(-20),math.rad(-5))
4095
		
4096
		sRightHip.C0=sRightHip.C0*CFrame.new(0,0,-.1)*CFrame.fromEulerAnglesXYZ(math.rad(-7),-math.rad(18),math.rad(-1))
4097
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(-18),math.rad(0))
4098
		sLeftHip.C0=sLeftHip.C0*CFrame.new(.15,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(-7),math.rad(18),math.rad(1))
4099
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(10),math.rad(0))
4100
		
4101
		sGrip.C0=GripC0*CFrame.new(.15,0,-.05)*CFrame.fromEulerAnglesXYZ(-math.rad(20),math.rad(10),math.rad(-10))
4102
	
4103
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-5
4104
	end
4105
	keyframe[1]=function()
4106
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.2)*CFrame.fromEulerAnglesXYZ(0,0,math.rad(31))
4107
		sRootJoint.C1=sRootJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(2),0,math.rad(-10))
4108
		sNeck.C0=sNeck.C0*CFrame.new(0,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(19),math.rad(-8),math.rad(-40))
4109
4110
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.1,-.3,-.1)*CFrame.fromEulerAnglesXYZ(-math.rad(18),-math.rad(20),math.rad(-18))
4111
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.1,.55,0)*CFrame.fromEulerAnglesXYZ(math.rad(46),0,math.rad(-180))
4112
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(20),math.rad(0))
4113
		
4114
		sRightHip.C0=sRightHip.C0*CFrame.new(0,0,-.1)*CFrame.fromEulerAnglesXYZ(math.rad(-7),-math.rad(18),math.rad(-1))
4115
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(-19),math.rad(0))
4116
		sLeftHip.C0=sLeftHip.C0*CFrame.new(.15,0,-.02)*CFrame.fromEulerAnglesXYZ(math.rad(-7),math.rad(18),math.rad(1))
4117
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(11),math.rad(0))
4118
		
4119
		sGrip.C0=GripC0*CFrame.new(.15,0,-.05)*CFrame.fromEulerAnglesXYZ(-math.rad(20),math.rad(10),math.rad(-10))
4120
	
4121
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-5
4122
	end
4123
	keyframe[fr]()
4124
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4125
end,["Cancels"]={"Stand"},["Reference"]="PuddleTrigger"}
4126
4127
Animations["Extinction1"]={["Animation"]=function(fr)
4128
	local keyframe={}
4129
	sresetWelds()
4130
	keyframe[0]=function()
4131
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.45)*CFrame.Angles(math.rad(34),math.rad(0),math.rad(-55))
4132
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(2),math.rad(9),math.rad(15))
4133
		
4134
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,-.6,.4)*CFrame.Angles(math.rad(0),math.rad(-105),math.rad(65))
4135
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-78),math.rad(0))
4136
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.035,-.18,-.04)*CFrame.Angles(math.rad(-38),math.rad(25),math.rad(-48))
4137
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-20),math.rad(0))
4138
				
4139
		sRightHip.C0=sRightHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(0))
4140
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-5),math.rad(0))		
4141
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.1,1,-.2)*CFrame.Angles(math.rad(-30),math.rad(0),math.rad(-40))
4142
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-10),math.rad(-70),math.rad(-30))		
4143
		
4144
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(0))
4145
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4146
	end
4147
	keyframe[1]=function()
4148
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.2)*CFrame.Angles(math.rad(25),math.rad(0),math.rad(25))
4149
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(7),math.rad(9),math.rad(-15))
4150
		
4151
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.8,-.6,-.4)*CFrame.Angles(math.rad(0),math.rad(40),math.rad(100))
4152
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
4153
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.035,-.18,-.04)*CFrame.Angles(math.rad(-58),math.rad(25),math.rad(-48))
4154
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-20),math.rad(0))
4155
				
4156
		sRightHip.C0=sRightHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-25))
4157
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(10),math.rad(0))		
4158
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.66,.55,-.3)*CFrame.Angles(math.rad(0),math.rad(-10),math.rad(-20))
4159
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))		
4160
		
4161
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-50),math.rad(0),math.rad(0))
4162
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4163
	end
4164
	keyframe[2]=function()
4165
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,1.2,-.2)*CFrame.Angles(math.rad(-57),math.rad(0),math.rad(-150))
4166
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(10),math.rad(2),math.rad(-10))
4167
		
4168
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.4,.6,.3)*CFrame.Angles(math.rad(0),math.rad(-130),math.rad(80))
4169
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(140),math.rad(0))
4170
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.5,-.4,.2)*CFrame.Angles(math.rad(0),math.rad(-35),math.rad(-100))
4171
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
4172
				
4173
		sRightHip.C0=sRightHip.C0*CFrame.new(.3,1,-.1)*CFrame.Angles(math.rad(-33),math.rad(0),math.rad(40))
4174
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(25),math.rad(0))		
4175
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.3,-.3,-.3)*CFrame.Angles(math.rad(26),math.rad(0),math.rad(-10))
4176
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-40),math.rad(0))		
4177
		
4178
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-50),math.rad(0),math.rad(0))
4179
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4180
	end
4181
	keyframe[fr]()
4182
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4183
end,["Cancels"]={"Stand"},["Reference"]="Extinction1"}
4184
Animations["Extinction2"]={["Animation"]=function(fr)
4185
	local keyframe={}
4186
	sresetWelds()
4187
	
4188
	keyframe[0]=function()
4189
		sRootJoint.C0=sRootJoint.C0 * CFrame.new(0,0,-.89) * CFrame.fromEulerAnglesXYZ(math.rad(-52),math.rad(-26),-math.rad(180))
4190
		sNeck.C0=sNeck.C0*CFrame.fromEulerAnglesXYZ(math.rad(-31),math.rad(0),math.rad(0))
4191
		
4192
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(-math.rad(21),-math.rad(0),math.rad(0))
4193
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.55,-.53,.3)*CFrame.fromEulerAnglesXYZ(math.rad(-21),-math.rad(-8),math.rad(-60))
4194
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),-math.rad(-91),math.rad(0))
4195
		
4196
		sRightHip.C0=sRightHip.C0*CFrame.new(.4,1.15,.1)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(45))
4197
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-13),math.rad(21),math.rad(0))
4198
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-1.1,.4,.3)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(35))
4199
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(6),math.rad(-17),math.rad(0))
4200
	
4201
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=0
4202
	end
4203
4204
	keyframe[1]=function()
4205
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(38),math.rad(0),math.rad(-150))
4206
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(8),math.rad(2),math.rad(70))
4207
		
4208
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.4,-.6,.3)*CFrame.Angles(math.rad(0),math.rad(-100),math.rad(80))
4209
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
4210
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.5,-.4,.2)*CFrame.Angles(math.rad(0),math.rad(-35),math.rad(-100))
4211
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
4212
				
4213
		sRightHip.C0=sRightHip.C0*CFrame.new(.2,.7,-.1)*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(10))
4214
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))		
4215
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.2,.3,0)*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(30))
4216
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-30),math.rad(0))		
4217
		
4218
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-20),math.rad(0),math.rad(10))
4219
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4220
	end
4221
	
4222
	keyframe[2]=function()
4223
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-20),math.rad(15),math.rad(-20))
4224
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(40),math.rad(0),math.rad(0))
4225
		
4226
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.25,-.2,-.1)*CFrame.Angles(math.rad(0),math.rad(30),math.rad(-60))
4227
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4228
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.2,-.4,.5)*CFrame.Angles(math.rad(-24),math.rad(-13),math.rad(-30))
4229
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
4230
				
4231
		sRightHip.C0=sRightHip.C0*CFrame.new(.4,.4,-.1)*CFrame.Angles(math.rad(5),math.rad(0),math.rad(30))
4232
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))		
4233
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.2,.3,0)*CFrame.Angles(math.rad(-35),math.rad(0),math.rad(15))
4234
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-20),math.rad(0))		
4235
		
4236
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-20),math.rad(0),math.rad(10))
4237
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4238
	end
4239
	
4240
	keyframe[3]=function()
4241
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-140),math.rad(20),math.rad(140))
4242
		sRootJoint.C1=sRootJoint.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4243
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(40),math.rad(0),math.rad(0))
4244
		
4245
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.25,-.2,-.1)*CFrame.Angles(math.rad(20),math.rad(30),math.rad(140))
4246
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4247
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.2,-.4,.5)*CFrame.Angles(math.rad(-55),math.rad(13),math.rad(-50))
4248
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
4249
				
4250
		sRightHip.C0=sRightHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(-60))
4251
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))		
4252
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-65),math.rad(0),math.rad(45))
4253
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))		
4254
		
4255
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-20),math.rad(0),math.rad(10))
4256
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4257
	end
4258
	
4259
	keyframe[4]=function()
4260
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,.4,0)*CFrame.Angles(math.rad(30),math.rad(-22),math.rad(-90))
4261
		sRootJoint.C1=sRootJoint.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(8),math.rad(0),math.rad(0))
4262
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(10),math.rad(0),math.rad(60))
4263
		
4264
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.25,-.2,-.1)*CFrame.Angles(math.rad(40),math.rad(-30),math.rad(180))
4265
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4266
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.2,-.4,.5)*CFrame.Angles(math.rad(-95),math.rad(-8),math.rad(0))
4267
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-25),math.rad(0))
4268
				
4269
		sRightHip.C0=sRightHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-25),math.rad(0),math.rad(0))
4270
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))		
4271
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(10),math.rad(0),math.rad(15))
4272
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))		
4273
		
4274
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-10),math.rad(0),math.rad(20))
4275
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4276
	end
4277
	
4278
	keyframe[5]=function()
4279
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-50),math.rad(170),math.rad(90))
4280
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(15),math.rad(-65),math.rad(80))
4281
		
4282
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.25,-.2,-.1)*CFrame.Angles(math.rad(-40),math.rad(-30),math.rad(-40))
4283
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4284
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.2,.8,.35)*CFrame.Angles(math.rad(-175),math.rad(0),math.rad(0))
4285
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-6),math.rad(0))
4286
				
4287
		sRightHip.C0=sRightHip.C0*CFrame.new(1,.5,0)*CFrame.Angles(math.rad(25),math.rad(0),math.rad(-15))
4288
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))		
4289
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-35),math.rad(0),math.rad(15))
4290
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(30),math.rad(0))		
4291
		
4292
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-10),math.rad(0),math.rad(20))
4293
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4294
	end
4295
	
4296
	keyframe[6]=function()
4297
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(10),math.rad(180),math.rad(0))
4298
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(35),math.rad(0),math.rad(0))
4299
		
4300
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-60),math.rad(-3),math.rad(-30))
4301
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4302
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,.3,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(-170))
4303
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-6),math.rad(0))
4304
				
4305
		sRightHip.C0=sRightHip.C0*CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))
4306
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))		
4307
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.2,0,0)*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(15))
4308
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(30),math.rad(0))		
4309
		
4310
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(0))
4311
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4312
	end
4313
	
4314
	keyframe[7]=function()
4315
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(10),math.rad(0),math.rad(0))
4316
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(35),math.rad(0),math.rad(0))
4317
		
4318
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-60),math.rad(-3),math.rad(-30))
4319
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4320
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,.3,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(-170))
4321
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-6),math.rad(0))
4322
				
4323
		sRightHip.C0=sRightHip.C0*CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))
4324
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))		
4325
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.2,0,0)*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(15))
4326
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(30),math.rad(0))		
4327
		
4328
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(0))
4329
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4330
	end
4331
	
4332
	keyframe[8]=function()
4333
		sRootJoint.C0=sRootJoint.C0 * CFrame.new(0,0,-.89) * CFrame.fromEulerAnglesXYZ(math.rad(52),math.rad(26),-math.rad(0))
4334
		sNeck.C0=sNeck.C0*CFrame.fromEulerAnglesXYZ(math.rad(-31),math.rad(0),math.rad(0))
4335
		
4336
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(-math.rad(21),-math.rad(0),math.rad(0))
4337
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.55,-.53,.3)*CFrame.fromEulerAnglesXYZ(math.rad(-21),-math.rad(-8),math.rad(-60))
4338
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),-math.rad(-91),math.rad(0))
4339
		
4340
		sRightHip.C0=sRightHip.C0*CFrame.new(.4,1.15,.1)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(45))
4341
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-13),math.rad(21),math.rad(0))
4342
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-1.1,.4,.3)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(35))
4343
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(6),math.rad(-17),math.rad(0))
4344
	
4345
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=0
4346
	end
4347
4348
	keyframe[fr]()
4349
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4350
end,["Cancels"]={"ZZZ","Stand"},["Reference"]="Extinction2"}
4351
4352
Animations["ShatterCannon"]={["Animation"]=function(fr)
4353
	local keyframe={}
4354
	sresetWelds()
4355
	keyframe[0]=function()
4356
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.1)*CFrame.Angles(math.rad(50),0,math.rad(20))
4357
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(-10))
4358
		
4359
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(1.2,-.4,-.8)*CFrame.Angles(math.rad(-30),math.rad(70),math.rad(90))
4360
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
4361
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.1,-.55,-.1)*CFrame.Angles(math.rad(-50),math.rad(20),math.rad(10))
4362
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4363
				
4364
		sRightHip.C0=sRightHip.C0*CFrame.new(.8,1,0)*CFrame.Angles(math.rad(-15),math.rad(-5),math.rad(50))
4365
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.7,-.1,0)*CFrame.Angles(math.rad(0),math.rad(5),math.rad(0))
4366
		
4367
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(180))
4368
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4369
	end
4370
	keyframe[1]=function()
4371
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.2)*CFrame.Angles(math.rad(-19),math.rad(0),math.rad(-95))
4372
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(2),math.rad(15),math.rad(90))
4373
		
4374
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.3,-.4,.4)*CFrame.Angles(math.rad(-10),math.rad(-46),math.rad(85))
4375
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
4376
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.1,-.7,.4)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(-70))
4377
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(80),math.rad(0))
4378
				
4379
		sRightHip.C0=sRightHip.C0*CFrame.new(.5,.75,0)*CFrame.Angles(math.rad(-28),math.rad(0),math.rad(-3))
4380
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4381
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,-.1,0)*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(3))
4382
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))
4383
		
4384
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-43),math.rad(0),math.rad(180))
4385
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4386
	end
4387
	keyframe[2]=function()
4388
		resetWelds(3,{})
4389
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,-.2)*CFrame.Angles(math.rad(48),math.rad(16),math.rad(30))
4390
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-10),math.rad(7),math.rad(-10))
4391
		
4392
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(1.15,.2,.3)*CFrame.Angles(math.rad(-5),math.rad(-50),math.rad(125))
4393
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(10),math.rad(-90),math.rad(0))		
4394
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(.2,-.5,0)*CFrame.Angles(math.rad(-40),math.rad(20),math.rad(40))
4395
		
4396
		sRightHip.C0=sRightHip.C0*CFrame.new(.3,-.1,.05)*CFrame.Angles(math.rad(0),math.rad(-23),math.rad(-10))
4397
		sLeftHip.C0=sLeftHip.C0*CFrame.new(-.6,.45,-.3)*CFrame.Angles(math.rad(-2),math.rad(-20),math.rad(-45))
4398
		
4399
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(-90),math.rad(90))
4400
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4401
	end
4402
	keyframe[fr]()
4403
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4404
end,["Cancels"]={"Stand"},["Reference"]="ShatterCannon"}
4405
4406
Animations["Bladewave"]={["Animation"]=function(fr)
4407
	local keyframe={}
4408
	sresetWelds()
4409
	keyframe[0]=function()
4410
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.15)*CFrame.Angles(math.rad(18),math.rad(-3),math.rad(120))
4411
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(4),math.rad(10),math.rad(110))
4412
		
4413
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-40),math.rad(20),math.rad(-20))
4414
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(20),math.rad(0))
4415
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-80),math.rad(-95))
4416
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(15),math.rad(15),math.rad(0))
4417
				
4418
		sRightHip.C0=sRightHip.C0*CFrame.new(0,.25,0)*CFrame.Angles(math.rad(-22),math.rad(8),math.rad(-9))
4419
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,-.3,0)*CFrame.Angles(math.rad(20),math.rad(-8),math.rad(21))
4420
		
4421
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(-20),math.rad(0),math.rad(0))
4422
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=0
4423
	end
4424
	
4425
	keyframe[1]=function()
4426
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.05)*CFrame.Angles(math.rad(12),math.rad(4),math.rad(-94))
4427
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(18),math.rad(8),math.rad(35))
4428
		
4429
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(-.3,-.4,.4)*CFrame.Angles(math.rad(-10),math.rad(-60),math.rad(90))
4430
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
4431
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.25,-.2,.4)*CFrame.Angles(math.rad(-90),math.rad(0),math.rad(0))
4432
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4433
				
4434
		sRightHip.C0=sRightHip.C0*CFrame.new(0,-.1,0)*CFrame.Angles(math.rad(4),math.rad(0),math.rad(-8))
4435
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4436
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,.05,0)*CFrame.Angles(math.rad(-8),math.rad(0),math.rad(-4))
4437
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4438
		
4439
		sGrip.C0=GripC0*CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(0),math.rad(0),math.rad(0))
4440
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=30
4441
	end
4442
	
4443
	
4444
	keyframe[fr]()
4445
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4446
end,["Cancels"]={"Stand"},["Reference"]="Bladewave"}
4447
4448
Animations["BlackSpace"]={["Animation"]=function(fr)
4449
	local keyframe={}
4450
	sresetWelds()
4451
	keyframe[0]=function()
4452
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0,.05)*CFrame.Angles(math.rad(20),0,math.rad(80))
4453
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-45))
4454
		
4455
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(1.2,-.7,-.8)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(85))
4456
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
4457
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.1,.5,-.1)*CFrame.Angles(math.rad(0),math.rad(-45),math.rad(-95))
4458
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4459
				
4460
		sRightHip.C0=sRightHip.C0*CFrame.new(0,.4,0)*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(0))
4461
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(45),math.rad(0))
4462
		
4463
		sLeftHip.C0=sLeftHip.C0*CFrame.new(0,-.15,0)*CFrame.Angles(math.rad(-10),math.rad(5),math.rad(15))
4464
		
4465
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(33),math.rad(0),math.rad(180))
4466
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4467
	end
4468
	keyframe[1]=function()
4469
		sRootJoint.C0=sRootJoint.C0*CFrame.new(0,0.5,.05)*CFrame.Angles(math.rad(-24),0,math.rad(-60))
4470
		sNeck.C0=sNeck.C0*CFrame.Angles(math.rad(15),math.rad(0),math.rad(45))
4471
		
4472
		sRightShoulder.C0=sRightShoulder.C0*CFrame.new(.8,-.7,-.1)*CFrame.Angles(math.rad(0),math.rad(72),math.rad(72))
4473
		sRightShoulder.C1=sRightShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-88),math.rad(0))
4474
		sLeftShoulder.C0=sLeftShoulder.C0*CFrame.new(-.45,-.7,.2)*CFrame.Angles(math.rad(0),math.rad(60),math.rad(-63))
4475
		sLeftShoulder.C1=sLeftShoulder.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(40),math.rad(0))
4476
				
4477
		sRightHip.C0=sRightHip.C0*CFrame.new(.2,.2,-.3)*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(-8))
4478
		sRightHip.C1=sRightHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(-40),math.rad(0))
4479
		
4480
		sLeftHip.C0=sLeftHip.C0*CFrame.new(.1,-.2,-.2)*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(20))
4481
		sLeftHip.C1=sLeftHip.C1*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))
4482
		
4483
		sGrip.C0=GripC0*CFrame.new(.2,0,0)*CFrame.fromEulerAnglesXYZ(math.rad(33),math.rad(0),math.rad(180))
4484
		game.Players.LocalPlayer.Character.Armor.Cloak.CloakScript.Hard.Value=-2
4485
	end
4486
	keyframe[fr]()
4487
	return sRootJoint.C0,sNeck.C0,sRightShoulder.C0,sLeftShoulder.C0,sRightHip.C0,sLeftHip.C0,sGrip.C0,sRootJoint.C1,sNeck.C1,sRightShoulder.C1,sLeftShoulder.C1,sRightHip.C1,sLeftHip.C1
4488
end,["Cancels"]={"Stand"},["Reference"]="BlackSpace"}
4489
4490
--boop
4491
4492
print("ayyo wuts boppin")