View difference between Paste ID: dKTZiv01 and SLBBcYMY
SHOW: | | - or go back to the newest paste.
1
2-
--||			   CREATED BY SHACKLUSTER
2+
3-
--\\====================================================//--
3+
4
5
6
Player = game:GetService("Players").LocalPlayer
7
PlayerGui = Player.PlayerGui
8
Cam = workspace.CurrentCamera
9
Backpack = Player.Backpack
10
Character = Player.Character
11
Humanoid = Character.Humanoid
12
Mouse = Player:GetMouse()
13
RootPart = Character["HumanoidRootPart"]
14
Torso = Character["Torso"]
15
Head = Character["Head"]
16
RightArm = Character["Right Arm"]
17
LeftArm = Character["Left Arm"]
18
RightLeg = Character["Right Leg"]
19
LeftLeg = Character["Left Leg"]
20
RootJoint = RootPart["RootJoint"]
21
Neck = Torso["Neck"]
22
RightShoulder = Torso["Right Shoulder"]
23
LeftShoulder = Torso["Left Shoulder"]
24
RightHip = Torso["Right Hip"]
25
LeftHip = Torso["Left Hip"]
26
27
IT = Instance.new
28
CF = CFrame.new
29
VT = Vector3.new
30
RAD = math.rad
31
C3 = Color3.new
32
UD2 = UDim2.new
33
BRICKC = BrickColor.new
34
ANGLES = CFrame.Angles
35
EULER = CFrame.fromEulerAnglesXYZ
36
COS = math.cos
37
ACOS = math.acos
38
SIN = math.sin
39
ASIN = math.asin
40
ABS = math.abs
41
MRANDOM = math.random
42
FLOOR = math.floor
43
44
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
45
	local NEWMESH = IT(MESH)
46
	if MESH == "SpecialMesh" then
47
		NEWMESH.MeshType = MESHTYPE
48
		if MESHID ~= "nil" and MESHID ~= "" then
49
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
50
		end
51
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
52
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
53
		end
54
	end
55
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
56
	NEWMESH.Scale = SCALE
57
	NEWMESH.Parent = PARENT
58
	return NEWMESH
59
end
60
61
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
62
	local NEWPART = IT("Part")
63
	NEWPART.formFactor = FORMFACTOR
64
	NEWPART.Reflectance = REFLECTANCE
65
	NEWPART.Transparency = TRANSPARENCY
66
	NEWPART.CanCollide = false
67
	NEWPART.Locked = true
68
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
69
	NEWPART.Name = NAME
70
	NEWPART.Size = SIZE
71
	NEWPART.Position = Torso.Position
72
	NEWPART.Material = MATERIAL
73
	NEWPART:BreakJoints()
74
	NEWPART.Parent = PARENT
75
	return NEWPART
76
end
77
78
79
--//=================================\\
80
--||		  CUSTOMIZATION
81
--\\=================================//
82
83
Class_Name = "Sharpshooter"
84
Weapon_Name = "Add-ons"
85
86
	Custom_Color_1 = BRICKC("Really black"); --1st color for the weapon.
87
	Custom_Color_2 = BRICKC("Maroon"); --2nd color for the weapon.
88
89
	Custom_Color_3 = BRICKC("Really red"); --Color for the abilities.
90
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
91
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
92
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
93
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
94
95
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
96
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
97
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
98
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
99
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
100
101
102
Player_Size = 1 --Size of the player.
103
Animation_Speed = 3
104
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
105
106
local Speed = 16
107
local Effects2 = {}
108
109
--//=================================\\
110
--|| 	  END OF CUSTOMIZATION
111
--\\=================================//
112
113
	local function weldBetween(a, b)
114
	    local weldd = Instance.new("ManualWeld")
115
	    weldd.Part0 = a
116
	    weldd.Part1 = b
117
	    weldd.C0 = CFrame.new()
118
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
119
	    weldd.Parent = a
120
	    return weldd
121
	end
122
123
function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
124
local acs = Instance.new("Part")
125
acs.CanCollide = false
126
acs.Anchored = false
127
acs.Size = Vector3.new(0,0,0)
128
acs.CFrame = attachmentpart.CFrame
129
acs.Parent = Character
130
acs.BrickColor = color
131
    local meshs = Instance.new("SpecialMesh")
132
    meshs.MeshId = mesh
133
    meshs.TextureId = texture
134
    meshs.Parent = acs
135
    meshs.Scale = scale
136
    meshs.Offset = offset
137
weldBetween(attachmentpart,acs)
138
end
139
140
function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
141
if TYPE == "Gem" then
142
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
143
	acs.Anchored = false
144
    acs.CanCollide = false
145
	acs.CFrame = PART.CFrame
146
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
147
weldBetween(PART,acs)
148
elseif TYPE == "Skull" then
149
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
150
	acs.Anchored = false
151
    acs.CanCollide = false
152
	acs.CFrame = PART.CFrame
153
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
154
weldBetween(PART,acs)
155
elseif TYPE == "Eye" then
156
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
157
	acs.Anchored = false
158
    acs.CanCollide = false
159
	acs.CFrame = PART.CFrame
160
	local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
