View difference between Paste ID: 75GNdqZ9 and JDhGabWy
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2-
Player = game.Players.LocalPlayer
2+
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3
do
4
	print("FE Compatibility code by Mokiros")
5
	script.Parent = Player.Character
6
7
	--RemoteEvent for communicating
8
	local Event = Instance.new("RemoteEvent")
9
	Event.Name = "UserInput_Event"
10
11
	--Fake event to make stuff like Mouse.KeyDown work
12
	local function fakeEvent()
13
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
14
		t.connect = t.Connect
15
		return t
16-
TorsA = Character.Torso 
16+
17
18
	--Creating fake input objects with fake variables
19
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
20
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
21
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
22
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
23-
LS = TorsA["Left Shoulder"] 
23+
	end}
24-
LH = TorsA["Left Hip"] 
24+
	--Merged 2 functions into one by checking amount of arguments
25-
RS = TorsA["Right Shoulder"] 
25+
	CAS.UnbindAction = CAS.BindAction
26-
RH = TorsA["Right Hip"] 
26+
27-
Neck = TorsA.Neck
27+
	--This function will trigger the events that have been :Connect()'ed
28
	local function te(self,ev,...)
29
		local t = m[ev]
30
		if t and t._fakeEvent and t.Function then
31
			t.Function(...)
32
		end
33
	end
34
	m.TrigEvent = te
35
	UIS.TrigEvent = te
36
37
	Event.OnServerEvent:Connect(function(plr,io)
38
	    if plr~=Player then return end
39
		if io.isMouse then
40
			m.Target = io.Target
41
			m.Hit = io.Hit
42
		else
43
			local b = io.UserInputState == Enum.UserInputState.Begin
44
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
45
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
46
			end
47
			for _,t in pairs(CAS.Actions) do
48
				for _,k in pairs(t.Keys) do
49
					if k==io.KeyCode then
50
						t.Function(t.Name,io.UserInputState,io)
51
					end
52
				end
53
			end
54
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
55-
mouse = Player:GetMouse()
55+
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
56
	    end
57
	end)
58
	Event.Parent = NLS([==[
59
	local Player = game:GetService("Players").LocalPlayer
60
	local Event = script:WaitForChild("UserInput_Event")
61
62
	local UIS = game:GetService("UserInputService")
63
	local input = function(io,a)
64
		if a then return end
65
		--Since InputObject is a client-side instance, we create and pass table instead
66
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
67
	end
68
	UIS.InputBegan:Connect(input)
69
	UIS.InputEnded:Connect(input)
70
71
	local Mouse = Player:GetMouse()
72
	local h,t
73
	--Give the server mouse data 30 times every second, but only if the values changed
74
	--If player is not moving their mouse, client won't fire events
75
	while wait(1/30) do
76
		if h~=Mouse.Hit or t~=Mouse.Target then
77
			h,t=Mouse.Hit,Mouse.Target
78
			Event:FireServer({isMouse=true,Target=t,Hit=h})
79
		end
80
	end]==],Player.Character)
