View difference between Paste ID: WgtTvdaL and SqqDAa3E
SHOW: | | - or go back to the newest paste.
1
--//====================================================\\--
2
--||  CREATED BY SHACKLUSTER, EDIT BY AINGOAM
3
--\\====================================================//--
4
5
6
7
wait(0.2)
8
9
10
11
Player = game:GetService("Players").LocalPlayer
12
PlayerGui = Player.PlayerGui
13
Cam = workspace.CurrentCamera
14
Backpack = Player.Backpack
15
Character = Player.Character
16
Humanoid = Character.Humanoid
17
Mouse = Player:GetMouse()
18
RootPart = Character["HumanoidRootPart"]
19
Torso = Character["Torso"]
20
Head = Character["Head"]
21
RightArm = Character["Right Arm"]
22
LeftArm = Character["Left Arm"]
23
RightLeg = Character["Right Leg"]
24
LeftLeg = Character["Left Leg"]
25
RootJoint = RootPart["RootJoint"]
26
Neck = Torso["Neck"]
27
RightShoulder = Torso["Right Shoulder"]
28
LeftShoulder = Torso["Left Shoulder"]
29
RightHip = Torso["Right Hip"]
30
LeftHip = Torso["Left Hip"]
31
local sick = Instance.new("Sound",Torso)
32-
sick.SoundId = "rbxassetid://325107611"
32+
sick.SoundId = "rbxassetid://145655556"
33
sick.Looped = true
34
sick.Pitch = 1
35-
sick.Volume = 5
35+
sick.Volume = 8
36
sick.TimePosition = 16.3
37
sick:Play()
38
39
local naeeym2 = Instance.new("BillboardGui",Character)
40
naeeym2.AlwaysOnTop = true
41
naeeym2.Size = UDim2.new(5,35,2,35)
42-
hat = Instance.new("Part", game.Players.LocalPlayer.Character.Head)
42+
43-
w3ld = Instance.new("Weld", hat)
43+
44-
w3ld.Part0 = hat
44+
45-
w3ld.Part1 = game.Players.LocalPlayer.Character.Head
45+
46-
w3ld.C0 = w3ld.C0 * CFrame.new(0,-0.5,-0.1)
46+
47-
mesh = Instance.new("SpecialMesh", hat)
47+
48-
mesh.MeshId = "http://www.roblox.com/asset/?id=19326912"
48+
49-
mesh.TextureId = "http://www.roblox.com/asset/?id=102397532"
49+
50-
----------------------------------------
50+
tecks2.Text = "Βĺâçķ C͎̕o̼̹͆d͓͋͜e̝̞"
51-
 -- Originally made by Alfederate :D --
51+
52-
----------------------------------------
52+
53
tecks2.TextStrokeTransparency = 1
54-
 -- there's no time to explain! --
54+
55-
for i,v in pairs(game:GetService("Players").LocalPlayer.Character:children()) do if v:IsA("Accessory") then v:Destroy() end end for i,v in pairs(game:GetService("Players").LocalPlayer.Character:GetChildren()) do if v:IsA("Shirt") then v:Remove() end end for i,v in pairs(game:GetService("Players").LocalPlayer.Character:GetChildren()) do if v:IsA("Pants") then v:Remove() end end wait()shirt = Instance.new("Shirt", game:GetService("Players").LocalPlayer.Character) shirt.Name = "Shirt" pants = Instance.new("Pants", game:GetService("Players").LocalPlayer.Character) pants.Name = "Pants"
55+
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
56-
game:GetService("Players").LocalPlayer.Character.Shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=781724178"
56+
tecks2.Size = UDim2.new(1,0,0.5,0)
57-
game:GetService("Players").LocalPlayer.Character.Pants.PantsTemplate = "http://www.roblox.com/asset/?id=783023476"
57+
58-
game.Players.LocalPlayer.Character.Head.face.Texture = "http://www.roblox.com/asset/?id=775503445"
58+
59
IT = Instance.new
60
CF = CFrame.new
61
VT = Vector3.new
62
RAD = math.rad
63
C3 = Color3.new
64
UD2 = UDim2.new
65
BRICKC = BrickColor.new
66
ANGLES = CFrame.Angles
67
EULER = CFrame.fromEulerAnglesXYZ
68
COS = math.cos
69
ACOS = math.acos
70
SIN = math.sin
71
ASIN = math.asin
72
ABS = math.abs
73
MRANDOM = math.random
74-
tecks2.Text = "Rick"
74+
75
76
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
77
	local NEWMESH = IT(MESH)
78
	if MESH == "SpecialMesh" then
79-
tecks2.TextStrokeColor3 = Color3.new(0,155,155)
79+
80-
tecks2.Size = UDim2.new(0,155,155)
80+
81
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
82
		end
83
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
84
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
85
		end
86
	end
87
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
88
	NEWMESH.Scale = SCALE
89
	NEWMESH.Parent = PARENT
90
	return NEWMESH
91
end
92
93
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
94
	local NEWPART = IT("Part")
95
	NEWPART.formFactor = FORMFACTOR
96
	NEWPART.Reflectance = REFLECTANCE
97
	NEWPART.Transparency = TRANSPARENCY
98
	NEWPART.CanCollide = false
99
	NEWPART.Locked = true
100
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
101
	NEWPART.Name = NAME
102
	NEWPART.Size = SIZE
103
	NEWPART.Position = Torso.Position
104
	NEWPART.Material = MATERIAL
105
	NEWPART:BreakJoints()
106
	NEWPART.Parent = PARENT
107
	return NEWPART
108
end
109
110
111
--//=================================\\
112
--||		  CUSTOMIZATION
113
--\\=================================//
114
115
Class_Name = "₱Ɽł₴₥.exe"
116
Weapon_Name = "Add-ons"
117
118
Custom_Colors = {
119
	Custom_Color_1 = BRICKC("Toothpaste"); --1st color for the weapon.
120
	Custom_Color_2 = BRICKC("Toothpaste"); --2nd color for the weapon.
121
122
	Custom_Color_3 = BRICKC("Toothpaste"); --Color for the abilities.
123
	Custom_Color_4 = BRICKC("Toothpaste"); --Color for the secondary bar.
124
	Custom_Color_5 = BRICKC("Toothpaste"); --Color for the mana bar.
125
	Custom_Color_6 = BRICKC("Toothpaste"); --Color for the health bar.
126
	Custom_Color_7 = BRICKC("Toothpaste"); --Color for the stun bar.
127
128
	Custom_Color_8 = BRICKC("Toothpaste"); --Background for the mana bar.
129
	Custom_Color_9 = BRICKC("Toothpaste"); --Background for the secondary mana bar.
130
	Custom_Color_10 = BRICKC("Toothpaste"); --Background for the stun bar.
131
	Custom_Color_11 = BRICKC("Toothpaste"); --Background for the health bar.
132
	Custom_Color_12 = BRICKC("Toothpaste"); --Background for the abilities.
133
}
134
135
136
Player_Size = 1 --Size of the player.
137
Animation_Speed = 3
138
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
139
140
local Speed = 36
141
local Effects2 = {}
142
143
--//=================================\\
144
--|| 	  END OF CUSTOMIZATION
145
--\\=================================//
146
147
	local function weldBetween(a, b)
148
	    local weldd = Instance.new("ManualWeld")
149
	    weldd.Part0 = a
150
	    weldd.Part1 = b
151
	    weldd.C0 = CFrame.new()
152
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
153
	    weldd.Parent = a
154
	    return weldd
155
	end
156
157
function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
158
local acs = Instance.new("Part")
159
acs.CanCollide = false
160
acs.Anchored = false
161
acs.Size = Vector3.new(0,0,0)
162
acs.CFrame = attachmentpart.CFrame
163
acs.Parent = Character
164
acs.BrickColor = color
165
    local meshs = Instance.new("SpecialMesh")
166
    meshs.MeshId = mesh
167
    meshs.TextureId = texture
168
    meshs.Parent = acs
169
    meshs.Scale = scale
170
    meshs.Offset = offset
171
weldBetween(attachmentpart,acs)
172
end
173
174
function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
175
if TYPE == "Gem" then
176
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
177
	acs.Anchored = false
178
    acs.CanCollide = false
179
	acs.CFrame = PART.CFrame
180
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
181
weldBetween(PART,acs)
182
elseif TYPE == "Skull" then
183
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
184
	acs.Anchored = false
185
    acs.CanCollide = false
186
	acs.CFrame = PART.CFrame
187
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
188
weldBetween(PART,acs)
189
elseif TYPE == "Eye" then
190
    local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
191
    acs.Anchored = false
192
    acs.CanCollide = false
193
    acs.CFrame = PART.CFrame
194
    local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
195
weldBetween(PART,acs)
196
end
197
end
198
199
--//=================================\\
200
--|| 	      USEFUL VALUES
201
--\\=================================//
202
203
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
204
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
205
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
206
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
207
local CO1 = 0
208
local CO2 = 0
209
local CO3 = 0
210
local CO4 = 0
211
local CHANGEDEFENSE = 0
212
local CHANGEDAMAGE = 0
213
local CHANGEMOVEMENT = 0
214
local ANIM = "Idle"
215
local ATTACK = false
216
local EQUIPPED = false
217
local HOLD = false
218
local COMBO = 1
219
local LASTPOINT = nil
220
local BLCF = nil
221
local SCFR = nil
222
local STAGGERHITANIM = false
223
local STAGGERANIM = false
224
local STUNANIM = false
225
local CRITCHANCENUMBER = 0
226
local IDLENUMBER = 0
227
local DONUMBER = 0
228
local HANDIDLE = false
229
local SINE = 0
230
local CHANGE = 2 / Animation_Speed
231
local WALKINGANIM = false
232
local WALK = 0
233
local KEYHOLD = false
234
local DISABLEJUMPING = false
235
local HASBEENBLOCKED = false
236
local STUNDELAYNUMBER = 0
237
local MANADELAYNUMBER = 0
238
local SECONDARYMANADELAYNUMBER = 0
239
local ROBLOXIDLEANIMATION = IT("Animation")
240
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
241
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
242
--ROBLOXIDLEANIMATION.Parent = Humanoid
243
local WEAPONGUI = IT("ScreenGui", nil)
244
WEAPONGUI.Name = "Weapon GUI"
245
local WEAPONTOOL = IT("HopperBin", nil)
246
WEAPONTOOL.Name = Weapon_Name
247
local Weapon = IT("Model")
248
Weapon.Name = Weapon_Name
249
local Effects = IT("Folder", Weapon)
250
Effects.Name = "Effects"
251
local ANIMATOR = Humanoid.Animator
252
local ANIMATE = Character.Animate
253
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
254
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
255
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
256
local HITBLOCKSOUNDS = {"199148933", "199148947"}
257
local CUTSOUNDS = {"645750958","645747150"}
258
local VICIOUSWOOSH = "658941933"
259
local RELEASESOUND = "565538688"
260
local CHARGESOUND = "565538601"
261
local UNANCHOR = true
262
local MAGICPARTICLE = "341277531"
263
264
--//=================================\\
265
--\\=================================//
266
267
--//=================================\\
268
--||			  STATS
269
--\\=================================//
270
271
if Character:FindFirstChild("Stats") ~= nil then
272
Character:FindFirstChild("Stats").Parent = nil
273
end
274
275
local Stats = IT("Folder", nil)
276
Stats.Name = "Stats"
277
local ChangeStat = IT("Folder", Stats)
278
ChangeStat.Name = "ChangeStat"
279
local Defense = IT("NumberValue", Stats)
280
Defense.Name = "Defense"
281
Defense.Value = 1
282
local Movement = IT("NumberValue", Stats)
283
Movement.Name = "Movement"
284
Movement.Value = 1
285
local Damage = IT("NumberValue", Stats)
286
Damage.Name = "Damage"
287
Damage.Value = 1
288
local Mana = IT("NumberValue", Stats)
289-
local MAGICPARTICLE = "1278569371"
289+
290
Mana.Value = 0
291
local SecondaryMana = IT("NumberValue", Stats)
292
SecondaryMana.Name = "SecondaryMana"
293
SecondaryMana.Value = 0
294
local CanCrit = IT("BoolValue", Stats)
295
CanCrit.Name = "CanCrit"
296
CanCrit.Value = false
297
local CritChance = IT("NumberValue", Stats)
298
CritChance.Name = "CritChance"
299
CritChance.Value = 20
300
local CanPenetrateArmor = IT("BoolValue", Stats)
301
CanPenetrateArmor.Name = "CanPenetrateArmor"
302
CanPenetrateArmor.Value = false
303
local AntiTeamKill = IT("BoolValue", Stats)
304
AntiTeamKill.Name = "AntiTeamKill"
305
AntiTeamKill.Value = false
306
local Rooted = IT("BoolValue", Stats)
307
Rooted.Name = "Rooted"
308
Rooted.Value = false
309
local Block = IT("BoolValue", Stats)
310
Block.Name = "Block"
311
Block.Value = false
312
local RecentEnemy = IT("ObjectValue", Stats)
313
RecentEnemy.Name = "RecentEnemy"
314
RecentEnemy.Value = nil
315
local StaggerHit = IT("BoolValue", Stats)
316
StaggerHit.Name = "StaggerHit"
317
StaggerHit.Value = false
318
local Stagger = IT("BoolValue", Stats)
319
Stagger.Name = "Stagger"
320
Stagger.Value = false
321
local Stun = IT("BoolValue", Stats)
322
Stun.Name = "Stun"
323
Stun.Value = false
324
local StunValue = IT("NumberValue", Stats)
325
StunValue.Name = "StunValue"
326
StunValue.Value = 0
327
328
329
--//=================================\\
330
--\\=================================//
331
332
333
334
335
336
--//=================================\\
337
--|| 	     DEBUFFS / BUFFS
338
--\\=================================//
339
340
local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
341
DEFENSECHANGE1.Name = "ChangeDefense"
342
DEFENSECHANGE1.Value = 0
343
344
local MOVEMENTCHANGE1 = IT("NumberValue", nil)
345
MOVEMENTCHANGE1.Name = "ChangeMovement"
346
MOVEMENTCHANGE1.Value = 0
347
348
--//=================================\\
349
--\\=================================//
350
351
352
353
354
355
--//=================================\\
356
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
357
--\\=================================//
358
359
ArtificialHB = Instance.new("BindableEvent", script)
360
ArtificialHB.Name = "ArtificialHB"
361
362
script:WaitForChild("ArtificialHB")
363
364
frame = Frame_Speed
365
tf = 0
366
allowframeloss = false
367
tossremainder = false
368
lastframe = tick()
369
script.ArtificialHB:Fire()
370
371
game:GetService("RunService").Heartbeat:connect(function(s, p)
372
	tf = tf + s
373
	if tf >= frame then
374
		if allowframeloss then
375
			script.ArtificialHB:Fire()
376
			lastframe = tick()
377
		else
378
			for i = 1, math.floor(tf / frame) do
379
				script.ArtificialHB:Fire()
380
			end
381
		lastframe = tick()
382
		end
383
		if tossremainder then
384
			tf = 0
385
		else
386
			tf = tf - frame * math.floor(tf / frame)
387
		end
388
	end
389
end)
390
391
--//=================================\\
392
--\\=================================//
393
394
395
396
397
398
--//=================================\\
399
--|| 	      SOME FUNCTIONS
400
--\\=================================//
401
402
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
403
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
404
end
405
406
function PositiveAngle(NUMBER)
407
	if NUMBER >= 0 then
