View difference between Paste ID: CLbQnhpQ and SLtFPm0p
SHOW: | | - or go back to the newest paste.
1
-- This script has been converted to FE by iPxter
2
3
4
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
5
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
6
do
7
	print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
8
	script.Parent = Player.Character
9
10
	--RemoteEvent for communicating
11-
Player = game:GetService("Players").LocalPlayer
11+
	local Event = Instance.new("RemoteEvent")
12
	Event.Name = "UserInput_Event"
13
14
	--Fake event to make stuff like Mouse.KeyDown work
15
	local function fakeEvent()
16
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
17-
Mouse = Player:GetMouse()
17+
		t.connect = t.Connect
18
		return t
19
	end
20
21
	--Creating fake input objects with fake variables
22
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
23
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
24
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
25
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
26
	end}
27
	--Merged 2 functions into one by checking amount of arguments
28
	CAS.UnbindAction = CAS.BindAction
29
30
	--This function will trigger the events that have been :Connect()'ed
31
	local function te(self,ev,...)
32
		local t = m[ev]
33
		if t and t._fakeEvent and t.Function then
34
			t.Function(...)
35
		end
36
	end
37
	m.TrigEvent = te
38
	UIS.TrigEvent = te
39
40
	Event.OnServerEvent:Connect(function(plr,io)
41
	    if plr~=Player then return end
42
		if io.isMouse then
43
			m.Target = io.Target
44
			m.Hit = io.Hit
45
		else
46
			local b = io.UserInputState == Enum.UserInputState.Begin
47
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
			end
50
			for _,t in pairs(CAS.Actions) do
51
				for _,k in pairs(t.Keys) do
52
					if k==io.KeyCode then
53
						t.Function(t.Name,io.UserInputState,io)
54
					end
55
				end
56
			end
57
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
58
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
59
	    end
60
	end)
61
	Event.Parent = NLS([==[
62
	local Player = game:GetService("Players").LocalPlayer
63
	local Event = script:WaitForChild("UserInput_Event")
64
65
	local UIS = game:GetService("UserInputService")
66
	local input = function(io,a)
67
		if a then return end
68
		--Since InputObject is a client-side instance, we create and pass table instead
69
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
70
	end
71
	UIS.InputBegan:Connect(input)
72
	UIS.InputEnded:Connect(input)
73
74
	local Mouse = Player:GetMouse()
75
	local h,t
76
	--Give the server mouse data 30 times every second, but only if the values changed
77
	--If player is not moving their mouse, client won't fire events
78
	while wait(1/30) do
79
		if h~=Mouse.Hit or t~=Mouse.Target then
80
			h,t=Mouse.Hit,Mouse.Target
81
			Event:FireServer({isMouse=true,Target=t,Hit=h})
82
		end
83
	end]==],Player.Character)
84
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
85
end
86
--//====================================================\\--
87
--||  CREATED BY SHACKLUSTER
88
--\\====================================================//--
89
90
91
92
wait(0.2)
93
94
95
96
Player = owner
97
PlayerGui = Player.PlayerGui
98
Cam = workspace.CurrentCamera
99
Backpack = Player.Backpack
100
Character = Player.Character
101
Humanoid = Character.Humanoid
102
RootPart = Character["HumanoidRootPart"]
103
Torso = Character["Torso"]
104
Head = Character["Head"]
105
RightArm = Character["Right Arm"]
106
LeftArm = Character["Left Arm"]
107
RightLeg = Character["Right Leg"]
108
LeftLeg = Character["Left Leg"]
109
RootJoint = RootPart["RootJoint"]
110
Neck = Torso["Neck"]
111
RightShoulder = Torso["Right Shoulder"]
112
LeftShoulder = Torso["Left Shoulder"]
113
RightHip = Torso["Right Hip"]
114
LeftHip = Torso["Left Hip"]
115
local sick = Instance.new("Sound",Character)
116
sick.SoundId = "rbxassetid://1167151479"
117
sick.Looped = true
118
sick.Pitch = 1
119
sick.Volume = 1
120
sick:Play()
121
122
local naeeym2 = Instance.new("BillboardGui",Character)
123
naeeym2.AlwaysOnTop = true
124
naeeym2.Size = UDim2.new(5,35,2,35)
125
naeeym2.StudsOffset = Vector3.new(0,3,0)
126
naeeym2.Adornee = Character.Head
127
naeeym2.Name = "Name"
128
--naeeym2.PlayerToHideFrom = Player
129
naeeym2.MaxDistance = 200
130
local tecks2 = Instance.new("TextLabel",naeeym2)
131
tecks2.BackgroundTransparency = 1
132
tecks2.TextScaled = true
133
tecks2.BorderSizePixel = 0
134
tecks2.Text = "₱Ɽł₴₥"
135
tecks2.Font = "SciFi"
136
tecks2.TextSize = 30
137
tecks2.TextStrokeTransparency = 1
138
tecks2.TextColor3 = Color3.new(255,255,255)
139
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
140
tecks2.Size = UDim2.new(1,0,0.5,0)
141
tecks2.Parent = naeeym2
142
143
IT = Instance.new
144
CF = CFrame.new
145
VT = Vector3.new
146
RAD = math.rad
147
C3 = Color3.new
148
UD2 = UDim2.new
149
BRICKC = BrickColor.new
150
ANGLES = CFrame.Angles
151
EULER = CFrame.fromEulerAnglesXYZ
152
COS = math.cos
153
ACOS = math.acos
154
SIN = math.sin
155
ASIN = math.asin
156
ABS = math.abs
157
MRANDOM = math.random
158
FLOOR = math.floor
159
160
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
161
	local NEWMESH = IT(MESH)
162
	if MESH == "SpecialMesh" then
163
		NEWMESH.MeshType = MESHTYPE
164
		if MESHID ~= "nil" and MESHID ~= "" then
165
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
166
		end
167
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
168
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
169
		end
170
	end
171
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
172
	NEWMESH.Scale = SCALE
173
	NEWMESH.Parent = PARENT
174
	return NEWMESH
175
end
176
177
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
178
	local NEWPART = IT("Part")
179
	NEWPART.formFactor = FORMFACTOR
180
	NEWPART.Reflectance = REFLECTANCE
181
	NEWPART.Transparency = TRANSPARENCY
182
	NEWPART.CanCollide = false
183
	NEWPART.Locked = true
184
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
185
	NEWPART.Name = NAME
186
	NEWPART.Size = SIZE
187
	NEWPART.Position = Torso.Position
188
	NEWPART.Material = MATERIAL
189
	NEWPART:BreakJoints()
190
	NEWPART.Parent = PARENT
191
	return NEWPART
192
end
193
194
195
--//=================================\\
196
--||		  CUSTOMIZATION
197
--\\=================================//
198
199
Class_Name = "₱Ɽł₴₥.exe"
200
Weapon_Name = "Add-ons"
201
202
Custom_Colors = {
203
	Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
204
	Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
205
206
	Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
207
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
208
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
209
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
210
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
211
212
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
213
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
214
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
215
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
216
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
217
}
218
219
220
Player_Size = 1 --Size of the player.
221
Animation_Speed = 3
222
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
223
224
local Speed = 16
225
local Effects2 = {}
226
227
--//=================================\\
228
--|| 	  END OF CUSTOMIZATION
229
--\\=================================//
230
231
	local function weldBetween(a, b)
232
	    local weldd = Instance.new("ManualWeld")
233
	    weldd.Part0 = a
234
	    weldd.Part1 = b
235
	    weldd.C0 = CFrame.new()
236
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
237
	    weldd.Parent = a
238
	    return weldd
239
	end
240
241
function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
242
local acs = Instance.new("Part")
243
acs.CanCollide = false
244
acs.Anchored = false
245
acs.Size = Vector3.new(0,0,0)
246
acs.CFrame = attachmentpart.CFrame
247
acs.Parent = Character
248
acs.BrickColor = color
249
    local meshs = Instance.new("SpecialMesh")
250
    meshs.MeshId = mesh
251
    meshs.TextureId = texture
252
    meshs.Parent = acs
253
    meshs.Scale = scale
254
    meshs.Offset = offset
255
weldBetween(attachmentpart,acs)
256
end
257
258
function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
259
if TYPE == "Gem" then
260
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
261
	acs.Anchored = false
262
    acs.CanCollide = false
263
	acs.CFrame = PART.CFrame
264
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
265
weldBetween(PART,acs)
266
elseif TYPE == "Skull" then
267
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
268
	acs.Anchored = false
269
    acs.CanCollide = false
270
	acs.CFrame = PART.CFrame
271
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
272
weldBetween(PART,acs)
273
elseif TYPE == "Eye" then
274
    local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
275
    acs.Anchored = false
276
    acs.CanCollide = false
277
    acs.CFrame = PART.CFrame