161
weldBetween(PART,acs)
162
end
163
end
164
165
createaccessory(Head,"rbxassetid://151313536","rbxassetid://188595215",VT(2.5,2.5,2.5),VT(0, 0.7, 0.2),BRICKC"Really black")
166
167
--//=================================\\
168
--|| 	      USEFUL VALUES
169
--\\=================================//
170
171
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
172
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
173
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
174
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
175
local CO1 = 0
176
local CO2 = 0
177
local CO3 = 0
178
local CO4 = 0
179
local CHANGEDEFENSE = 0
180
local CHANGEDAMAGE = 0
181
local CHANGEMOVEMENT = 0
182
local ANIM = "Idle"
183
local ATTACK = false
184
local EQUIPPED = false
185
local HOLD = false
186
local COMBO = 1
187
local LASTPOINT = nil
188
local BLCF = nil
189
local SCFR = nil
190
local STAGGERHITANIM = false
191
local STAGGERANIM = false
192
local SPRINTING = false
193
local STUNANIM = false
194
local CRITCHANCENUMBER = 0
195
local IDLENUMBER = 0
196
local DONUMBER = 0
197
local HANDIDLE = false
198
local SINE = 0
199
local CHANGE = 2 / Animation_Speed
200
local WALKINGANIM = false
201
local WALK = 0
202
local DISABLEJUMPING = false
203
local HASBEENBLOCKED = false
204
local STUNDELAYNUMBER = 0
205
local MANADELAYNUMBER = 0
206
local SECONDARYMANADELAYNUMBER = 0
207
local KEYHOLD = false
208
local ROBLOXIDLEANIMATION = IT("Animation")
209
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
210
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
211
--ROBLOXIDLEANIMATION.Parent = Humanoid
212
local WEAPONGUI = IT("ScreenGui", nil)
213
WEAPONGUI.Name = "Weapon GUI"
214
local WEAPONTOOL = IT("HopperBin", nil)
215
WEAPONTOOL.Name = Weapon_Name
216
local Weapon = IT("Model")
217
Weapon.Name = Weapon_Name
218
local Effects = IT("Folder", Weapon)
219
Effects.Name = "Effects"
220
local ANIMATOR = Humanoid.Animator
221
local ANIMATE = Character.Animate
222
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
223
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
224
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
225
local HITBLOCKSOUNDS = {"199148933", "199148947"}
226
local UNANCHOR = true
227
228
--//=================================\\
229
--\\=================================//
230
231
232
233
234
--//=================================\\
235
--|| 	     DEBUFFS / BUFFS
236
--\\=================================//
237
238
local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
239
DEFENSECHANGE1.Name = "ChangeDefense"
240
DEFENSECHANGE1.Value = 0
241
242
local MOVEMENTCHANGE1 = IT("NumberValue", nil)
243
MOVEMENTCHANGE1.Name = "ChangeMovement"
244
MOVEMENTCHANGE1.Value = 0
245
246
--//=================================\\
247
--\\=================================//
248
249
250
251
252
253
--//=================================\\
254
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
255
--\\=================================//
256
257
ArtificialHB = Instance.new("BindableEvent", script)
258
ArtificialHB.Name = "ArtificialHB"
259
260
script:WaitForChild("ArtificialHB")
261
262
frame = Frame_Speed
263
tf = 0
264
allowframeloss = false
265
tossremainder = false
266
lastframe = tick()
267
script.ArtificialHB:Fire()
268
269
game:GetService("RunService").Heartbeat:connect(function(s, p)
270
	tf = tf + s
271
	if tf >= frame then
272
		if allowframeloss then
273
			script.ArtificialHB:Fire()
274
			lastframe = tick()
275
		else
276
			for i = 1, math.floor(tf / frame) do
277
				script.ArtificialHB:Fire()
278
			end
279
		lastframe = tick()
280
		end
281
		if tossremainder then
282
			tf = 0
283
		else
284
			tf = tf - frame * math.floor(tf / frame)
285
		end
286
	end
287
end)
288
289
--//=================================\\
290
--\\=================================//
291
292
293
294
295
296
--//=================================\\
297
--|| 	      SOME FUNCTIONS
298
--\\=================================//
299
300
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
301
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
302
end
303
304
function PositiveAngle(NUMBER)
305
	if NUMBER >= 0 then
306
		NUMBER = 0
307
	end
308
	return NUMBER
309
end
310
311
function NegativeAngle(NUMBER)
312
	if NUMBER <= 0 then
313
		NUMBER = 0
314
	end
315
	return NUMBER
316
end
317
318
function Swait(NUMBER)
319
	if NUMBER == 0 or NUMBER == nil then
320
		ArtificialHB.Event:wait()
321
	else
322
		for i = 1, NUMBER do
323
			ArtificialHB.Event:wait()
324
		end
325
	end
326
end
327
328
function QuaternionFromCFrame(cf)
329
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
330
	local trace = m00 + m11 + m22
331
	if trace > 0 then 
332
		local s = math.sqrt(1 + trace)
333
		local recip = 0.5 / s
334
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
335
	else
336
		local i = 0
337
		if m11 > m00 then
338
			i = 1
339
		end
340
		if m22 > (i == 0 and m00 or m11) then
341
			i = 2
342
		end
343
		if i == 0 then
344
			local s = math.sqrt(m00 - m11 - m22 + 1)
345
			local recip = 0.5 / s
346
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
347
		elseif i == 1 then
348
			local s = math.sqrt(m11 - m22 - m00 + 1)
349
			local recip = 0.5 / s
350
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
351
		elseif i == 2 then
352
			local s = math.sqrt(m22 - m00 - m11 + 1)
353
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
354
		end
355
	end
356
end
357
 
358
function QuaternionToCFrame(px, py, pz, x, y, z, w)
359
	local xs, ys, zs = x + x, y + y, z + z
360
	local wx, wy, wz = w * xs, w * ys, w * zs
361
	local xx = x * xs
362
	local xy = x * ys
363
	local xz = x * zs
364
	local yy = y * ys
365
	local yz = y * zs
366
	local zz = z * zs
367
	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))
368
end
369
 
370
function QuaternionSlerp(a, b, t)
371
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
372
	local startInterp, finishInterp;
373
	if cosTheta >= 0.0001 then
374
		if (1 - cosTheta) > 0.0001 then
375
			local theta = ACOS(cosTheta)
376
			local invSinTheta = 1 / SIN(theta)
377
			startInterp = SIN((1 - t) * theta) * invSinTheta
378
			finishInterp = SIN(t * theta) * invSinTheta
379
		else
380
			startInterp = 1 - t
381
			finishInterp = t
382
		end
383
	else
384
		if (1 + cosTheta) > 0.0001 then
385
			local theta = ACOS(-cosTheta)
386
			local invSinTheta = 1 / SIN(theta)
387
			startInterp = SIN((t - 1) * theta) * invSinTheta
388
			finishInterp = SIN(t * theta) * invSinTheta
389
		else
390
			startInterp = t - 1
391
			finishInterp = t
392
		end
393
	end
394
	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
395
end
396
397
function Clerp(a, b, t)
398
	local qa = {QuaternionFromCFrame(a)}
399
	local qb = {QuaternionFromCFrame(b)}
400
	local ax, ay, az = a.x, a.y, a.z
401
	local bx, by, bz = b.x, b.y, b.z
402
	local _t = 1 - t
403
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
404
end
405
406
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
407
	local frame = IT("Frame")
408
	frame.BackgroundTransparency = TRANSPARENCY
409
	frame.BorderSizePixel = BORDERSIZEPIXEL
410
	frame.Position = POSITION
411
	frame.Size = SIZE
412
	frame.BackgroundColor3 = COLOR
413
	frame.BorderColor3 = BORDERCOLOR
414
	frame.Name = NAME
415
	frame.Parent = PARENT
416
	return frame
417
end
418
419
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
420
	local label = IT("TextLabel")
421
	label.BackgroundTransparency = 1
422
	label.Size = UD2(1, 0, 1, 0)
423
	label.Position = UD2(0, 0, 0, 0)
424
	label.TextColor3 = C3(255, 255, 255)
425
	label.TextStrokeTransparency = STROKETRANSPARENCY
426
	label.TextTransparency = TRANSPARENCY
427
	label.FontSize = TEXTFONTSIZE
428
	label.Font = TEXTFONT
429
	label.BorderSizePixel = BORDERSIZEPIXEL
430
	label.TextScaled = true
431
	label.Text = TEXT
432
	label.Name = NAME
433
	label.Parent = PARENT
434
	return label
435
end
436
437
function NoOutlines(PART)
438
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
439
end
440
441
442
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
443
	local NEWWELD = IT(TYPE)
444
	NEWWELD.Part0 = PART0
445
	NEWWELD.Part1 = PART1
446
	NEWWELD.C0 = C0
447
	NEWWELD.C1 = C1
448
	NEWWELD.Parent = PARENT
449
	return NEWWELD
450
end
451
452
function CreateSound(ID, PARENT, VOLUME, PITCH)
453
	coroutine.resume(coroutine.create(function()
454
		local NEWSOUND = IT("Sound", PARENT)
455
		NEWSOUND.Volume = VOLUME
456
		NEWSOUND.Pitch = PITCH
457
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
458
		Swait()
459
		NEWSOUND:play()
460
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
461
	end))