81
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
82
end
83
Player = owner
84
Character = Player.Character 
85
PlayerGui = Player.PlayerGui
86
Backpack = Player.Backpack 
87
Torso = Character.HumanoidRootPart 
88
Head = Character.Head 
89
Humanoid = Character.Humanoid
90
LeftArm = Character["Left Arm"] 
91
LeftLeg = Character["Left Leg"] 
92
RightArm = Character["Right Arm"] 
93
RightLeg = Character["Right Leg"]
94
Character = Player.Character 
95
PlayerGui = Player.PlayerGui
96
Backpack = Player.Backpack 
97
Torso= = Character.Torso 
98
Head = Character.Head 
99
Humanoid = Character.Humanoid
100
LeftArm = Character["Left Arm"] 
101
LeftLeg = Character["Left Leg"] 
102
RightArm = Character["Right Arm"] 
103
RightLeg = Character["Right Leg"] 
104
LS = Torso["Left Shoulder"] 
105
LH = Torso["Left Hip"] 
106
RS = Torso["Right Shoulder"] 
107
RH = Torso["Right Hip"] 
108
Neck = Torso.Neck
109
attacktype = 1
110
vt = Vector3.new
111
cf = CFrame.new
112
euler = CFrame.fromEulerAnglesXYZ
113
angles = CFrame.Angles
114
necko = cf(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
115
necko2 = cf(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
116
LHC0 = cf(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
117
LHC1 = cf(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
118
RHC0 = cf(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
119
RHC1 = cf(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
120
RootPart = Character.HumanoidRootPart
121
RootJoint = RootPart.RootJoint
122
RootCF = euler(-1.57, 0, 3.14)
123
attack = false 
124
equipped = true
125
local Anim = "Idle"
126
local Effects = {}
127
cam = workspace.CurrentCamera
128
ZTarget = nil
129
RocketTarget = nil
130
local RbxUtility = LoadLibrary("RbxUtility")
131
local Create = RbxUtility.Create
132
local m = Create("Model"){
133
	Parent = Character,
134
	Name = "WeaponModel",
135
}
136
RSH, LSH = nil, nil 
137
LH = TorsA["Left Hip"]
138
RH = TorsA["Right Hip"]
139
RSH = TorsA["Right Shoulder"] 
140
LSH = TorsA["Left Shoulder"] 
141
 
142
RSH.Parent = nil 
143
LSH.Parent = nil 
144
145
RW = Create("Weld"){
146
	Name = "Right Shoulder",
147
	Part0 = Torso ,
148
	C0 = cf(1.5, 0.5, 0),
149
	C1 = cf(0, 0.5, 0), 
150
	Part1 = RightArm ,
151
	Parent = Torso ,
152
}
153
154
LW = Create("Weld"){
155
	Name = "Left Shoulder",
156
	Part0 = Torso ,
157
	C0 = cf(-1.5, 0.5, 0),
158
	C1 = cf(0, 0.5, 0) ,
159
	Part1 = LeftArm ,
160
	Parent = Torso ,
161
}
162
163
function NoOutline(Part)
164
	Part.TopSurface, Part.BottomSurface, Part.LeftSurface, Part.RightSurface, Part.FrontSurface, Part.BackSurface = 10, 10, 10, 10, 10, 10
165
end
166
function swait(num)
167
	if num == 0 or num == nil then
168
		game:service'RunService'.Heartbeat:wait(0)
169
	else
170
		for i = 0, num do
171
			game:service'RunService'.Heartbeat:wait(0)
172
		end
173
	end
174
end
175
	
176
function nooutline(part)
177
	part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10
178
end
179
	
180
function part(formfactor, parent, material, reflectance, transparency, brickcolor, name, size)
181
	local fp = Create("Part"){
182
		formFactor = formfactor,
183
		Parent = parent,
184
		Reflectance = reflectance,
185
		Transparency = transparency,
186
		CanCollide = false,
187
		Locked = true,
188
		BrickColor = BrickColor.new(tostring(brickcolor)),
189
		Name = name,
190
		Size = size,
191
		Position = Character.Torso.Position,
192
		Material = material,
193
	}
194
	nooutline(fp)
195
	return fp
196
end
197
	
198
function mesh(Mesh, part, meshtype, meshid, offset, scale)
199
	local Msh = Create(Mesh){
200
		Parent = part,
201
		Offset = offset,
202
		Scale = scale,
203
	}
204
	if Mesh == "SpecialMesh" then
205
		Msh.MeshType = meshtype
206
		Msh.MeshId = meshid
207
	end
208
	return Msh
209
end
210
	
211
function weld(parent, part0, part1, c0, c1)
212
	local Weld = Create("Weld"){
213
		Parent = parent,
214
		Part0 = part0,
215
		Part1 = part1,
216
		C0 = c0,
217
		C1 = c1,
218
	}
219
	return Weld
220
end
221
	
222
	
223
local function CFrameFromTopBack(at, top, back)
224
	local right = top:Cross(back)
225
	return CFrame.new(at.x, at.y, at.z,
226
right.x, top.x, back.x,
227
right.y, top.y, back.y,
228
right.z, top.z, back.z)
229
end
230
231
function Triangle(a, b, c)
232
	local edg1 = (c - a):Dot((b - a).unit)
233
	local edg2 = (a - b):Dot((c - b).unit)
234
	local edg3 = (b - c):Dot((a - c).unit)
235
	if edg1 <= (b - a).magnitude and edg1 >= 0 then
236
		a, b, c = a, b, c
237
	elseif edg2 <= (c - b).magnitude and edg2 >= 0 then
238
		a, b, c = b, c, a
239
	elseif edg3 <= (a - c).magnitude and edg3 >= 0 then
240
		a, b, c = c, a, b
241
	else
242
		assert(false, "unreachable")
243
	end
244
 
245
	local len1 = (c - a):Dot((b - a).unit)
246
	local len2 = (b - a).magnitude - len1
247
	local width = (a + (b - a).unit * len1 - c).magnitude
248
 
249
	local maincf = CFrameFromTopBack(a, (b - a):Cross(c - b).unit, -(b - a).unit)
250
 
251
	local list = {}
252
253
	local Color = BrickColor.new("Dark stone grey")
254
 
255
	if len1 > 0.01 then
256
		local w1 = Create('WedgePart', m){
257
			Material = "SmoothPlastic",
258
			FormFactor = 'Custom',
259
			BrickColor = Color,
260
			Transparency = 0,
261
			Reflectance = 0,
262
			Material = "SmoothPlastic",
263
			CanCollide = false,
264
			Anchored = true,
265
			Parent = workspace,
266
			Transparency = 0.3,
267
		}
268
		game:GetService("Debris"):AddItem(w1, 5)
269
		NoOutline(w1)
270
		local sz = Vector3.new(0.2, width, len1)
271
		w1.Size = sz
272
		local sp = Create("SpecialMesh"){
273
			Parent = w1,
274
			MeshType = "Wedge",
275
			Scale = Vector3.new(0, 1, 1) * sz / w1.Size,
276
		}
277
		w1:BreakJoints()
278
		table.insert(Effects, {
279
			w1,
280
			"Disappear",
281
			.03
282
		})
283
		w1.CFrame = maincf * CFrame.Angles(math.pi, 0, math.pi / 2) * CFrame.new(0, width / 2, len1 / 2)
284
		table.insert(list, w1)
285
	end
286
	if len2 > 0.01 then
287
		local w2 = Create('WedgePart', m){
288
			Material = "SmoothPlastic",
289
			FormFactor = 'Custom',
290
			BrickColor = Color,
291
			Transparency = 0,
292
			Reflectance = 0,
293
			Material = "SmoothPlastic",
294
			CanCollide = false,
295
			Anchored = true,
296
			Parent = workspace,
297
			Transparency = 0.3,
298
		}
299
		game:GetService("Debris"):AddItem(w2, 5)
300
		NoOutline(w2)
301
		local sz = Vector3.new(0.2, width, len2)
302
		w2.Size = sz
303
		local sp = Create("SpecialMesh"){
304
			Parent = w2,
305
			MeshType = "Wedge",
306
			Scale = Vector3.new(0, 1, 1) * sz / w2.Size,
307
		}
308
		w2:BreakJoints()
309
		table.insert(Effects, {
310
			w2,
311
			"Disappear",
312
			.03
313
		})
314
		w2.CFrame = maincf * CFrame.Angles(math.pi, math.pi, -math.pi / 2) * CFrame.new(0, width / 2, -len1 - len2 / 2)
315
		table.insert(list, w2)
316
	end
317
	return unpack(list)
318
end
319
		
320
function so(id, par, vol, pit) 
321
	coroutine.resume(coroutine.create(function()
322
		local sou = Instance.new("Sound", par or workspace)
323
		sou.Volume = vol
324
		sou.Pitch = pit or 1
325
		sou.SoundId = Sounds[id].Id or id
326
		swait() 
327
		sou:play() 
328
		swait(6) 
329
		sou:Remove() 
330
	end))
331
end
332
 
333
function clerp(a, b, t) 
334
	local qa = {
335
		QuaternionFromCFrame(a)
336
	}
337
	local qb = {
338
		QuaternionFromCFrame(b)
339
	} 
340
	local ax, ay, az = a.x, a.y, a.z 
341
	local bx, by, bz = b.x, b.y, b.z
342
	local _t = 1 - t
343
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t)) 
344
end 
345
 
346
function QuaternionFromCFrame(cf) 
347
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() 
348
	local trace = m00 + m11 + m22 
349
	if trace > 0 then 
350
		local s = math.sqrt(1 + trace) 
351
		local recip = 0.5 / s 
352
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 
353
	else 
354
		local i = 0 
355
		if m11 > m00 then
356
			i = 1
357
		end
358
		if m22 > (i == 0 and m00 or m11) then 
359
			i = 2 
360
		end 
361
		if i == 0 then 
362
			local s = math.sqrt(m00 - m11 - m22 + 1) 
363
			local recip = 0.5 / s 
364
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip 
365
		elseif i == 1 then 
366
			local s = math.sqrt(m11 - m22 - m00 + 1) 
367
			local recip = 0.5 / s 
368
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip 
369
		elseif i == 2 then 
370
			local s = math.sqrt(m22 - m00 - m11 + 1) 
371
			local recip = 0.5 / s
372
			return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip 
373
		end 
374
	end 
375
end
376
 
377
function QuaternionToCFrame(px, py, pz, x, y, z, w) 
378
	local xs, ys, zs = x + x, y + y, z + z 
379
	local wx, wy, wz = w * xs, w * ys, w * zs 
380
	local xx = x * xs 
381
	local xy = x * ys 
382
	local xz = x * zs 
383
	local yy = y * ys 
384
	local yz = y * zs 
385
	local zz = z * zs 
386
	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)) 
387
end
388
 
389
function QuaternionSlerp(a, b, t) 
390
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] 
391
	local startInterp, finishInterp; 
392
	if cosTheta >= 0.0001 then 
393
		if (1 - cosTheta) > 0.0001 then 
394
			local theta = math.acos(cosTheta) 
395
			local invSinTheta = 1 / math.sin(theta) 
396
			startInterp = math.sin((1 - t) * theta) * invSinTheta 
397
			finishInterp = math.sin(t * theta) * invSinTheta  
398
		else 
399
			startInterp = 1 - t 
400
			finishInterp = t 
401
		end 
402
	else 
403
		if (1 + cosTheta) > 0.0001 then 
404
			local theta = math.acos(-cosTheta) 
405
			local invSinTheta = 1 / math.sin(theta) 
406
			startInterp = math.sin((t - 1) * theta) * invSinTheta 
407
			finishInterp = math.sin(t * theta) * invSinTheta 
408
		else 
409
			startInterp = t - 1 
410
			finishInterp = t 
411
		end 
412
	end 
413
	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 
414
end
415
416
function rayCast(Pos, Dir, Max, Ignore)
417
	return game:service("Workspace"):FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999.999)), Ignore) 
418
end 
419
420
Asset = "http://www.roblox.com/asset/?id="
421
422
Sounds = {
423
	Hit1 = {
424
		Id = Asset..(199149137)
425
	},
426
	Hit2 = {
427
		Id = Asset..(199149186)
428
	},
429
	Hit3 = {
430
		Id = Asset..(199149221)
431
	},
432
	Hit4 = {
433
		Id = Asset..(199149235)
434
	},
435
	Slash1 = {
436
		Id = Asset..(161006195)
437
	},
438
	Slash2 = {
439
		Id = Asset..(161006212)
440
	},
441
	Fire = {
442
		Id = Asset..(168413145)
443
	},
444
	Beam = {
445
		Id = Asset..(278596476)
446
	},
447
	Appear = {
448
		Id = Asset..(200633077)
449
	},
450
	Disappear = {
451
		Id = Asset..(200633029)
452
	},
453
}
454
 
455
ContentProvider = game:GetService("ContentProvider")
456
for _, v in pairs(Sounds) do
457
	ContentProvider:Preload(v.Id)
458
end
459
460
461
462
Damagefunc = function(Part, hit, minim, maxim, knockback, Type, Property, Delay, HitSound, HitPitch)
463
	if hit.Parent == nil then
464
		return
465
	end
466
	local h = hit.Parent:FindFirstChild("Humanoid")
467
	for _, v in pairs(hit.Parent:children()) do
468
		if v:IsA("Humanoid") then
469
			h = v
470
		end
471
	end