278
    local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
279
weldBetween(PART,acs)
280
end
281
end
282
283
--//=================================\\
284
--|| 	      USEFUL VALUES
285
--\\=================================//
286
287
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
288
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
289
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
290
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
291
local CO1 = 0
292
local CO2 = 0
293
local CO3 = 0
294
local CO4 = 0
295
local CHANGEDEFENSE = 0
296
local CHANGEDAMAGE = 0
297
local CHANGEMOVEMENT = 0
298
local ANIM = "Idle"
299
local ATTACK = false
300
local EQUIPPED = false
301
local HOLD = false
302
local COMBO = 1
303
local LASTPOINT = nil
304
local BLCF = nil
305
local SCFR = nil
306
local STAGGERHITANIM = false
307
local STAGGERANIM = false
308
local STUNANIM = false
309
local CRITCHANCENUMBER = 0
310
local IDLENUMBER = 0
311
local DONUMBER = 0
312
local HANDIDLE = false
313
local SINE = 0
314
local CHANGE = 2 / Animation_Speed
315
local WALKINGANIM = false
316
local WALK = 0
317
local KEYHOLD = false
318
local DISABLEJUMPING = false
319
local HASBEENBLOCKED = false
320
local STUNDELAYNUMBER = 0
321
local MANADELAYNUMBER = 0
322
local SECONDARYMANADELAYNUMBER = 0
323
local ROBLOXIDLEANIMATION = IT("Animation")
324
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
325
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
326
--ROBLOXIDLEANIMATION.Parent = Humanoid
327
local WEAPONGUI = IT("ScreenGui", nil)
328
WEAPONGUI.Name = "Weapon GUI"
329
local WEAPONTOOL = IT("HopperBin", nil)
330
WEAPONTOOL.Name = Weapon_Name
331
local Weapon = IT("Model")
332
Weapon.Name = Weapon_Name
333
local Effects = IT("Folder", Weapon)
334
Effects.Name = "Effects"
335
local ANIMATOR = Humanoid.Animator
336
local ANIMATE = Character.Animate
337
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
338
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
339
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
340
local HITBLOCKSOUNDS = {"199148933", "199148947"}
341
local CUTSOUNDS = {"645750958","645747150"}
342
local VICIOUSWOOSH = "658941933"
343
local RELEASESOUND = "565538688"
344
local CHARGESOUND = "565538601"
345
local UNANCHOR = true
346
local MAGICPARTICLE = "1229782954"
347
348
--//=================================\\
349
--\\=================================//
350
351
--//=================================\\
352
--||			  STATS
353
--\\=================================//
354
355
if Character:FindFirstChild("Stats") ~= nil then
356
Character:FindFirstChild("Stats").Parent = nil
357
end
358
359
local Stats = IT("Folder", nil)
360
Stats.Name = "Stats"
361
local ChangeStat = IT("Folder", Stats)
362
ChangeStat.Name = "ChangeStat"
363
local Defense = IT("NumberValue", Stats)
364
Defense.Name = "Defense"
365
Defense.Value = 1
366
local Movement = IT("NumberValue", Stats)
367
Movement.Name = "Movement"
368
Movement.Value = 1
369
local Damage = IT("NumberValue", Stats)
370
Damage.Name = "Damage"
371
Damage.Value = 1
372
local Mana = IT("NumberValue", Stats)
373
Mana.Name = "Mana"
374
Mana.Value = 0
375
local SecondaryMana = IT("NumberValue", Stats)
376
SecondaryMana.Name = "SecondaryMana"
377
SecondaryMana.Value = 0
378
local CanCrit = IT("BoolValue", Stats)
379
CanCrit.Name = "CanCrit"
380
CanCrit.Value = false
381
local CritChance = IT("NumberValue", Stats)
382
CritChance.Name = "CritChance"
383
CritChance.Value = 20
384
local CanPenetrateArmor = IT("BoolValue", Stats)
385
CanPenetrateArmor.Name = "CanPenetrateArmor"
386
CanPenetrateArmor.Value = false
387
local AntiTeamKill = IT("BoolValue", Stats)
388
AntiTeamKill.Name = "AntiTeamKill"
389
AntiTeamKill.Value = false
390
local Rooted = IT("BoolValue", Stats)
391
Rooted.Name = "Rooted"
392
Rooted.Value = false
393
local Block = IT("BoolValue", Stats)
394
Block.Name = "Block"
395
Block.Value = false
396
local RecentEnemy = IT("ObjectValue", Stats)
397
RecentEnemy.Name = "RecentEnemy"
398
RecentEnemy.Value = nil
399
local StaggerHit = IT("BoolValue", Stats)
400
StaggerHit.Name = "StaggerHit"
401
StaggerHit.Value = false
402
local Stagger = IT("BoolValue", Stats)
403
Stagger.Name = "Stagger"
404
Stagger.Value = false
405
local Stun = IT("BoolValue", Stats)
406
Stun.Name = "Stun"
407
Stun.Value = false
408
local StunValue = IT("NumberValue", Stats)
409
StunValue.Name = "StunValue"
410
StunValue.Value = 0
411
412
413
--//=================================\\
414
--\\=================================//
415
416
417
418
419
420
--//=================================\\
421
--|| 	     DEBUFFS / BUFFS
422
--\\=================================//
423
424
local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
425
DEFENSECHANGE1.Name = "ChangeDefense"
426
DEFENSECHANGE1.Value = 0
427
428
local MOVEMENTCHANGE1 = IT("NumberValue", nil)
429
MOVEMENTCHANGE1.Name = "ChangeMovement"
430
MOVEMENTCHANGE1.Value = 0
431
432
--//=================================\\
433
--\\=================================//
434
435
436
437
438
439
--//=================================\\
440
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
441
--\\=================================//
442
443
ArtificialHB = Instance.new("BindableEvent", script)
444
ArtificialHB.Name = "ArtificialHB"
445
446
script:WaitForChild("ArtificialHB")
447
448
frame = Frame_Speed
449
tf = 0
450
allowframeloss = false
451
tossremainder = false
452
lastframe = tick()
453
script.ArtificialHB:Fire()
454
455
game:GetService("RunService").Heartbeat:connect(function(s, p)
456
	tf = tf + s
457
	if tf >= frame then
458
		if allowframeloss then
459
			script.ArtificialHB:Fire()
460
			lastframe = tick()
461
		else
462
			for i = 1, math.floor(tf / frame) do
463
				script.ArtificialHB:Fire()
464
			end
465
		lastframe = tick()
466
		end
467
		if tossremainder then
468
			tf = 0
469
		else
470
			tf = tf - frame * math.floor(tf / frame)
471
		end
472
	end
473
end)
474
475
--//=================================\\
476
--\\=================================//
477
478
479
480
481
482
--//=================================\\
483
--|| 	      SOME FUNCTIONS
484
--\\=================================//
485
486
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
487
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
488
end
489
490
function PositiveAngle(NUMBER)
491
	if NUMBER >= 0 then
492
		NUMBER = 0
493
	end
494
	return NUMBER
495
end
496
497
function NegativeAngle(NUMBER)
498
	if NUMBER <= 0 then
499
		NUMBER = 0
500
	end
501
	return NUMBER
502
end
503
504
function Swait(NUMBER)
505
	if NUMBER == 0 or NUMBER == nil then
506
		ArtificialHB.Event:wait()
507
	else
508
		for i = 1, NUMBER do
509
			ArtificialHB.Event:wait()
510
		end
511
	end
512
end
513
514
function QuaternionFromCFrame(cf)
515
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
516
	local trace = m00 + m11 + m22
517
	if trace > 0 then 
518
		local s = math.sqrt(1 + trace)
519
		local recip = 0.5 / s
520
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
521
	else
522
		local i = 0
523
		if m11 > m00 then
524
			i = 1
525
		end
526
		if m22 > (i == 0 and m00 or m11) then
527
			i = 2
528
		end
529
		if i == 0 then
530
			local s = math.sqrt(m00 - m11 - m22 + 1)
531
			local recip = 0.5 / s
532
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
533
		elseif i == 1 then
534
			local s = math.sqrt(m11 - m22 - m00 + 1)
535
			local recip = 0.5 / s
536
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
537
		elseif i == 2 then
538
			local s = math.sqrt(m22 - m00 - m11 + 1)
539
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
540
		end
541
	end
542
end
543
 
544
function QuaternionToCFrame(px, py, pz, x, y, z, w)
545
	local xs, ys, zs = x + x, y + y, z + z
546
	local wx, wy, wz = w * xs, w * ys, w * zs
547
	local xx = x * xs
548
	local xy = x * ys
549
	local xz = x * zs
550
	local yy = y * ys
551
	local yz = y * zs
552
	local zz = z * zs
553
	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))
554
end
555
 