408
		NUMBER = 0
409
	end
410
	return NUMBER
411
end
412
413
function NegativeAngle(NUMBER)
414
	if NUMBER <= 0 then
415
		NUMBER = 0
416
	end
417
	return NUMBER
418
end
419
420
function Swait(NUMBER)
421
	if NUMBER == 0 or NUMBER == nil then
422
		ArtificialHB.Event:wait()
423
	else
424
		for i = 1, NUMBER do
425
			ArtificialHB.Event:wait()
426
		end
427
	end
428
end
429
430
function QuaternionFromCFrame(cf)
431
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
432
	local trace = m00 + m11 + m22
433
	if trace > 0 then 
434
		local s = math.sqrt(1 + trace)
435
		local recip = 0.5 / s
436
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
437
	else
438
		local i = 0
439
		if m11 > m00 then
440
			i = 1
441
		end
442
		if m22 > (i == 0 and m00 or m11) then
443
			i = 2
444
		end
445
		if i == 0 then
446
			local s = math.sqrt(m00 - m11 - m22 + 1)
447
			local recip = 0.5 / s
448
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
449
		elseif i == 1 then
450
			local s = math.sqrt(m11 - m22 - m00 + 1)
451
			local recip = 0.5 / s
452
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
453
		elseif i == 2 then
454
			local s = math.sqrt(m22 - m00 - m11 + 1)
455
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
456
		end
457
	end
458
end
459
 
460
function QuaternionToCFrame(px, py, pz, x, y, z, w)
461
	local xs, ys, zs = x + x, y + y, z + z
462
	local wx, wy, wz = w * xs, w * ys, w * zs
463
	local xx = x * xs
464
	local xy = x * ys
465
	local xz = x * zs
466
	local yy = y * ys
467
	local yz = y * zs
468
	local zz = z * zs
469
	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))
470
end
471
 
472
function QuaternionSlerp(a, b, t)
473
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
474
	local startInterp, finishInterp;
475
	if cosTheta >= 0.0001 then
476
		if (1 - cosTheta) > 0.0001 then
477
			local theta = ACOS(cosTheta)
478
			local invSinTheta = 1 / SIN(theta)
479
			startInterp = SIN((1 - t) * theta) * invSinTheta
480
			finishInterp = SIN(t * theta) * invSinTheta
481
		else
482
			startInterp = 1 - t
483
			finishInterp = t
484
		end
485
	else
486
		if (1 + cosTheta) > 0.0001 then
487
			local theta = ACOS(-cosTheta)
488
			local invSinTheta = 1 / SIN(theta)
489
			startInterp = SIN((t - 1) * theta) * invSinTheta
490
			finishInterp = SIN(t * theta) * invSinTheta
491
		else
492
			startInterp = t - 1
493
			finishInterp = t
494
		end
495
	end
496
	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
497
end
498
499
function Clerp(a, b, t)
500
	local qa = {QuaternionFromCFrame(a)}
501
	local qb = {QuaternionFromCFrame(b)}
502
	local ax, ay, az = a.x, a.y, a.z
503
	local bx, by, bz = b.x, b.y, b.z
504
	local _t = 1 - t
505
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
506
end
507
508
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
509
	local frame = IT("Frame")
510
	frame.BackgroundTransparency = TRANSPARENCY
511
	frame.BorderSizePixel = BORDERSIZEPIXEL
512
	frame.Position = POSITION
513
	frame.Size = SIZE
514
	frame.BackgroundColor3 = COLOR
515
	frame.BorderColor3 = BORDERCOLOR
516
	frame.Name = NAME
517
	frame.Parent = PARENT
518
	return frame
519
end
520
521
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
522
	local label = IT("TextLabel")
523
	label.BackgroundTransparency = 1
524
	label.Size = UD2(1, 0, 1, 0)
525
	label.Position = UD2(0, 0, 0, 0)
526
	label.TextColor3 = C3(255, 255, 255)
527
	label.TextStrokeTransparency = STROKETRANSPARENCY
528
	label.TextTransparency = TRANSPARENCY
529
	label.FontSize = TEXTFONTSIZE
530
	label.Font = TEXTFONT
531
	label.BorderSizePixel = BORDERSIZEPIXEL
532
	label.TextScaled = true
533
	label.Text = TEXT
534
	label.Name = NAME
535
	label.Parent = PARENT
536
	return label
537
end
538
539
function NoOutlines(PART)
540
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
541
end
542
543
544
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
545
	local NEWWELD = IT(TYPE)
546
	NEWWELD.Part0 = PART0
547
	NEWWELD.Part1 = PART1
548
	NEWWELD.C0 = C0
549
	NEWWELD.C1 = C1
550
	NEWWELD.Parent = PARENT
551
	return NEWWELD
552
end
553
554
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
555
	local NEWSOUND = nil
556
	coroutine.resume(coroutine.create(function()
557
		NEWSOUND = IT("Sound", PARENT)
558
		NEWSOUND.Volume = VOLUME
559
		NEWSOUND.Pitch = PITCH
560
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
561
		--Swait()
562
		NEWSOUND:play()
563
		if DOESLOOP == false then
564
			repeat Swait() until NEWSOUND.Playing == false
565
			NEWSOUND:remove()
566
		elseif DOESLOOP == true then
567
			NEWSOUND.Looped = true
568
		end
569
	end))
570
	return NEWSOUND
571
end
572
573
function CFrameFromTopBack(at, top, back)
574
	local right = top:Cross(back)
575
	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)
576
end
577
578
function CreateWave(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
579
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
580
	local mesh = IT("SpecialMesh",wave)
581
	mesh.MeshType = "FileMesh"
582
	wave.Anchored = true
583
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
584
	mesh.Scale = VT(size,size,size)
585
	mesh.Offset = VT(0,0,-size/8)
586
	wave.CFrame = CF(part.p) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
587
	coroutine.resume(coroutine.create(function(PART)
588
		for i = 1, waitt do
589
			Swait()
590
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
591
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
592
			if doesrotate == true then
593
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
594
			end
595
			wave.Transparency = wave.Transparency + (0.5/waitt)
596
			if wave.Transparency > 0.99 then
597
				wave:remove()
598
			end
599
		end
600
	end))
601
end
602
603
function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
604
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
605
	local mesh = IT("SpecialMesh",wave)
606
	mesh.MeshType = "FileMesh"
607
	wave.Anchored = true
608
	mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
609
	mesh.Scale = VT(size,size,size)
610
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
611
	coroutine.resume(coroutine.create(function(PART)
612
		for i = 1, waitt do
613
			Swait()
614
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
615
			if doesrotate == true then
616
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
617
			end
618
			wave.Transparency = wave.Transparency + (0.5/waitt)
619
			if wave.Transparency > 0.99 then
620
				wave:remove()
621
			end
622
		end
623
	end))
624
end
625
626
function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
627
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
628
	local mesh = IT("SpecialMesh",wave)
629
	mesh.MeshType = "FileMesh"
630
	wave.Anchored = true
631
	mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
632
	mesh.Scale = VT(size,size,size)
633
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
634
	coroutine.resume(coroutine.create(function(PART)
635
		for i = 1, waitt do
636
			Swait()
637
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
638
			if doesrotate == true then
639
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
640
			end
641
			wave.Transparency = wave.Transparency + (0.5/waitt)
642
			if wave.Transparency > 0.99 then
643
				wave:remove()
644
			end
645
		end
646
	end))
647
end
648
649
function CreateRing(inair,size,doesrotate,rotatedirection,waitt,part,offset,spin1,spin2,color)
650
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
651
	local mesh = IT("SpecialMesh",wave)
652
	mesh.MeshType = "FileMesh"
653
	mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
654
	mesh.Scale = VT(size,size,size)
655
	wave.Anchored = true
656
	mesh.Offset = VT(0,0,0)
657
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
658
	coroutine.resume(coroutine.create(function(PART)
659
		for i = 1, waitt do
660
			Swait()
661
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
662
			if doesrotate == true then
663
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1)
664
			end
665
			wave.Transparency = wave.Transparency + (0.5/waitt)
666
			if wave.Transparency > 0.99 then
667
				wave:remove()
668
			end
669
		end
670
	end))
671
end
672
673
function MagicSphere(size,waitt,part,color)
674
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(0,0,0))
675
	local mesh = IT("SpecialMesh",wave)
676
	mesh.MeshType = "Sphere"
677
	wave.Anchored = true
678
	mesh.Scale = VT(size,size,size)
679
	mesh.Offset = VT(0,0,0)
680
	wave.CFrame = part * ANGLES(RAD(0),RAD(0),RAD(0))
681
	coroutine.resume(coroutine.create(function(PART)
682
		for i = 1, waitt do
683
			Swait()
684
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
685
			wave.Transparency = wave.Transparency + (1/waitt)
686
			if wave.Transparency > 0.99 then
687
				wave:remove()
688
			end
689
		end
690
	end))