472
	if h ~= nil and hit.Parent.Name ~= Character.Name and hit.Parent:FindFirstChild("Torso") ~= nil then
473
		if hit.Parent:findFirstChild("DebounceHit") ~= nil then
474
			if hit.Parent.DebounceHit.Value == true then
475
				return
476
			end
477
		end
478
		if h.MaxHealth >= math.huge then
479
			hit:BreakJoints()
480
		end
481
        --[[                if game.Players:GetPlayerFromCharacter(hit.Parent)~=nil then
482
                        return
483
                end]]
484
--                        hs(hit,1.2) 
485
		local c = Create("ObjectValue"){
486
			Name = "creator",
487
			Value = game:service("Players").LocalPlayer,
488
			Parent = h,
489
		}
490
		game:GetService("Debris"):AddItem(c, .5)
491
		if HitSound ~= nil and HitPitch ~= nil then
492
			so(HitSound, hit, 1, HitPitch) 
493
		end
494
		local Damage = math.random(minim, maxim)
495
--                h:TakeDamage(Damage)
496
		local blocked = false
497
		local block = hit.Parent:findFirstChild("Block")
498
		if block ~= nil then
499
			if block.className == "IntValue" then
500
				if block.Value > 0 then
501
					blocked = true
502
					block.Value = block.Value - 1
503
					print(block.Value)
504
				end
505
			end
506
		end
507
		if blocked == false then
508
--                h:TakeDamage(Damage)
509
			h.Health = h.Health - Damage
510
			ShowDamage((Part.CFrame * CFrame.new(0, 0, (Part.Size.Z / 2)).p + Vector3.new(0, 1.5, 0)), -Damage, 1.5, Part.BrickColor.Color)
511
		else
512
			h.Health = h.Health - (Damage / 2)
513
			ShowDamage((Part.CFrame * CFrame.new(0, 0, (Part.Size.Z / 2)).p + Vector3.new(0, 1.5, 0)), -Damage, 1.5, Part.BrickColor.Color)
514
		end
515
		if Type == "Knockdown" then
516
			local hum = hit.Parent.Humanoid
517
			hum.PlatformStand = true
518
			coroutine.resume(coroutine.create(function(HHumanoid)
519
				swait(1)
520
				HHumanoid.PlatformStand = false
521
			end), hum)
522
			local angle = (hit.Position - (Property.Position + Vector3.new(0, 0, 0))).unit
523
			local bodvol = Create("BodyVelocity"){
524
				velocity = angle * knockback,
525
				P = 5000,
526
				maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
527
				Parent = hit,
528
			}
529
			local rl = Create("BodyAngularVelocity"){
530
				P = 3000,
531
				maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
532
				angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
533
				Parent = hit,
534
			}
535
			game:GetService("Debris"):AddItem(bodvol, .5)
536
			game:GetService("Debris"):AddItem(rl, .5)
537
		elseif Type == "Normal" then
538
			local vp = Create("BodyVelocity"){
539
				P = 500,
540
				maxForce = Vector3.new(math.huge, 0, math.huge),
541
				velocity = Property.CFrame.lookVector * knockback + Property.Velocity / 1.05,
542
			}
543
			if knockback > 0 then
544
				vp.Parent = hit.Parent.Torso
545
			end
546
			game:GetService("Debris"):AddItem(vp, .5)
547
		elseif Type == "Up" then
548
			local bodyVelocity = Create("BodyVelocity"){
549
				velocity = vt(0, 20, 0),
550
				P = 5000,
551
				maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
552
				Parent = hit,
553
			}
554
			game:GetService("Debris"):AddItem(bodyVelocity, .5)
555
		elseif Type == "Snare" then
556
			local bp = Create("BodyPosition"){
557
				P = 2000,
558
				D = 100,
559
				maxForce = Vector3.new(math.huge, math.huge, math.huge),
560
				position = hit.Parent.Torso.Position,
561
				Parent = hit.Parent.Torso,
562
			}
563
			game:GetService("Debris"):AddItem(bp, 1)
564
		elseif Type == "Freeze" then
565
			local BodPos = Create("BodyPosition"){
566
				P = 50000,
567
				D = 1000,
568
				maxForce = Vector3.new(math.huge, math.huge, math.huge),
569
				position = hit.Parent.Torso.Position,
570
				Parent = hit.Parent.Torso,
571
			}
572
			local BodGy = Create("BodyGyro") {
573
				maxTorque = Vector3.new(4e+005, 4e+005, 4e+005) * math.huge ,
574
				P = 20e+003,
575
				Parent = hit.Parent.Torso,
576
				cframe = hit.Parent.Torso.CFrame,
577
			}
578
			hit.Parent.Torso.Anchored = true
579
			coroutine.resume(coroutine.create(function(Part) 
580
				swait(1.5)
581
				Part.Anchored = false
582
			end), hit.Parent.Torso)
583
			game:GetService("Debris"):AddItem(BodPos, 3)
584
			game:GetService("Debris"):AddItem(BodGy, 3)
585
		end
586
		local debounce = Create("BoolValue"){
587
			Name = "DebounceHit",
588
			Parent = hit.Parent,
589
			Value = true,
590
		}
591
		game:GetService("Debris"):AddItem(debounce, Delay)
592
		c = Instance.new("ObjectValue")
593
		c.Name = "creator"
594
		c.Value = Player
595
		c.Parent = h
596
		game:GetService("Debris"):AddItem(c, .5)
597
	end
598
end
599
600
function ShowDamage(Pos, Text, Time, Color)
601
	local Rate = (1 / 30)
602
	local Pos = (Pos or Vector3.new(0, 0, 0))
603
	local Text = (Text or "")
604
	local Time = (Time or 2)
605
	local Color = (Color or Color3.new(1, 0, 0))
606
	local EffectPart = part("Custom", workspace, "SmoothPlastic", 0, 1, BrickColor.new(Color), "Effect", vt(0, 0, 0))
607
	EffectPart.Anchored = true
608
	local BillboardGui = Create("BillboardGui"){
609
		Size = UDim2.new(3, 0, 3, 0),
610
		Adornee = EffectPart,
611
		Parent = EffectPart,
612
	}
613
	local TextLabel = Create("TextLabel"){
614
		BackgroundTransparency = 1,
615
		Size = UDim2.new(1, 0, 1, 0),
616
		Text = Text,
617
		TextColor3 = Color,
618
		TextScaled = true,
619
		Font = Enum.Font.ArialBold,
620
		Parent = BillboardGui,
621
	}
622
	game.Debris:AddItem(EffectPart, (Time + 0.1))
623
	EffectPart.Parent = game:GetService("Workspace")
624
	delay(0, function()
625
		local Frames = (Time / Rate)
626
		for Frame = 1, Frames do
627
			wait(Rate)
628
			local Percent = (Frame / Frames)
629
			EffectPart.CFrame = CFrame.new(Pos) + Vector3.new(0, Percent, 0)
630
			TextLabel.TextTransparency = Percent
631
		end
632
		if EffectPart and EffectPart.Parent then
633
			EffectPart:Destroy()
634
		end
635
	end)