462
end
463
464
function CFrameFromTopBack(at, top, back)
465
	local right = top:Cross(back)
466
	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)
467
end
468
469
function Lightning(POSITION1, POSITION2, MULTIPLIERTIME, LIGHTNINGDELAY, OFFSET, BRICKCOLOR, MATERIAL, SIZE, TRANSPARENCY, LASTINGTIME)
470
	local MAGNITUDE = (POSITION1 - POSITION2).magnitude 
471
	local CURRENTPOSITION = POSITION1
472
	local LIGHTNINGOFFSET = {-OFFSET, OFFSET}
473
	coroutine.resume(coroutine.create(function()
474
		for i = 1, MULTIPLIERTIME do 
475
			local LIGHTNINGPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR,"Effect", VT(SIZE * Player_Size, SIZE * Player_Size, MAGNITUDE / MULTIPLIERTIME))
476
			LIGHTNINGPART.Anchored = true
477
			local LIGHTNINGOFFSET2 = VT(LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)]) 
478
			local LIGHTNINGPOSITION1 = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME).p + LIGHTNINGOFFSET2
479
			if MULTIPLIERTIME == i then 
480
				local LIGHTNINGMAGNITUDE1 = (CURRENTPOSITION - POSITION2).magnitude
481
				LIGHTNINGPART.Size = VT(SIZE * Player_Size, SIZE * Player_Size, LIGHTNINGMAGNITUDE1)
482
				LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, -LIGHTNINGMAGNITUDE1 / 2)
483
			else
484
				LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, LIGHTNINGPOSITION1) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2)
485
			end
486
			CURRENTPOSITION=LIGHTNINGPART.CFrame * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2).p
487
			game.Debris:AddItem(LIGHTNINGPART, LASTINGTIME)
488
			coroutine.resume(coroutine.create(function()
489
				while LIGHTNINGPART.Transparency ~= 1 do
490
					--local StartTransparency = tra
491
					for i=0, 1, LASTINGTIME do
492
						Swait()
493
						LIGHTNINGPART.Transparency = LIGHTNINGPART.Transparency + (0.1 / LASTINGTIME)
494
					end
495
				end
496
			end))
497
		Swait(LIGHTNINGDELAY / Animation_Speed)
498
		end
499
	end))