691
end
692
693
function MagicBlock(size,waitt,part,offset,color)
694
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size))
695
	local mesh = IT("BlockMesh",wave)
696
	wave.Anchored = true
697
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
698
	coroutine.resume(coroutine.create(function(PART)
699
		for i = 1, waitt do
700
			Swait()
701
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
702
			wave.CFrame = CF(wave.Position) * ANGLES(RAD(math(-360,360)),RAD(math(-360,360)),RAD(math(-360,360)))
703
			wave.Transparency = wave.Transparency + (1/waitt)
704
			if wave.Transparency > 0.99 then
705
				wave:remove()
706
			end
707
		end
708
	end))
709
end
710
711
local EyeSizes={
712
	NumberSequenceKeypoint.new(0,0.5,0),
713
	NumberSequenceKeypoint.new(1,0.2,0)
714
}
715
local EyeTrans={
716
	NumberSequenceKeypoint.new(0,0,0),
717
	NumberSequenceKeypoint.new(1,1,0)
718
}
719
local PE=Instance.new("ParticleEmitter")
720
PE.LightEmission=0.3
721
PE.Size=NumberSequence.new(EyeSizes)
722
PE.Transparency=NumberSequence.new(EyeTrans)
723
PE.Rotation=NumberRange.new(0,360)
724
PE.LockedToPart = false
725
PE.Speed = NumberRange.new(0,0,0)
726
PE.ZOffset = 0.3
727
PE.Rate = 999
728
PE.Name = "Particles"
729
730
function CreateParticles(art,text,accel,drag,lifetime,type,isenabledbydefault,locked)
731
	local particle = nil
732
	coroutine.resume(coroutine.create(function(PART)
733
		particle = PE:Clone()
734
		Swait()
735
		particle.Rate = 999
736
		particle.Parent = art
737
		particle.Acceleration = accel
738
		if type == "Fire" then
739
			local EyeSizes={
740
				NumberSequenceKeypoint.new(0,0.5,0.3),
741
				NumberSequenceKeypoint.new(1,0.2,0.2)
742
			}
743
			particle.Size = NumberSequence.new(EyeSizes)
744
		elseif type == "Smoke" then
745
			local EyeSizes={
746
				NumberSequenceKeypoint.new(0,0.5,0),
747
				NumberSequenceKeypoint.new(1,5,0.5)
748
			}
749
			particle.Size = NumberSequence.new(EyeSizes)
750
		elseif type == "Solid" then
751
			local EyeSizes={
752
				NumberSequenceKeypoint.new(0,0.5,0),
753
				NumberSequenceKeypoint.new(1,0.5,0)
754
			}
755
			particle.Size = NumberSequence.new(EyeSizes)
756
		end
757
		particle.Lifetime=NumberRange.new(lifetime)
758
		particle.Drag = drag
759
		if locked == true then
760
			particle.LockedToPart = true
761
		end
762
		particle.Texture = "http://www.roblox.com/asset/?id="..text
763
		particle.Enabled = isenabledbydefault
764
	end))
765
return particle
766
end
767
768
local EyeSizes={
769
	NumberSequenceKeypoint.new(0,0.5,0),
770
	NumberSequenceKeypoint.new(1,0.2,0)
771
}
772
local EyeTrans={
773
	NumberSequenceKeypoint.new(0,0,0),
774
	NumberSequenceKeypoint.new(1,1,0)
775
}
776
local PE2=Instance.new("ParticleEmitter")
777
PE2.LightEmission=0.8
778
PE2.Size=NumberSequence.new(EyeSizes)
779
PE2.Transparency=NumberSequence.new(EyeTrans)
780
PE2.Rotation=NumberRange.new(0,360)
781
PE2.LockedToPart = false
782
PE2.Speed = NumberRange.new(0,0,0)
783
PE2.ZOffset = 0.3
784
PE2.Rate = 999
785
PE2.VelocitySpread = 90000
786
PE2.Name = "Particles"
787
788
function CreateParticles2(art,accel,drag,lifetime,type,isenabledbydefault,locked,size,speed)
789
	local particle = nil
790
	coroutine.resume(coroutine.create(function(PART)
791
		particle = PE2:Clone()
792
		Swait()
793
		particle.Rate = 999
794
		particle.Parent = art
795
		particle.Acceleration = accel
796
		if type == "Fire" then
797
			local EyeSizes={
798
				NumberSequenceKeypoint.new(0,size,size/2),
799
				NumberSequenceKeypoint.new(1,size/4,size/8)
800
			}
801
			particle.Size = NumberSequence.new(EyeSizes)
802
		elseif type == "Smoke" then
803
			local EyeSizes={
804
				NumberSequenceKeypoint.new(0,0.5,0),
805
				NumberSequenceKeypoint.new(1,5,0.5)
806
			}
807
			particle.Size = NumberSequence.new(EyeSizes)
808
		elseif type == "Solid" then
809
			local EyeSizes={
810
				NumberSequenceKeypoint.new(0,0.5,0),
811
				NumberSequenceKeypoint.new(1,0.5,0)
812
			}
813
			particle.Size = NumberSequence.new(EyeSizes)
814
		end
815
		particle.Lifetime=NumberRange.new(lifetime)
816
		particle.Drag = drag
817
		if locked == true then
818
			particle.LockedToPart = true
819
		end
820
		particle.Speed = NumberRange.new(speed,speed,speed)
821
		particle.Texture = "http://www.roblox.com/asset/?id="..MAGICPARTICLE
822
		particle.Enabled = isenabledbydefault
823
		--particle.Color = ColorSequence.new(Color3.new(255, 255, 255))
824
	end))
825
return particle
826
end
827
local Decal = IT("Decal")
828
829
function CreateMagicCircle(size,doesrotate,rotatedirection,waitt,cframe,alwaysfade)
830
	local sinkhole = IT("Part")
831
	sinkhole.Size = VT(size,0,size)
832
	sinkhole.CFrame = cframe
833
	--sinkhole.Orientation = VT(0,0,0)
834
	sinkhole.Parent = Effects
835
	sinkhole.Material = "Neon"
836
	sinkhole.Color = C3(255, 255, 255)
837
	sinkhole.Anchored = true
838
	sinkhole.CanCollide = false
839
	sinkhole.Transparency = 1
840
	local decal = Decal:Clone()
841
	decal.Parent = sinkhole
842
	decal.Face = "Top"
843
	decal.Texture = "http://www.roblox.com/asset/?id=1531669882"
844
	local decal2 = Decal:Clone()
845
	decal2.Parent = sinkhole
846
	decal2.Face = "Bottom"
847
	decal2.Texture = "http://www.roblox.com/asset/?id=1531669882"
848
	coroutine.resume(coroutine.create(function(PART)
849
		for i = 1, waitt do
850
			Swait()
851
			if doesrotate == true then
852
				sinkhole.CFrame = sinkhole.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
853
			end
854
			if alwaysfade == true then
855
				decal.Transparency = decal.Transparency + (1/waitt)
856
				decal2.Transparency = decal.Transparency + (1/waitt)
857
			end
858
			if i > waitt-11 and (alwaysfade ~= true) then
859
				decal.Transparency = decal.Transparency + 0.1
860
				decal2.Transparency = decal.Transparency + 0.1
861
			end
862
		end
863
		sinkhole.Parent = nil
864
	end))
865
	return sinkhole
866
end
867
868
--//=================================\\
869
--\\=================================//
870-
	decal.Texture = "http://www.roblox.com/asset/?id=154449245"
870+
871
872
--//=================================\\
873
--||	     WEAPON CREATION
874-
	decal2.Texture = "http://www.roblox.com/asset/?id=154449245"
874+
875
876
if Player_Size ~= 1 then
877
	for _, v in pairs (Weapon:GetChildren()) do
878
		if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
879
			local p1 = v.Part1
880
			v.Part1 = nil
881
			local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
882
			v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
883
			v.Part1 = p1
884
		elseif v.ClassName == "Part" then
885
			for _, b in pairs (v:GetChildren()) do
886
				if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
887
					b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
888
				end
889
			end
890
		end
891
	end
892
end
893
894-
   
894+
895
896
local Plate = IT("Part",Weapon)
897
Plate.Size = VT(1,0.1,1)
898
Plate.Transparency = 1
899
Plate.CanCollide = false
900
Plate.CFrame = LeftLeg.CFrame * CF(0,-1.1,0)
901
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
902
weldBetween(LeftLeg,Plate)
903
904
local Plate = IT("Part",Weapon)
905
Plate.Size = VT(1,0.1,1)
906
Plate.Transparency = 1
907
Plate.CanCollide = false
908
Plate.CFrame = RightLeg.CFrame * CF(0,-1.1,0)
909
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
910
weldBetween(RightLeg,Plate)
911
912
local Plate = IT("Part",Weapon)
913
Plate.Size = VT(1,0.1,1)
914
Plate.Transparency = 1
915
Plate.CanCollide = false
916
Plate.CFrame = RightArm.CFrame * CF(0,-1.1,0)
917
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
918
weldBetween(RightArm,Plate)
919
920
local Plate = IT("Part",Weapon)
921
Plate.Size = VT(1,0.1,1)
922
Plate.Transparency = 1
923
Plate.CanCollide = false
924
Plate.CFrame = LeftArm.CFrame * CF(0,-1.1,0)
925
CreateParticles(Plate,MAGICPARTICLE,VT(0,2,0),2,2,"Fire",true,true)
926
weldBetween(LeftArm,Plate)
927
928
local eye = IT("Part",Weapon)
929
eye.Size = VT(0.2,0.2,0.2)
930
eye.Shape = "Ball"
931
eye.CFrame = Head.CFrame * CF(0.125,0.2,-0.55)
932
eye.Material = "Neon"
933
eye.BrickColor = BRICKC("Really black")
934
weldBetween(Head,eye)
935
936
937
938
939
for _, c in pairs(Weapon:GetChildren()) do
940
	if c.ClassName == "Part" then
941
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
942
	end
943
end
944
945
Weapon.Parent = Character
946
947
Humanoid.Died:connect(function()
948
	ATTACK = true
949
end)
950
951
print(Class_Name.." loaded.")
952
953
--//=================================\\
954
--\\=================================//
955
956
957
958
959
960-
eye.BrickColor = BRICKC("Bright blue")
960+
961
--||	     DAMAGE FUNCTIONS
962
--\\=================================//
963
964
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
965
	local STATPART = CreatePart(3, Effects, "Neon", 0, 1, "Toothpaste", "Effect", VT())
966
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
967
	local BODYGYRO = IT("BodyGyro", STATPART)
968
	local BODYPOSITION = IT("BodyPosition", STATPART)
969
	BODYPOSITION.P = 2000
970
	BODYPOSITION.D = 100
971
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
972
	if LABELTYPE == "Normal" then
973
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
974
	elseif LABELTYPE == "Debuff" then
975
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
976
	elseif LABELTYPE == "Interruption" then
977
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
978
	end
979
	game:GetService("Debris"):AddItem(STATPART ,5)
980
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
981
	BILLBOARDGUI.Adornee = STATPART
982
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
983
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
984
	BILLBOARDGUI.AlwaysOnTop = false
985
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
986
	TEXTLABEL.BackgroundTransparency = 1
987
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
988
	TEXTLABEL.Text = TEXT
989
	TEXTLABEL.Font = "SciFi"
990
	TEXTLABEL.FontSize="Size42"
991
	TEXTLABEL.TextColor3 = COLOR
992
	TEXTLABEL.TextStrokeTransparency = 1
993
	TEXTLABEL.TextScaled = true
994
	TEXTLABEL.TextWrapped = true
995
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
996
		wait(0.2)
997
		for i=1, 5 do
998
			wait()
999
			THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
1000
		end
1001
		wait(1.2)
1002
		for i=1, 5 do
1003
			wait()
1004
			THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
1005
			THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
1006
			THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
1007
		end
1008
		THEPART.Parent = nil
1009
	end),STATPART, BODYPOSITION, TEXTLABEL)
