View difference between Paste ID: ChnjtK9X and xCBT6hYW
SHOW: | | - or go back to the newest paste.
1
--//====================================================\\--
2
--||			   CREATED BY SHACKLUSTER
3
--\\====================================================//--
4
5
--https://github.com/Mokiros/roblox-FE-compatibility
6
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
7
local Player,game,owner = owner,game
8
local RealPlayer = Player
9
do
10
	print("FE Compatibility code V2 by Mokiros")
11
	local RealPlayer = RealPlayer
12
	script.Parent = RealPlayer.Character
13
14
	--Fake event to make stuff like Mouse.KeyDown work
15
	local Disconnect_Function = function(this)
16
		this[1].Functions[this[2]] = nil
17
	end
18
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
19
	local FakeEvent_Metatable = {__index={
20
		Connect = function(this,f)
21
			local i = tostring(math.random(0,10000))
22
			while this.Functions[i] do
23
				i = tostring(math.random(0,10000))
24
			end
25
			this.Functions[i] = f
26
			return setmetatable({this,i},Disconnect_Metatable)
27
		end
28
	}}
29
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
30
	local function fakeEvent()
31
		return setmetatable({Functions={}},FakeEvent_Metatable)
32
	end
33
34
	--Creating fake input objects with fake variables
35
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
36
    FakeMouse.keyUp = FakeMouse.KeyUp
37
    FakeMouse.keyDown = FakeMouse.KeyDown
38
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
39
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
40
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
41
	end}
42
	--Merged 2 functions into one by checking amount of arguments
43
	CAS.UnbindAction = CAS.BindAction
44
45
	--This function will trigger the events that have been :Connect()'ed
46
	local function TriggerEvent(self,ev,...)
47
		for _,f in pairs(self[ev].Functions) do
48
			f(...)
49
		end
50
	end
51
	FakeMouse.TriggerEvent = TriggerEvent
52
	UIS.TriggerEvent = TriggerEvent
53
54
	--Client communication
55
	local Event = Instance.new("RemoteEvent")
56
	Event.Name = "UserInput_Event"
57
	Event.OnServerEvent:Connect(function(plr,io)
58
	    if plr~=RealPlayer then return end
59
		FakeMouse.Target = io.Target
60
		FakeMouse.Hit = io.Hit
61
		if not io.isMouse then
62
			local b = io.UserInputState == Enum.UserInputState.Begin
63
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
64
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
65
			end
66
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
67
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
68
			end
69
			for _,t in pairs(CAS.Actions) do
70
				for _,k in pairs(t.Keys) do
71
					if k==io.KeyCode then
72
						t.Function(t.Name,io.UserInputState,io)
73
					end
74
				end
75
			end
76
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
77
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
78
	    end
79
	end)
80
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
81
	local Mouse = owner:GetMouse()
82
	local UIS = game:GetService("UserInputService")
83
	local input = function(io,RobloxHandled)
84
		if RobloxHandled then return end
85
		--Since InputObject is a client-side instance, we create and pass table instead
86
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
87
	end
88
	UIS.InputBegan:Connect(input)
89
	UIS.InputEnded:Connect(input)
90
	local h,t
91
	--Give the server mouse data every second frame, but only if the values changed
92
	--If player is not moving their mouse, client won't fire events
93
	local HB = game:GetService("RunService").Heartbeat
94
	while true do
95
		if h~=Mouse.Hit or t~=Mouse.Target then
96
			h,t=Mouse.Hit,Mouse.Target
97
			Event:FireServer({isMouse=true,Target=t,Hit=h})
98
		end
99
		--Wait 2 frames
100
		for i=1,2 do
101
			HB:Wait()
102
		end
103
	end]==],script)
104
105
	----Sandboxed game object that allows the usage of client-side methods and services
106
	--Real game object
107
	local RealGame = game
108
109
	--Metatable for fake service
110
	local FakeService_Metatable = {
111
		__index = function(self,k)
112
			local s = rawget(self,"_RealService")
113
			if s then
114
				return typeof(s[k])=="function"
115
				and function(_,...)return s[k](s,...)end or s[k]
116
			end
117
		end,
118
		__newindex = function(self,k,v)
119
			local s = rawget(self,"_RealService")
120
			if s then s[k]=v end
121
		end
122
	}
123
	local function FakeService(t,RealService)
124
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
125
		return setmetatable(t,FakeService_Metatable)
126
	end
127
128
	--Fake game object
129
	local FakeGame = {
130
		GetService = function(self,s)
131
			return rawget(self,s) or RealGame:GetService(s)
132
		end,
133
		Players = FakeService({
134
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
135
		},"Players"),
136
		UserInputService = FakeService(UIS,"UserInputService"),
137
		ContextActionService = FakeService(CAS,"ContextActionService"),
138
		RunService = FakeService({
139
			_btrs = {},
140
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
141
			BindToRenderStep = function(self,name,_,fun)
142
				self._btrs[name] = self.Heartbeat:Connect(fun)
143
			end,
144
			UnbindFromRenderStep = function(self,name)
145
				self._btrs[name]:Disconnect()
146
			end,
147
		},"RunService")
148
	}
149
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
150
	FakeGame.service = FakeGame.GetService
151
	FakeService(FakeGame,game)
152
	--Changing owner to fake player object to support owner:GetMouse()
153
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
154
end
155
156
wait(0.2)
157
158
159
160
Player = game:GetService("Players").LocalPlayer
161
PlayerGui = Player.PlayerGui
162
Cam = workspace.CurrentCamera
163
Backpack = Player.Backpack
164
Character = Player.Character
165
Humanoid = Character.Humanoid
166
Mouse = Player:GetMouse()
167
RootPart = Character["HumanoidRootPart"]
168
Torso = Character["Torso"]
169
Head = Character["Head"]
170
RightArm = Character["Right Arm"]
171
LeftArm = Character["Left Arm"]
172
RightLeg = Character["Right Leg"]
173
LeftLeg = Character["Left Leg"]
174
RootJoint = RootPart["RootJoint"]
175
Neck = Torso["Neck"]
176
RightShoulder = Torso["Right Shoulder"]
177
LeftShoulder = Torso["Left Shoulder"]
178
RightHip = Torso["Right Hip"]
179
LeftHip = Torso["Left Hip"]
180
181
IT = Instance.new
182
CF = CFrame.new
183
VT = Vector3.new
184
RAD = math.rad
185
C3 = Color3.new
186
UD2 = UDim2.new
187
BRICKC = BrickColor.new
188
ANGLES = CFrame.Angles
189
EULER = CFrame.fromEulerAnglesXYZ
190
COS = math.cos
191
ACOS = math.acos
192
SIN = math.sin
193
ASIN = math.asin
194
ABS = math.abs
195
MRANDOM = math.random
196
FLOOR = math.floor
197
198
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
199
	local NEWMESH = IT(MESH)