500
end
501
502
function MagicBlock(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
503
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
504
	EFFECTPART.Anchored = true
505
	EFFECTPART.CFrame = CFRAME
506
	local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
507
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
508
	coroutine.resume(coroutine.create(function(PART, MESH)
509
		for i = 0, 1, delay do
510
			Swait()
511
			PART.CFrame = PART.CFrame * ROTATION
512
			PART.Transparency = i
513
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
514
		end
515
		PART.Parent = nil
516
	end), EFFECTPART, EFFECTMESH)
517
end
518
519
function MagicSphere(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
520
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
521
	EFFECTPART.Anchored = true
522
	EFFECTPART.CFrame = CFRAME
523
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Sphere", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
524
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
525
	coroutine.resume(coroutine.create(function(PART, MESH)
526
		for i = 0, 1, delay do
527
			Swait()
528
			PART.CFrame = PART.CFrame * ROTATION
529
			PART.Transparency = i
530
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
531
		end
532
		PART.Parent = nil
533
	end), EFFECTPART, EFFECTMESH)
534
end
535
536
function MagicCylinder(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
537
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
538
	EFFECTPART.Anchored = true
539
	EFFECTPART.CFrame = CFRAME
540
	local EFFECTMESH = CreateMesh("CylinderMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
541
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
542
	coroutine.resume(coroutine.create(function(PART, MESH)
543
		for i = 0, 1, delay do
544
			Swait()
545
			PART.CFrame = PART.CFrame * ROTATION
546
			PART.Transparency = i
547
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
548
		end
549
		PART.Parent = nil
550
	end), EFFECTPART, EFFECTMESH)
551
end
552
553
function MagicHead(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
554
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
555
	EFFECTPART.Anchored = true
556
	EFFECTPART.CFrame = CFRAME
557
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Head", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
558
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
559
	coroutine.resume(coroutine.create(function(PART, MESH)
560
		for i = 0, 1, delay do
561
			Swait()
562
			PART.CFrame = PART.CFrame * ROTATION
563
			PART.Transparency = i
564
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
565
		end
566
		PART.Parent = nil
567
	end), EFFECTPART, EFFECTMESH)
568
end
569
570
function MagicRing(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
571
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
572
	EFFECTPART.Anchored = true
573
	EFFECTPART.CFrame = CFRAME
574
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "3270017", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
575
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
576
	coroutine.resume(coroutine.create(function(PART, MESH)
577
		for i = 0, 1, delay do
578
			Swait()
579
			PART.CFrame = PART.CFrame * ROTATION
580
			PART.Transparency = i
581
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
582
		end
583
		PART.Parent = nil
584
	end), EFFECTPART, EFFECTMESH)
585
end
586
587
function MagicWave(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
588
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
589
	EFFECTPART.Anchored = true
590
	EFFECTPART.CFrame = CFRAME
591
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "20329976", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), VT(0, 0, (-0.1 * Z1)) + (OFFSET * Player_Size))
592
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
593
	coroutine.resume(coroutine.create(function(PART, MESH)
594
		for i = 0, 1, delay do
595
			Swait()
596
			PART.CFrame = PART.CFrame * ROTATION
597
			PART.Transparency = i
598
			MESH.Offset = VT(0, 0, (-0.1 * MESH.Scale.Z))
599
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
600
		end
601
		PART.Parent = nil
602
	end), EFFECTPART, EFFECTMESH)
603
end
604
605
function MagicCrystal(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
606
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
607
	EFFECTPART.Anchored = true
608
	EFFECTPART.CFrame = CFRAME
609
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "9756362", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
610
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
611
	coroutine.resume(coroutine.create(function(PART, MESH)
612
		for i = 0, 1, delay do
613
			Swait()
614
			PART.CFrame = PART.CFrame * ROTATION
615
			PART.Transparency = i
616
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
617
		end
618
		PART.Parent = nil
619
	end), EFFECTPART, EFFECTMESH)
620
end
621
622
function MagicSwirl(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
623
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
624
	EFFECTPART.Anchored = true
625
	EFFECTPART.CFrame = CFRAME
626
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1051557", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
627
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
628
	coroutine.resume(coroutine.create(function(PART, MESH)
629
		for i = 0, 1, delay do
630
			Swait()
631
			PART.CFrame = PART.CFrame * ROTATION
632
			PART.Transparency = i
633
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
634
		end
635
		PART.Parent = nil
636
	end), EFFECTPART, EFFECTMESH)
637
end
638
639
function MagicSharpCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
640
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
641
	EFFECTPART.Anchored = true
642
	EFFECTPART.CFrame = CFRAME
643
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1778999", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
644
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
645
	coroutine.resume(coroutine.create(function(PART, MESH)
646
		for i = 0, 1, delay do
647
			Swait()
648
			PART.CFrame = PART.CFrame * ROTATION
649
			PART.Transparency = i
650
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
651
		end
652
		PART.Parent = nil
653
	end), EFFECTPART, EFFECTMESH)
654
end
655
656
function MagicFlatCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
657
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
658
	EFFECTPART.Anchored = true
659
	EFFECTPART.CFrame = CFRAME
660
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1033714", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
661
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
662
	coroutine.resume(coroutine.create(function(PART, MESH)
663
		for i = 0, 1, delay do
664
			Swait()
665
			PART.CFrame = PART.CFrame * ROTATION
666
			PART.Transparency = i
667
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
668
		end
669
		PART.Parent = nil
670
	end), EFFECTPART, EFFECTMESH)
671
end
672
673
function MagicSpikedCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
674
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
675
	EFFECTPART.Anchored = true
676
	EFFECTPART.CFrame = CFRAME
677
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1323306", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
678
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
679
	coroutine.resume(coroutine.create(function(PART, MESH)
680
		for i = 0, 1, delay do
681
			Swait()
682
			PART.CFrame = PART.CFrame * ROTATION
683
			PART.Transparency = i
684
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
685
		end
686
		PART.Parent = nil
687
	end), EFFECTPART, EFFECTMESH)
688
end
689
690
function MagicFlatCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
691
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
692
	EFFECTPART.Anchored = true
693
	EFFECTPART.CFrame = CFRAME
694
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1078075", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
695
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
696
	coroutine.resume(coroutine.create(function(PART, MESH)
697
		for i = 0, 1, delay do
698
			Swait()
699
			PART.CFrame = PART.CFrame * ROTATION
700
			PART.Transparency = i
701
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
702
		end
703
		PART.Parent = nil
704
	end), EFFECTPART, EFFECTMESH)
705
end
706
707
function MagicSkull(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
708
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
709
	EFFECTPART.Anchored = true
710
	EFFECTPART.CFrame = CFRAME
711
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
712
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
713
	coroutine.resume(coroutine.create(function(PART, MESH)
714
		for i = 0, 1, delay do
715
			Swait()
716
			PART.CFrame = PART.CFrame * ROTATION
717
			PART.Transparency = i
718
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
719
		end
720
		PART.Parent = nil
721
	end), EFFECTPART, EFFECTMESH)
722
end
723
724
function ElectricEffect(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X, Y, Z, delay)
725
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
726
	EFFECTPART.Anchored = true
727
	EFFECTPART.CFrame = CFRAME
728
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X * Player_Size, Y * Player_Size, Z * Player_Size), OFFSET * Player_Size)
729
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
730
	local XVALUE = MRANDOM()
731
	local YVALUE = MRANDOM()
732
	local ZVALUE = MRANDOM()
733
	coroutine.resume(coroutine.create(function(PART, MESH, THEXVALUE, THEYVALUE, THEZVALUE)
734
		for i = 0, 1, delay do
735
			Swait()
736
			PART.CFrame = PART.CFrame * ROTATION
737
			PART.Transparency = i
738
			THEXVALUE = THEXVALUE - 0.1 * (delay * 10)
739
			THEYVALUE = THEYVALUE - 0.1 * (delay * 10)
740
			THEZVALUE = THEZVALUE - 0.1 * (delay * 10)
741
			MESH.Scale = MESH.Scale + VT(THEXVALUE * Player_Size, THEYVALUE * Player_Size, THEZVALUE * Player_Size)
742
		end
743
		PART.Parent = nil
744
	end), EFFECTPART, EFFECTMESH, XVALUE, YVALUE, ZVALUE)
745
end
746
747
function TrailEffect(BRICKCOLOR, MATERIAL, CURRENTCFRAME, OLDCFRAME, MESHTYPE, REFLECTANCE, SIZE, ROTATION, X, Y, Z, delay)
748
	local MAGNITUDECFRAME = (CURRENTCFRAME.p - OLDCFRAME.p).magnitude
749
	if MAGNITUDECFRAME > (1 / 100) then
750
		local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT(1, MAGNITUDECFRAME, 1))
751
		EFFECTPART.Anchored = true
752
		EFFECTPART.CFrame = CF((CURRENTCFRAME.p + OLDCFRAME.p) / 2, OLDCFRAME.p) * ANGLES(RAD(90), 0, 0)
753
		local THEMESHTYPE = "BlockMesh"
754
		if MESHTYPE == "Cylinder" then
755
			THEMESHTYPE = "CylinderMesh"
756
		end
757
		local EFFECTMESH = CreateMesh(THEMESHTYPE, EFFECTPART, "", "", "", VT(0 + SIZE * Player_Size, 1, 0 + SIZE * Player_Size), VT(0, 0, 0))
758
		game:GetService("Debris"):AddItem(EFFECTPART, 10)
759
		coroutine.resume(coroutine.create(function(PART, MESH)
760
			for i = 0, 1, delay do
761
				Swait()
762
				PART.CFrame = PART.CFrame * ROTATION
763
				PART.Transparency = i
764
				MESH.Scale = MESH.Scale + VT(X * Player_Size, Y * Player_Size, Z * Player_Size)
765
			end
766
			PART.Parent = nil
767
		end), EFFECTPART, EFFECTMESH)
768
	end
769
end
770
771
function ClangEffect(BRICKCOLOR, MATERIAL, CFRAME, ANGLE, DURATION, SIZE, POWER, REFLECTANCE, X, Y, Z, delay)
772
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 1, BRICKCOLOR, "Effect", VT())
773
	EFFECTPART.Anchored = true
774
	EFFECTPART.CFrame = CFRAME
775
	local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(0, 0, 0), VT(0, 0, 0))
776
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
777
	local THELASTPOINT = CFRAME
778
	coroutine.resume(coroutine.create(function(PART)
779
		for i = 1, DURATION do
780
			Swait()
781
			PART.CFrame = PART.CFrame * ANGLES(RAD(ANGLE), 0, 0) * CF(0, POWER * Player_Size, 0)
782
			TrailEffect(BRICKCOLOR, MATERIAL, PART.CFrame, THELASTPOINT, "Cylinder", REFLECTANCE, SIZE * Player_Size, ANGLES(0, 0, 0), X * Player_Size, Y * Player_Size, Z * Player_Size, delay)
783
			THELASTPOINT = PART.CFrame
784
		end
785
		PART.Parent = nil
786
	end), EFFECTPART)
787
end
788
789
--local list={}
790
function Triangle(Color, Material, a, b, c, delay)
791
	local edge1 = (c - a):Dot((b - a).unit)
792
	local edge2 = (a - b):Dot((c - b).unit)
793
	local edge3 = (b - c):Dot((a - c).unit)
794
	if edge1 <= (b - a).magnitude and edge1 >= 0 then
795
		a, b, c=a, b, c
796
	elseif edge2 <= (c - b).magnitude and edge2 >= 0 then
797
		a, b, c=b, c, a
798
	elseif edge3 <= (a - c).magnitude and edge3 >= 0 then
799
		a, b, c=c, a, b
800
	else
801
		assert(false, "unreachable")
802
	end
803
	local len1 = (c - a):Dot((b - a).unit)
804
	local len2 = (b - a).magnitude - len1
805
	local width = (a + (b - a).unit * len1 - c).magnitude
806
	local maincf = CFrameFromTopBack(a, (b - a):Cross(c - b).unit, - (b - a).unit)
807
	if len1 > 1 / 100 then
808
		local sz = VT(0.2, width, len1)
809
		local w1 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
810
		local sp = CreateMesh("SpecialMesh", w1, "Wedge", "", "", VT(0, 1, 1) * sz / w1.Size, VT(0, 0, 0))
811
		w1.Anchored = true
812
		w1.CFrame = maincf * ANGLES(math.pi, 0, math.pi / 2) * CF(0, width / 2, len1 / 2)
813
		coroutine.resume(coroutine.create(function()
814
			for i = 0.5, 1, delay * (2 / Animation_Speed) do
815
				Swait()
816
				w1.Transparency = i
817
			end
818
			w1.Parent = nil
819
		end))
820
		game:GetService("Debris"):AddItem(w1, 10)
821
		--table.insert(list, w1)
822
	end
823
	if len2 > 1 / 100 then
824
		local sz = VT(0.2, width, len2)
825
		local w2 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
826
		local sp = CreateMesh("SpecialMesh", w2, "Wedge", "", "", VT(0, 1, 1) * sz / w2.Size, VT(0, 0, 0))
827
		w2.Anchored = true
828
		w2.CFrame = maincf * ANGLES(math.pi, math.pi, -math.pi / 2) * CF(0, width / 2, -len1 - len2 / 2)
829
		coroutine.resume(coroutine.create(function()
830
			for i = 0.5, 1, delay * (2 / Animation_Speed) do
831
				Swait()
832
				w2.Transparency = i
833
			end
834
			w2.Parent = nil
835
		end))
836
		game:GetService("Debris"):AddItem(w2, 10)
837
		--table.insert(list, w2)
838
	end
839
	--return unpack(list)
840
end
841
842
--[[Usage:
843
	local Pos = Part
844
	local Offset = Part.CFrame * CF(0, 0, 0)
845
	local Color = "Institutional white"
846
	local Material = "Neon"
847
	local TheDelay = 0.01
848
	local Height = 4
849
	BLCF = Offset
850
	if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
851
		local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
852
		if a then game:GetService("Debris"):AddItem(a, 1) end
853
		if b then game:GetService("Debris"):AddItem(b, 1) end
854
		local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
855
		if a then game:GetService("Debris"):AddItem(a, 1) end
856
		if b then game:GetService("Debris"):AddItem(b, 1) end
857
		SCFR = BLCF
858
	elseif not SCFR then
859
		SCFR = BLCF
860
	end
861
--
862
BLCF = nil
863
SCFR = nil
864
--]]
865
866
--//=================================\\
867
--\\=================================//
868
869
870
871
872
--//=================================\\
873
--||	     WEAPON CREATION
874
--\\=================================//
875
876
local part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Handle", VT(1.05*Player_Size,2.05*Player_Size,1.05*Player_Size))
877
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
878
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Handle", VT(1.07*Player_Size,1.07*Player_Size,1.07*Player_Size))
879
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
880
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Handle", VT(1.07*Player_Size,0.5*Player_Size,1.07*Player_Size))
881
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, 0.85 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
882
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Handle", VT(0.5*Player_Size,0.5*Player_Size,1.07*Player_Size))
883
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.4 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
884
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Handle", VT(0.7*Player_Size,0.5*Player_Size,1.07*Player_Size))
885
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(-0.2 * Player_Size, 0.25 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
886
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Handle", VT(0.5*Player_Size,1.5*Player_Size, 0.5*Player_Size))
887
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.35 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
888
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Handle", VT(0.5*Player_Size,1.5*Player_Size, 0.5*Player_Size))
889
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(-0.35 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
890
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Maroon", "Handle", VT(0.5*Player_Size,0.5*Player_Size, 1.2*Player_Size))
891
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(-0.2 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
892
893
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Handle", VT(0.2*Player_Size,0.2*Player_Size, 0.2*Player_Size))
894
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.4 * Player_Size, 0.12 * Player_Size, -0.75 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)), CF(0, 0, 0))
895
local mesh = IT("SpecialMesh",part)
896
mesh.MeshType = "FileMesh"
897
mesh.MeshId = "http://www.roblox.com/asset/?id=55821108"
898
899
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Handle", VT(0.2*Player_Size,0.2*Player_Size, 0.2*Player_Size))
900
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.4 * Player_Size, 0.12 * Player_Size, 0.75 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(0)), CF(0, 0, 0))
901
local mesh = IT("SpecialMesh",part)
902
mesh.MeshType = "FileMesh"
903
mesh.MeshId = "http://www.roblox.com/asset/?id=55820516"
904
905
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Really red", "Handle", VT(0.35*Player_Size,0.35*Player_Size, 1.25*Player_Size))
906
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(-0.2 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
907
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Maroon", "Handle", VT(0.5*Player_Size,0.5*Player_Size, 1.2*Player_Size))
908
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(-0.2 * Player_Size, -0.7 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
909
local part = CreatePart(3, Weapon, "Metal", 0, 0, "Maroon", "Handle", VT(1.1*Player_Size,0.2*Player_Size, 1.1*Player_Size))
910
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.7 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
911
local part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Handle", VT(1.15*Player_Size,0.05*Player_Size, 1.15*Player_Size))
912
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.7 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
913
local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Handle", VT(1*Player_Size,0.1*Player_Size,1*Player_Size))
914
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
915
local mesh = IT("CylinderMesh",part)
916
917
local beampart = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Handle", VT(0.6*Player_Size,0.1*Player_Size,0.6*Player_Size))
918
local weld = CreateWeldOrSnapOrMotor("Weld", beampart, RightArm, beampart, CF(0 * Player_Size, -1.02 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
919
local mesh = IT("CylinderMesh",beampart)
920
921
for _, c in pairs(Weapon:GetChildren()) do
922
	if c.ClassName == "Part" then
923
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
924
	end
925
end
926
927
Weapon.Parent = Character
928
929
Humanoid.Died:connect(function()
930
	ATTACK = true
931
end)
932
933
print(Class_Name.." loaded.")
934
935
--//=================================\\
936
--\\=================================//
937
938
939
940
941
942
--//=================================\\
943
--||	     DAMAGE FUNCTIONS
944
--\\=================================//
945
946
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
947
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
948
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
949
	local BODYGYRO = IT("BodyGyro", STATPART)
950
	local BODYPOSITION = IT("BodyPosition", STATPART)
951
	BODYPOSITION.P = 2000
952
	BODYPOSITION.D = 100
953
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
954
	if LABELTYPE == "Normal" then
955
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
956
	elseif LABELTYPE == "Debuff" then
957
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
958
	elseif LABELTYPE == "Interruption" then
959
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
960
	end
961
	game:GetService("Debris"):AddItem(STATPART ,5)
962
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
963
	BILLBOARDGUI.Adornee = STATPART
964
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
965
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
966
	BILLBOARDGUI.AlwaysOnTop = false
967
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
968
	TEXTLABEL.BackgroundTransparency = 1
969
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
970
	TEXTLABEL.Text = TEXT
971
	TEXTLABEL.Font = "SciFi"
972
	TEXTLABEL.FontSize="Size42"
973
	TEXTLABEL.TextColor3 = COLOR
974
	TEXTLABEL.TextStrokeTransparency = 1
975
	TEXTLABEL.TextScaled = true
976
	TEXTLABEL.TextWrapped = true
977
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
978
		wait(0.2)
979
		for i=1, 5 do
980
			wait()
981
			THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
982
		end
983
		wait(1.2)
984
		for i=1, 5 do
985
			wait()
986
			THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
987
			THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
988
			THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
989
		end
990
		THEPART.Parent = nil
991
	end),STATPART, BODYPOSITION, TEXTLABEL)
992
end
993
994
function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier)
995
	if hit.Parent ~= Character and hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then
996
		local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
997
		local dmg = math.random(min,max)
998
		if humanoid.Health > 0 then
999
			if beserk == true then
1000
				humanoid.Health = 0
1001
				humanoid.Parent:BreakJoints()
1002
				StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "BESERK/inf", C3(255/255, 0, 0))
1003
			else
1004
				CreateSound("260430060", hit, 1.2, MRANDOM(7, 12) / 10)
1005
				hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength
1006
				if math.random(1,100) < critrate+1 then
1007
					humanoid.Health = humanoid.Health - dmg*critmultiplier
1008
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1009
				else
1010
					humanoid.Health = humanoid.Health - dmg
1011
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(0, 0, 0))
1012
				end