556
function QuaternionSlerp(a, b, t)
557
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
558
	local startInterp, finishInterp;
559
	if cosTheta >= 0.0001 then
560
		if (1 - cosTheta) > 0.0001 then
561
			local theta = ACOS(cosTheta)
562
			local invSinTheta = 1 / SIN(theta)
563
			startInterp = SIN((1 - t) * theta) * invSinTheta
564
			finishInterp = SIN(t * theta) * invSinTheta
565
		else
566
			startInterp = 1 - t
567
			finishInterp = t
568
		end
569
	else
570
		if (1 + cosTheta) > 0.0001 then
571
			local theta = ACOS(-cosTheta)
572
			local invSinTheta = 1 / SIN(theta)
573
			startInterp = SIN((t - 1) * theta) * invSinTheta
574
			finishInterp = SIN(t * theta) * invSinTheta
575
		else
576
			startInterp = t - 1
577
			finishInterp = t
578
		end
579
	end
580
	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
581
end
582
583
function Clerp(a, b, t)
584
	local qa = {QuaternionFromCFrame(a)}
585
	local qb = {QuaternionFromCFrame(b)}
586
	local ax, ay, az = a.x, a.y, a.z
587
	local bx, by, bz = b.x, b.y, b.z
588
	local _t = 1 - t
589
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
590
end
591
592
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
593
	local frame = IT("Frame")
594
	frame.BackgroundTransparency = TRANSPARENCY
595
	frame.BorderSizePixel = BORDERSIZEPIXEL
596
	frame.Position = POSITION
597
	frame.Size = SIZE
598
	frame.BackgroundColor3 = COLOR
599
	frame.BorderColor3 = BORDERCOLOR
600
	frame.Name = NAME
601
	frame.Parent = PARENT
602
	return frame
603
end
604
605
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
606
	local label = IT("TextLabel")
607
	label.BackgroundTransparency = 1
608
	label.Size = UD2(1, 0, 1, 0)
609
	label.Position = UD2(0, 0, 0, 0)
610
	label.TextColor3 = C3(255, 255, 255)
611
	label.TextStrokeTransparency = STROKETRANSPARENCY
612
	label.TextTransparency = TRANSPARENCY
613
	label.FontSize = TEXTFONTSIZE
614
	label.Font = TEXTFONT
615
	label.BorderSizePixel = BORDERSIZEPIXEL
616
	label.TextScaled = true
617
	label.Text = TEXT
618
	label.Name = NAME
619
	label.Parent = PARENT
620
	return label
621
end
622
623
function NoOutlines(PART)
624
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
625
end
626
627
628
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
629
	local NEWWELD = IT(TYPE)
630
	NEWWELD.Part0 = PART0
631
	NEWWELD.Part1 = PART1
632
	NEWWELD.C0 = C0
633
	NEWWELD.C1 = C1
634
	NEWWELD.Parent = PARENT
635
	return NEWWELD
636
end
637
638
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
639
	local NEWSOUND = nil
640
	coroutine.resume(coroutine.create(function()
641
		NEWSOUND = IT("Sound", PARENT)
642
		NEWSOUND.Volume = VOLUME
643
		NEWSOUND.Pitch = PITCH
644
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
645
		--Swait()
646
		NEWSOUND:play()
647
		if DOESLOOP == false then
648
			repeat Swait() until NEWSOUND.Playing == false
649
			NEWSOUND:remove()
650
		elseif DOESLOOP == true then
651
			NEWSOUND.Looped = true
652
		end
653
	end))
654
	return NEWSOUND
655
end
656
657
function CFrameFromTopBack(at, top, back)
658
	local right = top:Cross(back)
659
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
660
end
661
662
function CreateWave(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
663
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
664
	local mesh = IT("SpecialMesh",wave)
665
	mesh.MeshType = "FileMesh"
666
	wave.Anchored = true
667
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
668
	mesh.Scale = VT(size,size,size)
669
	mesh.Offset = VT(0,0,-size/8)
670
	wave.CFrame = CF(part.p) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
671
	coroutine.resume(coroutine.create(function(PART)
672
		for i = 1, waitt do
673
			Swait()
674
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
675
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
676
			if doesrotate == true then
677
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
678
			end
679
			wave.Transparency = wave.Transparency + (0.5/waitt)
680
			if wave.Transparency > 0.99 then
681
				wave:remove()
682
			end
683
		end
684
	end))
685
end
686
687
function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
688
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
689
	local mesh = IT("SpecialMesh",wave)
690
	mesh.MeshType = "FileMesh"
691
	wave.Anchored = true
692
	mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
693
	mesh.Scale = VT(size,size,size)
694
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
695
	coroutine.resume(coroutine.create(function(PART)
696
		for i = 1, waitt do
697
			Swait()
698
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
699
			if doesrotate == true then
700
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
701
			end
702
			wave.Transparency = wave.Transparency + (0.5/waitt)
703
			if wave.Transparency > 0.99 then
704
				wave:remove()
705
			end
706
		end
707
	end))
708
end
709
710
function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
711
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
712
	local mesh = IT("SpecialMesh",wave)
713
	mesh.MeshType = "FileMesh"
714
	wave.Anchored = true
715
	mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
716
	mesh.Scale = VT(size,size,size)
717
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
718
	coroutine.resume(coroutine.create(function(PART)
719
		for i = 1, waitt do
720
			Swait()
721
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
722
			if doesrotate == true then
723
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
724
			end
725
			wave.Transparency = wave.Transparency + (0.5/waitt)
726
			if wave.Transparency > 0.99 then
727
				wave:remove()
728
			end
729
		end
730
	end))
731
end
732
733
function CreateRing(inair,size,doesrotate,rotatedirection,waitt,part,offset,spin1,spin2,color)
734
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
735
	local mesh = IT("SpecialMesh",wave)
736
	mesh.MeshType = "FileMesh"
737
	mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
738
	mesh.Scale = VT(size,size,size)
739
	wave.Anchored = true
740
	mesh.Offset = VT(0,0,0)
741
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
742
	coroutine.resume(coroutine.create(function(PART)
743
		for i = 1, waitt do
744
			Swait()
745
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
746
			if doesrotate == true then
747
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1)
748
			end
749
			wave.Transparency = wave.Transparency + (0.5/waitt)
750
			if wave.Transparency > 0.99 then
751
				wave:remove()
752
			end
753
		end
754
	end))
755
end
756
757
function MagicSphere(size,waitt,part,color)
758
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(0,0,0))
759
	local mesh = IT("SpecialMesh",wave)
760
	mesh.MeshType = "Sphere"
761
	wave.Anchored = true
762
	mesh.Scale = VT(size,size,size)
763
	mesh.Offset = VT(0,0,0)
764
	wave.CFrame = part * ANGLES(RAD(0),RAD(0),RAD(0))
765
	coroutine.resume(coroutine.create(function(PART)
766
		for i = 1, waitt do
767
			Swait()
768
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
769
			wave.Transparency = wave.Transparency + (1/waitt)
770
			if wave.Transparency > 0.99 then
771
				wave:remove()
772
			end
773
		end
774
	end))
775
end
776
777
function MagicBlock(size,waitt,part,offset,color)
778
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size))
779
	local mesh = IT("BlockMesh",wave)
780
	wave.Anchored = true
781
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
782
	coroutine.resume(coroutine.create(function(PART)
783
		for i = 1, waitt do
784
			Swait()
785
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
786
			wave.CFrame = CF(wave.Position) * ANGLES(RAD(math(-360,360)),RAD(math(-360,360)),RAD(math(-360,360)))
787
			wave.Transparency = wave.Transparency + (1/waitt)
788
			if wave.Transparency > 0.99 then
789
				wave:remove()
790
			end
791
		end
792
	end))
793
end
794
795
local EyeSizes={
796
	NumberSequenceKeypoint.new(0,0.5,0),
797
	NumberSequenceKeypoint.new(1,0.2,0)
798
}
799
local EyeTrans={
800
	NumberSequenceKeypoint.new(0,0,0),
801
	NumberSequenceKeypoint.new(1,1,0)
802
}
803
local PE=Instance.new("ParticleEmitter")
804
PE.LightEmission=0.3
805
PE.Size=NumberSequence.new(EyeSizes)
806
PE.Transparency=NumberSequence.new(EyeTrans)
807
PE.Rotation=NumberRange.new(0,360)
808
PE.LockedToPart = false
809
PE.Speed = NumberRange.new(0,0,0)
810
PE.ZOffset = 0.3
811
PE.Rate = 999
812
PE.Name = "Particles"
813
814
function CreateParticles(art,text,accel,drag,lifetime,type,isenabledbydefault,locked)
815
	local particle = nil
