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