1013
				local defence = Instance.new("BoolValue",hit.Parent)
1014
				defence.Name = ("HitBy"..Player.Name)
1015
				game:GetService("Debris"):AddItem(defence, 0.5)
1016
			end
1017
		end
1018
	end
1019
end
1020
1021
function AoEDamage(position,radius,min,max,maxstrength,beserk,critrate,critmultiplier,CanBeDodgedByJumping)
1022
	local dmg = (math.random(min,max)/5)
1023
	for i,v in ipairs(workspace:GetChildren()) do
1024
	local body = v:GetChildren()
1025
		for part = 1, #body do
1026
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1027
				if(body[part].Position - position).Magnitude < radius then
1028
					if v.ClassName == "Model" then
1029
						if v:FindFirstChild("Humanoid") and v:FindFirstChild("HitBy"..Player.Name) == nil then
1030
							if CanBeDodgedByJumping == true then
1031
								if v.Humanoid.Jump == false then
1032
									if math.random(1,100) < critrate+1 then
1033
										v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1034
										--StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1035
									else
1036
										v.Humanoid.Health = v.Humanoid.Health - dmg
1037
										--StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1038
									end
1039
									local defence = Instance.new("BoolValue",v.Parent)
1040
									defence.Name = ("HitBy"..Player.Name)
