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