636
end
637
638
Handle = part(Enum.FormFactor.Custom, m, Enum.Material.Neon, 0, 0, "Crimson", "Handle", Vector3.new(1.20000005, 0.200000003, 1.20000005))
639
Handleweld = weld(m, Character["Torso"], Handle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.0396080017, -4.09992504, 0.0598115921, 1, -7.6153174e-011, -2.01268858e-006, 8.22890089e-011, 1, 3.084431e-006, 2.01269063e-006, -3.084431e-006, 1))
640
mesh("CylinderMesh", Handle, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.660000086, 1))
641
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(1.44000006, 0.200000003, 1.44000006))
642
Partweld = weld(m, Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(5.14984131e-005, 1.62124634e-005, -1.04904175e-005, 1, 1.23146328e-011, 1.07286201e-006, -1.13079598e-011, 1, -1.07284109e-006, -1.07285791e-006, 1.07284109e-006, 1))
643
mesh("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
644
Layer2Handle = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Layer2Handle", Vector3.new(0.480000019, 0.200000003, 0.480001062))
645
Layer2Handleweld = weld(m, Handle, Layer2Handle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.000301361084, 2.28881836e-005, -0.000202178955, 1, 2.70082467e-007, -1.75730406e-006, -2.70091959e-007, 1, -8.66388018e-006, 1.7573052e-006, 8.66388655e-006, 1))
646
Part = part(Enum.FormFactor.Custom, m, Enum.Material.Neon, 0, 0, "Crimson", "Part", Vector3.new(0.480000019, 0.200000003, 0.720000625))
647
Partweld = weld(m, Layer2Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(5.14984131e-005, -9.53674316e-007, -2.8800478, 0.999997914, -1.93837602e-011, -1.48245363e-008, 3.90257063e-011, 1, -7.13953341e-011, 1.48336312e-008, 8.91304808e-011, 0.999997914))
648
mesh("BlockMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
649
Part = part(Enum.FormFactor.Custom, m, Enum.Material.Neon, 0, 0, "Crimson", "Part", Vector3.new(0.480000019, 0.200000003, 0.720000625))
650
Partweld = weld(m, Layer2Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(4.19616699e-005, -3.24249268e-005, 2.87992668, 0.999985158, 2.87014509e-012, -1.48093022e-008, 5.66184322e-011, 1, -5.45696821e-012, 1.48470463e-008, 8.04902811e-011, 0.999985158))
651
mesh("BlockMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
652
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.480000019, 0.200000003, 5.04000092))
653
Partweld = weld(m, Layer2Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(1.33514404e-005, -9.53674316e-007, -0.0001039505, 0.999987781, -7.77617137e-011, -1.49125299e-008, 1.16872789e-010, 1, -1.96905603e-010, 1.493936e-008, 2.51930032e-010, 0.999987781))
654
mesh("BlockMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
655
mesh("BlockMesh", Layer2Handle, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
656
Layer3Handle = part(Enum.FormFactor.Custom, m, Enum.Material.Neon, 0, 1, "Crimson", "Layer3Handle", Vector3.new(0.720000029, 0.720000029, 0.200000003))
657
Layer3Handleweld = weld(m, Handle, Layer3Handle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.000802993774, -0.000151634216, 3.05175781e-005, 0.999999404, 4.16033836e-005, 1.96785777e-006, 1.96798396e-006, -2.12107511e-006, -0.999999404, -4.16014955e-005, 1, -2.12118243e-006))
658
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
659
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(9.53674316e-007, -0.840223312, 3.5397892, 4.89614176e-005, 5.0135186e-006, 0.999999762, -0.999999046, 1.22189522e-005, 4.8959475e-005, -1.22783813e-005, -0.999998689, 5.01443719e-006))
660
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
661
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(1.20000005, 0.200000003, 0.720000327))
662
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.000864028931, -6.00814819e-005, -3.59964466, -0.999999404, 9.70068322e-006, 3.31623378e-005, 3.31642768e-005, 4.86649742e-006, 1, 9.70056226e-006, 0.999999404, -4.86679755e-006))
663
mesh("BlockMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
664
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
665
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(2.76565552e-005, -0.840137482, 3.54048443, -3.42451713e-005, -5.10578684e-006, -0.99999994, -0.999998927, -1.21146441e-005, 3.4243305e-005, -1.2144611e-005, 0.999998927, -5.10543578e-006))
666
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
667
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(1.20000005, 0.200000003, 0.720000327))
668
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.000713348389, -2.76565552e-005, -3.6005826, -0.999993503, -9.68569748e-006, 5.00400529e-005, -5.00420938e-005, -4.89724516e-006, -0.999999881, 9.62627109e-006, -0.999993503, 4.89690592e-006))
669
mesh("BlockMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
670
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
671
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-7.62939453e-006, -0.838525772, 3.54048347, 3.57801182e-005, 5.10578639e-006, 0.99999994, 0.999999046, 1.0341405e-005, -3.57782446e-005, -1.03266702e-005, 0.999998927, -5.10551126e-006))
672
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
673
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
674
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-5.7220459e-006, -0.84022522, 3.53960228, -3.45465851e-005, -1.12046393e-006, -1, 5.82638359e-006, -0.999999225, 1.12023974e-006, -0.999999225, -5.82638404e-006, 3.45446933e-005))
675
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
676
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
677
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-2.86102295e-006, -0.839550018, 3.53951263, 3.41143859e-005, 1.04596313e-006, 1, -6.24368704e-006, 0.999999225, -1.04572723e-006, -0.999999225, -6.24369022e-006, 3.41124942e-005))
678
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
679
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(1.20000005, 0.200000003, 0.720000327))
680
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.000238418579, -9.53674316e-006, -3.59959984, 6.28840098e-006, -0.999999225, 1.09042128e-006, -3.40994848e-005, -1.09065854e-006, -1, 0.999999225, 6.2884028e-006, -3.4097593e-005))
681
mesh("BlockMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
682
Part = part(Enum.FormFactor.Custom, m, Enum.Material.Neon, 0, 0.19999998807907, "Crimson", "Part", Vector3.new(0.480000019, 0.480000019, 0.200000003))
683
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0, 3.81469727e-006, 0.999998808, 4.0078163e-011, 1.9098958e-009, 4.0078163e-011, 0.999998808, 2.42152964e-011, 1.9098958e-009, 2.42152964e-011, 1))
684
mesh("SpecialMesh", Part, Enum.MeshType.FileMesh, "http://www.roblox.com/asset/?id=18430887", Vector3.new(0, 0, 0), Vector3.new(3.58200026, 3.58200002, 2.9532001))
685
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
686
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(4.00543213e-005, -0.838380814, 3.53930187, -4.74264707e-005, -5.02687499e-006, -0.999999762, 0.999999046, -1.03116026e-005, -4.74245317e-005, -1.0311428e-005, -0.999998808, 5.02768307e-006))
687
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
688
Part = part(Enum.FormFactor.Custom, m, Enum.Material.Neon, 0, 0, "Really black", "Part", Vector3.new(0.480000019, 0.480000019, 0.200000003))
689
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0, 0, 0.999998808, 4.0078163e-011, 1.9098958e-009, 4.0078163e-011, 0.999998808, 2.42152964e-011, 1.9098958e-009, 2.42152964e-011, 1))
690
mesh("SpecialMesh", Part, Enum.MeshType.FileMesh, "http://www.roblox.com/asset/?id=18430887", Vector3.new(0, 0, 0), Vector3.new(3.60000014, 3.60000014, 3.60000014))
691
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
692
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(7.62939453e-006, -0.839694977, 3.53992653, -3.91442991e-005, -8.80631774e-007, -0.999993026, 2.27987925e-006, 0.999991357, -8.80696462e-007, 0.999997556, -2.29477519e-006, -3.92767397e-005))
693
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
694
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(1.20000005, 0.200000003, 0.720000327))
695
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.000235557556, -2.38418579e-005, -3.60028458, 1.50501114e-006, -0.999997199, 8.35720812e-007, 3.47488422e-005, 8.35786693e-007, 1, -0.999997199, -1.50502308e-006, 3.47468304e-005))
696
mesh("BlockMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 0.600000024, 1))
697
Part = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 0, "Really black", "Part", Vector3.new(0.200000003, 0.480000019, 0.840000391))
698
Partweld = weld(m, Layer3Handle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-2.28881836e-005, -0.840080261, 3.54010582, 3.91591857e-005, 8.0613512e-007, 0.999993026, -2.25008012e-006, -0.999991, 8.06197477e-007, 0.999997556, -2.29477519e-006, -3.92916445e-005))
699
mesh("SpecialMesh", Part, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
700
HitboxA = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 1, "Really black", "HitboxA", Vector3.new(0.200000003, 2.48000002, 0.840000391))
701
HitboxAweld = weld(m, Layer3Handle, HitboxA, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-6.67572021e-006, -0.039557457, 3.53951645, 3.44422551e-005, 1.04596529e-006, 1, -5.90090622e-006, 0.999999225, -1.04573905e-006, -0.999999225, -5.90090895e-006, 3.44403634e-005))
702
HitboxB = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 1, "Really black", "HitboxB", Vector3.new(0.200000003, 2.48000026, 0.840000391))
703
HitboxBweld = weld(m, Layer3Handle, HitboxB, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(9.53674316e-007, -0.0402240753, 3.5397892, 4.89614176e-005, 5.0135186e-006, 0.999999762, -0.999999046, 1.22189522e-005, 4.8959475e-005, -1.22783813e-005, -0.999998689, 5.01443719e-006))
704
HitboxC = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 1, "Really black", "HitboxC", Vector3.new(0.200000003, 2.28000021, 0.840000391))
705
HitboxCweld = weld(m, Layer3Handle, HitboxC, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(2.76565552e-005, 0.0598621368, 3.54048443, -3.42451713e-005, -5.10578684e-006, -0.99999994, -0.999998927, -1.21146441e-005, 3.4243305e-005, -1.2144611e-005, 0.999998927, -5.10543578e-006))
706
mesh("SpecialMesh", HitboxC, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
707
HitboxD = part(Enum.FormFactor.Custom, m, Enum.Material.SmoothPlastic, 0, 1, "Really black", "HitboxD", Vector3.new(0.200000003, 2.28000021, 0.840000391))
708
HitboxDweld = weld(m, Layer3Handle, HitboxD, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-2.28881836e-005, 0.0599050522, 3.54010582, 3.91591857e-005, 8.0613512e-007, 0.999993026, -2.25008012e-006, -0.999991, 8.06197477e-007, 0.999997556, -2.29477519e-006, -3.92916445e-005))
709
mesh("SpecialMesh", HitboxD, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(0.600000024, 1, 1))
710
mesh("SpecialMesh", Layer3Handle, Enum.MeshType.FileMesh, "http://www.roblox.com/asset/?id=18430887", Vector3.new(0, 0, 0), Vector3.new(6, 6, -1.21799994))
711
712
local Lite = Create("PointLight"){
713
	Parent = Handle,
714
	Color = BrickColor.new("Crimson").Color,
715
	Shadows = true,
716
	Range = 20,
717
	Brightness = 0.5,
718
}
719
720
local Spin = Create("Sound"){
721
Parent = Handle,
722
SoundId = "rbxassetid://143301643",
723
Volume = 1,
724
Pitch = 1,
725
Looped = true,
726
}
727
728
local Spin2 = Create("Sound"){
729
Parent = Handle,
730
SoundId = "rbxassetid://149560784",
731
Volume = .7,
732
Pitch = .8,
733
Looped = true,
734
}
735
736
Spin:Play()
737
738
Spin2:Play()
739
740
local PE1 = Create("ParticleEmitter"){
741
Parent = Layer3Handle,
742
Color = ColorSequence.new(BrickColor.new("Crimson").Color),
743
Transparency = NumberSequence.new(.5),
744
Size = NumberSequence.new(0.2),
745
Texture = "rbxassetid://263433152",
746
Lifetime = NumberRange.new(1),
747
Rate = 20,
748
VelocitySpread = 180,
749
Rotation = NumberRange.new(100),
750
Speed = NumberRange.new(3),
751
LightEmission = 1,
752
}
753
754
function Reappear()
755
	for _, i in pairs(m:children()) do