1041
									game:GetService("Debris"):AddItem(defence, 0.5)
1042
								end
1043
							else
1044
								if beserk == true then
1045
									v.Humanoid.Health = 0
1046
								end
1047
								if math.random(1,100) < critrate+1 then
1048
									v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1049
									--StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1050
								else
1051
									v.Humanoid.Health = v.Humanoid.Health - dmg
1052
									--StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1053
								end
1054
								local defence = Instance.new("BoolValue",v.Parent)
1055
								defence.Name = ("HitBy"..Player.Name)
1056
								game:GetService("Debris"):AddItem(defence, 0.5)
1057
							end
1058
						end
1059
					end
1060
					body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1061
				end
1062
			end
1063
		end
1064
		if v.ClassName == "Part" then
1065
			if v.Anchored == false and (v.Position - position).Magnitude < radius then
1066
				v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1067
			end
1068
		end
1069
	end
1070
end
1071
1072
--//=================================\\
1073
--||	ATTACK FUNCTIONS AND STUFF
1074
--\\=================================//
1075
1076
function turnto(position)
1077
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1078
end
1079
1080
function CastRay(StartPos, Vec, Length, Ignore)
1081
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
1082
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Vec * Length), Ignore)
1083
	return RayHit, RayPos
1084
end
1085
1086
function Shoot()
1087
	Rooted = true
1088
	ATTACK = true
1089
	for i=0, 1, 0.1 / Animation_Speed do
1090
		Swait()
1091
		turnto(Mouse.Hit.p)
1092
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(40)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed/5)
1093
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-40)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1094
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1095
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1096
		RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-1.25), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1097
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1098
	end
1099
	--local RayHit, RayPos = CastRay(beampart.Position,Mouse.Hit.p,100,Character)
1100
	MagicBlock("Really red", "Neon", beampart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, 1.5, 1.5, 1.5, 0.05)
1101
	CreateSound("379225925", beampart, 3, 1.1)
1102
	local laser = IT("Part",Effects)
1103
	laser.CanCollide = false
1104
	laser.Anchored = true
1105
	local distance = (beampart.Position - Mouse.Hit.p).magnitude
1106
	laser.Size          = Vector3.new(0.2, 0.2, distance)
1107
	laser.CFrame        = CFrame.new(beampart.Position,Mouse.Hit.p) * CFrame.new(0, 0, -distance/2)
1108
	laser.Material = "Neon"
1109
	laser.BrickColor = BRICKC("Really red")
1110
	table.insert(Effects2,{laser,"Disappear",0.05,2,2,2,2})
1111
	AoEDamage(Mouse.Hit.p,5,25,35,12,false,10,2)
1112
	MagicSphere("Really red", "Neon", CF(Mouse.Hit.p) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, 7.5, 7.5, 7.5, 0.05)
1113
	MagicBlock("Really red", "Neon", CF(Mouse.Hit.p) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, 7.5, 7.5, 7.5, 0.05)
1114
	for i=0, 0.25, 0.1 / Animation_Speed do
1115
		Swait()
1116
		turnto(Mouse.Hit.p)
1117
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(50)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1118
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-50)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1119
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(160), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1120
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1121
		RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-1.25), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1122
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-100), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1123
	end
1124
	ATTACK = false
1125
	Rooted = false
1126
end
1127
1128
function ChargeShot()
1129
	Rooted = true
1130
	ATTACK = true
1131
	for i=0, 1, 0.1 / Animation_Speed do
1132
		Swait()
1133
		turnto(Mouse.Hit.p)
1134
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(40)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed/5)
1135
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-40)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1136
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1137
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1138
		RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-1.25), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1139
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1140
	end
1141
	local SIZE = 1
1142
	repeat
1143
		turnto(Mouse.Hit.p)
1144
		MagicSphere("Really red", "Neon", beampart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, SIZE, SIZE, SIZE, 0.05)
1145
		Swait()
1146
		SIZE = SIZE + 0.01
1147
	until KEYHOLD == false
1148
	--local RayHit, RayPos = CastRay(beampart.Position,Mouse.Hit.p,100,Character)
1149
	MagicBlock("Really red", "Neon", beampart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, SIZE*1.5, SIZE*1.5, SIZE*1.5, 0.05)
1150
	CreateSound("379225925", beampart, 3, 1.1)
1151
	local laser = IT("Part",Effects)
1152
	laser.CanCollide = false
1153
	laser.Anchored = true
1154
	local distance = (beampart.Position - Mouse.Hit.p).magnitude