816
	coroutine.resume(coroutine.create(function(PART)
817
		particle = PE:Clone()
818
		Swait()
819
		particle.Rate = 999
820
		particle.Parent = art
821
		particle.Acceleration = accel
822
		if type == "Fire" then
823
			local EyeSizes={
824
				NumberSequenceKeypoint.new(0,0.5,0.3),
825
				NumberSequenceKeypoint.new(1,0.2,0.2)
826
			}
827
			particle.Size = NumberSequence.new(EyeSizes)
828
		elseif type == "Smoke" then
829
			local EyeSizes={
830
				NumberSequenceKeypoint.new(0,0.5,0),
831
				NumberSequenceKeypoint.new(1,5,0.5)
832
			}
833
			particle.Size = NumberSequence.new(EyeSizes)
834
		elseif type == "Solid" then
835
			local EyeSizes={
836
				NumberSequenceKeypoint.new(0,0.5,0),
837
				NumberSequenceKeypoint.new(1,0.5,0)
838
			}
839
			particle.Size = NumberSequence.new(EyeSizes)
840
		end
841
		particle.Lifetime=NumberRange.new(lifetime)
842
		particle.Drag = drag
843
		if locked == true then
844
			particle.LockedToPart = true
845
		end
846
		particle.Texture = "http://www.roblox.com/asset/?id="..text
847
		particle.Enabled = isenabledbydefault
848
	end))
849
return particle
850
end
851
852
local EyeSizes={
853
	NumberSequenceKeypoint.new(0,0.5,0),
854
	NumberSequenceKeypoint.new(1,0.2,0)
855
}
856
local EyeTrans={
857
	NumberSequenceKeypoint.new(0,0,0),
858
	NumberSequenceKeypoint.new(1,1,0)
859
}
860
local PE2=Instance.new("ParticleEmitter")
861
PE2.LightEmission=0.8
862
PE2.Size=NumberSequence.new(EyeSizes)
863
PE2.Transparency=NumberSequence.new(EyeTrans)
864
PE2.Rotation=NumberRange.new(0,360)
865
PE2.LockedToPart = false
866
PE2.Speed = NumberRange.new(0,0,0)
867
PE2.ZOffset = 0.3
868
PE2.Rate = 999
869
PE2.VelocitySpread = 90000
870
PE2.Name = "Particles"
871
872
function CreateParticles2(art,accel,drag,lifetime,type,isenabledbydefault,locked,size,speed)
873
	local particle = nil
874
	coroutine.resume(coroutine.create(function(PART)
875
		particle = PE2:Clone()
876
		Swait()
877
		particle.Rate = 999
878
		particle.Parent = art
879
		particle.Acceleration = accel
880
		if type == "Fire" then
881
			local EyeSizes={
882
				NumberSequenceKeypoint.new(0,size,size/2),
883
				NumberSequenceKeypoint.new(1,size/4,size/8)
884
			}
885
			particle.Size = NumberSequence.new(EyeSizes)
886
		elseif type == "Smoke" then
887
			local EyeSizes={
888
				NumberSequenceKeypoint.new(0,0.5,0),
889
				NumberSequenceKeypoint.new(1,5,0.5)
890
			}
891
			particle.Size = NumberSequence.new(EyeSizes)
892
		elseif type == "Solid" then
893
			local EyeSizes={
894
				NumberSequenceKeypoint.new(0,0.5,0),
895
				NumberSequenceKeypoint.new(1,0.5,0)
896
			}
897
			particle.Size = NumberSequence.new(EyeSizes)
898
		end
899
		particle.Lifetime=NumberRange.new(lifetime)
900
		particle.Drag = drag
901
		if locked == true then
902
			particle.LockedToPart = true
903
		end
904
		particle.Speed = NumberRange.new(speed,speed,speed)
905
		particle.Texture = "http://www.roblox.com/asset/?id="..MAGICPARTICLE
906
		particle.Enabled = isenabledbydefault
907
		--particle.Color = ColorSequence.new(Color3.new(255, 255, 255))
908
	end))
909
return particle
910
end
911
912
local Decal = IT("Decal")
913
914
function CreateMagicCircle(size,doesrotate,rotatedirection,waitt,cframe,alwaysfade)
915
	local sinkhole = IT("Part")
916
	sinkhole.Size = VT(size,0,size)
917
	sinkhole.CFrame = cframe
918
	--sinkhole.Orientation = VT(0,0,0)
919
	sinkhole.Parent = Effects
920
	sinkhole.Material = "Neon"
921
	sinkhole.Color = C3(255, 255, 255)
922
	sinkhole.Anchored = true
923
	sinkhole.CanCollide = false
924
	sinkhole.Transparency = 1
925
	local decal = Decal:Clone()
926
	decal.Parent = sinkhole
927
	decal.Face = "Top"
928
	decal.Texture = "http://www.roblox.com/asset/?id=1226241606"
929
	local decal2 = Decal:Clone()
930
	decal2.Parent = sinkhole
931
	decal2.Face = "Bottom"
932
	decal2.Texture = "http://www.roblox.com/asset/?id=1226241606"
933
	coroutine.resume(coroutine.create(function(PART)
934
		for i = 1, waitt do
935
			Swait()
936
			if doesrotate == true then
937
				sinkhole.CFrame = sinkhole.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
938
			end
939
			if alwaysfade == true then
940
				decal.Transparency = decal.Transparency + (1/waitt)
941
				decal2.Transparency = decal.Transparency + (1/waitt)
942
			end
943
			if i > waitt-11 and (alwaysfade ~= true) then
944
				decal.Transparency = decal.Transparency + 0.1
945
				decal2.Transparency = decal.Transparency + 0.1
946
			end
947
		end
948
		sinkhole.Parent = nil
949
	end))
950
	return sinkhole
951
end
952
953
--//=================================\\
954
--\\=================================//
955
956
957
--//=================================\\
958
--||	     WEAPON CREATION
959
--\\=================================//
960
961
if Player_Size ~= 1 then
962
	for _, v in pairs (Weapon:GetChildren()) do
963
		if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
964
			local p1 = v.Part1
965
			v.Part1 = nil
966
			local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
967
			v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
968
			v.Part1 = p1
969
		elseif v.ClassName == "Part" then
970
			for _, b in pairs (v:GetChildren()) do
971
				if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
972
					b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
973
				end
974
			end
975
		end
976
	end
977
end
978
979
Swait()
980
981
local Plate = IT("Part",Weapon)
982
Plate.Size = VT(1,0.1,1)
983
Plate.Transparency = 1
984
Plate.CanCollide = false
985
Plate.CFrame = LeftLeg.CFrame * CF(0,-1.1,0)
986
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
987
weldBetween(LeftLeg,Plate)
988
989
local Plate = IT("Part",Weapon)
990
Plate.Size = VT(1,0.1,1)
991
Plate.Transparency = 1
992
Plate.CanCollide = false
993
Plate.CFrame = RightLeg.CFrame * CF(0,-1.1,0)
994
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
995
weldBetween(RightLeg,Plate)
996
997
local Plate = IT("Part",Weapon)
998
Plate.Size = VT(1,0.1,1)
999
Plate.Transparency = 1
1000
Plate.CanCollide = false
1001
Plate.CFrame = RightArm.CFrame * CF(0,-1.1,0)
1002
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
1003
weldBetween(RightArm,Plate)
1004
1005
local Plate = IT("Part",Weapon)
1006
Plate.Size = VT(1,0.1,1)
1007
Plate.Transparency = 1
1008
Plate.CanCollide = false
1009
Plate.CFrame = LeftArm.CFrame * CF(0,-1.1,0)
1010
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
1011
weldBetween(LeftArm,Plate)
1012
1013
local eye = IT("Part",Weapon)
1014
eye.Size = VT(0.2,0.2,0.2)
1015
eye.Shape = "Ball"
1016
eye.CFrame = Head.CFrame * CF(0.125,0.2,-0.55)
1017
eye.Material = "Neon"
1018
eye.BrickColor = BRICKC("Institutional white")
1019
weldBetween(Head,eye)
1020
1021
1022
1023
for _, c in pairs(Weapon:GetChildren()) do
1024
	if c.ClassName == "Part" then
1025
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1026
	end
1027
end
1028
1029
Weapon.Parent = Character
1030
1031
Humanoid.Died:connect(function()
1032
	ATTACK = true
1033
end)
1034
1035
print(Class_Name.." loaded.")
1036
1037
--//=================================\\
1038
--\\=================================//
1039
1040
1041
1042
1043
1044
--//=================================\\
1045
--||	     DAMAGE FUNCTIONS
1046
--\\=================================//
1047
1048
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
1049
	local STATPART = CreatePart(3, Effects, "Neon", 0, 1, "Institutional white", "Effect", VT())
1050
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
1051
	local BODYGYRO = IT("BodyGyro", STATPART)