756
		if i.Name == "Layer3Handle" then
757
			Part.Transparency = 1
758
			coroutine.resume(coroutine.create(function(Part) 
759
				for i = 0, 1, 0.1 do
760
					swait()
761
					Part.Transparency = i
762
				end
763
				Part.Transparency = 0.5
764
			end), i)
765
		end
766
	end
767
end
768
769
function Disappear()
770
	for _, i in pairs(m:children()) do
771
		if i.Name == "Layer3Handle" then
772
			Part.Transparency = .5
773
			coroutine.resume(coroutine.create(function(Part) 
774
				for i = 0, 1, 0.1 do
775
					swait()
776
					Part.Transparency = i
777
				end
778
				Part.Transparency = 1
779
			end), i)
780
		end
781
	end
782
end
783
784
function attackone()
785
	attack = true
786
	local con1 = HitboxA.Touched:connect(function(hit)
787
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit1", 1)
788
	end) 
789
	local con2 = HitboxB.Touched:connect(function(hit)
790
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit2", 1)
791
	end) 
792
	local con3 = HitboxC.Touched:connect(function(hit)
793
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit3", 1)
794
	end) 
795
	local con4 = HitboxD.Touched:connect(function(hit)
796
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit4", 1)
797
	end) 
798
	Reappear()
799
	for i = 0, 1, 0.1 do
800
		swait()
801
		RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(-50)), .3)
802
		TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(5), math.rad(0), math.rad(50)), .3)
803
		RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(90), math.rad(0), math.rad(30)), 0.3)
804
		LW.C0 = clerp(LW.C0, CFrame.new(-1, 0.3, .3) * angles(math.rad(-30), math.rad(0), math.rad(30)), 0.3)
805
		RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(120), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
806
		LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-70), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
807
		Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(5, -4, -7) * angles(math.rad(0), math.rad(0), math.rad(0)), 0.3)
808
		Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
809
		Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
810
	end
811
	so("Slash1", Handle, 1, 1)
812
	for i = 0, 1, 0.1 do
813
		swait()
814
		RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(50)), .5)
815
		TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(5), math.rad(0), math.rad(-50)), .5)
816
		RW.C0 = clerp(RW.C0, CFrame.new(1.2, 0.5, -.5) * angles(math.rad(90), math.rad(0), math.rad(-30)), 0.5)
817
		LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(-30), math.rad(0), math.rad(-30)), 0.5)
818
		RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(70), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .5)
819
		LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-120), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .5)
820
		Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(-2, -4, -8) * angles(math.rad(0), math.rad(0), math.rad(0)), 0.3)
821
		Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
822
		Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
823
	end
824
	Disappear()
825
	con1:disconnect()
826
	con2:disconnect()
827
	con3:disconnect() 
828
	con4:disconnect()
829
	attack = false
830
end
831
832
function attacktwo()
833
	attack = true
834
	local con1 = HitboxA.Touched:connect(function(hit)
835
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit1", 1)
836
	end) 
837
	local con2 = HitboxB.Touched:connect(function(hit)
838
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit2", 1)
839
	end) 
840
	local con3 = HitboxC.Touched:connect(function(hit)
841
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit3", 1)
842
	end) 
843
	local con4 = HitboxD.Touched:connect(function(hit)
844
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit4", 1)
845
	end) 
846
	Reappear()
847
	for i = 0, 1, 0.1 do
848
		swait()
849
		RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), .3)
850
		TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(-10), math.rad(0), math.rad(0)), .3)
851
		RW.C0 = clerp(RW.C0, CFrame.new(1.4, 0.5, -.5) * angles(math.rad(150), math.rad(0), math.rad(0)), 0.3)
852
		LW.C0 = clerp(LW.C0, CFrame.new(-1.3, 0.3, 0) * angles(math.rad(-30), math.rad(0), math.rad(-30)), 0.3)
853
		RH.C0 = clerp(RH.C0, cf(1, -1, -.3) * angles(math.rad(0), math.rad(90), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
854
		LH.C0 = clerp(LH.C0, cf(-1, -1, .2) * angles(math.rad(0), math.rad(-85), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
855
		Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(-4, 10, 0) * angles(math.rad(0), math.rad(0), math.rad(-90)), 0.3)
856
		Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
857
		Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
858
	end
859
	so("Slash2", Handle, 1, 1.2)
860
	for i = 0, 1, 0.1 do
861
		swait()
862
		RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), .5)
863
		TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(10), math.rad(0), math.rad(0)), .5)
864
		RW.C0 = clerp(RW.C0, CFrame.new(1.2, 0.3, -.5) * angles(math.rad(50), math.rad(0), math.rad(-30)), 0.5)
865
		LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(-30), math.rad(0), math.rad(-50)), 0.5)
866
		RH.C0 = clerp(RH.C0, cf(1, -1, -.3) * angles(math.rad(0), math.rad(90), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .5)
867
		LH.C0 = clerp(LH.C0, cf(-1, -1, .2) * angles(math.rad(0), math.rad(-85), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .5)
868
		Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(-4, .5, -8) * angles(math.rad(0), math.rad(0), math.rad(-90)), 0.4)
869
		Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
870
		Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
871
	end
872
	Disappear()
873
	con1:disconnect()
874
	con2:disconnect()
875
	con3:disconnect() 
876
	con4:disconnect()
877
	attack = false
878
end
879
880
function attackthree()
881
	attack = true
882
	local con1 = HitboxA.Touched:connect(function(hit)
883
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit1", 1)
884
	end) 
885
	local con2 = HitboxB.Touched:connect(function(hit)
886
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit2", 1)
887
	end) 
888
	local con3 = HitboxC.Touched:connect(function(hit)
889
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit3", 1)
890
	end) 
891
	local con4 = HitboxD.Touched:connect(function(hit)
892
		Damagefunc(HitboxA, hit, 10, 30, math.random(1, 5), "Normal", RootPart, .1, "Hit4", 1)
893
	end) 
894
	Reappear()
895
	for i = 0, 1, 0.1 do
896
		swait()
897
		RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(50)), .3)