1010
end
1011
1012
1013
--//=================================\\
1014
--||			DAMAGING
1015
--\\=================================//
1016
1017
function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier)
1018
	if hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then
1019
		local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
1020
		local dmg = math.random(min,max)
1021
		if humanoid.Health > 0 then
1022
			if beserk == true then
1023
				humanoid.Health = 0
1024
			else
1025
				CreateSound("260430060", hit, 1.2, MRANDOM(7, 12) / 10)
1026
				hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength
1027
				if math.random(1,100) < critrate+1 then
1028
					humanoid.Health = humanoid.Health - dmg*critmultiplier
1029
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1030
				else
1031
					humanoid.Health = humanoid.Health - dmg
1032
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(0, 0, 0))
1033
				end
1034
				local defence = Instance.new("BoolValue",hit.Parent)
1035
				defence.Name = ("HitBy"..Player.Name)
1036
				game:GetService("Debris"):AddItem(defence, 0.5)
1037
			end
1038
		end
1039
	end
1040
end
1041
1042
function AoEDamage(position,radius,min,max,maxstrength,beserk,critrate,critmultiplier,CanBeDodgedByJumping)
1043
	local dmg = math.random(min,max)
1044
	for i,v in ipairs(workspace:GetChildren()) do
1045
	if v:FindFirstChild("HitBy"..Player.Name) == nil then
1046
		local body = v:GetChildren()
1047
			for part = 1, #body do
1048
				if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1049
					if(body[part].Position - position).Magnitude < radius then
1050
						if v.ClassName == "Model" then
1051
							if v:FindFirstChild("Humanoid") then
1052
								if v.Humanoid.Health ~= 0 then
1053
									if CanBeDodgedByJumping == true then
1054
										if body[part].Position.Y < position.Y+5 then
1055
											if math.random(1,100) < critrate+1 then
1056
												v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1057
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1058
											else
1059
												v.Humanoid.Health = v.Humanoid.Health - dmg
1060
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1061
											end
1062
											local defence = Instance.new("BoolValue",v)
1063
											defence.Name = ("HitBy"..Player.Name)
1064
											game:GetService("Debris"):AddItem(defence, 0.5)
1065
										end
1066
									else
1067
										if beserk == true then
1068
											v.Humanoid.Health = 0
1069
										end
1070
										if math.random(1,100) < critrate+1 then
1071
											v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1072
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1073
										else
1074
											v.Humanoid.Health = v.Humanoid.Health - dmg
1075
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1076
										end
1077
										local defence = Instance.new("BoolValue",v)
1078
										defence.Name = ("HitBy"..Player.Name)
1079
										game:GetService("Debris"):AddItem(defence, 0.5)
1080
									end
1081
								end
1082
							end
1083
						end
1084
						body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1085
					end
1086
				end
1087
			end
1088
			if v.ClassName == "Part" then
1089
				if v.Anchored == false and (v.Position - position).Magnitude < radius then
1090
					v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1091
				end
1092
			end
1093
		end
1094
	end
1095
end
1096
1097
function attractnearest(postype,position,range,maxstrength,last)
1098
	if postype == "Vector" then
1099
		for i,v in ipairs(workspace:GetChildren()) do
1100
		local body = v:GetChildren()
1101
			for part = 1, #body do
1102
				if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1103
					if(body[part].Position - position).Magnitude < range then
1104
						if body[part]:FindFirstChild("ATTRACT") == nil then
1105
							local bv = Instance.new("BodyVelocity") 
1106
							bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1107
							bv.velocity = CF(body[part].Position,position).lookVector*maxstrength
1108
							bv.Parent = body[part]
1109
							bv.Name = "ATTRACT"
1110
						else
1111
							coroutine.resume(coroutine.create(function()
1112
								for i = 1, last/5 do
1113
									Swait(5)
1114
									body[part].ATTRACT.velocity = CF(body[part].Position,position).lookVector*maxstrength	
1115
								end		
1116
								body[part].ATTRACT:remove()				
1117
							end))
1118
						end
1119
					end
1120
				end
1121
			end
1122
			if v.ClassName == "Part" then
1123
				if v.Anchored == false and (v.Position - position).Magnitude < range then
1124
					if v:FindFirstChild("ATTRACT") == nil then
1125
						local bv = Instance.new("BodyVelocity") 
1126
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1127
						bv.velocity = CF(v.Position,position).lookVector*maxstrength
1128
						bv.Parent = v
1129
						bv.Name = "ATTRACT"
1130
					else
1131
						coroutine.resume(coroutine.create(function()
1132
							for i = 1, last/5 do
1133
								Swait(5)
1134
								v.ATTRACT.velocity = CF(v.Position,position).lookVector*maxstrength	
1135
							end		
1136
							v.ATTRACT:remove()				
1137
						end))
1138
					end
1139
				end
1140
			end
1141
		end
1142
	elseif postype == "Part" then
1143
		for i,v in ipairs(workspace:GetChildren()) do
1144
		local body = v:GetChildren()
1145
			for part = 1, #body do
1146
				if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1147
					if(body[part].Position - position.Position).Magnitude < range then
1148
						if body[part]:FindFirstChild("ATTRACT") == nil then
1149
							local bv = Instance.new("BodyVelocity") 
1150
							bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1151
							bv.velocity = CF(body[part].Position,position.Position).lookVector*maxstrength
1152
							bv.Parent = body[part]
1153
							bv.Name = "ATTRACT"
1154
						else
1155
							coroutine.resume(coroutine.create(function()
1156
								for i = 1, last/5 do
1157
									Swait(5)
1158
									body[part].ATTRACT.velocity = CF(body[part].Position,position.Position).lookVector*maxstrength	
1159
								end		
1160
								body[part].ATTRACT:remove()				
1161
							end))
1162
						end
1163
					end
1164
				end
1165
			end
1166
			if v.ClassName == "Part" then
1167
				if v.Anchored == false and (v.Position - position.Position).Magnitude < range then
1168
					if v:FindFirstChild("ATTRACT") == nil then
1169
						local bv = Instance.new("BodyVelocity") 
1170
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1171
						bv.velocity = CF(v.Position,position.Position).lookVector*maxstrength
1172
						bv.Parent = v
1173
						bv.Name = "ATTRACT"
1174
					else
1175
						coroutine.resume(coroutine.create(function()
1176
							for i = 1, last/5 do
1177
								Swait(5)
1178
								v.ATTRACT.velocity = CF(v.Position,position.Position).lookVector*maxstrength	
1179
							end		
1180
							v.ATTRACT:remove()				
1181
						end))
1182
					end
1183
				end
1184
			end
1185
		end
1186
	end
1187
end
1188
1189
function killnearest(position,range,maxstrength,candestroy)
1190
	for i,v in ipairs(workspace:GetChildren()) do
1191
	local body = v:GetChildren()
1192
		for part = 1, #body do
1193
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1194
				if(body[part].Position - position).Magnitude < range then
1195
					if v.ClassName == "Model" then
1196
						v:BreakJoints()
1197
					end
1198
					if candestroy == true then
1199
						table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
1200
					end
1201
					body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1202
				end
1203
			end
1204
		end
1205
		if v.ClassName == "Part" then
1206
			if v.Anchored == false and (v.Position - position).Magnitude < range then
1207
				if candestroy == true then
1208
					table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
1209
				end
1210
				v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1211
			end
1212
		end
1213
	end
1214
end
1215
1216
--//=================================\\
1217
--||	ATTACK FUNCTIONS AND STUFF
1218
--\\=================================//
1219
1220
function CheckTableForString(Table, String)
1221
	for i, v in pairs(Table) do
1222
		if string.find(string.lower(String), string.lower(v)) then
1223
			return true
1224
		end
1225
	end
1226
	return false
1227
end
1228
1229
function CheckIntangible(Hit)
1230
	local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
1231
	if Hit and Hit.Parent then
1232
		if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
1233
			return true
1234
		end
1235
	end
1236
	return false
1237
end
1238
1239
Debris = game:GetService("Debris")
1240
1241
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
1242
	local Direction = CFrame.new(StartPos, Vec).lookVector
1243
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
1244
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
1245
	if RayHit and CheckIntangible(RayHit) then
1246
		if DelayIfHit then
1247
			wait()
1248
		end
1249
		RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
1250
	end
1251
	return RayHit, RayPos, RayNormal
1252
end
1253
1254
function turnto(pos)
1255
	RootPart.CFrame = CF(RootPart.Position,VT(pos.X,RootPart.Position.Y,pos.Z))
1256
end
1257
1258
function GraviBomb()
1259
	ATTACK = true
1260
	for i=0, 1, 0.1 / Animation_Speed do
1261
		Swait()
1262
		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)
1263
		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)
1264
		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)
1265
		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)
1266
		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)
1267
		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)
1268
	end
1269
	MagicSphere(25,25,LeftArm.CFrame*CF(0,-1,0),"Toothpaste")
1270
	MagicSphere(20,25,LeftArm.CFrame*CF(0,-1,0),"Toothpaste")
1271
	coroutine.resume(coroutine.create(function()
1272
		local cframe = CF(Mouse.Hit.p)
1273
		local circle = CreateMagicCircle(75,true,0.05,120,cframe,false)
1274
		for i = 1, 5 do
1275
			CreateSound(CUTSOUNDS[MRANDOM(1, #CUTSOUNDS)], Effects, 2, 1)
1276
			local sphere = IT("Part",Effects)
1277
			sphere.Shape = "Ball"
1278
			sphere.Size = VT(50,50,50)
1279
			sphere.Anchored = true
1280
			sphere.CanCollide = false
1281
			sphere.Material = "Neon"
1282
			sphere.BrickColor = BRICKC("Toothpaste")
1283
			sphere.Transparency = 0
1284
			sphere.CFrame = cframe
1285
			for i = 1, 10 do
1286
				Swait(2)
1287
				attractnearest("Vector",cframe.p,75,50,10)
1288
				sphere.CFrame = cframe
1289
				sphere.Size = sphere.Size - VT(5,5,5)
1290
				sphere.CFrame = cframe
1291
			end
1292
			sphere:remove()
1293
		end
1294
		local scale = 5
1295
		coroutine.resume(coroutine.create(function()
1296-
	MagicSphere(25,25,LeftArm.CFrame*CF(0,-1,0),"Bright blue")
1296+
1297-
	MagicSphere(20,25,LeftArm.CFrame*CF(0,-1,0),"Bright blue")
1297+
			MagicSphere(100,125,cframe,"Toothpaste")
1298
			MagicSphere(75,125,cframe,"Toothpaste")
1299
			CreateSwirl(180,6,true,0.3,225,circle,0,"Toothpaste")
1300
			CreateSwirl(180,4,true,0.3,225,circle,0,"Toothpaste")
1301
			CreateSwirl(180,2,true,0.3,225,circle,0,"Toothpaste")
1302
			for i = 1, 15 do
1303
				Swait()
1304
				killnearest(cframe.p,25,150)
1305
			end
1306
		end))
1307
	end))
1308
	for i=0, 1, 0.1 / Animation_Speed do
1309-
			sphere.BrickColor = BRICKC("Bright blue")
1309+
1310
		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)
1311
		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)
1312
		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)
1313
		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)
1314
		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)
1315
		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)
1316
	end
1317
	ATTACK = false
1318
end
1319
1320
function GraviSpear()
1321
	ATTACK = true
1322
	for i=0, 1.5, 0.1 / Animation_Speed do
1323
		Swait()
1324-
			MagicSphere(100,125,cframe,"Really black")
1324+
1325-
			MagicSphere(75,125,cframe,"Really black")
1325+
1326-
			CreateSwirl(180,6,true,0.3,225,circle,0,"Bright blue")
1326+
1327-
			CreateSwirl(180,4,true,0.3,225,circle,0,"Bright blue")
1327+
1328-
			CreateSwirl(180,2,true,0.3,225,circle,0,"Bright blue")
1328+
1329
		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)
1330
		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)
1331
	end
1332
	local spear = IT("Part",Effects)
1333
	spear.Anchored = true
1334
	spear.CanCollide = false
1335
	spear.Shape = "Ball"
1336
	spear.Size = VT(0,0,0)
1337
	spear.Material = "Neon"
1338
	spear.Transparency = 0.2