1052
	local BODYPOSITION = IT("BodyPosition", STATPART)
1053
	BODYPOSITION.P = 2000
1054
	BODYPOSITION.D = 100
1055
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
1056
	if LABELTYPE == "Normal" then
1057
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
1058
	elseif LABELTYPE == "Debuff" then
1059
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
1060
	elseif LABELTYPE == "Interruption" then
1061
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
1062
	end
1063
	game:GetService("Debris"):AddItem(STATPART ,5)
1064
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
1065
	BILLBOARDGUI.Adornee = STATPART
1066
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
1067
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
1068
	BILLBOARDGUI.AlwaysOnTop = false
1069
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
1070
	TEXTLABEL.BackgroundTransparency = 1
1071
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
1072
	TEXTLABEL.Text = TEXT
1073
	TEXTLABEL.Font = "SciFi"
1074
	TEXTLABEL.FontSize="Size42"
1075
	TEXTLABEL.TextColor3 = COLOR
1076
	TEXTLABEL.TextStrokeTransparency = 1
1077
	TEXTLABEL.TextScaled = true
1078
	TEXTLABEL.TextWrapped = true
1079
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
1080
		wait(0.2)
1081
		for i=1, 5 do
1082
			wait()
1083
			THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
1084
		end
1085
		wait(1.2)
1086
		for i=1, 5 do
1087
			wait()
1088
			THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
1089
			THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
1090
			THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
1091
		end
1092
		THEPART.Parent = nil
1093
	end),STATPART, BODYPOSITION, TEXTLABEL)
1094
end
1095
1096
1097
--//=================================\\
1098
--||			DAMAGING
1099
--\\=================================//
1100
1101
function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier)
1102
	if hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then
1103
		local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
1104
		local dmg = math.random(min,max)
1105
		if humanoid.Health > 0 then
1106
			if beserk == true then
1107
				humanoid.Health = 0
1108
			else
1109
				CreateSound("260430060", hit, 1.2, MRANDOM(7, 12) / 10)
1110
				hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength
1111
				if math.random(1,100) < critrate+1 then
1112
					humanoid.Health = humanoid.Health - dmg*critmultiplier
1113
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1114
				else
1115
					humanoid.Health = humanoid.Health - dmg
1116
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(0, 0, 0))
1117
				end
1118
				local defence = Instance.new("BoolValue",hit.Parent)
1119
				defence.Name = ("HitBy"..Player.Name)
1120
				game:GetService("Debris"):AddItem(defence, 0.5)
1121
			end
1122
		end
1123
	end
1124
end
1125
1126
function AoEDamage(position,radius,min,max,maxstrength,beserk,critrate,critmultiplier,CanBeDodgedByJumping)
1127
	local dmg = math.random(min,max)
1128
	for i,v in ipairs(workspace:GetChildren()) do
1129
	if v:FindFirstChild("HitBy"..Player.Name) == nil then
1130
		local body = v:GetChildren()
1131
			for part = 1, #body do
1132
				if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1133
					if(body[part].Position - position).Magnitude < radius then
1134
						if v.ClassName == "Model" then
1135
							if v:FindFirstChild("Humanoid") then
1136
								if v.Humanoid.Health ~= 0 then
1137
									if CanBeDodgedByJumping == true then
1138
										if body[part].Position.Y < position.Y+5 then
1139
											if math.random(1,100) < critrate+1 then
1140
												v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1141
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1142
											else
1143
												v.Humanoid.Health = v.Humanoid.Health - dmg
1144
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1145
											end
1146
											local defence = Instance.new("BoolValue",v)
1147
											defence.Name = ("HitBy"..Player.Name)
1148
											game:GetService("Debris"):AddItem(defence, 0.5)
1149
										end
1150
									else
1151
										if beserk == true then
1152
											v.Humanoid.Health = 0
1153
										end
1154
										if math.random(1,100) < critrate+1 then
1155
											v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1156
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1157
										else
1158
											v.Humanoid.Health = v.Humanoid.Health - dmg
1159
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1160
										end
1161
										local defence = Instance.new("BoolValue",v)
1162
										defence.Name = ("HitBy"..Player.Name)
1163
										game:GetService("Debris"):AddItem(defence, 0.5)
1164
									end
1165
								end
1166
							end
1167
						end
1168
						body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1169
					end
1170
				end
1171
			end
1172
			if v.ClassName == "Part" then
1173
				if v.Anchored == false and (v.Position - position).Magnitude < radius then
1174
					v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1175
				end
1176
			end
1177
		end
1178
	end
1179
end
1180
1181
function attractnearest(postype,position,range,maxstrength,last)
1182
	if postype == "Vector" then
1183
		for i,v in ipairs(workspace:GetChildren()) do
1184
		local body = v:GetChildren()
1185
			for part = 1, #body do
1186
				if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1187
					if(body[part].Position - position).Magnitude < range then
1188
						if body[part]:FindFirstChild("ATTRACT") == nil then
1189
							local bv = Instance.new("BodyVelocity") 
1190
							bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1191
							bv.velocity = CF(body[part].Position,position).lookVector*maxstrength
1192
							bv.Parent = body[part]
1193
							bv.Name = "ATTRACT"
1194
						else
1195
							coroutine.resume(coroutine.create(function()
1196
								for i = 1, last/5 do
1197
									Swait(5)
1198
									body[part].ATTRACT.velocity = CF(body[part].Position,position).lookVector*maxstrength	
1199
								end		
1200
								body[part].ATTRACT:remove()				
1201
							end))
1202
						end
1203
					end
1204
				end
1205
			end
1206
			if v.ClassName == "Part" then
1207
				if v.Anchored == false and (v.Position - position).Magnitude < range then
1208
					if v:FindFirstChild("ATTRACT") == nil then
1209
						local bv = Instance.new("BodyVelocity") 
1210
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1211
						bv.velocity = CF(v.Position,position).lookVector*maxstrength
1212
						bv.Parent = v
1213
						bv.Name = "ATTRACT"
1214
					else
1215
						coroutine.resume(coroutine.create(function()
1216
							for i = 1, last/5 do
1217
								Swait(5)
1218
								v.ATTRACT.velocity = CF(v.Position,position).lookVector*maxstrength	
1219
							end		
1220
							v.ATTRACT:remove()				
1221
						end))
1222
					end
1223
				end
1224
			end
1225
		end
1226
	elseif postype == "Part" then
1227
		for i,v in ipairs(workspace:GetChildren()) do
1228
		local body = v:GetChildren()
1229
			for part = 1, #body do
1230
				if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1231
					if(body[part].Position - position.Position).Magnitude < range then
1232
						if body[part]:FindFirstChild("ATTRACT") == nil then
1233
							local bv = Instance.new("BodyVelocity") 
1234
							bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1235
							bv.velocity = CF(body[part].Position,position.Position).lookVector*maxstrength
1236
							bv.Parent = body[part]
1237
							bv.Name = "ATTRACT"
1238
						else
1239
							coroutine.resume(coroutine.create(function()
1240
								for i = 1, last/5 do
1241
									Swait(5)
1242
									body[part].ATTRACT.velocity = CF(body[part].Position,position.Position).lookVector*maxstrength	
1243
								end		
1244
								body[part].ATTRACT:remove()				
1245
							end))
1246
						end
1247
					end
1248
				end
1249
			end
1250
			if v.ClassName == "Part" then
1251
				if v.Anchored == false and (v.Position - position.Position).Magnitude < range then
1252
					if v:FindFirstChild("ATTRACT") == nil then
1253
						local bv = Instance.new("BodyVelocity") 
1254
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1255
						bv.velocity = CF(v.Position,position.Position).lookVector*maxstrength
1256
						bv.Parent = v
1257
						bv.Name = "ATTRACT"
1258
					else
1259
						coroutine.resume(coroutine.create(function()
1260
							for i = 1, last/5 do
1261
								Swait(5)
1262
								v.ATTRACT.velocity = CF(v.Position,position.Position).lookVector*maxstrength	
1263
							end		
1264
							v.ATTRACT:remove()				
1265
						end))
1266
					end
1267
				end
1268
			end
1269
		end
1270
	end
1271
end
1272
1273
function killnearest(position,range,maxstrength,candestroy)
1274
	for i,v in ipairs(workspace:GetChildren()) do
1275
	local body = v:GetChildren()
1276
		for part = 1, #body do
1277
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1278
				if(body[part].Position - position).Magnitude < range then
1279
					if v.ClassName == "Model" then
1280
						v:BreakJoints()
1281
					end
1282
					if candestroy == true then
1283
						table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
1284
					end
1285
					body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1286
				end
1287
			end
1288
		end
1289
		if v.ClassName == "Part" then
1290
			if v.Anchored == false and (v.Position - position).Magnitude < range then
1291
				if candestroy == true then