898
		TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(0), math.rad(0), math.rad(-50)), .3)
899
		RW.C0 = clerp(RW.C0, CFrame.new(1.4, 0.8, -.5) * angles(math.rad(120), math.rad(0), math.rad(-30)), 0.3)
900
		LW.C0 = clerp(LW.C0, CFrame.new(-1.3, 0.3, 0) * angles(math.rad(-30), math.rad(0), math.rad(-30)), 0.3)
901
		RH.C0 = clerp(RH.C0, cf(1, -1, -.3) * angles(math.rad(0), math.rad(70), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
902
		LH.C0 = clerp(LH.C0, cf(-1, -1, .2) * angles(math.rad(0), math.rad(-140), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
903
		Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(-10, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(-20)), 0.3)
904
		Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
905
		Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
906
	end
907
	so("Slash1", Handle, 1, 1.2)
908
	for i = 0, 1, 0.1 do
909
		swait()
910
		RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(-50)), .5)
911
		TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(10), math.rad(0), math.rad(50)), .5)
912
		RW.C0 = clerp(RW.C0, CFrame.new(1.4, 0.5, 0) * angles(math.rad(50), math.rad(0), math.rad(30)), 0.5)
913
		LW.C0 = clerp(LW.C0, CFrame.new(-1.3, 0.3, 0) * angles(math.rad(-30), math.rad(0), math.rad(-30)), 0.5)
914
		RH.C0 = clerp(RH.C0, cf(1, -1, -.3) * angles(math.rad(0), math.rad(140), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .5)
915
		LH.C0 = clerp(LH.C0, cf(-1, -1, .2) * angles(math.rad(0), math.rad(-50), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .5)
916
		Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, -5, -10) * angles(math.rad(0), math.rad(0), math.rad(-20)), 0.3)
917
		Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
918
		Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
919
	end
920
	Disappear()
921
	con1:disconnect()
922
	con2:disconnect()
923
	con3:disconnect() 
924
	con4:disconnect()
925
	attack = false
926
end
927
928
local hoverpos = Create("BodyPosition"){}
929
930
local bv = Create("BodyVelocity"){
931
932
	Parent = nil,
933
934
	maxForce = Vector3.new(4e+020, 4e+020, 4e+020) ,
935
936
}
937
938
local hovering = false
939
940
function Hover()
941
	so("Appear",Handle,1,1)
942
	attack = true
943
	local dur = 0
944
	local donum3 = 0
945
	coroutine.resume(coroutine.create(function(Num) 
946
		for i = 0, 1, 0.1 do
947
			swait()
948
			RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), .3)
949
			TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(10), math.rad(0), math.rad(0)), .3)
950
			RW.C0 = clerp(RW.C0, CFrame.new(1, 0.3, .3) * angles(math.rad(-30), math.rad(0), math.rad(-30)), 0.3)
951
			LW.C0 = clerp(LW.C0, CFrame.new(-1, 0.3, .3) * angles(math.rad(-30), math.rad(0), math.rad(30)), 0.3)
952
			RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(90), math.rad(-20)) * angles(math.rad(0), math.rad(0), math.rad(0)), .3)
953
			LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-90), math.rad(10)) * angles(math.rad(0), math.rad(0), math.rad(0)), .3)
954
			Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, -8, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), 0.3)
955
			Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) - donum3 / .03, math.rad(0)), 0.3)
956
			Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) + donum3 / .04, math.rad(0)), 0.3)
957
		end
958
	end), dur)
959
	Reappear()
960
	hoverpos.maxForce = vt(4e+080, 4e+080, 4e+080)
961
	hoverpos.Name = "BP"
962
	hoverpos.Parent = RootPart
963
	hoverpos.P = 2000
964
	hoverpos.D = 100
965
	hoverpos.position = RootPart.Position
966
	while hovering == true do
967
		for i = 0, 1, 0.1 do
968
			swait()
969
			donum3 = donum3 + 0.01
970
			Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) - donum3 / .03, math.rad(0)), 0.3)
971
			Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) + donum3 / .04, math.rad(0)), 0.3)
972
		end
973
	end
974
	Disappear()
975
	so("Disappear",Handle,1,1)
976
	hoverpos.Parent = nil
977
	attack = false