200
	if MESH == "SpecialMesh" then
201
		NEWMESH.MeshType = MESHTYPE
202
		if MESHID ~= "nil" and MESHID ~= "" then
203
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
204
		end
205
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
206
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
207
		end
208
	end
209
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
210
	NEWMESH.Scale = SCALE
211
	NEWMESH.Parent = PARENT
212
	return NEWMESH
213
end
214
215
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
216
	local NEWPART = IT("Part")
217
	NEWPART.formFactor = FORMFACTOR
218
	NEWPART.Reflectance = REFLECTANCE
219
	NEWPART.Transparency = TRANSPARENCY
220
	NEWPART.CanCollide = false
221
	NEWPART.Locked = true
222
	NEWPART.Anchored = true
223
	if ANCHOR == false then
224
		NEWPART.Anchored = false
225
	end
226
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
227
	NEWPART.Name = NAME
228
	NEWPART.Size = SIZE
229
	NEWPART.Position = Torso.Position
230
	NEWPART.Material = MATERIAL
231
	NEWPART:BreakJoints()
232
	NEWPART.Parent = PARENT
233
	return NEWPART
234
end
235
236
--//=================================\\
237
--||		  CUSTOMIZATION
238
--\\=================================//
239
240
Player_Size = 1 --Size of the player.
241
Animation_Speed = 3
242
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
243
244
local Speed = 16
245
local Effects2 = {}
246
247
--//=================================\\
248
--|| 	  END OF CUSTOMIZATION
249
--\\=================================//
250
251
	local function weldBetween(a, b)
252
	    local weldd = Instance.new("ManualWeld")
253
	    weldd.Part0 = a
254
	    weldd.Part1 = b
255
	    weldd.C0 = CFrame.new()
256
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
257
	    weldd.Parent = a
258
	    return weldd
259
	end
260
261
--//=================================\\
262
--|| 	      USEFUL VALUES
263
--\\=================================//
264
265
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
266
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
267
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
268
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
269
local CHANGEDEFENSE = 0
270
local CHANGEDAMAGE = 0
271
local CHANGEMOVEMENT = 0
272
local ANIM = "Idle"
273
local ATTACK = false
274
local EQUIPPED = false
275
local HOLD = false
276
local COMBO = 1
277
local COMBO2 = 1
278
local Rooted = false
279
local SINE = 0
280
local KEYHOLD = false
281
local NOWALK = false
282
local CHANGE = 2 / Animation_Speed
283
local WALKINGANIM = false
284
local WALK = 0
285
local VALUE1 = false
286
local VALUE2 = false
287
local ROBLOXIDLEANIMATION = IT("Animation")
288
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
289
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
290
--ROBLOXIDLEANIMATION.Parent = Humanoid
291
local WEAPONGUI = IT("ScreenGui", PlayerGui)
292
WEAPONGUI.Name = "Weapon GUI"
293
local Weapon = IT("Model")
294
Weapon.Name = "Adds"
295
local Effects = IT("Folder", Weapon)
296
Effects.Name = "Effects"
297
local ANIMATOR = Humanoid.Animator
298
local ANIMATE = Character.Animate
299
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
300
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
301
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
302
local HITBLOCKSOUNDS = {"199148933", "199148947"}
303
local UNANCHOR = true
304
local FISTS = {}
305
local LIGHT = IT("PointLight",Torso)
306
LIGHT.Range = 10
307
LIGHT.Brightness = 100
308
LIGHT.Color = C3(170/255, 85/255, 0)
309
local SKILL1COOLDOWN = 0
310
local SKILL2COOLDOWN = 0
311
local SKILL3COOLDOWN = 0
312
313
local SKILLTEXTCOLOR = BRICKC"Deep orange".Color
314
315
--//=================================\\
316
--\\=================================//
317
318
319
--//=================================\\
320
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
321
--\\=================================//
322
323
ArtificialHB = Instance.new("BindableEvent", script)
324
ArtificialHB.Name = "ArtificialHB"
325
326
script:WaitForChild("ArtificialHB")
327
328
frame = Frame_Speed
329
tf = 0
330
allowframeloss = false
331
tossremainder = false
332
lastframe = tick()
333
script.ArtificialHB:Fire()
334
335
game:GetService("RunService").Heartbeat:connect(function(s, p)
336
	tf = tf + s
337
	if tf >= frame then
338
		if allowframeloss then
339
			script.ArtificialHB:Fire()
340
			lastframe = tick()
341
		else
342
			for i = 1, math.floor(tf / frame) do
343
				script.ArtificialHB:Fire()
344
			end
345
		lastframe = tick()
346
		end
347
		if tossremainder then
348
			tf = 0
349
		else
350
			tf = tf - frame * math.floor(tf / frame)
351
		end
352
	end
353
end)
354
355
--//=================================\\
356
--\\=================================//
357
358
359
360
361
362
--//=================================\\
363
--|| 	      SOME FUNCTIONS
364
--\\=================================//
365
366
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
367
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
368
end
369
370
function PositiveAngle(NUMBER)
371
	if NUMBER >= 0 then
372
		NUMBER = 0
373
	end
374
	return NUMBER
375
end
376
377
function NegativeAngle(NUMBER)
378
	if NUMBER <= 0 then
379
		NUMBER = 0
380
	end
381
	return NUMBER
382
end
383
384
function Swait(NUMBER)
385
	if NUMBER == 0 or NUMBER == nil then
386
		ArtificialHB.Event:wait()
387
	else
388
		for i = 1, NUMBER do
389
			ArtificialHB.Event:wait()
390
		end
391
	end
392
end
393
394
function QuaternionFromCFrame(cf)
395
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
396
	local trace = m00 + m11 + m22