1292
					table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
1293
				end
1294
				v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1295
			end
1296
		end
1297
	end
1298
end
1299
1300
--//=================================\\
1301
--||	ATTACK FUNCTIONS AND STUFF
1302
--\\=================================//
1303
1304
function CheckTableForString(Table, String)
1305
	for i, v in pairs(Table) do
1306
		if string.find(string.lower(String), string.lower(v)) then
1307
			return true
1308
		end
1309
	end
1310
	return false
1311
end
1312
1313
function CheckIntangible(Hit)
1314
	local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
1315
	if Hit and Hit.Parent then
1316
		if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
1317
			return true
1318
		end
1319
	end
1320
	return false
1321
end
1322
1323
Debris = game:GetService("Debris")
1324
1325
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
1326
	local Direction = CFrame.new(StartPos, Vec).lookVector
1327
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
1328
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
1329
	if RayHit and CheckIntangible(RayHit) then
1330
		if DelayIfHit then
1331
			wait()
1332
		end
1333
		RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
1334
	end
1335
	return RayHit, RayPos, RayNormal
1336
end
1337
1338
function turnto(pos)
1339
	RootPart.CFrame = CF(RootPart.Position,VT(pos.X,RootPart.Position.Y,pos.Z))
1340
end
1341
1342
function GraviBomb()
1343
	ATTACK = true
1344
	for i=0, 1, 0.1 / Animation_Speed do
1345
		Swait()
1346
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
1347
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(35)) * ANGLES(RAD(2.5), RAD(0), RAD(0)), 0.4 / Animation_Speed)
1348
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1349
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.75 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(50)) * ANGLES(RAD(80), RAD(-20), RAD(-30)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
1350
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1351
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1352
	end
1353
	MagicSphere(25,25,LeftArm.CFrame*CF(0,-1,0),"Institutional white")
1354
	MagicSphere(20,25,LeftArm.CFrame*CF(0,-1,0),"Institutional white")
1355
	coroutine.resume(coroutine.create(function()
1356
		local cframe = CF(Mouse.Hit.p)
1357
		local circle = CreateMagicCircle(75,true,0.05,120,cframe,false)
1358
		for i = 1, 5 do
1359
			CreateSound(CUTSOUNDS[MRANDOM(1, #CUTSOUNDS)], Effects, 2, 1)
1360
			local sphere = IT("Part",Effects)
1361
			sphere.Shape = "Ball"
1362
			sphere.Size = VT(50,50,50)
1363
			sphere.Anchored = true
1364
			sphere.CanCollide = false
1365
			sphere.Material = "Neon"
1366
			sphere.BrickColor = BRICKC("Institutional white")
1367
			sphere.Transparency = 0
1368
			sphere.CFrame = cframe
1369
			for i = 1, 10 do
1370
				Swait(2)
1371
				attractnearest("Vector",cframe.p,75,50,10)
1372
				sphere.CFrame = cframe
1373
				sphere.Size = sphere.Size - VT(5,5,5)
1374
				sphere.CFrame = cframe
1375
			end
1376
			sphere:remove()
1377
		end
1378
		local scale = 5
1379
		coroutine.resume(coroutine.create(function()
1380
			CreateSound(RELEASESOUND, Effects, 2, 1)
1381
			MagicSphere(100,125,cframe,"Institutional white")
1382
			MagicSphere(75,125,cframe,"Institutional white")
1383
			CreateSwirl(180,6,true,0.3,225,circle,0,"Institutional white")
1384
			CreateSwirl(180,4,true,0.3,225,circle,0,"Institutional white")
1385
			CreateSwirl(180,2,true,0.3,225,circle,0,"Institutional white")
1386
			for i = 1, 15 do
1387
				Swait()
1388
				killnearest(cframe.p,25,150)
1389
			end
1390
		end))
1391
	end))
1392
	for i=0, 1, 0.1 / Animation_Speed do
1393
		Swait()
1394
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
1395
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(25)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.4 / Animation_Speed)
1396
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1397
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.25 * Player_Size, -0.25 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-20 + MRANDOM(-2.5, 2.5))) * ANGLES(RAD(70 + MRANDOM(-2.5, 2.5)), RAD(40), RAD(0)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
1398
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1399
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1400
	end
1401
	ATTACK = false
1402
end
1403
1404
function GraviSpear()
1405
	ATTACK = true
1406
	for i=0, 1.5, 0.1 / Animation_Speed do
1407
		Swait()
1408
		turnto(Mouse.Hit.p)
1409
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(75)), 0.4 / Animation_Speed)
1410
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 0.2 / Animation_Speed)
1411
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1412
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1413
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1414
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1415
	end
1416
	local spear = IT("Part",Effects)
1417
	spear.Anchored = true
1418
	spear.CanCollide = false
1419
	spear.Shape = "Ball"
1420
	spear.Size = VT(0,0,0)
1421
	spear.Material = "Neon"
1422
	spear.Transparency = 0.2
1423
	spear.BrickColor = BRICKC("Institutional white")
1424
	spear.CFrame = RightArm.CFrame * CF(0,-4,0)
1425
	local inner = spear:Clone()
1426
	inner.Parent = spear
1427
	inner.Size = VT(0,0,0)
1428
	inner.BrickColor = BRICKC("Institutional white")
1429
	inner.CFrame = spear.CFrame
1430
	for i = 1, 10 do
1431
		Swait()
1432
		turnto(Mouse.Hit.p)
1433
		spear.CFrame = RightArm.CFrame * CF(0,-4,0)
1434
		inner.CFrame = spear.CFrame
1435
		spear.Size = spear.Size + VT(0.4,0.4,0.4)
1436
		inner.Size = inner.Size + VT(0.35,0.35,0.35)
1437
	end
1438
	CreateParticles2(inner,VT(0,0,0),5,1,"Smoke",true,true,1,8)
1439
	MagicSphere(25,25,RightArm.CFrame*CF(0,-1,0),"Institutional white")
1440
	MagicSphere(20,25,RightArm.CFrame*CF(0,-1,0),"Institutional white")
1441
	CreateSound(CUTSOUNDS[MRANDOM(1, #CUTSOUNDS)], RightArm, 6, 1)
1442
	local bv = Instance.new("BodyVelocity") 
1443
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1444
	bv.velocity = CF(spear.Position,Mouse.Hit.p).lookVector*65
1445
	bv.Parent = spear
1446
	bv.Name = "MOVE"
1447
	weldBetween(spear,inner)
1448
	spear.Anchored = false
1449
	inner.Anchored = false
1450
	local harm = spear.Touched:Connect(function(hit)
1451
		if hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
1452
			local cframe = spear.CFrame
1453
			coroutine.resume(coroutine.create(function()
1454
				spear.Parent = nil
1455
				coroutine.resume(coroutine.create(function()
1456
					CreateSound(RELEASESOUND, Effects, 2, 1)
1457
					MagicSphere(60,125,cframe,"Institutional white")
1458
					MagicSphere(50,125,cframe,"Institutional white")
1459
					CreateSwirl(0,6,true,0.3,125,spear,0,"Institutional white")
1460
					CreateSwirl(0,4,true,0.3,125,spear,0,"Institutional white")
1461
					CreateSwirl(0,2,true,0.3,125,spear,0,"Institutional white")
1462
					for i = 1, 15 do
1463
						Swait()
1464
						killnearest(cframe.p,15,150)
1465
					end
1466
				end))
1467
			end))
1468
		end
1469
	end)
1470
	coroutine.resume(coroutine.create(function()
1471
		repeat
1472
			Swait()
1473
			CreateSwirl(0,2,true,0.3,25,spear,0,"Institutional white")
1474
			attractnearest("Part",spear,65,70,5)
1475
		until spear.Parent == nil
1476
	end))
1477
	ATTACK = false
1478
end
1479
1480
function WarpSpear()
1481
	ATTACK = true
1482
	for i=0, 1.5, 0.1 / Animation_Speed do
1483
		Swait()
1484
		turnto(Mouse.Hit.p)
1485
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(75)), 0.4 / Animation_Speed)
1486
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 0.2 / Animation_Speed)
1487
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1488
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1489
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1490
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1491
	end
1492
	local spear = IT("Part",Effects)
1493
	spear.Anchored = true
1494
	spear.CanCollide = false
1495
	spear.Shape = "Ball"
1496
	spear.Size = VT(0,0,0)
1497
	spear.Material = "Neon"
1498
	spear.Transparency = 0.2
1499
	spear.BrickColor = BRICKC("Institutional white")
1500
	spear.CFrame = RightArm.CFrame * CF(0,-4,0)
1501
	local inner = spear:Clone()
1502
	inner.Parent = spear
1503
	inner.Size = VT(0,0,0)
1504
	inner.BrickColor = BRICKC("Institutional white")