1155
	laser.Size          = Vector3.new(SIZE * 0.2, SIZE * 0.2, distance)
1156
	laser.CFrame        = CFrame.new(beampart.Position,Mouse.Hit.p) * CFrame.new(0, 0, -distance/2)
1157
	laser.Material = "Neon"
1158
	laser.BrickColor = BRICKC("Really red")
1159
	table.insert(Effects2,{laser,"Disappear",0.05,2,2,2,2})
1160
	AoEDamage(Mouse.Hit.p,SIZE * 5,SIZE*10,SIZE*15,SIZE*5,false,10,2)
1161
	MagicSphere("Really red", "Neon", CF(Mouse.Hit.p) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, SIZE * 7.5, SIZE * 7.5, SIZE * 7.5, 0.05)
1162
	MagicBlock("Really red", "Neon", CF(Mouse.Hit.p) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, SIZE * 7.5, SIZE * 7.5, SIZE * 7.5, 0.05)
1163
	for i=0, 0.25, 0.1 / Animation_Speed do
1164
		Swait()
1165
		turnto(Mouse.Hit.p)
1166
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(50)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1167
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-50)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1168
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(160), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1169
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1170
		RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-1.25), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1171
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-100), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1172
	end
1173
	Rooted = false
1174
	ATTACK = false
1175
end
1176
1177
function RayCast(Position, Direction, MaxDistance, IgnoreList)
1178
	return game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(Position, Direction.unit * (MaxDistance or 999.999)), IgnoreList) 
1179
end
1180
1181
function GroundUp()
1182
	local RayHit, RayPos = RayCast(Mouse.Hit.p, Vector3.new(0, -1, 0), (1), {Character})
1183
	local SpawnPosition = RayPos
1184
	if RayPos then
1185
		Rooted = true
1186
		ATTACK = true
1187
	    CreateSound("588697034", RightArm, 2, 0.8)
1188
		for i=0, 1, 0.1 / Animation_Speed/6 do
1189
			Swait()
1190
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(0)), 0.2 / Animation_Speed/8)
1191
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1192
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 1 * Player_Size, 1 * Player_Size) * ANGLES(RAD(30), RAD(-690), RAD(2 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed/8)
1193
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed/8)
1194
			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/8)
1195
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.3 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(5), RAD(0)) * ANGLES(RAD(45), RAD(0), RAD(10)), 0.2 / Animation_Speed/8)
1196
		end
1197
		for i=0, 1, 0.1 / Animation_Speed*2 do
1198
			Swait()
1199
	        RootPart.Anchored = true
1200
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(0)), 0.2 / Animation_Speed*3)
1201
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1202
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 1 * Player_Size, -1.4 * Player_Size) * ANGLES(RAD(30), RAD(-690), RAD(2 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed*5)
1203
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1204
			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)
1205
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.3 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(5), RAD(0)) * ANGLES(RAD(45), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1206
		end
1207
		CreateSound("186772924", beampart, 5, 1)
1208
		local floor = IT("Part",Effects)
1209
		floor.Anchored = true
1210
		floor.Size = VT(15,0.2,15)
1211
		floor.Material = "Neon"
1212
		floor.BrickColor = BRICKC("Really red")
1213
		floor.CanCollide = false
1214
		local cyl = Instance.new("CylinderMesh",floor)
1215
		floor.CFrame = CF(beampart.Position.X,beampart.Position.Y-0.2,beampart.Position.Z)
1216
		AoEDamage(floor.Position,25,10,25,15,false,10,5,true)
1217
		local scale = 25
1218
		table.insert(Effects2,{floor,"Block1",0.05,1,0,1,2})
1219
		coroutine.resume(coroutine.create(function()
1220
			repeat
1221
				Swait()
1222
				scale = scale + 5
1223
				AoEDamage(floor.Position,scale,1,2,5,false,10,5,true)
1224
			until floor.Parent == nil
1225
		end))
1226
	end
1227
	ATTACK = false
1228
	Rooted = false
1229
end
1230
1231
function fromabove()
1232
	Rooted = true
1233
	ATTACK = true
1234
	for i=0, 1, 0.1 / Animation_Speed do
1235
		Swait()
1236
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-20)), 0.15 / Animation_Speed/5)
1237
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 0.15 / Animation_Speed)
1238
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1239
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1240
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-2.5)), 0.15 / Animation_Speed)
1241
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-15)), 0.15 / Animation_Speed)
1242
	end
1243
	CreateSound("132392101", Head, 10, 1.1)
1244
	Swait(175)
1245
	for i=0, 1, 0.1 / Animation_Speed do
1246
		Swait()
1247
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(40)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1248
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-40)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1249
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(180), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1250
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1 * Player_Size, 0.2 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(25), RAD(25), RAD(90)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
1251
		RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-1.25), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1252
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1253
	end
1254
	local SIZE = 1
1255
	for i = 1, 70 do
1256
		MagicSphere("Really red", "Neon", beampart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, SIZE, SIZE, SIZE, 0.05)
1257
		Swait()
1258
		SIZE = SIZE + 0.06
1259
	end
1260
	MagicBlock("Really red", "Neon", beampart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, 1.5, 1.5, 1.5, 0.05)
1261
	CreateSound("379225925", beampart, 3, 1.1)
1262
	local laser = IT("Part",Effects)
1263
	laser.CanCollide = false
1264
	laser.Anchored = true
1265
	local distance = (beampart.Position - VT(beampart.Position.X,beampart.Position.Y+1000,beampart.Position.Z)).magnitude
1266
	laser.Size          = Vector3.new(0.2, 0.2, distance)
1267
	laser.CFrame        = CFrame.new(beampart.Position,VT(beampart.Position.X,beampart.Position.Y+1000,beampart.Position.Z)) * CFrame.new(0, 0, -distance/2)
1268
	laser.Material = "Neon"
1269
	laser.BrickColor = BRICKC("Really red")
1270
	table.insert(Effects2,{laser,"Disappear",0.05,2,2,2,2})
1271
	ATTACK = false
1272
	Rooted = false
1273
	local pos = Mouse.Hit.p
1274
	Swait(10)
1275
	for i = 1, 85 do
1276
		coroutine.resume(coroutine.create(function()
1277
			Swait(math.random(1,100))
1278
			local pos = VT(pos.X+math.random(-15,15),pos.Y,pos.Z+math.random(-15,15))
1279
			local laser = IT("Part",Effects)
1280
			laser.CanCollide = false
1281
			laser.Anchored = true
1282
			local distance = (pos - VT(pos.X,pos.Y+1000,pos.Z)).magnitude
1283
			laser.Size          = Vector3.new(0.2, 0.2, distance)
1284
			laser.CFrame        = CFrame.new(pos,VT(pos.X,pos.Y+1000,pos.Z)) * CFrame.new(0, 0, -distance/2)
1285
			laser.Material = "Neon"
1286
			laser.BrickColor = BRICKC("Really red")
1287
			MagicSphere("Really red", "Neon", CF(pos) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, 7.5, 7.5, 7.5, 0.05)
1288
			MagicBlock("Really red", "Neon", CF(pos) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), 0.25, 0.25, 0.25, 7.5, 7.5, 7.5, 0.05)
1289
			table.insert(Effects2,{laser,"Disappear",0.05,2,2,2,2})
1290
			AoEDamage(pos,5,15,25,12,false,10,2)
1291
		end))