1339
	spear.BrickColor = BRICKC("Toothpaste")
1340
	spear.CFrame = RightArm.CFrame * CF(0,-4,0)
1341
	local inner = spear:Clone()
1342
	inner.Parent = spear
1343
	inner.Size = VT(0,0,0)
1344
	inner.BrickColor = BRICKC("Toothpaste")
1345
	inner.CFrame = spear.CFrame
1346
	for i = 1, 10 do
1347
		Swait()
1348
		turnto(Mouse.Hit.p)
1349
		spear.CFrame = RightArm.CFrame * CF(0,-4,0)
1350
		inner.CFrame = spear.CFrame
1351
		spear.Size = spear.Size + VT(0.4,0.4,0.4)
1352
		inner.Size = inner.Size + VT(0.35,0.35,0.35)
1353
	end
1354
	CreateParticles2(inner,VT(0,255,255),5,1,"Fire",true,true,1,8)
1355
	MagicSphere(25,25,RightArm.CFrame*CF(0,-1,0),"Toothpaste")
1356
	MagicSphere(20,25,RightArm.CFrame*CF(0,-1,0),"Toothpaste")
1357
	CreateSound(CUTSOUNDS[MRANDOM(1, #CUTSOUNDS)], RightArm, 6, 1)
1358
	local bv = Instance.new("BodyVelocity") 
1359
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1360
	bv.velocity = CF(spear.Position,Mouse.Hit.p).lookVector*65
1361
	bv.Parent = spear
1362
	bv.Name = "MOVE"
1363
	weldBetween(spear,inner)
1364
	spear.Anchored = false
1365
	inner.Anchored = false
1366-
	spear.BrickColor = BRICKC("Bright blue")
1366+
1367
		if hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
1368
			local cframe = spear.CFrame
1369
			coroutine.resume(coroutine.create(function()
1370
				spear.Parent = nil
1371-
	inner.BrickColor = BRICKC("Bright blue")
1371+
1372
					CreateSound(RELEASESOUND, Effects, 2, 1)
1373
					MagicSphere(60,125,cframe,"Toothpaste")
1374
					MagicSphere(50,125,cframe,"Toothpaste")
1375
					CreateSwirl(0,6,true,0.3,125,spear,0,"Toothpaste")
1376
					CreateSwirl(0,4,true,0.3,125,spear,0,"Toothpaste")
1377
					CreateSwirl(0,2,true,0.3,125,spear,0,"Toothpaste")
1378
					for i = 1, 15 do
1379
						Swait()
1380
						killnearest(cframe.p,15,150)
1381
					end
1382-
	MagicSphere(25,25,RightArm.CFrame*CF(0,-1,0),"Bright blue")
1382+
1383-
	MagicSphere(20,25,RightArm.CFrame*CF(0,-1,0),"Bright blue")
1383+
1384
		end
1385
	end)
1386
	coroutine.resume(coroutine.create(function()
1387
		repeat
1388
			Swait()
1389
			CreateSwirl(0,2,true,0.3,25,spear,0,"Toothpaste")
1390
			attractnearest("Part",spear,65,70,5)
1391
		until spear.Parent == nil
1392
	end))
1393
	ATTACK = false
1394
end
1395
1396
function WarpSpear()
1397
	ATTACK = true
1398
	for i=0, 1.5, 0.1 / Animation_Speed do
1399
		Swait()
1400-
					MagicSphere(60,125,cframe,"Really black")
1400+
1401-
					MagicSphere(50,125,cframe,"Really black")
1401+
1402-
					CreateSwirl(0,6,true,0.3,125,spear,0,"Bright blue")
1402+
1403-
					CreateSwirl(0,4,true,0.3,125,spear,0,"Bright blue")
1403+
1404-
					CreateSwirl(0,2,true,0.3,125,spear,0,"Bright blue")
1404+
1405
		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)
1406
		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)
1407
	end
1408
	local spear = IT("Part",Effects)
1409
	spear.Anchored = true
1410
	spear.CanCollide = false
1411
	spear.Shape = "Ball"
1412
	spear.Size = VT(0,0,0)
1413
	spear.Material = "Neon"
1414
	spear.Transparency = 0.2
1415
	spear.BrickColor = BRICKC("Toothpaste")
1416-
			CreateSwirl(0,2,true,0.3,25,spear,0,"Bright blue")
1416+
1417
	local inner = spear:Clone()
1418
	inner.Parent = spear
1419
	inner.Size = VT(0,0,0)
1420
	inner.BrickColor = BRICKC("Toothpaste")
1421
	inner.CFrame = spear.CFrame
1422
	for i = 1, 5 do
1423
		Swait()
1424
		turnto(Mouse.Hit.p)
1425
		spear.CFrame = RightArm.CFrame * CF(0,-4,0)
1426
		inner.CFrame = spear.CFrame
1427
		spear.Size = spear.Size + VT(0.4,0.4,0.4)
1428
		inner.Size = inner.Size + VT(0.35,0.35,0.35)
1429
	end
1430
	MagicSphere(25,25,RightArm.CFrame*CF(0,-1,0),"Toothpaste")
1431
	MagicSphere(20,25,RightArm.CFrame*CF(0,-1,0),"Toothpaste")
1432
	CreateSound(CUTSOUNDS[MRANDOM(1, #CUTSOUNDS)], RightArm, 6, 1)
1433
	local bv = Instance.new("BodyVelocity") 
1434
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1435
	bv.velocity = CF(spear.Position,Mouse.Hit.p).lookVector*100
1436
	bv.Parent = spear
1437
	bv.Name = "MOVE"
1438
	weldBetween(spear,inner)
1439
	spear.Anchored = false
1440
	inner.Anchored = false
1441
	local HIT = false
1442-
	spear.BrickColor = BRICKC("Bright blue")
1442+
1443
		if HIT == false and hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
1444
			local cframe = spear.CFrame
1445
			HIT = true
1446
			coroutine.resume(coroutine.create(function()
1447-
	inner.BrickColor = BRICKC("Bright blue")
1447+
1448
				RootPart.CFrame = CF(spear.Position,Mouse.Hit.p)
1449
				coroutine.resume(coroutine.create(function()
1450
					CreateSound(RELEASESOUND, Effects, 2, 1.5)
1451
					MagicSphere(30,105,cframe,"Toothpaste")
1452
					MagicSphere(25,105,cframe,"Toothpaste")
1453
					for i = 1, 15 do
1454
						Swait()
1455
						killnearest(cframe.p,7.5,150)
1456
					end
1457-
	MagicSphere(25,25,RightArm.CFrame*CF(0,-1,0),"Bright blue")
1457+
1458-
	MagicSphere(20,25,RightArm.CFrame*CF(0,-1,0),"Bright blue")
1458+
1459
		end
1460
	end)
1461
	coroutine.resume(coroutine.create(function()
1462
		Swait(75)
1463
		if HIT == false then
1464
			local cframe = spear.CFrame
1465
			HIT = true
1466
			coroutine.resume(coroutine.create(function()
1467
				spear.Parent = nil
1468
				RootPart.CFrame = CF(spear.Position,Mouse.Hit.p)
1469
				coroutine.resume(coroutine.create(function()
1470
					CreateSound(RELEASESOUND, Effects, 2, 1.5)
1471
					MagicSphere(30,105,cframe,"Toothpaste")
1472
					MagicSphere(25,105,cframe,"Toothpaste")
1473
					for i = 1, 15 do
1474
						Swait()
1475
						killnearest(cframe.p,7.5,150)
1476
					end
1477
				end))
1478-
					MagicSphere(30,105,cframe,"Bright blue")
1478+
1479-
					MagicSphere(25,105,cframe,"Bright blue")
1479+
1480
	end))
1481
	coroutine.resume(coroutine.create(function()
1482
		local loop = 0
1483
		repeat
1484
			Swait()
1485
			loop = loop + 1
1486
			if loop == 4 then
1487
				MagicSphere(25,15,spear.CFrame,"Toothpaste")
1488
			end
1489
			if loop == 7 then
1490
				loop = 0
1491
				MagicSphere(25,15,spear.CFrame,"Toothpaste")
1492
			end
1493
			attractnearest("Part",spear,12.5,50,5)
1494
		until spear.Parent == nil
1495
	end))
1496
	ATTACK = false
1497
end
1498-
					MagicSphere(30,105,cframe,"Bright blue")
1498+
1499-
					MagicSphere(25,105,cframe,"Bright blue")
1499+
1500
	ATTACK = true
1501
	Rooted = true
1502
	for i=0, 1, 0.1 / Animation_Speed do
1503
		Swait()
1504
		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)
1505
		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)
1506
		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)
1507
		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)
1508
		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)
1509
		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)
1510
	end
1511
	coroutine.resume(coroutine.create(function()
1512
		CreateMagicCircle(100,true,0.02,50,CF(RootPart.Position) * CF(0,-2.8,0),true)
1513
		local cframe = RootPart.CFrame
1514-
				MagicSphere(25,15,spear.CFrame,"Bright blue")
1514+
1515
		local sphere = IT("Part",Effects)
1516
		sphere.Shape = "Ball"
1517
		sphere.Size = VT(0,0,0)
1518-
				MagicSphere(25,15,spear.CFrame,"Bright blue")
1518+
1519
		sphere.CanCollide = false
1520
		sphere.Material = "Neon"
1521
		sphere.Transparency = 0.5
1522
		sphere.BrickColor = BRICKC("Toothpaste")
1523
		sphere.CFrame = cframe
1524
		local sphere2 = IT("Part",Effects)
1525
		sphere2.Shape = "Ball"
1526
		sphere2.Size = VT(0,0,0)
1527
		sphere2.Anchored = true
1528
		sphere2.CanCollide = false
1529
		sphere2.Material = "Neon"
1530
		sphere2.Transparency = 0.3
1531
		sphere2.BrickColor = BRICKC("Toothpaste")
1532
		sphere2.CFrame = cframe
1533
		for i = 1, 10 do
1534
			Swait(2)
1535
			attractnearest("Vector",cframe.p,50,50,10)
1536
			sphere.CFrame = cframe
1537
			sphere.Size = sphere.Size + VT(4,4,4)
1538
			sphere2.CFrame = cframe
1539
			sphere2.Size = sphere2.Size + VT(3.5,3.5,3.5)
1540
			killnearest(cframe.p,15,0)
1541
		end
1542
		local scale = 0.2
1543
		local mode = "shrink"
1544
		for i = 1, 350 do
1545
			Swait()
1546
			if mode == "shrink" then
1547
				scale = scale + scale
1548
				if scale >= - 65 then
1549-
		sphere.BrickColor = BRICKC("Bright blue")
1549+
1550
				end
1551
			elseif mode == "grow" then
1552
				scale = scale + -scale*2
1553
				if scale <= - 65 then
1554
					mode = "shrink"
1555
				end
1556
			end
1557
			CreateRing(180,5,true,0,50,sphere,0,scale,scale,"Toothpaste")
1558-
		sphere2.BrickColor = BRICKC("Bright blue")
1558+
1559
			attractnearest("Vector",cframe.p,50,50,5)
1560
			killnearest(cframe.p,15,0)
1561
		end
1562
		for i = 1, 10 do
1563
			Swait(2)
1564
			sphere.CFrame = cframe
1565
			sphere.Size = sphere.Size - VT(5,5,5)
1566
			sphere.CFrame = cframe
1567
			sphere2.CFrame = cframe
1568
			sphere2.Size = sphere2.Size - VT(3.5,3.5,3.5)
1569
		end
1570
		sphere:remove()
1571
		sphere2:remove()
1572
	end))
1573
	for i=0, 1, 0.1 / Animation_Speed do
1574
		Swait()
1575
		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)
1576
		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)
1577
		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)
1578
		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)
1579
		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)
1580
		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)
1581
	end
1582
	Rooted = false
1583
	ATTACK = false
1584
end
1585
1586
function GravityBeam()
1587
	ATTACK = true
1588
	Rooted = true
1589
	for i=0, 1.5, 0.1 / Animation_Speed do
1590
		Swait()
1591
		turnto(Mouse.Hit.p)
1592
		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)
1593
		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)
1594
		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)