978
end
979
980
function MagniDamage(Hit,Part,magni,mindam,maxdam,knock,Type)
981
for _,c in pairs(workspace:children()) do
982
local hum=c:findFirstChild("Humanoid")
983
if hum~=nil then
984
local head=c:findFirstChild("Torso")
985
if head~=nil then
986
local targ=head.Position-Part.Position
987
local mag=targ.magnitude
988
if mag<=magni and c.Name~=Player.Name then 
989
Damagefunc(Hit,head,mindam,maxdam,knock,Type,RootPart,.2,"Hit1",1)
990
end
991
end
992
end
993
end
994
end
995
996
function CylinderEffect(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
997
local prt=part(3,Character,"Neon",0,0,brickcolor,"Effect",vt(0.2,0.2,0.2))
998
prt.Anchored=true
999
prt.CFrame=cframe
1000
local msh=mesh("CylinderMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
1001
game:GetService("Debris"):AddItem(prt,5)
1002
Effects[#Effects+1]={prt,"Cylinder",delay,x3,y3,z3} --part, type, delay
1003
end
1004
1005
RocketTarget = RootPart
1006
function ShootCannon(asd)
1007
local MainPos=asd.Position
1008
local MainPos2=mouse.Hit.p
1009
local MouseLook=cf((MainPos+MainPos2)/2,MainPos2)
1010
num=30
1011
coroutine.resume(coroutine.create(function() 
1012
repeat
1013
wait()
1014
local hit,pos = rayCast(MainPos,MouseLook.lookVector,10,RocketTarget.Parent)
1015
local mag=(MainPos-pos).magnitude 
1016
CylinderEffect(BrickColor.new("Crimson"),CFrame.new((MainPos+pos)/2,pos)*angles(1.57,0,0),3,mag*5,3,1.5,0,1.5,0.1)
1017
MainPos=MainPos+(MouseLook.lookVector*10)
1018
num=num-1
1019
if hit~=nil then
1020
num=0
1021
local ref=part(3,workspace,"Neon",0,1,BrickColor.new("Crimson"),"Reference",vt())
1022
ref.Anchored=true
1023
ref.CFrame=cf(pos)
1024
MagniDamage(ref,hit,5,30,50,1,"Normal")
1025
game:GetService("Debris"):AddItem(ref,5) 
1026
end
1027
until num<=0
1028
end))
1029
end
1030
1031
function BlastEffect(brickcolor, cframe, x1, y1, z1, x2, y2, z2)
1032
	local prt = part(3, workspace, "SmoothPlastic", 0, 0, brickcolor, "Effect", vt(0.5, 0.5, 0.5))
1033
	prt.Anchored = true
1034
	prt.CFrame = cframe
1035
	local msh = mesh("SpecialMesh", prt, "FileMesh", "http://www.roblox.com/asset/?id=20329976", vt(0, 0, 0), vt(x1, y1, z1))
1036
	coroutine.resume(coroutine.create(function() 
1037
		for i = 0, 1, 0.05 do
1038
			wait()
1039
			prt.Transparency = i
1040
			msh.Scale = msh.Scale + vt(x2, y2, z2)
1041
		end
1042
		prt.Parent = nil
1043
	end))
1044
end
1045
1046
function BlockEffect(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
1047
local prt=part(3,workspace,"Neon",0,0,brickcolor,"Effect",vt())
1048
prt.Anchored=true
1049
prt.CFrame=cframe
1050
local msh=mesh("BlockMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
1051
game:GetService("Debris"):AddItem(prt,5)
1052
table.insert(Effects,{prt,"Block1",delay,x3,y3,z3}) --part, type, delay
1053
end
1054
1055
function FireProjectiles()
1056
attack = true
1057
so("Appear",Handle,1,1)
1058
Reappear()
1059
for i = 0,1,0.1 do
1060
swait()
1061
RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), .3)
1062
TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(-30), math.rad(0), math.rad(0)), .3)
1063
RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(150), math.rad(0), math.rad(0)), 0.3)
1064
LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(20), math.rad(0), math.rad(-20)), 0.3)
1065
RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(90), math.rad(0)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1066
LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-90), math.rad(0)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1067
Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), 0.3)
1068
Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -6*i, math.rad(0)), 0.3)
1069
Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 6*i, math.rad(0)), 0.3)
1070
end
1071
Humanoid.WalkSpeed = 0
1072
for i = 1,8 do
1073
ShootCannon(Handle)
1074
BlockEffect(BrickColor.new("Crimson"),Handle.CFrame,.5,.5,.5,.9,.9,.9,0.05)
1075
so("Beam",Handle,1,1.5)
1076
for i = 0,1,0.1 do
1077
swait()
1078
RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), .5)
1079
TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(0), math.rad(0), math.rad(0)), .5)
1080
RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(85), math.rad(0), math.rad(30)), 0.5)
1081
LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(85), math.rad(0), math.rad(-30)), 0.5)
1082
RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(90), math.rad(0)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1083
LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-90), math.rad(0)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1084
Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, 1, 0) * angles(math.rad(-90), math.rad(0), math.rad(0)), 0.3)
1085
Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -6*i, math.rad(0)), 0.3)
1086
Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 6*i, math.rad(0)), 0.3)
1087
end
1088
end
1089
Disappear()
1090
so("Disappear",Handle,1,1)
1091
Humanoid.WalkSpeed = 16
1092
attack = false
1093
end
1094
1095
function EnergyBurst()
1096
attack = true
1097
so("Appear",Handle,1,1)
1098
for i = 0,1,0.1 do
1099
swait()
1100
RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(-50)), .3)
1101
TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(0), math.rad(0), math.rad(50)), .3)
1102
RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(0), math.rad(50), math.rad(90)), 0.3)
1103
LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(-30), math.rad(0), math.rad(-20)), 0.3)
1104
RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(130), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
1105
LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-70), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
1106
Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(10, -4, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), 0.3)
1107
Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -6*i, math.rad(0)), 0.3)
1108
Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 6*i, math.rad(0)), 0.3)
1109
end
1110
Reappear()
1111
so("Slash1", Handle, 1, 1.2)
1112
for i = 1,2 do
1113
for i = 0,1,0.1 do
1114
swait()
1115
BlockEffect(BrickColor.new("Crimson"),Handle.CFrame,.5,.5,.5,.9,.9,.9,0.05)
1116
RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(70)), .3)
1117
TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(0), math.rad(0), math.rad(-70)), .3)
1118
RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(0), math.rad(20), math.rad(90)), 0.3)
1119
LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(-40), math.rad(0), math.rad(-50)), 0.3)
1120
RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(70), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
1121
LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-130), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
1122
Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(15, -4, -7) * angles(math.rad(0), math.rad(0), math.rad(0)), 0.3)
1123
Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -6*i, math.rad(0)), 0.3)
1124
Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 6*i, math.rad(0)), 0.3)
1125
end
1126
end
1127
Disappear()
1128
so("Disappear",Handle,1,1)
1129
so("Fire", Handle, 1, 1.2)
1130
so("Fire", Handle, 1, .8)
1131
MagniDamage(Handle,Handle,30,30,50,1,"Knockdown")
1132
BlastEffect(BrickColor.new("Crimson"), Handle.CFrame, .1, .1, .1, 1, 1, 1)
1133
for i = 1,5 do
1134
BlockEffect(BrickColor.new("Crimson"),Handle.CFrame,1,1,1,5,5,5,0.05)
1135
end
1136
attack = false
1137
end
1138
1139
function WaveEffect(Part,cframe1,cframe2,Damage,Size)
1140
coroutine.resume(coroutine.create(function() 
1141
local wave=part(1,workspace,"Neon",0,0,BrickColor.new("Crimson"),"Effect",vt(3,3,10))
1142
wave.Anchored=true 
1143
wave.CFrame=Part.CFrame*cframe1
1144
so("Beam",wave,1,1.3)
1145
MagniDamage(wave,wave,10,10,30,1,"Normal")
1146
local Msh = Create("SpecialMesh"){
1147
Parent = wave,
1148
MeshType = "Sphere"
1149
}
1150
BlockEffect(BrickColor.new("Crimson"),wave.CFrame,1,1,1,3,3,3,0.05)
1151
local PE1 = Create("ParticleEmitter"){
1152
Parent = wave,
1153
Color = ColorSequence.new(BrickColor.new("Crimson").Color),
1154
Transparency = NumberSequence.new(.5),
1155
Size = NumberSequence.new(1),
1156
Texture = "rbxassetid://249270319",
1157
Lifetime = NumberRange.new(1),
1158
Rate = 50,
1159
VelocitySpread = 180,
1160
Rotation = NumberRange.new(0),
1161
Speed = NumberRange.new(5),
1162
LightEmission = 1,
1163
}
1164
for i=0,1,0.2 do
1165
wait()
1166
local dir = wave.CFrame.lookVector*-1
1167
local pos = rayCast(wave.Position,dir,5,Character)
1168
wave.CFrame=wave.CFrame*cframe2
1169
Effects[#Effects+1]={wave,"Cylinder",0.01,.03,.03,.03}
1170
end
1171
end))
1172
end
1173
1174
function Wave()
1175
attack = true
1176
Reappear()
1177
so("Appear",Handle,1,.8)
1178
for i = 1,3 do
1179
for i = 0, 1, 0.1 do
1180
	swait()
1181
	BlockEffect(BrickColor.new("Crimson"),Handle.CFrame,.1,.1,.1,1,1,1,0.05)
1182
	RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(0)), .3)
1183
	TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(-10), math.rad(0), math.rad(0)), .3)
1184
	RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.8, 0) * angles(math.rad(150), math.rad(0), math.rad(0)), 0.3)
1185
	LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(-30), math.rad(0), math.rad(-30)), 0.3)
1186
	RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(90), math.rad(0)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1187
	LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-90), math.rad(0)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1188
	Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(-4, 10, 0) * angles(math.rad(0), math.rad(0), math.rad(-90)), 0.4)
1189
	Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
1190
	Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
1191
end
1192
end
1193
so("Slash2",Handle,1,.4)
1194
local inc=-10
1195
for i=1,8 do
1196
WaveEffect(Torso,CFrame.new(0,-5,inc)*CFrame.fromEulerAnglesXYZ(-2,0,1.57),CFrame.new(0,0,0.8),10,5)
1197
inc=inc-7
1198
end
1199
for i = 1,2 do
1200
for i = 0, 1, 0.1 do
1201
	swait()
1202
	BlockEffect(BrickColor.new("Crimson"),Handle.CFrame,.1,.1,.1,1,1,1,0.05)
1203
	RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(10), math.rad(0), math.rad(0)), .5)
1204
	TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(-5), math.rad(0), math.rad(0)), .5)
1205
	RW.C0 = clerp(RW.C0, CFrame.new(1.2, 0.4, -.5) * angles(math.rad(50), math.rad(0), math.rad(-20)), 0.5)
1206
	LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(-50), math.rad(0), math.rad(-50)), 0.5)
1207
	RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(90), math.rad(10)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1208
	LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-90), math.rad(-10)) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1209
	Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(-4, .5, -10) * angles(math.rad(0), math.rad(0), math.rad(-90)), 0.5)
1210
	Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), -5 * i, math.rad(0)), 0.3)
1211
	Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), 5 * i, math.rad(0)), 0.3)