1292
	end
1293
end
1294
1295
--//=================================\\
1296
--||	  ASSIGN THINGS TO KEYS
1297
--\\=================================//
1298
1299
Humanoid.Changed:connect(function(Jump)
1300
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
1301
		Humanoid.Jump = false
1302
	end
1303
end)
1304
1305
function MouseDown(Mouse)
1306
	if ATTACK == false then
1307
		--HOLD = true
1308
		Shoot()
1309
	end
1310
end
1311
1312
function MouseUp(Mouse)
1313
HOLD = false
1314
end
1315
1316
function KeyDown(Key)
1317
	KEYHOLD = true
1318
	if Key == "e" and ATTACK == false then
1319
		ChargeShot()
1320
	end
1321
	if Key == "g" and ATTACK == false then
1322
		GroundUp()
1323
	end
1324
	if Key == "p" then
1325
		if SPRINTING == false then
1326
			SPRINTING = true
1327
		elseif SPRINTING == true then
1328
			SPRINTING = false
1329
		end
1330
	end
1331
	if Key == "x" and ATTACK == false then
1332
		fromabove()
1333
	end
1334
	if Key == "t" and ATTACK == false then
1335
		CreateSound("132392118", Head, 10, 1.1)
1336
	end
1337
end
1338
1339
function KeyUp(Key)
1340
KEYHOLD = false
1341
end
1342
1343
	Mouse.Button1Down:connect(function(NEWKEY)
1344
		MouseDown(NEWKEY)
1345
	end)
1346
	Mouse.Button1Up:connect(function(NEWKEY)
1347
		MouseUp(NEWKEY)
1348
	end)
1349
	Mouse.KeyDown:connect(function(NEWKEY)
1350
		KeyDown(NEWKEY)
1351
	end)
1352
	Mouse.KeyUp:connect(function(NEWKEY)
1353
		KeyUp(NEWKEY)
1354
	end)
1355
1356
--//=================================\\
1357
--\\=================================//
1358
1359
1360
function unanchor()
1361
	if UNANCHOR == true then
1362
		g = Character:GetChildren()
1363
		for i = 1, #g do
1364
			if g[i].ClassName == "Part" then
1365
				g[i].Anchored = false
1366
			end
1367
		end
1368
	end
1369
end
1370
1371
1372
--//=================================\\
1373
--||	WRAP THE WHOLE SCRIPT UP
1374
--\\=================================//
1375
1376
Humanoid.Changed:connect(function(Jump)
1377
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
1378
		Humanoid.Jump = false
1379
	end
1380
end)
1381
1382
		Rooted = true
1383
		ANIMATE.Parent = nil
1384
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1385
		IDLEANIMATION:Play()
1386
		Swait(15)
1387
		Rooted = false
1388
1389
while true do
1390
	Swait()
1391
	SINE = SINE + CHANGE
1392
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1393
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1394
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
1395
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
1396
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1397
		if ANIM == "Walk" and TORSOVELOCITY > 1 then
1398
			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)
1399
			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)
1400
			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)
1401
			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)
1402
		elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1403
			RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1404
			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)
1405
			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)
1406
			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)
1407
		end
1408
		if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1409
			ANIM = "Jump"
1410
			if ATTACK == false then
1411
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1412
				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)
1413
				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)
1414
				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)
1415
				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)
1416
				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)
1417
	        end
1418
		elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1419
			ANIM = "Fall"
1420
			if ATTACK == false then
1421
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1422
				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)
1423
				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)
1424
				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)
1425
				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)
1426
				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)
1427
			end
1428
		elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1429
			ANIM = "Idle"
1430
			if ATTACK == false then
1431
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-20)), 0.15 / Animation_Speed)
1432
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 0.15 / Animation_Speed)
1433
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1434
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1435
				RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-2.5)), 0.15 / Animation_Speed)
1436
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-15)), 0.15 / Animation_Speed)
1437
			end
1438
		elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1439
			ANIM = "Walk"
1440
			WALK = WALK + 1 / Animation_Speed
1441
			if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
1442
				WALK = 0
1443
				if WALKINGANIM == true then
1444
					WALKINGANIM = false
1445
				elseif WALKINGANIM == false then
1446
					WALKINGANIM = true
1447
				end
1448
			end
1449
			--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)
1450
			--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)
1451
			if ATTACK == false and SPRINTING == false then
1452
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * COS(SINE / WALKSPEEDVALUE) * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1453
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(40)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1454
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1455
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1456
				RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(130), RAD(0)) * ANGLES(RAD(-1.25 - 2.5 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1457
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-2.5 + 2.5 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1458
			elseif ATTACK == false and SPRINTING == true then
1459
				RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * COS(SINE / WALKSPEEDVALUE) * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(20), RAD(0), RAD(-40)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1460
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(40)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1461
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1462
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-30 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1463
				RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(130), RAD(0)) * ANGLES(RAD(-1.25 - 2.5 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1464
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-2.5 + 2.5 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1465
			end
1466
		end
1467
if #Effects2>0 then
1468
for e=1,#Effects2 do
1469
if Effects2[e]~=nil then
1470
local Thing=Effects2[e]
1471
if Thing~=nil then
1472
local Part=Thing[1]
1473
local Mode=Thing[2]
1474
local Delay=Thing[3]
1475
local IncX=Thing[4]
1476
local IncY=Thing[5]
1477
local IncZ=Thing[6]
1478
local Part2=Thing[8]
1479
if Thing[1].Transparency<=1 then
1480
if Thing[2]=="Block1" then
1481
Thing[1].CFrame=Thing[1].CFrame
1482
Mesh=Thing[1].Mesh
1483
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1484
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1485
elseif Thing[2]=="Cylinder" then
1486
Mesh=Thing[1].Mesh
1487
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1488
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1489
elseif Thing[2]=="Blood" then
1490
Mesh=Thing[7]
1491
Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
1492
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1493
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1494
elseif Thing[2]=="Elec" then
1495
Mesh=Thing[1].Mesh
1496
Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
1497
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1498
elseif Thing[2]=="Disappear" then
1499
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1500
end
1501
else
1502
Part.Parent=nil
1503
table.remove(Effects2,e)
1504
end
1505
end
1506
end
1507
end
1508
end
1509
unanchor()
1510
Humanoid.MaxHealth = "inf"
1511
Humanoid.Health = "inf"
1512
if Rooted == false then
1513
	Disable_Jump = false
1514
	Humanoid.WalkSpeed = Speed
1515
elseif Rooted == true then
1516
	Disable_Jump = true
1517
	Humanoid.WalkSpeed = 0
1518
end
1519
if SPRINTING == true then
1520
	Speed = 45
1521
	Humanoid.JumpPower = 100
1522
elseif SPRINTING == false then
1523
	Speed = 16
1524
	Humanoid.JumpPower = 50
1525
end
1526
end
1527
1528
--//=================================\\
1529
--\\=================================//
1530
1531
1532
1533
1534
1535
--//====================================================\\--
1536
--||			  		 END OF SCRIPT
1537
--\\====================================================//--