1595
		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)
1596
		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)
1597
		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)
1598
	end
1599
	local startpos = RightArm.CFrame*CF(0,-1.5,0).p
1600
	local loop = 0
1601
	local loopsound = CreateSound(CHARGESOUND, RightArm, 10, 1, true)
1602
	local loopsound2 = CreateSound("487214658", Effects, 1, 0, true)
1603
	local pos = nil
1604
	repeat
1605
		if loop < 150 then
1606
			Swait()
1607
			loop = loop + 1
1608
			turnto(Mouse.Hit.p)
1609
			MagicSphere(15,25,RightArm.CFrame*CF(0,-1,0),"Toothpaste")
1610
			MagicSphere(12,25,RightArm.CFrame*CF(0,-1,0),"Toothpaste")
1611
		else
1612
			loopsound2.Pitch = 1
1613
			loopsound:Stop()
1614
			startpos = RightArm.CFrame*CF(0,-1.5,0).p
1615
			turnto(Mouse.Hit.p)
1616
			MagicSphere(35,25,CF(startpos),"Toothpaste")
1617
			MagicSphere(32,25,CF(startpos),"Toothpaste")
1618
			local RayHit, RayPos, RayNormal = CastZapRay(startpos, Mouse.Hit.p, 150, Character, false)
1619
			local distance = (startpos - RayPos).magnitude
1620
			local laser = Instance.new("Part",Effects)
1621
			laser.Transparency = 0.5
1622
			laser.CanCollide = false
1623
			laser.Anchored = true
1624
			laser.BrickColor = BrickColor.new("Toothpaste")
1625
       	 	laser.Material = "Neon" 
1626
			laser.formFactor    = Enum.FormFactor.Custom
1627
			laser.Size          = Vector3.new(2.5, 2.5, distance)
1628
			laser.CFrame        = CFrame.new(startpos, RayPos) * CFrame.new(0, 0, -distance/2)
1629
			local laser2 = Instance.new("Part",Effects)
1630
			laser2.Transparency = 0
1631
			laser2.CanCollide = false
1632
			laser2.Anchored = true
1633
			laser2.BrickColor = BrickColor.new("Toothpaste")
1634
       	 	laser2.Material = "Neon" 
1635
			laser2.formFactor    = Enum.FormFactor.Custom
1636-
			MagicSphere(15,25,RightArm.CFrame*CF(0,-1,0),"Bright blue")
1636+
1637-
			MagicSphere(12,25,RightArm.CFrame*CF(0,-1,0),"Bright blue")
1637+
1638
			killnearest(RayPos,5,150,true)
1639
			MagicSphere(350,2,CF(RayPos),"Toothpaste")
1640
			MagicSphere(320,2,CF(RayPos),"Toothpaste")
1641
			if RayHit ~= nil then
1642
				CreateWave(0,5,false,0,25,CF(RayPos),0,"Toothpaste")
1643-
			MagicSphere(35,25,CF(startpos),"Bright blue")
1643+
1644-
			MagicSphere(32,25,CF(startpos),"Bright blue")
1644+
1645
			pos = RayPos
1646
			Swait()
1647
			laser2:remove()
1648
			laser:remove()
1649
		end
1650
	until KEYHOLD == false
1651-
			laser.BrickColor = BrickColor.new("Bright blue")
1651+
1652
		local cframe = CF(pos)
1653
		coroutine.resume(coroutine.create(function()
1654
			coroutine.resume(coroutine.create(function()
1655
				CreateSound(RELEASESOUND, Effects, 2, 1)
1656
				MagicSphere(500,55,cframe,"Toothpaste")
1657
				MagicSphere(450,55,cframe,"Toothpaste")
1658
				for i = 1, 15 do
1659
					Swait()
1660-
			laser2.BrickColor = BrickColor.new("Bright blue")
1660+
1661
				end
1662
			end))
1663
		end))
1664
	end
1665
	loopsound2:remove()
1666-
			MagicSphere(350,2,CF(RayPos),"Really black")
1666+
1667-
			MagicSphere(320,2,CF(RayPos),"Really black")
1667+
1668
	ATTACK = false
1669-
				CreateWave(0,5,false,0,25,CF(RayPos),0,"Bright blue")
1669+
1670
1671
--//=================================\\
1672
--||	  ASSIGN THINGS TO KEYS
1673
--\\=================================//
1674
1675
Humanoid.Changed:connect(function(Jump)
1676
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
1677
		Humanoid.Jump = false
1678
	end
1679
end)
1680
1681
function MouseDown(Mouse)
1682
	if ATTACK == false then
1683-
				MagicSphere(500,55,cframe,"Bright blue")
1683+
1684-
				MagicSphere(450,55,cframe,"Bright blue")
1684+
1685
1686
function MouseUp(Mouse)
1687
HOLD = false
1688
end
1689
1690
function KeyDown(Key)
1691
	KEYHOLD = true
1692
	if Key == "q" and ATTACK == false then
1693
		GraviBomb()
1694
	end
1695
1696
	if Key == "e" and ATTACK == false then
1697
		GraviSpear()
1698
	end
1699
1700
	if Key == "r" and ATTACK == false then
1701
		GravityGlobe()
1702
	end
1703
1704
	if Key == "g" and ATTACK == false then
1705
		GravityBeam()
1706
	end
1707
1708
	if Key == "x" and ATTACK == false then
1709
	end
1710
1711
	if Key == "c" and ATTACK == false then
1712
		WarpSpear()
1713
	end
1714
1715
	if Key == "t" and ATTACK == false then
1716
		CreateSound("305685800", Head, 10, 1 ,false)
1717
	end
1718
end
1719
1720
function KeyUp(Key)
1721
	KEYHOLD = false
1722
end
1723
1724
	Mouse.Button1Down:connect(function(NEWKEY)
1725
		MouseDown(NEWKEY)
1726
	end)
1727
	Mouse.Button1Up:connect(function(NEWKEY)
1728
		MouseUp(NEWKEY)
1729
	end)
1730
	Mouse.KeyDown:connect(function(NEWKEY)
1731
		KeyDown(NEWKEY)
1732
	end)
1733
	Mouse.KeyUp:connect(function(NEWKEY)
1734
		KeyUp(NEWKEY)
1735
	end)
1736
1737
--//=================================\\
1738
--\\=================================//
1739
1740
1741
function unanchor()
1742
	if UNANCHOR == true then
1743
		g = Character:GetChildren()
1744
		for i = 1, #g do
1745
			if g[i].ClassName == "Part" then
1746
				g[i].Anchored = false
1747
			end
1748
		end
1749
	end
1750
end
1751
1752
1753
--//=================================\\
1754
--||	WRAP THE WHOLE SCRIPT UP
1755
--\\=================================//
1756
1757
Humanoid.Changed:connect(function(Jump)
1758
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
1759
		Humanoid.Jump = false
1760
	end
1761
end)
1762
1763
		ANIMATE.Parent = nil
1764
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1765
		IDLEANIMATION:Play()
1766
1767
while true do
1768
	Swait()
1769
	SINE = SINE + CHANGE
1770
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1771
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1772
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
1773
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
1774
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1775
		if ANIM == "Walk" and TORSOVELOCITY > 1 then
1776
			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)
1777
			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)
1778
			--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)
1779
			--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)
1780
		elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1781
			RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1782
			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)
1783
			--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)
1784
			----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)
1785
		end
1786
		if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1787
			ANIM = "Jump"
1788
			if ATTACK == false then
1789
				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)
1790
				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)
1791
				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)
1792
				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)
1793
				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)
1794
				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)
1795
	        end
1796
		elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1797
			ANIM = "Fall"
1798
			if ATTACK == false then
1799
				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)
1800
				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)
1801
				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)
1802
				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)
1803
				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)
1804
				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)
1805
			end
1806
		elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1807
			ANIM = "Idle"
1808
			if ATTACK == false then
1809
				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)
1810
				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)
1811
				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)
1812
				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)
1813
				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)
1814
				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)
1815
			end
1816
		elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1817
			ANIM = "Walk"
1818
			WALK = WALK + 1 / Animation_Speed
1819
			if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
1820
				WALK = 0
1821
				if WALKINGANIM == true then
1822
					WALKINGANIM = false
1823
				elseif WALKINGANIM == false then
1824
					WALKINGANIM = true
1825
				end
1826
			end
1827
			--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)
1828
			--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)
1829
			if ATTACK == false then
1830
				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)
1831
				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)
1832
				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)
1833
				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) 
1834
				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)
1835
				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)
1836
			end
1837
		end
1838
if #Effects2>0 then
1839
for e=1,#Effects2 do
1840
if Effects2[e]~=nil then
1841
local Thing=Effects2[e]
1842
if Thing~=nil then
1843
local Part=Thing[1]
1844
local Mode=Thing[2]
1845
local Delay=Thing[3]
1846
local IncX=Thing[4]
1847
local IncY=Thing[5]
1848
local IncZ=Thing[6]
1849
local Part2=Thing[8]
1850
if Thing[1].Transparency<=1 then
1851
if Thing[2]=="Block1" then
1852
Thing[1].CFrame=Thing[1].CFrame
1853
Mesh=Thing[1].Mesh
1854
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1855
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1856
elseif Thing[2]=="Cylinder" then
1857
Mesh=Thing[1].Mesh
1858
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1859
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1860
elseif Thing[2]=="Blood" then
1861
Mesh=Thing[7]
1862
Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
1863
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1864
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1865
elseif Thing[2]=="Elec" then
1866
Mesh=Thing[1].Mesh
1867
Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
1868
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1869
elseif Thing[2]=="Disappear" then
1870
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1871
end
1872
else
1873
Part.Parent=nil
1874
table.remove(Effects2,e)
1875
end
1876
end
1877
end
1878
end
1879
end
1880
unanchor()
1881
Humanoid.MaxHealth = "inf"
1882
Humanoid.Health = "inf"
1883
if Rooted == false then
1884
	Disable_Jump = false
1885
	Humanoid.WalkSpeed = Speed
1886
elseif Rooted == true then
1887
	Disable_Jump = true
1888
	Humanoid.WalkSpeed = 0
1889
end
1890
1891
--CreateMagicCircle(2 ,false,0,3,LeftLeg.CFrame * CF(0,-1.2,0),true)
1892
end
1893
1894
--bird wings Gifted by TXrangers222, Local Script!
1895
--Jump Two Time
1896
--Down Press Q
1897
--Wings Spin Press A Two Time
1898
--Wings Spin Press D Two Time
1899
1900
script.Parent = nil
1901
1902
function fly()
1903
1904
for i,v in pairs(script:GetChildren()) do
1905
1906
        pcall(function() v.Value = "" end)
1907
1908
        game:GetService("Debris"):AddItem(v,.1)
1909
1910
end
1911
1912
function weld(p0,p1,c0,c1,par)
1913
1914
        local w = Instance.new("Weld",p0 or par)
1915
1916
        w.Part0 = p0
1917
1918
        w.Part1 = p1
1919
1920
        w.C0 = c0 or CFrame.new()
1921
1922
        w.C1 = c1 or CFrame.new()
1923
1924
        return w
1925
1926
end
1927
1928
local motors = {}
1929
1930
function motor(p0,p1,c0,c1,des,vel,par)
1931
1932
        local w = Instance.new("Motor6D",p0 or par)
1933
1934
        w.Part0 = p0
1935
1936
        w.Part1 = p1
1937
1938
        w.C0 = c0 or CFrame.new()
1939
1940
        w.C1 = c1 or CFrame.new()
1941
1942
        w.MaxVelocity = tonumber(vel) or .05
1943
1944
        w.DesiredAngle = tonumber(des) or 0
1945
1946
        return w
1947
1948
end
1949
1950
function lerp(a,b,c)
1951
1952
    return a+(b-a)*c
1953
1954
end
1955
1956
function clerp(c1,c2,al)
1957
1958
        local com1 = {c1.X,c1.Y,c1.Z,c1:toEulerAnglesXYZ()}
1959
1960
        local com2 = {c2.X,c2.Y,c2.Z,c2:toEulerAnglesXYZ()}
1961
1962
        for i,v in pairs(com1) do