397
	if trace > 0 then 
398
		local s = math.sqrt(1 + trace)
399
		local recip = 0.5 / s
400
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
401
	else
402
		local i = 0
403
		if m11 > m00 then
404
			i = 1
405
		end
406
		if m22 > (i == 0 and m00 or m11) then
407
			i = 2
408
		end
409
		if i == 0 then
410
			local s = math.sqrt(m00 - m11 - m22 + 1)
411
			local recip = 0.5 / s
412
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
413
		elseif i == 1 then
414
			local s = math.sqrt(m11 - m22 - m00 + 1)
415
			local recip = 0.5 / s
416
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
417
		elseif i == 2 then
418
			local s = math.sqrt(m22 - m00 - m11 + 1)
419
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
420
		end
421
	end
422
end
423
 
424
function QuaternionToCFrame(px, py, pz, x, y, z, w)
425
	local xs, ys, zs = x + x, y + y, z + z
426
	local wx, wy, wz = w * xs, w * ys, w * zs
427
	local xx = x * xs
428
	local xy = x * ys
429
	local xz = x * zs
430
	local yy = y * ys
431
	local yz = y * zs
432
	local zz = z * zs
433
	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))
434
end
435
 
436
function QuaternionSlerp(a, b, t)
437
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
438
	local startInterp, finishInterp;
439
	if cosTheta >= 0.0001 then
440
		if (1 - cosTheta) > 0.0001 then
441
			local theta = ACOS(cosTheta)
442
			local invSinTheta = 1 / SIN(theta)
443
			startInterp = SIN((1 - t) * theta) * invSinTheta
444
			finishInterp = SIN(t * theta) * invSinTheta
445
		else
446
			startInterp = 1 - t
447
			finishInterp = t
448
		end
449
	else
450
		if (1 + cosTheta) > 0.0001 then
451
			local theta = ACOS(-cosTheta)
452
			local invSinTheta = 1 / SIN(theta)
453
			startInterp = SIN((t - 1) * theta) * invSinTheta
454
			finishInterp = SIN(t * theta) * invSinTheta
455
		else
456
			startInterp = t - 1
457
			finishInterp = t
458
		end
459
	end
460
	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
461
end
462
463
function Clerp(a, b, t)
464
	local qa = {QuaternionFromCFrame(a)}
465
	local qb = {QuaternionFromCFrame(b)}
466
	local ax, ay, az = a.x, a.y, a.z
467
	local bx, by, bz = b.x, b.y, b.z
468
	local _t = 1 - t
469
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
470
end
471
472
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
473
	local frame = IT("Frame")
474
	frame.BackgroundTransparency = TRANSPARENCY
475
	frame.BorderSizePixel = BORDERSIZEPIXEL
476
	frame.Position = POSITION
477
	frame.Size = SIZE
478
	frame.BackgroundColor3 = COLOR
479
	frame.BorderColor3 = BORDERCOLOR
480
	frame.Name = NAME
481
	frame.Parent = PARENT
482
	return frame
483
end
484
485
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
486
	local label = IT("TextLabel")
487
	label.BackgroundTransparency = 1
488
	label.Size = UD2(1, 0, 1, 0)
489
	label.Position = UD2(0, 0, 0, 0)
490
	label.TextColor3 = TEXTCOLOR
491
	label.TextStrokeTransparency = STROKETRANSPARENCY
492
	label.TextTransparency = TRANSPARENCY
493
	label.FontSize = TEXTFONTSIZE
494
	label.Font = TEXTFONT
495
	label.BorderSizePixel = BORDERSIZEPIXEL
496
	label.TextScaled = false
497
	label.Text = TEXT
498
	label.Name = NAME
499
	label.Parent = PARENT
500
	return label
501
end
502
503
function NoOutlines(PART)
504
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
505
end
506
507
508
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
509
	local NEWWELD = IT(TYPE)
510
	NEWWELD.Part0 = PART0
511
	NEWWELD.Part1 = PART1
512
	NEWWELD.C0 = C0
513
	NEWWELD.C1 = C1
514
	NEWWELD.Parent = PARENT
515
	return NEWWELD
516
end
517
518
function CreateSound(ID, PARENT, VOLUME, PITCH)
519
	local NEWSOUND = nil
520
	coroutine.resume(coroutine.create(function()
521
		NEWSOUND = IT("Sound", PARENT)
522
		NEWSOUND.Volume = VOLUME
523
		NEWSOUND.Pitch = PITCH
524
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
525
		Swait()
526
		NEWSOUND:play()
527
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
528
	end))
529
	return NEWSOUND
530
end
531
532
function CFrameFromTopBack(at, top, back)
533
	local right = top:Cross(back)
534
	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)
535
end
536
537
function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
538
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
539
	local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
540
	wave.CFrame = CFRAME
541
	coroutine.resume(coroutine.create(function(PART)
542
		for i = 1, WAIT do
543
			Swait()
544
			mesh.Scale = mesh.Scale + GROW
545
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
546
			if DOESROT == true then
547
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
548
			end
549
			wave.Transparency = wave.Transparency + (0.5/WAIT)
550
			if wave.Transparency > 0.99 then
551
				wave:remove()
552
			end
553
		end
554
	end))
555
end
556
557
function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
558
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
559
	local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
560
	wave.CFrame = CFRAME
561
	coroutine.resume(coroutine.create(function(PART)
562
		for i = 1, WAIT do
563
			Swait()
564
			mesh.Scale = mesh.Scale + GROW
565
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
566
			if DOESROT == true then
567
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
568
			end
569
			wave.Transparency = wave.Transparency + (0.5/WAIT)
570
			if wave.Transparency > 0.99 then
571
				wave:remove()
572
			end
573
		end
574
	end))
575
end
576
577
function CreateRing(SIZE,DOESROT,ROT,WAIT,CFRAME,COLOR,GROW)
578
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
579
	local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "559831844", "", SIZE, VT(0,0,0))
580
	wave.CFrame = CFRAME
581
	coroutine.resume(coroutine.create(function(PART)
582
		for i = 1, WAIT do
583
			Swait()
584
			mesh.Scale = mesh.Scale + GROW
585
			if DOESROT == true then
586
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
587
			end
588
			wave.Transparency = wave.Transparency + (0.5/WAIT)
589
			if wave.Transparency > 0.99 then
590
				wave:remove()
591
			end
592
		end
593
	end))
