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