1505
	inner.CFrame = spear.CFrame
1506
	for i = 1, 5 do
1507
		Swait()
1508
		turnto(Mouse.Hit.p)
1509
		spear.CFrame = RightArm.CFrame * CF(0,-4,0)
1510
		inner.CFrame = spear.CFrame
1511
		spear.Size = spear.Size + VT(0.4,0.4,0.4)
1512
		inner.Size = inner.Size + VT(0.35,0.35,0.35)
1513
	end
1514
	MagicSphere(25,25,RightArm.CFrame*CF(0,-1,0),"Institutional white")
1515
	MagicSphere(20,25,RightArm.CFrame*CF(0,-1,0),"Institutional white")
1516
	CreateSound(CUTSOUNDS[MRANDOM(1, #CUTSOUNDS)], RightArm, 6, 1)
1517
	local bv = Instance.new("BodyVelocity") 
1518
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1519
	bv.velocity = CF(spear.Position,Mouse.Hit.p).lookVector*100
1520
	bv.Parent = spear
1521
	bv.Name = "MOVE"
1522
	weldBetween(spear,inner)
1523
	spear.Anchored = false
1524
	inner.Anchored = false
1525
	local HIT = false
1526
	local harm = spear.Touched:Connect(function(hit)
1527
		if HIT == false and hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
1528
			local cframe = spear.CFrame
1529
			HIT = true
1530
			coroutine.resume(coroutine.create(function()
1531
				spear.Parent = nil
1532
				RootPart.CFrame = CF(spear.Position,Mouse.Hit.p)
1533
				coroutine.resume(coroutine.create(function()
1534
					CreateSound(RELEASESOUND, Effects, 2, 1.5)
1535
					MagicSphere(30,105,cframe,"Institutional white")
1536
					MagicSphere(25,105,cframe,"Institutional white")
1537
					for i = 1, 15 do
1538
						Swait()
1539
						killnearest(cframe.p,7.5,150)
1540
					end
1541
				end))
1542
			end))
1543
		end
1544
	end)
1545
	coroutine.resume(coroutine.create(function()
1546
		Swait(75)
1547
		if HIT == false then
1548
			local cframe = spear.CFrame
1549
			HIT = true
1550
			coroutine.resume(coroutine.create(function()
1551
				spear.Parent = nil
1552
				RootPart.CFrame = CF(spear.Position,Mouse.Hit.p)
1553
				coroutine.resume(coroutine.create(function()
1554
					CreateSound(RELEASESOUND, Effects, 2, 1.5)
1555
					MagicSphere(30,105,cframe,"Institutional white")
1556
					MagicSphere(25,105,cframe,"Institutional white")
1557
					for i = 1, 15 do
1558
						Swait()
1559
						killnearest(cframe.p,7.5,150)
1560
					end
1561
				end))
1562
			end))
1563
		end
1564
	end))
1565
	coroutine.resume(coroutine.create(function()
1566
		local loop = 0
1567
		repeat
1568
			Swait()
1569
			loop = loop + 1
1570
			if loop == 4 then
1571
				MagicSphere(25,15,spear.CFrame,"Institutional white")
1572
			end
1573
			if loop == 7 then
1574
				loop = 0
1575
				MagicSphere(25,15,spear.CFrame,"Institutional white")
1576
			end
1577
			attractnearest("Part",spear,12.5,50,5)
1578
		until spear.Parent == nil
1579
	end))
1580
	ATTACK = false
1581
end
1582
1583
function GravityGlobe()
1584
	ATTACK = true
1585
	Rooted = true
1586
	for i=0, 1, 0.1 / Animation_Speed do
1587
		Swait()
1588
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
1589
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(35)) * ANGLES(RAD(2.5), RAD(0), RAD(0)), 0.4 / Animation_Speed)
1590
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1591
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.75 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(50)) * ANGLES(RAD(80), RAD(-20), RAD(-30)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
1592
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1593
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1594
	end
1595
	coroutine.resume(coroutine.create(function()
1596
		CreateMagicCircle(100,true,0.02,50,CF(RootPart.Position) * CF(0,-2.8,0),true)
1597
		local cframe = RootPart.CFrame
1598
		CreateSound(RELEASESOUND, Effects, 2, 1)
1599
		local sphere = IT("Part",Effects)
1600
		sphere.Shape = "Ball"
1601
		sphere.Size = VT(0,0,0)
1602
		sphere.Anchored = true
1603
		sphere.CanCollide = false
1604
		sphere.Material = "Neon"
1605
		sphere.Transparency = 0.5
1606
		sphere.BrickColor = BRICKC("Institutional white")
1607
		sphere.CFrame = cframe
1608
		local sphere2 = IT("Part",Effects)
1609
		sphere2.Shape = "Ball"
1610
		sphere2.Size = VT(0,0,0)
1611
		sphere2.Anchored = true
1612
		sphere2.CanCollide = false
1613
		sphere2.Material = "Neon"
1614
		sphere2.Transparency = 0.3
1615
		sphere2.BrickColor = BRICKC("Institutional white")
1616
		sphere2.CFrame = cframe
1617
		for i = 1, 10 do
1618
			Swait(2)
1619
			attractnearest("Vector",cframe.p,50,50,10)
1620
			sphere.CFrame = cframe
1621
			sphere.Size = sphere.Size + VT(4,4,4)
1622
			sphere2.CFrame = cframe
1623
			sphere2.Size = sphere2.Size + VT(3.5,3.5,3.5)
1624
			killnearest(cframe.p,15,0)
1625
		end
1626
		local scale = 0.2
1627
		local mode = "shrink"
1628
		for i = 1, 350 do
1629
			Swait()
1630
			if mode == "shrink" then
1631
				scale = scale + scale
1632
				if scale >= - 65 then
1633
					mode = "grow"
1634
				end
1635
			elseif mode == "grow" then
1636
				scale = scale + -scale*2
1637
				if scale <= - 65 then
1638
					mode = "shrink"
1639
				end
1640
			end
1641
			CreateRing(180,5,true,0,50,sphere,0,scale,scale,"Institutional white")
1642
			sphere.Size = sphere.Size + VT(scale,scale,scale)
1643
			attractnearest("Vector",cframe.p,50,50,5)
1644
			killnearest(cframe.p,15,0)
1645
		end
1646
		for i = 1, 10 do
1647
			Swait(2)
1648
			sphere.CFrame = cframe
1649
			sphere.Size = sphere.Size - VT(5,5,5)
1650
			sphere.CFrame = cframe
1651
			sphere2.CFrame = cframe
1652
			sphere2.Size = sphere2.Size - VT(3.5,3.5,3.5)
1653
		end
1654
		sphere:remove()
1655
		sphere2:remove()
1656
	end))
1657
	for i=0, 1, 0.1 / Animation_Speed do
1658
		Swait()
1659
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
1660
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(25)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.4 / Animation_Speed)
1661
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1662
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.25 * Player_Size, -0.25 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-20 + MRANDOM(-2.5, 2.5))) * ANGLES(RAD(70 + MRANDOM(-2.5, 2.5)), RAD(40), RAD(0)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
1663
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1664
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1665
	end
1666
	Rooted = false
1667
	ATTACK = false
1668
end
1669
1670
function GravityBeam()
1671
	ATTACK = true
1672
	Rooted = true
1673
	for i=0, 1.5, 0.1 / Animation_Speed do
1674
		Swait()
1675
		turnto(Mouse.Hit.p)
1676
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(75)), 0.4 / Animation_Speed)
1677
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 0.2 / Animation_Speed)
1678
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1679
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1680
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1681
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1682
	end
1683
	local startpos = RightArm.CFrame*CF(0,-1.5,0).p
1684
	local loop = 0
1685
	local loopsound = CreateSound(CHARGESOUND, RightArm, 10, 1, true)
1686
	local loopsound2 = CreateSound("487214658", Effects, 1, 0, true)
1687
	local pos = nil
1688
	repeat
1689
		if loop < 150 then
1690
			Swait()
1691
			loop = loop + 1
1692
			turnto(Mouse.Hit.p)
1693
			MagicSphere(15,25,RightArm.CFrame*CF(0,-1,0),"Institutional white")
1694
			MagicSphere(12,25,RightArm.CFrame*CF(0,-1,0),"Institutional white")
1695
		else
1696
			loopsound2.Pitch = 1
1697
			loopsound:Stop()
1698
			startpos = RightArm.CFrame*CF(0,-1.5,0).p
1699
			turnto(Mouse.Hit.p)
1700
			MagicSphere(35,25,CF(startpos),"Institutional white")
1701
			MagicSphere(32,25,CF(startpos),"Institutional white")
1702
			local RayHit, RayPos, RayNormal = CastZapRay(startpos, Mouse.Hit.p, 150, Character, false)