594
end
595
596
function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
597
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1,1,1), true)
598
	local mesh = CreateMesh("SpecialMesh", wave, "Sphere", "", "", SIZE, VT(0,0,0))
599
	wave.CFrame = CFRAME
600
	coroutine.resume(coroutine.create(function(PART)
601
		for i = 1, WAIT do
602
			Swait()
603
			mesh.Scale = mesh.Scale + GROW
604
			wave.Transparency = wave.Transparency + (1/WAIT)
605
			if wave.Transparency > 0.99 then
606
				wave:remove()
607
			end
608
		end
609
	end))
610
end
611
612
function Slice(KIND,SIZE,WAIT,CFRAME,COLOR,GROW)
613
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true)
614
	local mesh = nil
615
	if KIND == "Base" then
616
 		mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
617
	elseif KIND == "Thin" then
618
 		mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662586858", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
619
	elseif KIND == "Round" then
620
 		mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662585058", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
621
	end
622
	wave.CFrame = CFRAME
623
	coroutine.resume(coroutine.create(function(PART)
624
		for i = 1, WAIT do
625
			Swait()
626
			mesh.Scale = mesh.Scale + GROW/10
627
			wave.Transparency = wave.Transparency + (0.5/WAIT)
628
			if wave.Transparency > 0.99 then
629
				wave:remove()
630
			end
631
		end
632
	end))
633
end
634
635
function MakeForm(PART,TYPE)
636
	if TYPE == "Cyl" then
637
		local MSH = IT("CylinderMesh",PART)
638
	elseif TYPE == "Ball" then
639
		local MSH = IT("SpecialMesh",PART)
640
		MSH.MeshType = "Sphere"
641
	elseif TYPE == "Wedge" then
642
		local MSH = IT("SpecialMesh",PART)
643
		MSH.MeshType = "Wedge"
644
	end
645
end
646
647
function CheckTableForString(Table, String)
648
	for i, v in pairs(Table) do
649
		if string.find(string.lower(String), string.lower(v)) then
650
			return true
651
		end
652
	end
653
	return false
654
end
655
656
function CheckIntangible(Hit)
657
	local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
658
	if Hit and Hit.Parent then
659
		if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
660
			return true
661
		end
662
	end
663
	return false
664
end
665
666
Debris = game:GetService("Debris")
667
668
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
669
	local Direction = CFrame.new(StartPos, Vec).lookVector
670
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
671
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
672
	if RayHit and CheckIntangible(RayHit) then
673
		if DelayIfHit then
674
			wait()
675
		end
676
		RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
677
	end
678
	return RayHit, RayPos, RayNormal
679
end
680
681
function turnto(position)
682
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
683
end
684
685
--//=================================\\
686
--||	     WEAPON CREATION
687
--\\=================================//
688
689
local EyeSizes={
690
	NumberSequenceKeypoint.new(0,0.65,0),
691
	NumberSequenceKeypoint.new(0.5,0.7,0),
692
	NumberSequenceKeypoint.new(1,0,0)
693
}
694
local EyeTrans={
695
	NumberSequenceKeypoint.new(0,0,0),
696
	NumberSequenceKeypoint.new(0.5,0,0),
697
	NumberSequenceKeypoint.new(1,1,0)
698
}
699
local PE=Instance.new("ParticleEmitter")
700
PE.LightEmission=.9
701
PE.Color = ColorSequence.new(BRICKC("Deep orange").Color,BRICKC("Really red").Color)
702
PE.Size=NumberSequence.new(EyeSizes)
703
PE.Transparency=NumberSequence.new(EyeTrans)
704
PE.Lifetime=NumberRange.new(0.35)
705
PE.Rotation=NumberRange.new(0,360)
706
PE.Rate=999
707
PE.VelocitySpread = 10000
708
PE.Acceleration = Vector3.new(0,25,0)
709
PE.ZOffset = 0.5
710
PE.Drag = 0
711
PE.Speed = NumberRange.new(0,0,0)
712
PE.Texture="rbxasset://textures/particles/explosion01_implosion_main.dds"
713
PE.Name = "PE"
714
PE.Enabled = true
715
PE.LockedToPart = true
716
717
function fireparticles(art)
718
	local PARTICLES = PE:Clone()
719
	PARTICLES.Parent = art
720
end
721
722
local FIST = CreatePart(3, Weapon, "Neon", 0, 1, "Really black", "Fire", VT(1,0,1),false)
723
FIST.CanCollide = true
724
CreateWeldOrSnapOrMotor("Weld", FIST, RightArm, FIST, CF(0, -1, 0), CF(0, 0.0, 0))
725
fireparticles(FIST)
726
table.insert(FISTS,FIST)
727
728
local FIST = CreatePart(3, Weapon, "Neon", 0, 1, "Really black", "Fire", VT(1,0,1),false)
729
FIST.CanCollide = true
730
CreateWeldOrSnapOrMotor("Weld", FIST, LeftArm, FIST, CF(0, -1, 0), CF(0, 0.0, 0))
731
fireparticles(FIST)
732
table.insert(FISTS,FIST)
733
734
local FIST = CreatePart(3, Weapon, "Neon", 0, 1, "Really black", "Fire", VT(1,0,1),false)
735
FIST.CanCollide = true
736
CreateWeldOrSnapOrMotor("Weld", FIST, RightLeg, FIST, CF(0, -1, 0), CF(0, 0.0, 0))
737
fireparticles(FIST)
738
table.insert(FISTS,FIST)
739
740
local FIST = CreatePart(3, Weapon, "Neon", 0, 1, "Really black", "Fire", VT(1,0,1),false)
741
FIST.CanCollide = true
742
CreateWeldOrSnapOrMotor("Weld", FIST, LeftLeg, FIST, CF(0, -1, 0), CF(0, 0.0, 0))
743
fireparticles(FIST)
744
table.insert(FISTS,FIST)
745
746
for e=1,#FISTS do
747
	if FISTS[e]~=nil then
748
		local Thing=FISTS[e]
749
		if Thing~=nil then