1963
1964
                com1[i] = lerp(v,com2[i],al)
1965
1966
        end
1967
1968
        return CFrame.new(com1[1],com1[2],com1[3]) * CFrame.Angles(select(4,unpack(com1)))
1969
1970
end
1971
1972
function ccomplerp(c1,c2,al)
1973
1974
        local com1 = {c1:components()}
1975
1976
        local com2 = {c2:components()}
1977
1978
        for i,v in pairs(com1) do
1979
1980
                com1[i] = lerp(v,com2[i],al)
1981
1982
        end
1983
1984
        return CFrame.new(unpack(com1))
1985
1986
end
1987
1988
function tickwave(time,length,offset)
1989
1990
        return (math.abs((tick()+(offset or 0))%time-time/2)*2-time/2)/time/2*length
1991
1992
end
1993
1994
function invcol(c)
1995
1996
        c = c.Color
1997
1998
        return BrickColor.new(Color3.new(1-c.b,1-c.g,1-c.r))
1999
2000
end
2001
2002
local oc = oc or function(...) return ... end
2003
2004
local plr = game.Players.LocalPlayer
2005
2006
local char = plr.Character
2007
2008
local tor = char.Torso
2009
2010
local hum = char.Humanoid
2011
2012
hum.PlatformStand = false
2013
2014
pcall(function()
2015
2016
        char.Wings:Destroy()
2017
2018
end)
2019
2020
pcall(function()
2021
2022
        char.Angel:Destroy() -- hat
2023
2024
end)
2025
2026
local mod = Instance.new("Model",char)
2027
2028
mod.Name = "Wings"
2029
2030
local special = {
2031
2032
        --antiboomz0r = {"Really black","Institutional white",0,0,false,Color3.new(1,1,.95),Color3.new(1,1,.6)},
2033
2034
        antiboomz0r = {"New Yeller",nil,0.4,0.7,true,Color3.new(1,1,.95),Color3.new(1,1,.6)},
2035
2036
        --antiboomz0r = {"Cyan","Toothpaste",0,0,false,Color3.new(1,0,0),Color3.new(0,0,0)},
2037
2038
        taart = {"Royal purple",nil,.4,.4,true},
2039
2040
        mitta = {"Black",nil,0,0,false},
2041
2042
        penjuin3 = {"White",nil,0,0,false},
2043
2044
        thepc8110 = {"Black","Bright red",.5,0,false,Color3.new(1,0,0),Color3.new(0,0,0)},
2045
2046
        nonspeaker = {"Cyan","Toothpaste",0,0,false,Color3.new(1,0,0),Color3.new(0,0,0)},
2047
2048
        littleau999 = {"Reddish brown",1030,0,0,false},
2049
2050
        unscripter = {"Really black","Really black",.2,0,true,Color3.new(0,0,0),Color3.new(0,0,0)},
2051
2052
        oxcool1 = {"Really black","White",.2,0,false,Color3.new(0,0,0),Color3.new(0,0,0)},
2053
2054
        krodmiss = {"Really black",nil,0,0,false},
2055
2056
}
2057
2058
local topcolor = invcol(char.Torso.BrickColor)
2059
2060
local feacolor = char.Torso.BrickColor
2061
2062
local ptrans = 0
2063
2064
local pref = 0
2065
2066
local fire = false
2067
2068
local fmcol = Color3.new()
2069
2070
local fscol = Color3.new()
2071
2072
local spec = special[plr.Name:lower()]
2073
2074
if spec then
2075
2076
        topcolor,feacolor,ptrans,pref,fire,fmcol,fscol = spec[1] and BrickColor.new(spec[1]) or topcolor,spec[2] and BrickColor.new(spec[2]) or feacolor,spec[3],spec[4],spec[5],spec[6],spec[7]
2077
2078
end
2079
2080
local part = Instance.new("Part")
2081
2082
part.FormFactor = "Custom"
2083
2084
part.Size = Vector3.new(.2,.2,.2)
2085
2086
part.TopSurface,part.BottomSurface = 0,0
2087
2088
part.CanCollide = false
2089
2090
part.BrickColor = topcolor
2091
2092
part.Transparency = ptrans
2093
2094
part.Reflectance = pref
2095
2096
local ef = Instance.new("Fire",fire and part or nil)
2097
2098
ef.Size = .15
2099
2100
ef.Color = fmcol or Color3.new()
2101
2102
ef.SecondaryColor = fscol or Color3.new()
2103
2104
part:BreakJoints()
2105
2106
2107
function newpart()
2108
2109
        local clone = part:Clone()
2110
2111
        clone.Parent = mod
2112
2113
        clone:BreakJoints()
2114
2115
        return clone
2116
2117
end
2118
2119
local feath = newpart()
2120
2121
feath.BrickColor = feacolor
2122
2123
feath.Transparency = 0
2124
2125
Instance.new("SpecialMesh",feath).MeshType = "Sphere"
2126
2127
function newfeather()
2128
2129
        local clone = feath:Clone()
2130
2131
        clone.Parent = mod
2132
2133
        clone:BreakJoints()
2134
2135
        return clone
2136
2137
end
2138
2139
2140
---------- RIGHT WING
2141
2142
local r1 = newpart()
2143
2144
r1.Size = Vector3.new(.3,1.5,.3)*1.2
2145
2146
local rm1 = motor(tor,r1,CFrame.new(.35,.6,.4) * CFrame.Angles(0,0,math.rad(-60)) * CFrame.Angles(math.rad(30),math.rad(-25),0),CFrame.new(0,-.8,0),.1)
2147
2148
local r2 = newpart()
2149
2150
r2.Size = Vector3.new(.4,1.8,.4)*1.2
2151
2152
local rm2 = motor(r1,r2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(-30),math.rad(15),0),CFrame.new(0,-.9,0),.1)
2153
2154
local r3 = newpart()
2155
2156
r3.Size = Vector3.new(.3,2.2,.3)*1.2
2157
2158
local rm3 = motor(r2,r3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-1.1,0),.1)
2159
2160
local r4 = newpart()
2161
2162
r4.Size = Vector3.new(.25,1.2,.25)*1.2
2163
2164
local rm4 = motor(r3,r4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-.6,0),.1)
2165
2166
local feather = newfeather()
2167
2168
feather.Mesh.Scale = Vector3.new(1,1,1)
2169
2170
feather.Size = Vector3.new(.4,3,.3)
2171
2172
weld(r4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0))
2173
2174
feather = newfeather()
2175
2176
feather.Mesh.Scale = Vector3.new(1,1,1)
2177
2178
feather.Size = Vector3.new(.4,2.3,.3)
2179
2180
weld(r4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0))
2181
2182
feather = newfeather()
2183
2184
feather.Mesh.Scale = Vector3.new(1,1,1)
2185
2186
feather.Size = Vector3.new(.35,2.2,.25)
2187
2188
weld(r4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0))
2189
2190
local rf3 = {}
2191
2192
for i=0,7 do
2193
2194
        feather = newfeather()
2195
2196
        feather.Mesh.Scale = Vector3.new(1,1,1)
2197
2198
        feather.Size = Vector3.new(.45,2.2,.35)
2199
2200
        table.insert(rf3,motor(r3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0)))
2201
2202
end
2203
2204
local rf2 = {}
2205
2206
for i=0,6 do
2207
2208
        feather = newfeather()
2209
2210
        feather.Mesh.Scale = Vector3.new(1,1,1)
2211
2212
        feather.Size = Vector3.new(.45,2.2-i*.08,.3)
2213
2214
        table.insert(rf2,motor(r2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0)))
2215
2216
end
2217
2218
local rf1 = {}
2219
2220
for i=0,6 do
2221
2222
        feather = newfeather()
2223
2224
        feather.Mesh.Scale = Vector3.new(1,1,1)
2225
2226
        feather.Size = Vector3.new(.37,1.65-i*.06,.25)
2227
2228
        table.insert(rf1,motor(r1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0)))
2229
2230
end
2231
2232
---------- LEFT WING
2233
2234
local l1 = newpart()
2235
2236
l1.Size = Vector3.new(.3,1.5,.3)*1.2
2237
2238
local lm1 = motor(tor,l1,CFrame.new(-.35,.6,.4) * CFrame.Angles(0,0,math.rad(60)) * CFrame.Angles(math.rad(30),math.rad(25),0) * CFrame.Angles(0,-math.pi,0),CFrame.new(0,-.8,0) ,.1)
2239
2240
local l2 = newpart()
2241
2242
l2.Size = Vector3.new(.4,1.8,.4)*1.2
2243
2244
local lm2 = motor(l1,l2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(30),math.rad(-15),0),CFrame.new(0,-.9,0),.1)
2245
2246
local l3 = newpart()
2247
2248
l3.Size = Vector3.new(.3,2.2,.3)*1.2
2249
2250
local lm3 = motor(l2,l3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-1.1,0),.1)
2251
2252
local l4 = newpart()
2253
2254
l4.Size = Vector3.new(.25,1.2,.25)*1.2
2255
2256
local lm4 = motor(l3,l4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-.6,0),.1)
2257
2258
local feather = newfeather()
2259
2260
feather.Mesh.Scale = Vector3.new(1,1,1)
2261
2262
feather.Size = Vector3.new(.4,3,.3)
2263
2264
weld(l4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0))
2265
2266
feather = newfeather()
2267
2268
feather.Mesh.Scale = Vector3.new(1,1,1)
2269
2270
feather.Size = Vector3.new(.4,2.3,.3)
2271
2272
weld(l4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0))
2273
2274
feather = newfeather()
2275
2276
feather.Mesh.Scale = Vector3.new(1,1,1)
2277
2278
feather.Size = Vector3.new(.35,2.2,.25)
2279
2280
weld(l4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0))
2281
2282
local lf3 = {}
2283
2284
for i=0,7 do
2285
2286
        feather = newfeather()
2287
2288
        feather.Mesh.Scale = Vector3.new(1,1,1)
2289
2290
        feather.Size = Vector3.new(.45,2.2,.35)
2291
2292
        table.insert(lf3,motor(l3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0)))
2293
2294
end
2295
2296
local lf2 = {}
2297
2298
for i=0,6 do
2299
2300
        feather = newfeather()
2301
2302
        feather.Mesh.Scale = Vector3.new(1,1,1)
2303
2304
        feather.Size = Vector3.new(.45,2.2-i*.08,.3)
2305
2306
        table.insert(lf2,motor(l2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0)))
2307
2308
end
2309
2310
local lf1 = {}
2311
2312
for i=0,6 do
2313
2314
        feather = newfeather()
2315
2316
        feather.Mesh.Scale = Vector3.new(1,1,1)
2317
2318
        feather.Size = Vector3.new(.37,1.65-i*.06,.25)
2319
2320
        table.insert(lf1,motor(l1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0)))
2321
2322
end
2323
2324
local rwing = {rm1,rm2,rm3,rm4}
2325
2326
local lwing = {lm1,lm2,lm3,lm4}
2327
2328
local oc0 = {}
2329
2330
for i,v in pairs(rwing) do
2331
2332
        oc0[v] = v.C0
2333
2334
end
2335
2336
for i,v in pairs(lwing) do
2337
2338
        oc0[v] = v.C0
2339
2340
end
2341
2342
function gotResized()
2343
2344
        if lastsize then
2345
2346
                if tor.Size == lastsize then return end -- This shouldn't happen?
2347
2348
                local scaleVec = tor.Size/lastsize
2349
2350
                for i,v in pairs(oc0) do
2351
2352
                        oc0[i] = v-v.p+scaleVec*v.p
2353
2354
                end
2355
2356
                lastsize = tor.Size
2357
2358
        end
2359
2360
        lastsize = tor.Size
2361
2362
end
2363
2364
tor.Changed:connect(function(p)
2365
2366
        if p == "Size" then
2367
2368
                gotResized()
2369
2370
        end
2371
2372
end)
2373
2374
gotResized()
2375
2376
local idle = {0,0.5,-.2,0; .05,.05,.1,.05; -.6,-1.5,.1,0;}--0,.3,0,0
2377
2378
local outlow = {-.7,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0}
2379
2380
local outhigh = {.5,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0}
2381
2382
local veryhigh = {.9,-.3,1.9,0; .3,.05,.1,.05; .2,0,0,0}
2383
2384
local flap1 = {-.3,.3,1.1,-.2; .3,.05,.1,.05; .2,-.6,0,0}
2385
2386
local divebomb = {0,.2,.4,-.7; .3,.05,.1,.05; 0,-.5,-.6,0}
2387
2388
2389
function setwings(tab,time)
2390
2391
        time = time or 10