1703
			local distance = (startpos - RayPos).magnitude
1704
			local laser = Instance.new("Part",Effects)
1705
			laser.Transparency = 0.5
1706
			laser.CanCollide = false
1707
			laser.Anchored = true
1708
			laser.BrickColor = BrickColor.new("Institutional white")
1709
       	 	laser.Material = "Neon" 
1710
			laser.formFactor    = Enum.FormFactor.Custom
1711
			laser.Size          = Vector3.new(2.5, 2.5, distance)
1712
			laser.CFrame        = CFrame.new(startpos, RayPos) * CFrame.new(0, 0, -distance/2)
1713
			local laser2 = Instance.new("Part",Effects)
1714
			laser2.Transparency = 0
1715
			laser2.CanCollide = false
1716
			laser2.Anchored = true
1717
			laser2.BrickColor = BrickColor.new("Institutional white")
1718
       	 	laser2.Material = "Neon" 
1719
			laser2.formFactor    = Enum.FormFactor.Custom
1720
			laser2.Size          = Vector3.new(2, 2, distance)
1721
			laser2.CFrame        = CFrame.new(startpos, RayPos) * CFrame.new(0, 0, -distance/2)
1722
			killnearest(RayPos,5,150,true)
1723
			MagicSphere(350,2,CF(RayPos),"Institutional white")
1724
			MagicSphere(320,2,CF(RayPos),"Institutional white")
1725
			if RayHit ~= nil then
1726
				CreateWave(0,5,false,0,25,CF(RayPos),0,"Institutional white")
1727
			end
1728
			attractnearest("Vector",RayPos,40,50,10)
1729
			pos = RayPos
1730
			Swait()
1731
			laser2:remove()
1732
			laser:remove()
1733
		end
1734
	until KEYHOLD == false
1735
	if loop == 150 then
1736
		local cframe = CF(pos)
1737
		coroutine.resume(coroutine.create(function()
1738
			coroutine.resume(coroutine.create(function()
1739
				CreateSound(RELEASESOUND, Effects, 2, 1)
1740
				MagicSphere(500,55,cframe,"Institutional white")
1741
				MagicSphere(450,55,cframe,"Institutional white")
1742
				for i = 1, 15 do
1743
					Swait()
1744
					killnearest(cframe.p,75,150)
1745
				end
1746
			end))
1747
		end))
1748
	end
1749
	loopsound2:remove()
1750
	loopsound:remove()
1751
	Rooted = false
1752
	ATTACK = false
1753
end
1754
1755
--//=================================\\
1756
--||	  ASSIGN THINGS TO KEYS
1757
--\\=================================//
1758
1759
Humanoid.Changed:connect(function(Jump)
1760
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
1761
		Humanoid.Jump = false
1762
	end
1763
end)
1764
1765
function MouseDown(Mouse)
1766
	if ATTACK == false then
1767
	end
1768
end
1769
1770
function MouseUp(Mouse)
1771
HOLD = false
1772
end
1773
1774
function KeyDown(Key)
1775
	KEYHOLD = true
1776
	if Key == "q" and ATTACK == false then
1777
		GraviBomb()
1778
	end
1779
1780
	if Key == "e" and ATTACK == false then
1781
		GraviSpear()
1782
	end
1783
1784
	if Key == "r" and ATTACK == false then
1785
		GravityGlobe()
1786
	end
1787
1788
	if Key == "g" and ATTACK == false then
1789
		GravityBeam()
1790
	end
1791
1792
	if Key == "x" and ATTACK == false then
1793
	end
1794
1795
	if Key == "c" and ATTACK == false then
1796
		WarpSpear()
1797
	end
1798
1799
	if Key == "t" and ATTACK == false then
1800
		CreateSound("305685800", Head, 10, 1 ,false)
1801
	end
1802
end
1803
1804
function KeyUp(Key)
1805
	KEYHOLD = false
1806
end
1807
1808
	Mouse.Button1Down:connect(function(NEWKEY)
1809
		MouseDown(NEWKEY)
1810
	end)
1811
	Mouse.Button1Up:connect(function(NEWKEY)
1812
		MouseUp(NEWKEY)
1813
	end)
1814
	Mouse.KeyDown:connect(function(NEWKEY)
1815
		KeyDown(NEWKEY)
1816
	end)
1817
	Mouse.KeyUp:connect(function(NEWKEY)
1818
		KeyUp(NEWKEY)
1819
	end)
1820
1821
--//=================================\\
1822
--\\=================================//
1823
1824
1825
function unanchor()
1826
	if UNANCHOR == true then
1827
		g = Character:GetChildren()
1828
		for i = 1, #g do
1829
			if g[i].ClassName == "Part" then
1830
				g[i].Anchored = false
1831
			end
1832
		end
1833
	end
1834
end
1835
1836
1837
--//=================================\\
1838
--||	WRAP THE WHOLE SCRIPT UP
1839
--\\=================================//
1840
1841
Humanoid.Changed:connect(function(Jump)
1842
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
1843
		Humanoid.Jump = false
1844
	end
1845
end)
1846
1847
		ANIMATE.Parent = nil
1848
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1849
		IDLEANIMATION:Play()
1850
1851
while true do
1852
	Swait()
1853
	SINE = SINE + CHANGE
1854
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1855
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1856
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
1857
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
1858
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1859
		if ANIM == "Walk" and TORSOVELOCITY > 1 then
1860
			RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.1 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1861
			Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1862
			--RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1863
			--LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1864
		elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1865
			RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1866
			Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1867
			--RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1868
			----LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1869
		end
1870
		if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1871
			ANIM = "Jump"
1872
			if ATTACK == false then
1873
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1874
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1875
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1876
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1877
				RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1878
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1879
	        end
1880
		elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1881
			ANIM = "Fall"
1882
			if ATTACK == false then
1883
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1884
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1885
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1886
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1887
				RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1888
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1889
			end
1890
		elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1891
			ANIM = "Idle"
1892
			if ATTACK == false then
1893
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1894
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1895
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1896
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1897
				RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size - 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1898
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.2 * COS(SINE / 12) * Player_Size, -0.01 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1899
			end
1900
		elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1901
			ANIM = "Walk"
1902
			WALK = WALK + 1 / Animation_Speed
1903
			if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
1904
				WALK = 0
1905
				if WALKINGANIM == true then
1906
					WALKINGANIM = false
1907
				elseif WALKINGANIM == false then
1908
					WALKINGANIM = true
1909
				end
1910
			end
1911
			--RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1912
			--LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1913
			if ATTACK == false then
1914
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0.7 * Player_Size) * ANGLES(RAD(25), RAD(0), RAD(0)), 0.15 / Animation_Speed*3)
1915
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1916
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1917
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed) 
1918
				RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size - 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1919
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.2 * COS(SINE / 12) * Player_Size, -0.01 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1920
			end
1921
		end
1922
if #Effects2>0 then
1923
for e=1,#Effects2 do
1924
if Effects2[e]~=nil then
1925
local Thing=Effects2[e]
1926
if Thing~=nil then
1927
local Part=Thing[1]
1928
local Mode=Thing[2]
1929
local Delay=Thing[3]
1930
local IncX=Thing[4]
1931
local IncY=Thing[5]
1932
local IncZ=Thing[6]
1933
local Part2=Thing[8]
1934
if Thing[1].Transparency<=1 then
1935
if Thing[2]=="Block1" then
1936
Thing[1].CFrame=Thing[1].CFrame
1937
Mesh=Thing[1].Mesh
1938
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1939
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1940
elseif Thing[2]=="Cylinder" then
1941
Mesh=Thing[1].Mesh
1942
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1943
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1944
elseif Thing[2]=="Blood" then
1945
Mesh=Thing[7]
1946
Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
1947
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1948
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1949
elseif Thing[2]=="Elec" then
1950
Mesh=Thing[1].Mesh
1951
Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
1952
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1953
elseif Thing[2]=="Disappear" then
1954
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1955
end
1956
else
1957
Part.Parent=nil
1958
table.remove(Effects2,e)
1959
end
1960
end
1961
end
1962
end
1963
end
1964
unanchor()
1965
Humanoid.MaxHealth = "inf"
1966
Humanoid.Health = "inf"
1967
if Rooted == false then
1968
	Disable_Jump = false
1969
	Humanoid.WalkSpeed = Speed
1970
elseif Rooted == true then
1971
	Disable_Jump = true
1972
	Humanoid.WalkSpeed = 0
1973
end
1974
--CreateMagicCircle(2 ,false,0,3,LeftLeg.CFrame * CF(0,-1.2,0),true)
1975
end
1976
1977
--//=================================\\
1978
--\\=================================//
1979
1980
1981
1982
1983
1984
--//====================================================\\--
1985
--||			  		 END OF SCRIPT
1986
--\\====================================================//--