1212
end
1213
end
1214
Disappear()
1215
so("Disappear",Handle,1,.8)
1216
attack = false
1217
end
1218
1219
mouse.Button1Down:connect(function()
1220
	if attack == false and attacktype == 1 then
1221
		attacktype = 2
1222
		attackone()
1223
	elseif attack == false and attacktype == 2 then
1224
		attacktype = 3
1225
		attacktwo()
1226
	elseif attack == false and attacktype == 3 then
1227
		attacktype = 1
1228
		attackthree()
1229
	end
1230
end)
1231
1232
mouse.KeyDown:connect(function(k)
1233
	k = k:lower()
1234
	if attack == false and k == ' ' and Anim == "Jump" then
1235
		hovering = true
1236
		Hover()
1237
	elseif k == ' ' and hovering == true then
1238
		hovering = false
1239
	elseif attack == false and k == 'q' then
1240
	    FireProjectiles()
1241
	elseif attack == false and k == 'e' then
1242
	    EnergyBurst()
1243
	elseif attack == false and k == 'r' then
1244
	    Wave()
1245
	end
1246
end)
1247
1248
local sine = 0
1249
local change = 1
1250
local val = 0
1251
local idle = 0
1252
local donum = 0
1253
local donum2 = 0
1254
1255
while true do
1256
	swait()
1257
	sine = sine + change
1258
	local torvel = (RootPart.Velocity * Vector3.new(1, 0, 1)).magnitude 
1259
	local velderp = RootPart.Velocity.y
1260
	hitfloor, posfloor = rayCast(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position - Vector3.new(0, 1, 0))).lookVector, 4, Character)
1261
	if equipped == true or equipped == false then
1262
		if attack == false then
1263
			idle = idle + 1
1264
		else
1265
			idle = 0
1266
		end
1267
		if idle >= 500 then
1268
			if attack == false then
1269
			end
1270
		end
1271
		if donum2 >= .5 then
1272
			handidle = true
1273
		elseif donum2 <= 0 then
1274
			handidle = false
1275
		end
1276
		if handidle == false then
1277
			donum2 = donum2 + 0.003
1278
		else
1279
			donum2 = donum2 - 0.003
1280
		end
1281
		donum = donum + 0.003
1282
		if RootPart.Velocity.y > 1 and hitfloor == nil then 
1283
			Anim = "Jump"
1284
			if attack == false then
1285
				RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(5), math.rad(0), math.rad(0)), .3)
1286
				TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(-10), math.rad(0), math.rad(0)), .3)
1287
				RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(0), math.rad(0), math.rad(30)), 0.3)
1288
				LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(0), math.rad(0), math.rad(-30)), 0.3)
1289
				RH.C0 = clerp(RH.C0, cf(1, -.8, -.5) * angles(math.rad(0), math.rad(90), math.rad(-20)), .3)
1290
				LH.C0 = clerp(LH.C0, cf(-1, -1, -.3) * angles(math.rad(0), math.rad(-90), math.rad(30)), .3)
1291
				Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(20) - donum2 / 1), 0.3)
1292
				Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) - donum / .01, math.rad(0)), 0.3)
1293
				Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) + donum / .03, math.rad(0)), 0.3)
1294
			end
1295
		elseif RootPart.Velocity.y < -1 and hitfloor == nil then 
1296
			Anim = "Fall"
1297
			if attack == false then
1298
				RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(-5), math.rad(0), math.rad(0)), .3)
1299
				TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(10), math.rad(0), math.rad(0)), .3)
1300
				RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(0), math.rad(0), math.rad(50)), 0.3)
1301
				LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(0), math.rad(0), math.rad(-50)), 0.3)
1302
				RH.C0 = clerp(RH.C0, cf(1, -.7, -.5) * angles(math.rad(0), math.rad(90), math.rad(-20)), .3)
1303
				LH.C0 = clerp(LH.C0, cf(-1, -.9, -.3) * angles(math.rad(0), math.rad(-90), math.rad(30)), .3)
1304
				Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(20) - donum2 / 1), 0.3)
1305
				Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) - donum / .01, math.rad(0)), 0.3)
1306
				Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) + donum / .03, math.rad(0)), 0.3)
1307
			end
1308
		elseif torvel < 1 and hitfloor ~= nil then
1309
			Anim = "Idle"
1310
			if attack == false then
1311
				RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(-30)), .3)
1312
				TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(5), math.rad(0), math.rad(30)), .3)
1313
				RW.C0 = clerp(RW.C0, CFrame.new(.8, 0.5, -.7) * angles(math.rad(85), math.rad(0), math.rad(-70)), 0.3)
1314
				LW.C0 = clerp(LW.C0, CFrame.new(-.8, 0.5, -.3) * angles(math.rad(70), math.rad(0), math.rad(70)), 0.3)
1315
				RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(90), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
1316
				LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-70), math.rad(0)) * angles(math.rad(-3), math.rad(0), math.rad(0)), .3)
1317
				Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(0), math.rad(20) - donum2 / 1), 0.3)
1318
				Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) - donum / .01, math.rad(0)), 0.3)
1319
				Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) + donum / .03, math.rad(0)), 0.3)
1320
			end
1321
		elseif torvel > 2 and hitfloor ~= nil then
1322
			Anim = "Walk"
1323
			if attack == false then
1324
				change = 3
1325
				RootJoint.C0 = clerp(RootJoint.C0, RootCF * cf(0, 0, 0) * angles(math.rad(5), math.rad(0), math.rad(0)), .3)
1326
				TorsA.Neck.C0 = clerp(TorsA.Neck.C0, necko * angles(math.rad(5), math.rad(0), math.rad(0)), .3)
1327
				RW.C0 = clerp(RW.C0, CFrame.new(1.5, 0.5, 0) * angles(math.rad(40) * math.cos(sine / 10), math.rad(0), math.rad(5)), 0.3)
1328
				LW.C0 = clerp(LW.C0, CFrame.new(-1.5, 0.5, 0) * angles(math.rad(-40) * math.cos(sine / 10), math.rad(0), math.rad(-5)), 0.3)
1329
				RH.C0 = clerp(RH.C0, cf(1, -1, 0) * angles(math.rad(0), math.rad(90), math.rad(0)) * angles(math.rad(-2), math.rad(0), math.rad(0)), .3)
1330
				LH.C0 = clerp(LH.C0, cf(-1, -1, 0) * angles(math.rad(0), math.rad(-90), math.rad(0)) * angles(math.rad(-2), math.rad(0), math.rad(0)), .3)
1331
				Handleweld.C0 = clerp(Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(20), math.rad(0), math.rad(20) - donum2 / 1), 0.3)
1332
				Layer2Handleweld.C0 = clerp(Layer2Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) - donum / .01, math.rad(0)), 0.3)
1333
				Layer3Handleweld.C0 = clerp(Layer3Handleweld.C0, CFrame.new(0, 0, 0) * angles(math.rad(0), math.rad(30) + donum / .03, math.rad(0)), 0.3)
1334
			end
1335
		end
1336
	end
1337
	if #Effects > 0 then
1338
		for e = 1, #Effects do
1339
			if Effects[e] ~= nil then
1340
				local Thing = Effects[e]
1341
				if Thing ~= nil then
1342
					local Part = Thing[1]
1343
					local Mode = Thing[2]
1344
					local Delay = Thing[3]
1345
					local IncX = Thing[4]
1346
					local IncY = Thing[5]
1347
					local IncZ = Thing[6]
1348
					if Thing[1].Transparency <= 1 then
1349
						if Thing[2] == "Block1" then
1350
							Thing[1].CFrame = Thing[1].CFrame * euler(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
1351
							Mesh = Thing[1].Mesh
1352
							Mesh.Scale = Mesh.Scale + vt(Thing[4], Thing[5], Thing[6])
1353
							Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1354
						elseif Thing[2] == "Cylinder" then
1355
							Mesh = Thing[1].Mesh
1356
							Mesh.Scale = Mesh.Scale + vt(Thing[4], Thing[5], Thing[6])
1357
							Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1358
						elseif Thing[2] == "Blood" then
1359
							Mesh = Thing[7]
1360
							Thing[1].CFrame = Thing[1].CFrame * cf(0, .5, 0)
1361
							Mesh.Scale = Mesh.Scale + vt(Thing[4], Thing[5], Thing[6])
1362
							Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1363
						elseif Thing[2] == "Elec" then
1364
							Mesh = Thing[1].Mesh
1365
							Mesh.Scale = Mesh.Scale + vt(Thing[7], Thing[8], Thing[9])
1366
							Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1367
						elseif Thing[2] == "Disappear" then
1368
							Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1369
						end
1370
					else
1371
						Part.Parent = nil
1372
						table.remove(Effects, e)
1373
					end
1374
				end
1375
			end
1376
		end
1377
	end
1378
end