750
			local TOUCHED = Thing.Touched:Connect(function(hit)
751
				if VALUE1 == true and VALUE2 == false then
752
					if hit ~= nil then
753
						if hit.Parent:FindFirstChildOfClass("Humanoid") then
754
							VALUE2 = true
755
							ApplyDamage(hit.Parent:FindFirstChildOfClass("Humanoid"),MRANDOM(5,15),2,2)
756
							CreateSound("131237241", hit, 1, MRANDOM(11,13)/10)
757
							wait(0.15)
758
							VALUE2 = false
759
						end
760
					end
761
				end
762
			end)
763
		end
764
	end
765
end
766
767
for _, c in pairs(Weapon:GetChildren()) do
768
	if c.ClassName == "Part" then
769
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
770
	end
771
end
772
773
Weapon.Parent = Character
774
775
Humanoid.Died:connect(function()
776
	ATTACK = true
777
end)
778
779
local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.23, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
780
local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.50, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
781
local SKILL3FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.23, 0, 0.93, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
782
local SKILL4FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.50, 0, 0.93, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
783
local SKILL5FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.7, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
784
785
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Burning Punches", SKILLTEXTCOLOR, 6, "Fantasy", 0, 2, 0, "Text 1")
786
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Burning Kicks", SKILLTEXTCOLOR, 6, "Fantasy", 0, 2, 0, "Text 2")
787
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Fire Field", SKILLTEXTCOLOR, 6, "Fantasy", 0, 2, 0, "Text 3")
788
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Blazing Dash", SKILLTEXTCOLOR, 6, "Fantasy", 0, 2, 0, "Text 4")
789
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Dancing Inferno", SKILLTEXTCOLOR, 6, "Fantasy", 0, 2, 0, "Text 5")
790
791
--//=================================\\
792
--||	     DAMAGE FUNCTIONS
793
--\\=================================//
794
795
function StatLabel(CFRAME, TEXT, COLOR)
796
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
797
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
798
	local BODYGYRO = IT("BodyGyro", STATPART)
799
	game:GetService("Debris"):AddItem(STATPART ,5)
800
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
801
	BILLBOARDGUI.Adornee = STATPART
802
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
803
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
804
	BILLBOARDGUI.AlwaysOnTop = false
805
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
806
	TEXTLABEL.BackgroundTransparency = 1
807
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
808
	TEXTLABEL.Text = TEXT
809
	TEXTLABEL.Font = "Fantasy"
810
	TEXTLABEL.FontSize="Size42"
811
	TEXTLABEL.TextColor3 = COLOR
812
	TEXTLABEL.TextStrokeTransparency = 0
813
	TEXTLABEL.TextScaled = true
814
	TEXTLABEL.TextWrapped = true
815
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
816
		for i = 1, 50 do
817
			Swait()
818
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
819
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
820
			TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
821
		end
822
		THEPART.Parent = nil
823
	end),STATPART, TEXTLABEL)
824
end
825
826
--//=================================\\
827
--||			DAMAGING
828
--\\=================================//
829
830
function ApplyDamage(Humanoid,Damage,CritRate,CritMultiplier)
831
	local defence = Instance.new("BoolValue",Humanoid.Parent)
832
	defence.Name = ("HitBy"..Player.Name)
833
	game:GetService("Debris"):AddItem(defence, 0.001)
834
	if Humanoid.Health ~= 0 then
835
		local CritChance = MRANDOM(1,100)
836
		if CritChance < CritRate + 1 then
837
			Damage = Damage*CritMultiplier
838
		end
839
		if Damage > Humanoid.Health then
840
			Damage = math.ceil(Humanoid.Health)
841
			if Damage == 0 then
842
				Damage = 0.1
843
			end
844
		end
845
		Humanoid.Health = Humanoid.Health - Damage
846
		if Humanoid.Parent:FindFirstChild("Head") then
847
			if CritChance < CritRate + 1 then
848
				StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), "CRIT//"..Damage, C3(1, 0, 0))
849
			else
850
				StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), Damage, SKILLTEXTCOLOR)
851
			end
852
		end
853
	end
854
end
855
856
function AoEDamage(position,radius,min,max,maxstrength,critrate,critmultiplier,CanBeDodgedByJumping)
857
	local dmg = math.random(min,max)
858
	for i,v in ipairs(workspace:GetChildren()) do
859
	if v:FindFirstChild("HitBy"..Player.Name) == nil then
860
		local body = v:GetChildren()
861
			for part = 1, #body do
862
				if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
863
					if(body[part].Position - position).Magnitude < radius then
864
						if v.ClassName == "Model" then
865
							if v:FindFirstChildOfClass("Humanoid") then
866
								if CanBeDodgedByJumping == true then
867
									if body[part].Position.Y < position.Y+5 then
868
										ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier)
869
									end
870
								else
871
									ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier)
872
								end
873
								local bv = Instance.new("BodyVelocity") 
874
								bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
875
								bv.velocity = CF(position,body[part].Position).lookVector*maxstrength
876
								bv.Parent = body[part]
877
								Debris:AddItem(bv,0.2)
878
							end
879
						end
880
					end
881
				end
882
			end
883
		end
884
		if v:FindFirstChild("HitBy"..Player.Name) then
885
			v:FindFirstChild("HitBy"..Player.Name):remove()
886
		end
887
	end
888
end
889
890
--//=================================\\
891
--||	ATTACK FUNCTIONS AND STUFF
892
--\\=================================//
893
894
function BurningPunches()
895
	ATTACK = true
896
	Rooted = false
897
	for i=0, 0.2, 0.1 / Animation_Speed do
898
		Swait()
899
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
900
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
901
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0+ 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(150), RAD(35), RAD(-5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
902
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0 + 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(130), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
903
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
904
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
905
	end
906
	VALUE1 = true
907
	if COMBO == 1 then
908
		COMBO = 2
909
		CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10)
910
		for i=0, 0.3, 0.1 / Animation_Speed do
911
			Swait()
912
			RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.1)
913
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 2 / Animation_Speed)
914
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(65)), 2 / Animation_Speed)
915
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
916
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(25)) * LEFTSHOULDERC0, 2 / Animation_Speed)
917
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
918
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
919
		end
920
	elseif COMBO == 2 then
921
		COMBO = 1
922
		CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10)
923
		for i=0, 0.3, 0.1 / Animation_Speed do