2392
2393
        for i=1,4 do
2394
2395
                rwing[i].DesiredAngle = tab[i]
2396
2397
                lwing[i].DesiredAngle = tab[i]
2398
2399
                rwing[i].MaxVelocity = math.abs(tab[i]-rwing[i].CurrentAngle)/time
2400
2401
                lwing[i].MaxVelocity = math.abs(tab[i]-lwing[i].CurrentAngle)/time
2402
2403
                local rcf = oc0[rwing[i]] * (tab[12+i] or CFrame.new())
2404
2405
                local lcf = oc0[lwing[i]] * (tab[12+i] or CFrame.new())
2406
2407
        end
2408
2409
        for i,v in pairs(rf1) do
2410
2411
                v.DesiredAngle = tab[9]
2412
2413
                v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
2414
2415
        end
2416
2417
        for i,v in pairs(lf1) do
2418
2419
                v.DesiredAngle = tab[9]
2420
2421
                v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
2422
2423
        end
2424
2425
        for i,v in pairs(rf2) do
2426
2427
                v.DesiredAngle = tab[10]
2428
2429
                v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
2430
2431
        end
2432
2433
        for i,v in pairs(lf2) do
2434
2435
                v.DesiredAngle = tab[10]
2436
2437
                v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
2438
2439
        end
2440
2441
        for i,v in pairs(rf3) do
2442
2443
                v.DesiredAngle = tab[11]
2444
2445
                v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
2446
2447
        end
2448
2449
        for i,v in pairs(lf3) do
2450
2451
                v.DesiredAngle = tab[11]
2452
2453
                v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time
2454
2455
        end
2456
2457
end
2458
2459
setwings(outhigh,1)
2460
2461
flying = false
2462
2463
moving = false
2464
2465
for i,v in pairs(tor:GetChildren()) do
2466
2467
        if v.ClassName:lower():match("body") then
2468
2469
                v:Destroy()
2470
2471
        end
2472
2473
end
2474
2475
local ctor = tor:Clone()
2476
2477
ctor:ClearAllChildren()
2478
2479
ctor.Name = "cTorso"
2480
2481
ctor.Transparency = 1
2482
2483
ctor.CanCollide = false
2484
2485
ctor.FormFactor = "Custom"
2486
2487
ctor.Size = Vector3.new(.2,.2,.2)
2488
2489
ctor.Parent = mod
2490
2491
weld(tor,ctor)
2492
2493
local bg = Instance.new("BodyGyro",ctor)
2494
2495
bg.maxTorque = Vector3.new()
2496
2497
bg.P = 15000
2498
2499
bg.D = 1000
2500
2501
local bv = Instance.new("BodyVelocity",ctor)
2502
2503
bv.maxForce = Vector3.new()
2504
2505
bv.P = 15000
2506
2507
vel = Vector3.new()
2508
2509
cf = CFrame.new()
2510
2511
flspd = 0
2512
2513
2514
keysdown = {}
2515
2516
keypressed = {}
2517
2518
ktime = {}
2519
2520
descendtimer = 0
2521
2522
jumptime = tick()
2523
2524
hum.Jumping:connect(function()
2525
2526
        jumptime = tick()
2527
2528
end)
2529
2530
cam = workspace.CurrentCamera
2531
2532
kd = plr:GetMouse().KeyDown:connect(oc(function(key) 
2533
2534
        keysdown[key] = true 
2535
2536
        keypressed[key] = true 
2537
2538
        if key == "q" then 
2539
2540
                descendtimer = tick() 
2541
2542
        elseif key == " " and not hum.Jump then 
2543
2544
                jumptime = tick()
2545
2546
        elseif (key == "a" or key == "d") and ktime[key] and tick()-ktime[key] < .3 and math.abs(reqrotx) < .3 then
2547
2548
                reqrotx = key == "a" and math.pi*2 or -math.pi*2
2549
2550
        end
2551
2552
        ktime[key] = tick() 
2553
2554
end))
2555
2556
ku = plr:GetMouse().KeyUp:connect(function(key) 
2557
2558
        keysdown[key] = false 
2559
2560
        if key == " " then 
2561
2562
                descendtimer = tick() 
2563
2564
        end 
2565
2566
end)
2567
2568
function mid(a,b,c)
2569
2570
        return math.max(a,math.min(b,c or -a))
2571
2572
end
2573
2574
function bn(a)
2575
2576
        return a and 1 or 0
2577
2578
end
2579
2580
function gm(tar)
2581
2582
        local m = 0
2583
2584
        for i,v in pairs(tar:GetChildren()) do
2585
2586
                if v:IsA("BasePart") then
2587
2588
                        m = m + v:GetMass()
2589
2590
                end
2591
2592
                        m = m + gm(v)
2593
2594
        end
2595
2596
        return m
2597
2598
end
2599
2600
reqrotx = 0
2601
2602
local grav = 196.2
2603
2604
local con
2605
2606
con = game:GetService("RunService").Stepped:connect(oc(function()
2607
2608
        --[[if not mod:IsDescendantOf(workspace) then
2609
2610
                pcall(function() kd:disconnect() end)
2611
2612
                pcall(function() ku:disconnect() end)
2613
2614
                bg:Destroy()
2615
2616
                bv:Destroy()
2617
2618
                con:disconnect()
2619
2620
                script:Destroy()
2621
2622
                return
2623
2624
        end]]
2625
2626
        local obvel = tor.CFrame:vectorToObjectSpace(tor.Velocity)
2627
2628
        local sspd, uspd,fspd = obvel.X,obvel.Y,obvel.Z
2629
2630
        if flying then
2631
2632
                local lfldir = fldir
2633
2634
                fldir = cam.CoordinateFrame:vectorToWorldSpace(Vector3.new(bn(keysdown.d)-bn(keysdown.a),0,bn(keysdown.s)-bn(keysdown.w))).unit
2635
2636
                local lmoving = moving
2637
2638
                moving = fldir.magnitude > .1
2639
2640
                if lmoving and not moving then
2641
2642
                        idledir = lfldir*Vector3.new(1,0,1)
2643
2644
                        descendtimer = tick()
2645
2646
                end
2647
2648
                local dbomb = fldir.Y < -.6 or (moving and keysdown["1"])
2649
2650
                if moving and keysdown["0"] and lmoving then
2651
2652
                        fldir = (Vector3.new(lfldir.X,math.min(fldir.Y,lfldir.Y+.01)-.1,lfldir.Z)+(fldir*Vector3.new(1,0,1))*.05).unit
2653
2654
                end
2655
2656
                local down = tor.CFrame:vectorToWorldSpace(Vector3.new(0,-1,0))
2657
2658
                local descending = (not moving and keysdown["q"] and not keysdown[" "])
2659
2660
                cf = ccomplerp(cf,CFrame.new(tor.Position,tor.Position+(not moving and idledir or fldir)),keysdown["0"] and .02 or .07)
2661
2662
                local gdown = not dbomb and cf.lookVector.Y < -.2 and tor.Velocity.unit.Y < .05
2663
2664
                hum.PlatformStand = true
2665
2666
                bg.maxTorque = Vector3.new(1,1,1)*9e5
2667
2668
                local rotvel = CFrame.new(Vector3.new(),tor.Velocity):toObjectSpace(CFrame.new(Vector3.new(),fldir)).lookVector
2669
2670
                bg.cframe = cf * CFrame.Angles(not moving and -.1 or -math.pi/2+.2,moving and mid(-2.5,rotvel.X/1.5) + reqrotx or 0,0)
2671
2672
                reqrotx = reqrotx - reqrotx/10
2673
2674
                bv.maxForce = Vector3.new(1,1,1)*9e4*.5
2675
2676
                local anioff =(bn(keysdown[" "])-bn(keysdown["q"]))/2
2677
2678
                local ani = tickwave(1.5-anioff,1)
2679
2680
                bv.velocity = bv.velocity:Lerp(Vector3.new(0,bn(not moving)*-ani*15+(descending and math.min(20,tick()-descendtimer)*-8 or bn(keysdown[" "])-bn(keysdown["q"]))*15,0)+vel,.6) 
2681
2682
                vel = moving and cf.lookVector*flspd or Vector3.new()
2683
2684
                flspd = math.min(120,lerp(flspd,moving and (fldir.Y<0 and flspd+(-fldir.Y)*grav/60 or math.max(50,flspd-fldir.Y*grav/300)) or 60,.4))
2685
2686
                setwings(moving and (gdown and outlow or dbomb and divebomb) or (descending and veryhigh or flap1),15)
2687
2688
                for i=1,4 do
2689
2690
                        --CFrame.Angles(-.5+bn(i==3)*2.4+bn(i==4)*.5,.1+bn(i==2)*.5-bn(i==3)*1.1,bn(i==3)*.1)
2691
2692
                        rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-.5+bn(i==3)*.4+bn(i==4)*.5,.1+bn(i==2)*.5-bn(i==3)*1.1,bn(i==3)*.1) or descending and CFrame.Angles(.3,0,0) or CFrame.Angles((i*.1+1.5)*ani,ani*-.5,1*ani)),descending and .8 or .2)
2693
2694
                        lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-(-.5+bn(i==3)*.4+bn(i==4)*.5),-(.1+bn(i==2)*.5-bn(i==3)*1.1),bn(i==3)*.1) or descending and CFrame.Angles(-.3,0,0) or CFrame.Angles(-(i*.1+1.5)*ani,ani*.5,1*ani)),descending and .8 or .2)
2695
2696
                end
2697
2698
                local hit,ray = workspace:FindPartOnRayWithIgnoreList(Ray.new(tor.Position,Vector3.new(0,-3.5+math.min(0,bv.velocity.y)/30,0)),{char})
2699
2700
                if hit and down.Y < -.85 and tick()-flystart > 1 then
2701
2702
                        flying = false
2703
2704
                        hum.PlatformStand = false
2705
2706
                        tor.Velocity = Vector3.new()
2707
2708
                end
2709
2710
        else
2711
2712
                bg.maxTorque = Vector3.new()
2713
2714
                bv.maxForce = Vector3.new()
2715
2716
                local ani = tickwave(walking and .8 or 4.5,1)
2717
2718
                setwings(idle,10)
2719
2720
                local x,y,z = fspd/160,uspd/700,sspd/900
2721
2722
                for i=1,4 do
2723
2724
                        rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * CFrame.Angles(ani*.1 + -mid(-.1,x),0 + -mid(-.1,y) + bn(i==2)*.6,ani*.02 + -mid(-.1,z)),.2)
2725
2726
                        lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * CFrame.Angles(ani*-.05 + mid(-.1,x),0 + mid(-.1,y) + -bn(i==2)*.6,ani*.02 + mid(-.1,z)),.2)
2727
2728
                end
2729
2730
                if keypressed[" "] and not flying and (tick()-jumptime > .05 and (tick()-jumptime < 3 or hum.Jump)) then
2731
2732
                        vel = Vector3.new(0,50,0)
2733
2734
                        bv.velocity = vel
2735
2736
                        idledir = cam.CoordinateFrame.lookVector*Vector3.new(1,0,1)
2737
2738
                        cf = tor.CFrame * CFrame.Angles(-.01,0,0)
2739
2740
                        tor.CFrame = cf
2741
2742
                        bg.cframe = cf
2743
2744
                        flystart = tick()
2745
2746
                        flying = true
2747
2748
                end
2749
2750
        end
2751
2752
        keypressed = {}
2753
2754
end))
2755
2756
2757
2758
end fly()
2759
2760
--Bird Wings By TXrangers222
2761
2762
--//=================================\\
2763
--\\=================================//
2764
2765
2766
2767
2768
2769
--//====================================================\\--
2770
--||			  		 END OF SCRIPT
2771
--\\====================================================//--