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