924
			Swait()
925
			RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.1)
926
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(85)), 2 / Animation_Speed)
927
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-80)), 2 / Animation_Speed)
928
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -1) * ANGLES(RAD(90), RAD(0), RAD(-50)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
929
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
930
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
931
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
932
		end
933
	end
934
	VALUE1 = false
935
	ATTACK = false
936
	Rooted = false
937
end
938
939
function BurningKicks()
940
	ATTACK = true
941
	Rooted = false
942
	VALUE1 = true
943
	NOWALK = true
944
	if COMBO2 == 1 then
945
		COMBO2 = 2
946
		CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10)
947
		for i=0, 0.5, 0.1 / Animation_Speed do
948
			Swait()
949
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-25), RAD(0), RAD(45)), 2 / Animation_Speed)
950
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-45)), 2 / Animation_Speed)
951
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
952
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.5) * ANGLES(RAD(25), RAD(0), RAD(45)) * LEFTSHOULDERC0, 2 / Animation_Speed)
953
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(45), RAD(90), RAD(0)) * ANGLES(RAD(-38), RAD(0), RAD(0)), 2 / Animation_Speed)
954
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
955
		end
956
	elseif COMBO2 == 2 then
957
		COMBO2 = 1
958
		CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10)
959
		for i=0, 0.5, 0.1 / Animation_Speed do
960
			Swait()
961
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-25), RAD(0), RAD(-45)), 2 / Animation_Speed)
962
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(45)), 2 / Animation_Speed)
963
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(25), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
964
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
965
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
966
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(45), RAD(-90), RAD(0)) * ANGLES(RAD(-38), RAD(0), RAD(0)), 2 / Animation_Speed)
967
		end
968
	end
969
	NOWALK = false
970
	VALUE1 = false
971
	ATTACK = false
972
	Rooted = false
973
end
974
975
function FireField()
976
	local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 6 * Player_Size, Character)
977
	if HITFLOOR ~= nil then
978
		ATTACK = true
979
		Rooted = false
980
		for i=0, 1, 0.1 / Animation_Speed do
981
			Swait()
982
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
983
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 2.5 * SIN(SINE / 12)), RAD(-15), RAD(0)), 0.15 / Animation_Speed)
984
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(180), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
985
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
986
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
987
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
988
		end
989
		Rooted = true
990
		CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10)
991
		for i=0, 0.3, 0.1 / Animation_Speed do
992
			Swait()
993
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.8) * ANGLES(RAD(75), RAD(0), RAD(0)), 2 / Animation_Speed)
994
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 2 / Animation_Speed)
995
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -1.2) * ANGLES(RAD(90), RAD(0), RAD(-12)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
996
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
997
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.4) * ANGLES(RAD(65), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)),2  / Animation_Speed)
998
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.3, -0.4) * ANGLES(RAD(65), RAD(-45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
999
		end
1000
		local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 6 * Player_Size, Character)
1001
		MagicSphere(VT(3,3,3),45,CF(HITPOS),SKILLTEXTCOLOR,VT(1,1,1))
1002
		CreateSound("438666542", Torso, 1, MRANDOM(11,13)/10)
1003
		AoEDamage(HITPOS,35,25,30,15,2,2,true)
1004
		AoEDamage(HITPOS,25,15,20,15,2,2,false)
1005
		for i = 1, 7 do
1006
			Slice("Thin",0.4,35,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))*ANGLES(RAD(MRANDOM(-48,48)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-48,48))),"Deep orange",VT(0.1,0,0.1))
1007
			Slice("Round",0.4,45,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(MRANDOM(-180,180)),RAD(0)),"Deep orange",VT(0.1,0,0.1))
1008
		end
1009
		for i=0, 0.7, 0.1 / Animation_Speed do
1010
			Swait()
1011
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.8) * ANGLES(RAD(75), RAD(0), RAD(0)), 2 / Animation_Speed)
1012
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 2 / Animation_Speed)
1013
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -1.2) * ANGLES(RAD(90), RAD(0), RAD(-12)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1014
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1015
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.4) * ANGLES(RAD(65), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)),2  / Animation_Speed)
1016
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.3, -0.4) * ANGLES(RAD(65), RAD(-45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
1017
		end
1018
		ATTACK = false
1019
		Rooted = false
1020
	end
1021
end
1022
1023
function BlazingDash()
1024
	ATTACK = true
1025
	Rooted = true
1026
	MagicSphere(VT(3,3,3),45,CF(Torso.Position),SKILLTEXTCOLOR,VT(1,1,1))
1027
	CreateSound("438666542", Torso, 1, MRANDOM(11,13)/10)
1028
	AoEDamage(Torso.Position,25,15,20,15,2,2,false)
1029
	for i=0, 1, 0.1 / Animation_Speed do
1030
		Swait()
1031
		for e=1,#FISTS do
1032
			if FISTS[e]~=nil then
1033
				local Thing=FISTS[e]
1034
				if Thing~=nil then
1035
					if MRANDOM(1,2) == 1 then
1036
						Slice("Thin",0.4,15,Thing.CFrame*ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),"Deep orange",VT(-0.01,0,-0.01))
1037
					end
1038
				end
1039
			end
1040
		end
1041
		AoEDamage(Torso.Position,15,2,2,15,2,2,false)
1042
		local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 6 * Player_Size, Character)
1043
		if HITFLOOR then
1044
			AoEDamage(Torso.Position,25,1,1,15,2,2,true)
1045
			Slice("Thin",0.4,75,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),"Deep orange",VT(-0.001,0,-0.001))
1046
			Slice("Round",0.4,75,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(MRANDOM(-180,180)),RAD(0)),"Deep orange",VT(-0.01,0,-0.01))
1047
		end
1048
		RootPart.CFrame = RootPart.CFrame * CF(0,0,-4)
1049
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(25), RAD(0), RAD(0)), 2 / Animation_Speed)
1050
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 2 / Animation_Speed)
1051
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1052
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(90)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1053
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(-25), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
1054
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.1) * ANGLES(RAD(-5), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed)
1055
	end
1056
	ATTACK = false
1057
	Rooted = false
1058
end
1059
1060
function DancingInferno()
1061
	ATTACK = true
1062
	Rooted = true
1063
	Humanoid.HipHeight = 2
1064
	local GYRO = IT("BodyGyro",RootPart)
1065
	GYRO.D = 100
1066
	GYRO.P = 2000
1067
	GYRO.MaxTorque = VT(0,4000000,0)
1068
	GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
1069
	local BULLET = CreatePart(3, Effects, "Neon", 0, 0, "Deep orange", "Dancing Inferno", VT(0,0,0))
1070
	MakeForm(BULLET,"Ball")
1071
	CreateSound("463598785", BULLET, 3, MRANDOM(11,13)/10)
1072
	for i=0, 3, 0.1 / Animation_Speed do
1073
		Swait()
1074
		Slice("Thin",0.4,35,Torso.CFrame*CF(0,0,-2)*ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),"Deep orange",VT(-0.01,0,-0.01))
1075
		GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
1076
		BULLET.CFrame = Torso.CFrame * CF(0,0,-2)
1077
		BULLET.Size = BULLET.Size + VT(0.02,0.02,0.02)
1078
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1079
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(25), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1080
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(65), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1081
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.5) * ANGLES(RAD(65), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1082
		RightHip.C0 = Clerp(RightHip.C0, CF(1.6, -1.5, -0.1) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(90), RAD(-5), RAD(40)), 0.2 / Animation_Speed)
1083
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1.6, -1.5, -0.1) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(90), RAD(25), RAD(-35)), 0.2 / Animation_Speed)
1084
	end
1085
	GYRO:remove()
1086
	for i=0, 1, 0.1 / Animation_Speed do
1087
		Swait()
1088
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(25)), 0.2 / Animation_Speed)
1089
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(25), RAD(0), RAD(-25)), 0.2 / Animation_Speed)
1090
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(0), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1091
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1092
		RightHip.C0 = Clerp(RightHip.C0, CF(1.6, -1.5, -0.1) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(90), RAD(-5), RAD(40)), 0.2 / Animation_Speed)
1093
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1.6, -1.5, -0.1) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(90), RAD(25), RAD(-35)), 0.2 / Animation_Speed)
1094
	end
1095
	CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10)
1096
	CreateSound("438666542", BULLET, 3, MRANDOM(11,13)/10)
1097
	local DISTANCE = (RootPart.Position - Mouse.Hit.p).Magnitude
1098
	coroutine.resume(coroutine.create(function()
1099
		local IMPACT = false
1100
		BULLET.CFrame = CF(BULLET.Position,RootPart.CFrame*CF(0,-1,-DISTANCE).p)
1101
		for i = 1, 500 do
1102
			Swait()
1103
			BULLET.CFrame = BULLET.CFrame * CF(0,-0.1,-3)
1104
			CreateRing(VT(1,1,0),false,0,15,BULLET.CFrame * ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),SKILLTEXTCOLOR,VT(-0.12,-0.12,0))
1105
			local HIT = Raycast(BULLET.Position, BULLET.CFrame.lookVector, 4, Character)
1106
			if HIT ~= nil then
1107
				IMPACT = true
1108
				break
1109
			end
1110
			local HIT = Raycast(BULLET.Position, CF(BULLET.Position,BULLET.Position+VT(0,-1,0)).lookVector, 1, Character)
1111
			if HIT ~= nil then
1112
				IMPACT = true
1113
				break
1114
			end
1115
		end
1116
		if IMPACT == false then
1117
			for i = 1, 40 do
1118
				Swait()
1119
				BULLET.Size = BULLET.Size * 0.9
1120
			end
1121
			BULLET:remove()
1122
		else
1123
			local HITFLOOR,HITPOS,NORMAL = Raycast(BULLET.Position+VT(0,1,0), (CF(BULLET.Position, BULLET.Position + VT(0, -1, 0))).lookVector, 6 * Player_Size, Character)
1124
			for i = 1, 8 do
1125
				for i = 1, 55 do
1126
					Swait()
1127
					if HITFLOOR then
1128
						Slice("Thin",2,35,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),"Deep orange",VT(0.001,0,0.001))
1129
						Slice("Round",2,45,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(MRANDOM(-180,180)),RAD(0)),"Deep orange",VT(0,0,0))
1130
					end
1131
					CreateRing(VT(0,0,0),false,0,15,BULLET.CFrame * ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),SKILLTEXTCOLOR,VT(-0.12,-0.12,0))
1132
				end
1133
				AoEDamage(BULLET.Position,45,15,20,0,2,2,false)
1134
				AoEDamage(BULLET.Position,75,5,5,-25,2,2,true)
1135
				for i = 1, 3 do
1136
					MagicSphere(VT(3,3,3),45,CF(BULLET.Position),SKILLTEXTCOLOR,VT(1,1,1))
1137
					MagicSphere(VT(2,2,2),45,CF(BULLET.Position),SKILLTEXTCOLOR,VT(1.1,1.1,1.1))
1138
					CreateSound("438666542", BULLET, 1, MRANDOM(11,13)/10)
1139
					for i = 1, 2 do
1140
						Slice("Thin",0.4,65,CF(BULLET.Position)*ANGLES(RAD(MRANDOM(-48,48)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-48,48))),"Deep orange",VT(0.1,0,0.1))
1141
						if HITFLOOR then
1142
							Slice("Round",0.4,i*12,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(MRANDOM(-180,180)),RAD(0)),"Deep orange",VT(0.1,0,0.1))
1143
						end
1144
					end
1145
				end
1146
			end
1147
			BULLET.Transparency = 1
1148
			Debris:AddItem(BULLET,5)
1149
		end
1150
	end))
1151
	for i=0, 0.3, 0.1 / Animation_Speed do
1152
		Swait()
1153
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-25)), 2 / Animation_Speed)
1154
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(25), RAD(0), RAD(25)), 1.8 / Animation_Speed)
1155
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(0), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1156
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(65)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1157
		RightHip.C0 = Clerp(RightHip.C0, CF(1.6, -1.5, -0.1) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(90), RAD(-5), RAD(40)), 2 / Animation_Speed)
1158
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1.6, -1.5, -0.1) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(90), RAD(25), RAD(-35)), 2 / Animation_Speed)
1159
	end
1160
	Humanoid.HipHeight = 0
1161
	ATTACK = false
1162
	Rooted = false
1163
end
1164
1165
--//=================================\\
1166
--||	  ASSIGN THINGS TO KEYS
1167
--\\=================================//
1168
1169
function MouseDown(Mouse)
1170
	if ATTACK == false then
1171
	end
1172
end
1173
1174
function MouseUp(Mouse)
1175
HOLD = false
1176
end
1177
1178
function KeyDown(Key)
1179
	KEYHOLD = true
1180
	if Key == "z" and ATTACK == false then
1181
		BurningPunches()
1182
	end
1183
1184
	if Key == "b" and ATTACK == false then
1185
		BurningKicks()
1186
	end
1187
1188
	if Key == "c" and ATTACK == false and SKILL1COOLDOWN < 1 then
1189
		FireField()
1190
		SKILL1COOLDOWN = 100
1191
	end
1192
1193
	if Key == "v" and ATTACK == false and SKILL2COOLDOWN < 1 then
1194
		BlazingDash()
1195
		SKILL2COOLDOWN = 150
1196
	end
1197
1198
	if Key == "x" and ATTACK == false and SKILL3COOLDOWN < 1 then
1199
		DancingInferno()
1200
		SKILL3COOLDOWN = 750
1201
	end
1202
end
1203
1204
function KeyUp(Key)
1205
	KEYHOLD = false
1206
end
1207
1208
	Mouse.Button1Down:connect(function(NEWKEY)
1209
		MouseDown(NEWKEY)
1210
	end)
1211
	Mouse.Button1Up:connect(function(NEWKEY)
1212
		MouseUp(NEWKEY)
1213
	end)
1214
	Mouse.KeyDown:connect(function(NEWKEY)
1215
		KeyDown(NEWKEY)
1216
	end)
1217
	Mouse.KeyUp:connect(function(NEWKEY)
1218
		KeyUp(NEWKEY)
1219
	end)
1220
1221
--//=================================\\
1222
--\\=================================//
1223
1224
1225
function unanchor()
1226
	if UNANCHOR == true then
1227
		g = Character:GetChildren()
1228
		for i = 1, #g do
1229
			if g[i].ClassName == "Part" then
1230
				g[i].Anchored = false
1231
			end
1232
		end
1233
	end
1234
end
1235
1236
1237
--//=================================\\
1238
--||	WRAP THE WHOLE SCRIPT UP
1239
--\\=================================//
1240
1241
Humanoid.Changed:connect(function(Jump)
1242
	if Jump == "Jump" and (Disable_Jump == true) then
1243
		Humanoid.Jump = false
1244
	end
1245
end)
1246
1247
while true do
1248
	Swait()
1249
	ANIMATE.Parent = nil
1250
	local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1251
	IDLEANIMATION:Play()
1252
	SINE = SINE + CHANGE
1253
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1254
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1255
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
1256
	local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4+Humanoid.HipHeight * Player_Size, Character)
1257
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1258
	if ANIM == "Walk" and TORSOVELOCITY > 1 and NOWALK == false then
1259
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1260
		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)
1261
		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(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1262
		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(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1263
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) or NOWALK == true then
1264
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1265
		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)
1266
		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)
1267
		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)
1268
	end
1269
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1270
		ANIM = "Jump"
1271
		if ATTACK == false then
1272
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1273
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 * Player_Size, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1274
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1275
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1276
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1277
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1278
	    end
1279
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1280
		ANIM = "Fall"
1281
		if ATTACK == false then
1282
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1283
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1284
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1285
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1286
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1287
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1288
		end
1289
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1290
		ANIM = "Idle"
1291
		if ATTACK == false then
1292
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.15 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(45)), 0.15 / Animation_Speed)
1293
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-45)), 0.15 / Animation_Speed)
1294
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0+ 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(150), RAD(35), RAD(-5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1295
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0 + 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(130), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1296
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1297
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-76), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1298
		end
1299
	elseif (TORSOVELOCITY > 1 and HITFLOOR ~= nil) and NOWALK == false then
1300
		ANIM = "Walk"
1301
		WALK = WALK + 1 / Animation_Speed
1302
		if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
1303
			WALK = 0
1304
			if WALKINGANIM == true then
1305
				WALKINGANIM = false
1306
			elseif WALKINGANIM == false then
1307
				WALKINGANIM = true
1308
			end
1309
		end
1310
		--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)
1311
		--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)
1312
		if ATTACK == false then
1313
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.15 * COS(SINE / 12)) * ANGLES(RAD(5), RAD(0), RAD(25)), 0.15 / Animation_Speed)
1314
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-25)), 0.15 / Animation_Speed)
1315
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0+ 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(150), RAD(35), RAD(-5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1316
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0 + 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(130), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1317
			RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
1318
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.5+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-115), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
1319
		end
1320
	end
1321
	if HITFLOOR ~= nil then
1322
		Slice("Thin",0.4,35,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(0),RAD(0))*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),"Deep orange",VT(0.001,0,0.001))
1323
		Slice("Round",0.4,45,CF(HITPOS+VT(0,0.1,0),HITPOS+VT(0,0.1,0)+NORMAL)*ANGLES(RAD(90),RAD(MRANDOM(-180,180)),RAD(0)),"Deep orange",VT(0,0,0))
1324
	end
1325
	unanchor()
1326
	Humanoid.MaxHealth = "inf"
1327
	Humanoid.Health = "inf"
1328
	if Rooted == false then
1329
		Disable_Jump = false
1330
		Humanoid.WalkSpeed = Speed
1331
	elseif Rooted == true then
1332
		Disable_Jump = true
1333
		Humanoid.WalkSpeed = 0
1334
	end
1335
	if SKILL1COOLDOWN > 0 then
1336
		SKILL1COOLDOWN = SKILL1COOLDOWN - 1
1337
	end
1338
	if SKILL2COOLDOWN > 0 then
1339
		SKILL2COOLDOWN = SKILL2COOLDOWN - 1
1340
	end
1341
	if SKILL3COOLDOWN > 0 then
1342
		SKILL3COOLDOWN = SKILL3COOLDOWN - 1
1343
	end
1344
end
1345
1346
--//=================================\\
1347
--\\=================================//
1348
1349
1350
1351
1352
1353
--//====================================================\\--
1354
--||			  		 END OF SCRIPT
1355
--\\====================================================//--