View difference between Paste ID: BdArcGe1 and LidKRGCS
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player,game,owner = owner,game
3
local RealPlayer = Player
4
do
5
    print("FE Compatibility code by Mokiros")
6
    local rp = RealPlayer
7
    script.Parent = rp.Character
8
   
9
    --RemoteEvent for communicating
10
    local Event = Instance.new("RemoteEvent")
11
    Event.Name = "UserInput_Event"
12
 
13
    --Fake event to make stuff like Mouse.KeyDown work
14
    local function fakeEvent()
15
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
16
        t.connect = t.Connect
17
        return t
18
    end
19
 
20
    --Creating fake input objects with fake variables
21
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
22
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
23
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
24
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
25
    end}
26
    --Merged 2 functions into one by checking amount of arguments
27
    CAS.UnbindAction = CAS.BindAction
28
 
29
    --This function will trigger the events that have been :Connect()'ed
30
    local function te(self,ev,...)
31
        local t = m[ev]
32
        if t and t._fakeEvent then
33
            for _,f in pairs(t.Functions) do
34
                f(...)
35
            end
36
        end
37
    end
38
    m.TrigEvent = te
39
    UIS.TrigEvent = te
40
 
41
    Event.OnServerEvent:Connect(function(plr,io)
42
        if plr~=rp then return end
43
        m.Target = io.Target
44
        m.Hit = io.Hit
45
        if not io.isMouse then
46
            local b = io.UserInputState == Enum.UserInputState.Begin
47
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
            end
50
            if io.UserInputType == Enum.UserInputType.MouseButton2 then
51
                return m:TrigEvent(b and "Button2Down" or "Button2Up")
52
            end
53
            for _,t in pairs(CAS.Actions) do
54
                for _,k in pairs(t.Keys) do
55
                    if k==io.KeyCode then
56
                        t.Function(t.Name,io.UserInputState,io)
57
                    end
58
                end
59
            end
60
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
61
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
62
        end
63
    end)
64
    Event.Parent = NLS([==[
65
    local Player = game:GetService("Players").LocalPlayer
66
    local Event = script:WaitForChild("UserInput_Event")
67
    local Mouse = Player:GetMouse()
68
    local UIS = game:GetService("UserInputService")
69
    local input = function(io,a)
70
        if a then return end
71
        --Since InputObject is a client-side instance, we create and pass table instead
72
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
73
    end
74
    UIS.InputBegan:Connect(input)
75
    UIS.InputEnded:Connect(input)
76
    local h,t
77
    --Give the server mouse data 30 times every second, but only if the values changed
78
    --If player is not moving their mouse, client won't fire events
79
    while wait(1/30) do
80
        if h~=Mouse.Hit or t~=Mouse.Target then
81
            h,t=Mouse.Hit,Mouse.Target
82
            Event:FireServer({isMouse=true,Target=t,Hit=h})
83
        end
84
    end]==],Player.Character)
85
 
86
    ----Sandboxed game object that allows the usage of client-side methods and services
87
    --Real game object
88
    local _rg = game
89
 
90
    --Metatable for fake service
91
    local fsmt = {
92
        __index = function(self,k)
93
            local s = rawget(self,"_RealService")
94
            if s then
95
                return typeof(s[k])=="function"
96
                and function(_,...)return s[k](s,...)end or s[k]
97
            end
98
        end,
99
        __newindex = function(self,k,v)
100
            local s = rawget(self,"_RealService")
101
            if s then s[k]=v end
102
        end
103
    }
104
    local function FakeService(t,RealService)
105
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
106
        return setmetatable(t,fsmt)
107
    end
108
 
109
    --Fake game object
110
    local g = {
111
        GetService = function(self,s)
112
            return rawget(self,s) or _rg:GetService(s)
113
        end,
114
        Players = FakeService({
115
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
116
        },"Players"),
117
        UserInputService = FakeService(UIS,"UserInputService"),
118
        ContextActionService = FakeService(CAS,"ContextActionService"),
119
        RunService = FakeService({
120
            _btrs = {},
121
            RenderStepped = _rg:GetService("RunService").Heartbeat,
122
            BindToRenderStep = function(self,name,_,fun)
123
                self._btrs[name] = self.Heartbeat:Connect(fun)
124
            end,
125
            UnbindFromRenderStep = function(self,name)
126
                self._btrs[name]:Disconnect()
127
            end,
128
        },"RunService")
129
    }
130
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
131
    g.service = g.GetService
132
    FakeService(g,game)
133
    --Changing owner to fake player object to support owner:GetMouse()
134
    game,owner = g,g.Players.LocalPlayer
135
end
136
script.Parent = workspace.CurrentCamera
137
local plr = game:GetService("Players").LocalPlayer
138
--//====================================================\\--
139
--||			   CREATED BY SHACKLUSTER
140
--\\====================================================//--
141
142
143
144
wait(0.2)
145
146
147
148
Player = game:GetService("Players").LocalPlayer
149
PlayerGui = Player.PlayerGui
150
Cam = workspace.CurrentCamera
151
Backpack = Player.Backpack
152
Character = Player.Character
153
Humanoid = Character.Humanoid
154
Mouse = Player:GetMouse()
155
RootPart = Character["HumanoidRootPart"]
156
Torso = Character["Torso"]
157
Head = Character["Head"]
158
RightArm = Character["Right Arm"]
159
LeftArm = Character["Left Arm"]
160
RightLeg = Character["Right Leg"]
161
LeftLeg = Character["Left Leg"]
162
RootJoint = RootPart["RootJoint"]
163
Neck = Torso["Neck"]
164
RightShoulder = Torso["Right Shoulder"]
165
LeftShoulder = Torso["Left Shoulder"]
166
RightHip = Torso["Right Hip"]
167
LeftHip = Torso["Left Hip"]
168
local sick = Instance.new("Sound",Character)
169
sick.SoundId = "rbxassetid://204863573"
170
sick.Looped = true
171
sick.Pitch = 1
172
sick.Volume = 1
173
sick:Play()
174
175
IT = Instance.new
176
CF = CFrame.new
177
VT = Vector3.new
178
RAD = math.rad
179
C3 = Color3.new
180
UD2 = UDim2.new
181
BRICKC = BrickColor.new
182
ANGLES = CFrame.Angles
183
EULER = CFrame.fromEulerAnglesXYZ
184
COS = math.cos
185
ACOS = math.acos
186
SIN = math.sin
187
ASIN = math.asin
188
ABS = math.abs
189
MRANDOM = math.random
190
FLOOR = math.floor
191
192
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
193
	local NEWMESH = IT(MESH)
194
	if MESH == "SpecialMesh" then
195
		NEWMESH.MeshType = MESHTYPE
196
		if MESHID ~= "nil" and MESHID ~= "" then
197
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
198
		end
199
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
200
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
201
		end
202
	end
203
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
204
	NEWMESH.Scale = SCALE
205
	NEWMESH.Parent = PARENT
206
	return NEWMESH
207
end
208
209
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
210
	local NEWPART = IT("Part")
211
	NEWPART.formFactor = FORMFACTOR
212
	NEWPART.Reflectance = REFLECTANCE
213
	NEWPART.Transparency = TRANSPARENCY
214
	NEWPART.CanCollide = false
215
	NEWPART.Locked = true
216
	NEWPART.Anchored = true
217
	if ANCHOR == false then
218
		NEWPART.Anchored = false
219
	end
220
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
221
	NEWPART.Name = NAME
222
	NEWPART.Size = SIZE
223
	NEWPART.Position = Torso.Position
224
	NEWPART.Material = MATERIAL
225
	NEWPART:BreakJoints()
226
	NEWPART.Parent = PARENT
227
	return NEWPART
228
end
229
230
--//=================================\\
231
--||		  CUSTOMIZATION
232
--\\=================================//
233
234
Player_Size = 1 --Size of the player.
235
Animation_Speed = 3
236
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
237
238
local Speed = 16
239
local Effects2 = {}
240
241
--//=================================\\
242
--|| 	  END OF CUSTOMIZATION
243
--\\=================================//
244
245
	local function weldBetween(a, b)
246
	    local weldd = Instance.new("ManualWeld")
247
	    weldd.Part0 = a
248
	    weldd.Part1 = b
249
	    weldd.C0 = CFrame.new()
250
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
251
	    weldd.Parent = a
252
	    return weldd
253
	end
254
255
function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
256
local acs = Instance.new("Part")
257
acs.CanCollide = false
258
acs.Anchored = false
259
acs.Size = Vector3.new(0,0,0)
260
acs.CFrame = attachmentpart.CFrame
261
acs.Parent = Character
262
acs.BrickColor = color
263
    local meshs = Instance.new("SpecialMesh")
264
    meshs.MeshId = mesh
265
    meshs.TextureId = texture
266
    meshs.Parent = acs
267
    meshs.Scale = scale
268
    meshs.Offset = offset
269
weldBetween(attachmentpart,acs)
270
end
271
272
function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
273
if TYPE == "Gem" then
274
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
275
	acs.Anchored = false
276
    acs.CanCollide = false
277
	acs.CFrame = PART.CFrame
278
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
279
weldBetween(PART,acs)
280
elseif TYPE == "Skull" then
281
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
282
	acs.Anchored = false
283
    acs.CanCollide = false
284
	acs.CFrame = PART.CFrame
285
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
286
weldBetween(PART,acs)
287
elseif TYPE == "Eye" then
288
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
289
	acs.Anchored = false
290
    acs.CanCollide = false
291
	acs.CFrame = PART.CFrame
292
	local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
293
weldBetween(PART,acs)
294
end
295
end
296
297
--//=================================\\
298
--|| 	      USEFUL VALUES
299
--\\=================================//
300
301
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
302
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
303
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
304
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
305
local CHANGEDEFENSE = 0
306
local CHANGEDAMAGE = 0
307
local CHANGEMOVEMENT = 0
308
local ANIM = "Idle"
309
local ATTACK = false
310
local EQUIPPED = false
311
local HOLD = false
312
local COMBO = 1
313
local Rooted = false
314
local SINE = 0
315
local KEYHOLD = false
316
local CHANGE = 2 / Animation_Speed
317
local WALKINGANIM = false
318
local WALK = 0
319
local VALUE1 = false
320
local VALUE2 = false
321
local ROBLOXIDLEANIMATION = IT("Animation")
322
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
323
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
324
--ROBLOXIDLEANIMATION.Parent = Humanoid
325
local WEAPONGUI = IT("ScreenGui", PlayerGui)
326
WEAPONGUI.Name = "Weapon GUI"
327
local Weapon = IT("Model")
328
Weapon.Name = "Adds"
329
local Effects = IT("Folder", Weapon)
330
Effects.Name = "Effects"
331
local ANIMATOR = Humanoid.Animator
332
local ANIMATE = Character.Animate
333
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
334
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
335
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
336
local HITBLOCKSOUNDS = {"199148933", "199148947"}
337
local UNANCHOR = true
338
339
local SKILLTEXTCOLOR = BRICKC"Pastel blue-green".Color
340
341
--//=================================\\
342
--\\=================================//
343
344
345
--//=================================\\
346
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
347
--\\=================================//
348
349
ArtificialHB = Instance.new("BindableEvent", script)
350
ArtificialHB.Name = "ArtificialHB"
351
352
script:WaitForChild("ArtificialHB")
353
354
frame = Frame_Speed
355
tf = 0
356
allowframeloss = false
357
tossremainder = false
358
lastframe = tick()
359
script.ArtificialHB:Fire()
360
361
game:GetService("RunService").Heartbeat:connect(function(s, p)
362
	tf = tf + s
363
	if tf >= frame then
364
		if allowframeloss then
365
			script.ArtificialHB:Fire()
366
			lastframe = tick()
367
		else
368
			for i = 1, math.floor(tf / frame) do
369
				script.ArtificialHB:Fire()
370
			end
371
		lastframe = tick()
372
		end
373
		if tossremainder then
374
			tf = 0
375
		else
376
			tf = tf - frame * math.floor(tf / frame)
377
		end
378
	end
379
end)
380
381
--//=================================\\
382
--\\=================================//
383
384
385
386
387
388
--//=================================\\
389
--|| 	      SOME FUNCTIONS
390
--\\=================================//
391
392
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
393
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
394
end
395
396
function PositiveAngle(NUMBER)
397
	if NUMBER >= 0 then
398
		NUMBER = 0
399
	end
400
	return NUMBER
401
end
402
403
function NegativeAngle(NUMBER)
404
	if NUMBER <= 0 then
405
		NUMBER = 0
406
	end
407
	return NUMBER
408
end
409
410
function Swait(NUMBER)
411
	if NUMBER == 0 or NUMBER == nil then
412
		ArtificialHB.Event:wait()
413
	else
414
		for i = 1, NUMBER do
415
			ArtificialHB.Event:wait()
416
		end
417
	end
418
end
419
420
function QuaternionFromCFrame(cf)
421
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
422
	local trace = m00 + m11 + m22
423
	if trace > 0 then 
424
		local s = math.sqrt(1 + trace)
425
		local recip = 0.5 / s
426
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
427
	else
428
		local i = 0
429
		if m11 > m00 then
430
			i = 1
431
		end
432
		if m22 > (i == 0 and m00 or m11) then
433
			i = 2
434
		end
435
		if i == 0 then
436
			local s = math.sqrt(m00 - m11 - m22 + 1)
437
			local recip = 0.5 / s
438
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
439
		elseif i == 1 then
440
			local s = math.sqrt(m11 - m22 - m00 + 1)
441
			local recip = 0.5 / s
442
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
443
		elseif i == 2 then
444
			local s = math.sqrt(m22 - m00 - m11 + 1)
445
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
446
		end
447
	end
448
end
449
 
450
function QuaternionToCFrame(px, py, pz, x, y, z, w)
451
	local xs, ys, zs = x + x, y + y, z + z
452
	local wx, wy, wz = w * xs, w * ys, w * zs
453
	local xx = x * xs
454
	local xy = x * ys
455
	local xz = x * zs
456
	local yy = y * ys
457
	local yz = y * zs
458
	local zz = z * zs
459
	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))
460
end
461
 
462
function QuaternionSlerp(a, b, t)
463
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
464
	local startInterp, finishInterp;
465
	if cosTheta >= 0.0001 then
466
		if (1 - cosTheta) > 0.0001 then
467
			local theta = ACOS(cosTheta)
468
			local invSinTheta = 1 / SIN(theta)
469
			startInterp = SIN((1 - t) * theta) * invSinTheta
470
			finishInterp = SIN(t * theta) * invSinTheta
471
		else
472
			startInterp = 1 - t
473
			finishInterp = t
474
		end
475
	else
476
		if (1 + cosTheta) > 0.0001 then
477
			local theta = ACOS(-cosTheta)
478
			local invSinTheta = 1 / SIN(theta)
479
			startInterp = SIN((t - 1) * theta) * invSinTheta
480
			finishInterp = SIN(t * theta) * invSinTheta
481
		else
482
			startInterp = t - 1
483
			finishInterp = t
484
		end
485
	end
486
	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
487
end
488
489
function Clerp(a, b, t)
490
	local qa = {QuaternionFromCFrame(a)}
491
	local qb = {QuaternionFromCFrame(b)}
492
	local ax, ay, az = a.x, a.y, a.z
493
	local bx, by, bz = b.x, b.y, b.z
494
	local _t = 1 - t
495
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
496
end
497
498
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
499
	local frame = IT("Frame")
500
	frame.BackgroundTransparency = TRANSPARENCY
501
	frame.BorderSizePixel = BORDERSIZEPIXEL
502
	frame.Position = POSITION
503
	frame.Size = SIZE
504
	frame.BackgroundColor3 = COLOR
505
	frame.BorderColor3 = BORDERCOLOR
506
	frame.Name = NAME
507
	frame.Parent = PARENT
508
	return frame
509
end
510
511
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
512
	local label = IT("TextLabel")
513
	label.BackgroundTransparency = 1
514
	label.Size = UD2(1, 0, 1, 0)
515
	label.Position = UD2(0, 0, 0, 0)
516
	label.TextColor3 = TEXTCOLOR
517
	label.TextStrokeTransparency = STROKETRANSPARENCY
518
	label.TextTransparency = TRANSPARENCY
519
	label.FontSize = TEXTFONTSIZE
520
	label.Font = TEXTFONT
521
	label.BorderSizePixel = BORDERSIZEPIXEL
522
	label.TextScaled = false
523
	label.Text = TEXT
524
	label.Name = NAME
525
	label.Parent = PARENT
526
	return label
527
end
528
529
function NoOutlines(PART)
530
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
531
end
532
533
534
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
535
	local NEWWELD = IT(TYPE)
536
	NEWWELD.Part0 = PART0
537
	NEWWELD.Part1 = PART1
538
	NEWWELD.C0 = C0
539
	NEWWELD.C1 = C1
540
	NEWWELD.Parent = PARENT
541
	return NEWWELD
542
end
543
544
function CreateSound(ID, PARENT, VOLUME, PITCH)
545
	local NEWSOUND = nil
546
	coroutine.resume(coroutine.create(function()
547
		NEWSOUND = IT("Sound", PARENT)
548
		NEWSOUND.Volume = VOLUME
549
		NEWSOUND.Pitch = PITCH
550
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
551
		Swait()
552
		NEWSOUND:play()
553
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
554
	end))
555
	return NEWSOUND
556
end
557
558
function CFrameFromTopBack(at, top, back)
559
	local right = top:Cross(back)
560
	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)
561
end
562
563
function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
564
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
565
	local mesh = IT("SpecialMesh",wave)
566
	mesh.MeshType = "FileMesh"
567
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
568
	mesh.Scale = SIZE
569
	mesh.Offset = VT(0,0,-SIZE.X/8)
570
	wave.CFrame = CFRAME
571
	coroutine.resume(coroutine.create(function(PART)
572
		for i = 1, WAIT do
573
			Swait()
574
			mesh.Scale = mesh.Scale + GROW
575
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
576
			if DOESROT == true then
577
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
578
			end
579
			wave.Transparency = wave.Transparency + (0.5/WAIT)
580
			if wave.Transparency > 0.99 then
581
				wave:remove()
582
			end
583
		end
584
	end))
585
end
586
587
function CreateCrown(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
588
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
589
	local mesh = IT("SpecialMesh",wave)
590
	mesh.MeshType = "FileMesh"
591
	mesh.MeshId = "http://www.roblox.com/asset/?id=1078075"
592
	mesh.Scale = SIZE
593
	mesh.Offset = VT(0,0,-SIZE.X/8)
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
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
600
			if DOESROT == true then
601
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
602
			end
603
			wave.Transparency = wave.Transparency + (0.5/WAIT)
604
			if wave.Transparency > 0.99 then
605
				wave:remove()
606
			end
607
		end
608
	end))
609
end
610
611
function CreateIceCrown(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
612
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
613
	local mesh = IT("SpecialMesh",wave)
614
	mesh.MeshType = "FileMesh"
615
	mesh.MeshId = "http://www.roblox.com/asset/?id=1323306"
616
	mesh.Scale = SIZE
617
	mesh.Offset = VT(0,0,-SIZE.X/8)
618
	wave.CFrame = CFRAME
619
	coroutine.resume(coroutine.create(function(PART)
620
		for i = 1, WAIT do
621
			Swait()
622
			mesh.Scale = mesh.Scale + GROW
623
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
624
			if DOESROT == true then
625
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
626
			end
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 CreateSpikeball(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
636
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
637
	local mesh = IT("SpecialMesh",wave)
638
	mesh.MeshType = "FileMesh"
639
	mesh.MeshId = "http://www.roblox.com/asset/?id=9982590"
640
	mesh.Scale = SIZE
641
	mesh.Offset = VT(0,0,-SIZE.X/8)
642
	wave.CFrame = CFRAME
643
	coroutine.resume(coroutine.create(function(PART)
644
		for i = 1, WAIT do
645
			Swait()
646
			mesh.Scale = mesh.Scale + GROW
647
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
648
			if DOESROT == true then
649
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
650
			end
651
			wave.Transparency = wave.Transparency + (0.5/WAIT)
652
			if wave.Transparency > 0.99 then
653
				wave:remove()
654
			end
655
		end
656
	end))
657
end
658
659
function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
660
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
661
	local mesh = IT("SpecialMesh",wave)
662
	mesh.MeshType = "FileMesh"
663
	mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
664
	mesh.Scale = SIZE
665
	wave.CFrame = CFRAME
666
	coroutine.resume(coroutine.create(function(PART)
667
		for i = 1, WAIT do
668
			Swait()
669
			mesh.Scale = mesh.Scale + GROW
670
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
671
			if DOESROT == true then
672
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
673
			end
674
			wave.Transparency = wave.Transparency + (0.5/WAIT)
675
			if wave.Transparency > 0.99 then
676
				wave:remove()
677
			end
678
		end
679
	end))
680
end
681
682
function CreateTornado(SIZE,DOESROT,ROT,WAIT,CFRAME,COLOR,GROW)
683
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
684
	local mesh = IT("SpecialMesh",wave)
685
	mesh.MeshType = "FileMesh"
686
	mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
687
	mesh.Scale = SIZE
688
	wave.CFrame = CFRAME
689
	coroutine.resume(coroutine.create(function(PART)
690
		for i = 1, WAIT do
691
			Swait()
692
			mesh.Scale = mesh.Scale + GROW
693
			if DOESROT == true then
694
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
695
			end
696
			wave.Transparency = wave.Transparency + (0.5/WAIT)
697
			if wave.Transparency > 0.99 then
698
				wave:remove()
699
			end
700
		end
701
	end))
702
end
703
704
function CreateRing(SIZE,DOESROT,ROT,WAIT,CFRAME,COLOR,GROW)
705
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
706
	local mesh = IT("SpecialMesh",wave)
707
	mesh.MeshType = "FileMesh"
708
	mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
709
	mesh.Scale = SIZE
710
	mesh.Offset = VT(0,0,0)
711
	wave.CFrame = CFRAME
712
	coroutine.resume(coroutine.create(function(PART)
713
		for i = 1, WAIT do
714
			Swait()
715
			mesh.Scale = mesh.Scale + GROW
716
			if DOESROT == true then
717
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
718
			end
719
			wave.Transparency = wave.Transparency + (0.5/WAIT)
720
			if wave.Transparency > 0.99 then
721
				wave:remove()
722
			end
723
		end
724
	end))
725
end
726
727
function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
728
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1,1,1), true)
729
	local mesh = IT("SpecialMesh",wave)
730
	mesh.MeshType = "Sphere"
731
	mesh.Scale = SIZE
732
	mesh.Offset = VT(0,0,0)
733
	wave.CFrame = CFRAME
734
	coroutine.resume(coroutine.create(function(PART)
735
		for i = 1, WAIT do
736
			Swait()
737
			mesh.Scale = mesh.Scale + GROW
738
			wave.Transparency = wave.Transparency + (1/WAIT)
739
			if wave.Transparency > 0.99 then
740
				wave:remove()
741
			end
742
		end
743
	end))
744
end
745
746
function MagicBlock(SIZE,WAIT,CFRAME,COLOR,GROW)
747
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(SIZE,SIZE,SIZE), true)
748
	local mesh = IT("BlockMesh",wave)
749
	wave.CFrame = CFRAME
750
	coroutine.resume(coroutine.create(function(PART)
751
		for i = 1, WAIT do
752
			Swait()
753
			mesh.Scale = mesh.Scale + GROW
754
			wave.CFrame = CFRAME * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360)))
755
			wave.Transparency = wave.Transparency + (1/WAIT)
756
			if wave.Transparency > 0.99 then
757
				wave:remove()
758
			end
759
		end
760
	end))
761
end
762
763
function MakeForm(PART,TYPE)
764
	if TYPE == "Cyl" then
765
		local MSH = IT("CylinderMesh",PART)
766
	elseif TYPE == "Ball" then
767
		local MSH = IT("SpecialMesh",PART)
768
		MSH.MeshType = "Sphere"
769
	elseif TYPE == "Wedge" then
770
		local MSH = IT("SpecialMesh",PART)
771
		MSH.MeshType = "Wedge"
772
	elseif TYPE == "Cone" then
773
		local MSH = IT("SpecialMesh",PART)
774
		MSH.MeshType = "FileMesh"
775
		MSH.MeshId = "http://www.roblox.com/asset/?id=785967755"
776
		MSH.Scale = PART.Size/50
777
	end
778
end
779
780
function CheckTableForString(Table, String)
781
	for i, v in pairs(Table) do
782
		if string.find(string.lower(String), string.lower(v)) then
783
			return true
784
		end
785
	end
786
	return false
787
end
788
789
function CheckIntangible(Hit)
790
	local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
791
	if Hit and Hit.Parent then
792
		if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
793
			return true
794
		end
795
	end
796
	return false
797
end
798
799
Debris = game:GetService("Debris")
800
801
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
802
	local Direction = CFrame.new(StartPos, Vec).lookVector
803
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
804
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
805
	if RayHit and CheckIntangible(RayHit) then
806
		if DelayIfHit then
807
			wait()
808
		end
809
		RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
810
	end
811
	return RayHit, RayPos, RayNormal
812
end
813
814
function turnto(position)
815
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
816
end
817
818
--//=================================\\
819
--|| 			SPEECH
820
--\\=================================//
821
822
function chatfunc(text,waitt)
823
local chat = coroutine.wrap(function()
824
if Character:FindFirstChild("TalkingBillBoard")~= nil then
825
Character:FindFirstChild("TalkingBillBoard"):destroy()
826
end
827
local naeeym2 = Instance.new("BillboardGui",Character)
828
naeeym2.Size = UDim2.new(0,100,0,40)
829
naeeym2.StudsOffset = Vector3.new(0,5,0)
830
naeeym2.Adornee = Character.Head
831
naeeym2.Name = "TalkingBillBoard"
832
naeeym2.AlwaysOnTop = true
833
local tecks2 = Instance.new("TextLabel",naeeym2)
834
tecks2.BackgroundTransparency = 1
835
tecks2.BorderSizePixel = 0
836
tecks2.Text = ""
837
tecks2.Font = "SciFi"
838
tecks2.TextSize = 30
839
tecks2.TextStrokeTransparency = 1
840
tecks2.TextColor3 = SKILLTEXTCOLOR
841
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
842
tecks2.Size = UDim2.new(1,0,0.5,0)
843
for i = 1,string.len(text),1 do
844
tecks2.Text = string.sub(text,1,i)
845
Swait()
846
end
847
wait(waitt)
848
coroutine.resume(coroutine.create(function()
849
	for i = 1, 10 do
850
		tecks2.TextTransparency = tecks2.TextTransparency + 0.1
851
		Swait()
852
	end
853
	naeeym2:Destroy()
854
end))
855
end)
856
chat()
857
end
858
859
--//=================================\\
860
--||	     WEAPON CREATION
861
--\\=================================//
862
863
local COLOR = "Pastel blue-green"
864
local COLOR2 = "Really black"
865
866
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(1.01,0.2,1.01),false)
867
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, -0.8, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
868
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(1.005,0.25,1.005),false)
869
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, -0.8, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
870
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(1.01,0.2,1.01),false)
871
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
872
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(1.005,0.25,1.005),false)
873
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
874
875
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(0.6,1.02,0.6),false)
876
MakeForm(part,"Cyl")
877
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, 0, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
878
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(0.7,1.005,0.7),false)
879
MakeForm(part,"Cyl")
880
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, 0, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
881
882
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(0.2,0.7,1.01),false)
883
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
884
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(0.25,0.7,1.005),false)
885
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
886
887
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(0.2,0.7,1.01),false)
888
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0))
889
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(0.25,0.7,1.005),false)
890
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0))
891
892
local part = CreatePart(3, Weapon, "Neon", 0, 0, COLOR, "Gauntlet Part", VT(0.5,0.725,1.0025),false)
893
local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.251, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
894
895
local OFFSET = 0.25
896
897
for i = 1, 2 do
898
	local PART = CreatePart(3, Weapon, "Marble", 0, 1, COLOR, "ClawPart", VT(0,0,0),false)
899
	local weld = CreateWeldOrSnapOrMotor("Weld", PART, RightArm, PART, CF(-0.35, -1.25, 0) * ANGLES(RAD(-90), RAD(0), RAD(0)), CF(0, OFFSET, 0))
900
	for i = 1, 12 do
901
		local RingPiece = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "ClawPart", VT(0.15-(i/120),0.15-(i/120),0.2),false)
902
		local RingWeld = CreateWeldOrSnapOrMotor("Weld", RingPiece, PART, RingPiece, CF(0, 0, 0) * ANGLES(RAD(0), RAD(-35+i*8), RAD(0)), CF(0, 0, 0) * CF(-1, 0, 0))
903
	end
904
	OFFSET = OFFSET - 0.50
905
end
906
907
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(1.01,0.2,1.01),false)
908
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, -0.8, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
909
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(1.005,0.25,1.005),false)
910
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, -0.8, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
911
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(1.01,0.2,1.01),false)
912
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
913
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(1.005,0.25,1.005),false)
914
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
915
916
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(0.6,1.02,0.6),false)
917
MakeForm(part,"Cyl")
918
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, 0, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
919
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(0.7,1.005,0.7),false)
920
MakeForm(part,"Cyl")
921
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, 0, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
922
923
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(0.2,0.7,1.01),false)
924
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
925
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(0.25,0.7,1.005),false)
926
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
927
928
local part = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "Gauntlet Part", VT(0.2,0.7,1.01),false)
929
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0))
930
local part = CreatePart(3, Weapon, "Marble", 0, 0, COLOR2, "Gauntlet Part", VT(0.25,0.7,1.005),false)
931
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0))
932
933
local part = CreatePart(3, Weapon, "Neon", 0, 0, COLOR, "Gauntlet Part", VT(0.5,0.725,1.0025),false)
934
local weld = CreateWeldOrSnapOrMotor("Weld", part, LeftArm, part, CF(-0.251, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
935
936
local CLAW = CreatePart(3, Weapon, "Neon", 0, 1, COLOR, "Grab part", VT(0.2,0.2,0.2),false)
937
local weld = CreateWeldOrSnapOrMotor("Weld", CLAW, RightArm, CLAW, CF(0, -1.2, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
938
939
CLAW.CanCollide = true
940
941
local OFFSET = 0.25
942
943
for i = 1, 2 do
944
	local PART = CreatePart(3, Weapon, "Marble", 0, 1, COLOR, "ClawPart", VT(0,0,0),false)
945
	local weld = CreateWeldOrSnapOrMotor("Weld", PART, LeftArm, PART, CF(0.35, -1.25, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)), CF(0, OFFSET, 0))
946
	for i = 1, 12 do
947
		local RingPiece = CreatePart(3, Weapon, "Ice", 0, 0, COLOR, "ClawPart", VT(0.15-(i/120),0.15-(i/120),0.2),false)
948
		local RingWeld = CreateWeldOrSnapOrMotor("Weld", RingPiece, PART, RingPiece, CF(0, 0, 0) * ANGLES(RAD(0), RAD(-35+i*8), RAD(0)), CF(0, 0, 0) * CF(-1, 0, 0))
949
	end
950
	OFFSET = OFFSET - 0.50
951
end
952
953
for _, c in pairs(Weapon:GetChildren()) do
954
	if c.ClassName == "Part" then
955
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
956
	end
957
end
958
959
Weapon.Parent = Character
960
961
Humanoid.Died:connect(function()
962
	ATTACK = true
963
end)
964
965
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")
966
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")
967
local SKILL3FRAME = 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 3 Frame")
968
local SKILL4FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.9, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
969
970
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Ice wall", SKILLTEXTCOLOR, 6, "Legacy", 0, 2, 1, "Text 1")
971
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Icicle prison", SKILLTEXTCOLOR, 6, "Legacy", 0, 2, 1, "Text 2")
972
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[V] Frozen kingdom", SKILLTEXTCOLOR, 6, "Legacy", 0, 2, 1, "Text 3")
973
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[C] Ice chuck", SKILLTEXTCOLOR, 6, "Legacy", 0, 2, 1, "Text 4")
974
975
--//=================================\\
976
--||	     DAMAGE FUNCTIONS
977
--\\=================================//
978
979
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
980
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
981
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
982
	local BODYGYRO = IT("BodyGyro", STATPART)
983
	local BODYPOSITION = IT("BodyPosition", STATPART)
984
	BODYPOSITION.P = 2000
985
	BODYPOSITION.D = 100
986
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
987
	BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
988
	game:GetService("Debris"):AddItem(STATPART ,5)
989
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
990
	BILLBOARDGUI.Adornee = STATPART
991
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
992
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
993
	BILLBOARDGUI.AlwaysOnTop = false
994
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
995
	TEXTLABEL.BackgroundTransparency = 1
996
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
997
	TEXTLABEL.Text = TEXT
998
	TEXTLABEL.Font = "SciFi"
999
	TEXTLABEL.FontSize="Size42"
1000
	TEXTLABEL.TextColor3 = COLOR
1001
	TEXTLABEL.TextStrokeTransparency = 1
1002
	TEXTLABEL.TextScaled = true
1003
	TEXTLABEL.TextWrapped = true
1004
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
1005
		if LABELTYPE == "Normal" then
1006
			for i = 1, 30 do
1007
				Swait()
1008
				STATPART.Position = STATPART.Position + VT(0, (15-i)/10 ,0)
1009
				TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
1010
			end
1011
		elseif LABELTYPE == "Debuff" then
1012
			for i = 1, 30 do
1013
				Swait()
1014
				STATPART.Position = STATPART.Position - VT(0, i/10 ,0)
1015
				TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
1016
			end
1017
		elseif LABELTYPE == "Shock" then
1018
			local ORIGIN = STATPART.Position
1019
			for i = 1, 30 do
1020
				Swait()
1021
				STATPART.Position = ORIGIN + VT(MRANDOM(-2,2),MRANDOM(-2,2),MRANDOM(-2,2))
1022
				TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
1023
			end
1024
		end
1025
		THEPART.Parent = nil
1026
	end),STATPART, BODYPOSITION, TEXTLABEL)
1027
end
1028
1029
--//=================================\\
1030
--||			DAMAGING
1031
--\\=================================//
1032
1033
function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier)
1034
	if hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then
1035
		local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
1036
		local dmg = math.random(min,max)
1037
		if humanoid.Health > 0 then
1038
			if beserk == true then
1039
				humanoid.Health = 0
1040
			else
1041
				hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength
1042
				if math.random(1,100) < critrate+1 then
1043
					humanoid.Health = humanoid.Health - dmg*critmultiplier
1044
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1045
				else
1046
					humanoid.Health = humanoid.Health - dmg
1047
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(0, 0, 0))
1048
				end
1049
			end
1050
		end
1051
	end
1052
end
1053
1054
function AoEDamage(position,radius,min,max,maxstrength,beserk,critrate,critmultiplier,CanBeDodgedByJumping)
1055
	local dmg = math.random(min,max)
1056
	for i,v in ipairs(workspace:GetChildren()) do
1057
	if v:FindFirstChild("HitBy"..Player.Name) == nil then
1058
		local body = v:GetChildren()
1059
			for part = 1, #body do
1060
				if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1061
					if(body[part].Position - position).Magnitude < radius then
1062
						if v.ClassName == "Model" then
1063
							if v:FindFirstChild("Humanoid") then
1064
								if v.Humanoid.Health ~= 0 then
1065
									if CanBeDodgedByJumping == true then
1066
										if body[part].Position.Y < position.Y+5 then
1067
											if math.random(1,100) < critrate+1 then
1068
												v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1069
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1070
											else
1071
												v.Humanoid.Health = v.Humanoid.Health - dmg
1072
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1073
											end
1074
											local defence = Instance.new("BoolValue",v)
1075
											defence.Name = ("HitBy"..Player.Name)
1076
										end
1077
									else
1078
										if beserk == true then
1079
											v.Humanoid.Health = 0
1080
										end
1081
										if math.random(1,100) < critrate+1 then
1082
											v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
1083
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
1084
										else
1085
											v.Humanoid.Health = v.Humanoid.Health - dmg
1086
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
1087
										end
1088
										local defence = Instance.new("BoolValue",v)
1089
										defence.Name = ("HitBy"..Player.Name)
1090
									end
1091
								end
1092
								body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1093
							end
1094
						end
1095
					end
1096
				end
1097
			end
1098
		end	
1099
		if v:FindFirstChild("HitBy"..Player.Name) then
1100
			v:FindFirstChild("HitBy"..Player.Name):remove()
1101
		end
1102
	end
1103
end
1104
1105
function AoEStun(POS,RANGE,LAST)
1106
	for i,v in ipairs(workspace:GetChildren()) do
1107
	if v:FindFirstChild("StunnedBy"..Player.Name) == nil then
1108
		local body = v:GetChildren()
1109
			for part = 1, #body do
1110
				if(v:FindFirstChild("StunnedBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1111
					if(body[part].Position - POS).Magnitude < RANGE then
1112
						if v.ClassName == "Model" then
1113
							if v:FindFirstChild("Humanoid") then
1114
								if v.Humanoid.Health ~= 0 then
1115
									Freeze(v.Humanoid,LAST)
1116
									local defence = Instance.new("BoolValue",v)
1117
									defence.Name = ("StunnedBy"..Player.Name)
1118
									game:GetService("Debris"):AddItem(defence, 0.1)
1119
								end
1120
							end
1121
						end
1122
					end
1123
				end
1124
			end
1125
		end
1126
	end
1127
end
1128
1129
function Freeze(HUMANOID,LAST)
1130
	if HUMANOID.Parent:FindFirstChild("StunnedBy"..Player.Name) == nil then
1131
		local q = HUMANOID.Parent:GetChildren()
1132
		for i = 1, #q do
1133
			local bob = q[i]
1134
			if bob.ClassName == "Part" or bob.ClassName == "MeshPart" then
1135
				if bob.Transparency < 1 then
1136
					bob.Anchored = true
1137
					local icelayer = bob:Clone()
1138
					icelayer.Parent = bob
1139
					icelayer.Material = "Ice"
1140
					icelayer.CanCollide = false
1141
					icelayer.BrickColor = BRICKC"Steel blue"
1142
					icelayer.Transparency = 0.5
1143
					icelayer.CFrame = bob.CFrame
1144
					icelayer.Name = "Ice"
1145
					icelayer.Size = icelayer.Size + VT(0.1,0.1,0.1)
1146
					if icelayer:FindFirstChildOfClass("Decal") then
1147
						icelayer:FindFirstChildOfClass("Decal"):remove()
1148
					end
1149
				end
1150
			end
1151
		end
1152
		local defence = Instance.new("BoolValue",HUMANOID.Parent)
1153
		defence.Name = ("StunnedBy"..Player.Name)
1154
		game:GetService("Debris"):AddItem(defence, LAST)
1155
		if HUMANOID.Parent:FindFirstChild("Head") then
1156
			StatLabel("Normal", HUMANOID.Parent.Head.CFrame * CF(0, 0 + (HUMANOID.Parent.Head.Size.z - 1), 0), "Frozen!", C3(0.3, 0.3, 0.3))
1157
		end
1158
		coroutine.resume(coroutine.create(function()
1159
			Swait(LAST*50)
1160
			local q = HUMANOID.Parent:GetChildren()
1161
			for i = 1, #q do
1162
				local bob = q[i]
1163
				if bob.ClassName == "Part" or bob.ClassName == "MeshPart" then
1164
					if bob.Transparency < 1 then
1165
						bob.Anchored = false
1166
						bob.Ice:remove()
1167
					end
1168
				end
1169
			end
1170
		end))
1171
	end
1172
end
1173
1174
function killnearest(position,range,maxstrength)
1175
	for i,v in ipairs(workspace:GetChildren()) do
1176
	local body = v:GetChildren()
1177
		for part = 1, #body do
1178
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1179
				if(body[part].Position - position).Magnitude < range then
1180
					if v.ClassName == "Model" then
1181
						v:BreakJoints()
1182
					end
1183
					--table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
1184
					body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1185
				end
1186
			end
1187
		end
1188
		if v.ClassName == "Part" then
1189
			if v.Anchored == false and (v.Position - position).Magnitude < range then
1190
				--table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
1191
				v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1192
			end
1193
		end
1194
	end
1195
end
1196
1197
--//=================================\\
1198
--||	ATTACK FUNCTIONS AND STUFF
1199
--\\=================================//
1200
1201
function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT)
1202
	if FLOOR ~= nil then
1203
		coroutine.resume(coroutine.create(function()
1204
			local PART = CreatePart(3, Effects, "Plastic", 0, 1, "Pearl", "DebreeCenter", VT(0,0,0))
1205
			PART.CFrame = CF(POSITION)
1206
			for i = 1, 45 do
1207
				local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE)
1208
				RingPiece.Material = FLOOR.Material
1209
				RingPiece.Color = FLOOR.Color
1210
				RingPiece.CFrame = PART.CFrame * ANGLES(RAD(0), RAD(i*8), RAD(0)) * CF(SIZE*4, 0, 0) * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
1211
				coroutine.resume(coroutine.create(function()
1212
					Swait(SWAIT)
1213
					RingPiece.Anchored = false
1214
				end))
1215
			end
1216
			PART:remove()
1217
		end))
1218
	end
1219
end
1220
1221
function Strike()
1222
	ATTACK = true
1223
	Rooted = false
1224
	for i=0, 0.3, 0.1 / Animation_Speed do
1225
		Swait()
1226
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1227
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1228
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(25), RAD(-45), RAD(45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1229
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(25), RAD(45), RAD(-45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1230
		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.5 / Animation_Speed)
1231
		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.5 / Animation_Speed)
1232
	end
1233
	for i=0, 0.1, 0.1 / Animation_Speed do
1234
		Swait()
1235
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1236
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1237
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(120), RAD(-45), RAD(-45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1238
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(120), RAD(45), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1239
		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.5 / Animation_Speed)
1240
		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.5 / Animation_Speed)
1241
	end
1242
	AoEDamage(RootPart.CFrame*CF(0,0,-2).p,3,25,35,5,false,2,2,false)
1243
	for i=0, 0.2, 0.1 / Animation_Speed do
1244
		Swait()
1245
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1246
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1247
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(120), RAD(-45), RAD(-45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1248
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(120), RAD(45), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1249
		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.5 / Animation_Speed)
1250
		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.5 / Animation_Speed)
1251
	end
1252
	ATTACK = false
1253
	Rooted = false
1254
end
1255
1256
function IceWall()
1257
	ATTACK = true
1258
	Rooted = true
1259
	local IceMaterializeSounds = {
1260
	  "333476017",
1261
	  "333475981",
1262
	  "333475957",
1263
	  "333475929"
1264
	}
1265
	for i=0, 2, 0.1 / Animation_Speed do
1266
		Swait()
1267
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(45)), 0.5 / Animation_Speed)
1268
		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.5 / Animation_Speed)
1269
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1270
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1271
		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.5 / Animation_Speed)
1272
		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.5 / Animation_Speed)
1273
	end
1274
	coroutine.resume(coroutine.create(function()
1275
		local POS = RootPart.CFrame * CF(0,0,-5)
1276
		local OFFSET = 0.1
1277
		local WallPiece = CreatePart(3, Effects, "Ice", 0, 0.75, COLOR, "Ice", VT(5,75,5))
1278
		WallPiece.CFrame = POS
1279
		AoEDamage(WallPiece.Position,6,3,4,5,false,2,2,false)
1280
		CreateSound(IceMaterializeSounds[MRANDOM(1,#IceMaterializeSounds)], WallPiece, 3, 1)
1281
		WallPiece.CanCollide = true
1282
		coroutine.resume(coroutine.create(function()
1283
			Swait(150)
1284
			WallPiece.Anchored = false
1285
			WallPiece.CanCollide = false
1286
		end))
1287
		for i = 1, 2 do
1288
			coroutine.resume(coroutine.create(function()
1289
				local OFF = OFFSET
1290
				for i = 1, 30 do
1291
					Swait()
1292
					local WallPiece = CreatePart(3, Effects, "Ice", 0, 0.75, COLOR, "Ice", VT(5,75,5))
1293
					WallPiece.CanCollide = true
1294
					WallPiece.CFrame = POS*CF(OFF*(i*10),0,0)
1295
					coroutine.resume(coroutine.create(function()
1296
						Swait(150-i*1.3)
1297
						WallPiece.Anchored = false
1298
						WallPiece.CanCollide = false
1299
					end))
1300
					AoEDamage(WallPiece.Position,6,3,4,5,false,2,2,false)
1301
				end
1302
			end))
1303
			OFFSET = OFFSET - 0.2
1304
		end
1305
	end))
1306
	for i=0, 2, 0.1 / Animation_Speed do
1307
		Swait()
1308
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 0.5 / Animation_Speed)
1309
		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.5 / Animation_Speed)
1310
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(20), RAD(45), RAD(45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1311
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1312
		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.5 / Animation_Speed)
1313
		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.5 / Animation_Speed)
1314
	end
1315
	ATTACK = false
1316
	Rooted = false
1317
end
1318
1319
function IciclePrison()
1320
	ATTACK = true
1321
	Rooted = false
1322
	local IceMaterializeSounds = {
1323
	  "333476017",
1324
	  "333475981",
1325
	  "333475957",
1326
	  "333475929"
1327
	}
1328
	for i=0, 1, 0.1 / Animation_Speed do
1329
		Swait()
1330
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 0.15 / Animation_Speed)
1331
		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.1 / Animation_Speed)
1332
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1333
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1334
		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(15), RAD(0)), 0.15 / Animation_Speed)
1335
		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(15), RAD(0)), 0.15 / Animation_Speed)
1336
	end
1337
	local WELD = nil
1338
	local TORS = nil
1339
	local GRABBED = nil
1340
	CreateSound("588738712", RightArm, 3, 1)
1341
	local HIT1 = CLAW.Touched:Connect(function(hit)
1342
		if hit.Anchored == false and hit.Parent:FindFirstChildOfClass("Humanoid") then
1343
			TORS = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso")
1344
			if TORS ~= nil then
1345
				VALUE1 = true
1346
				hit.Parent:FindFirstChildOfClass("Humanoid").PlatformStand = true
1347
				CreateSound("233856097", RightArm, 3, 1)
1348
				--CLAW.CanCollide = false
1349
				GRABBED = hit.Parent
1350
				WELD = CreateWeldOrSnapOrMotor("Weld", CLAW, CLAW, TORS, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(0)), CF(0, 0, 0))
1351
			end
1352
		end
1353
	end)
1354
	for i=0, 0.8, 0.1 / Animation_Speed do
1355
		Swait()
1356
		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)
1357
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-85)), 2 / Animation_Speed)
1358
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(75)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1359
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1360
		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(-26), RAD(0)), 2 / Animation_Speed)
1361
		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(26), RAD(0)), 2 / Animation_Speed)
1362
		if VALUE1 == true then
1363
			break
1364
		end
1365
	end
1366
	HIT1:disconnect()
1367
	if GRABBED ~= nil then
1368
		Rooted = true
1369
		VALUE1 = false
1370
		for i=0, 2, 0.1 / Animation_Speed do
1371
			Swait()
1372
			MagicSphere(VT(0.2,0.2,0.2),15,CF(RightArm.CFrame*CF(MRANDOM(-5,5),MRANDOM(-10,-5),MRANDOM(-5,5)).p,RightArm.Position),COLOR,VT(0.001,0.001,1),0)
1373
			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)
1374
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-85)), 2 / Animation_Speed)
1375
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(75)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
1376
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed)
1377
			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(-26), RAD(0)), 2 / Animation_Speed)
1378
			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(26), RAD(0)), 2 / Animation_Speed)
1379
		end
1380
		WELD:remove()
1381
		TORS.Anchored = true
1382
		local ICICLE = CreatePart(3, Effects, "Ice", 0, 0.25, COLOR, "Ice", VT(10,25,10))
1383
		ICICLE.CFrame = CF(TORS.Position)
1384
		MakeForm(ICICLE,"Cone")
1385
		CreateDebreeRing(ICICLE,TORS.Position+VT(0,-5,0),0.7,VT(4,4,4),70*5)
1386
		CreateDebreeRing(ICICLE,TORS.Position+VT(0,-5,0),0.4,VT(6,6,6),70*5)
1387
		CreateSound(IceMaterializeSounds[MRANDOM(1,#IceMaterializeSounds)], ICICLE, 3, 1)
1388
		coroutine.resume(coroutine.create(function()
1389
			for i = 1, 70 do
1390
				Swait(5)
1391
				dealdamage(TORS,1,1,0,false,0,0)
1392
			end
1393
			GRABBED:FindFirstChildOfClass("Humanoid").PlatformStand = false
1394
			ICICLE.Anchored = false
1395
			TORS.Anchored = false
1396
		end))
1397
	end
1398
	ATTACK = false
1399
	Rooted = false
1400
end
1401
1402
function FireArc(Part,ToLocation,AmountOfTime,Height,DoesCourontine)
1403
	if DoesCourontine == false then
1404
		local Direction = CF(Part.Position,ToLocation)
1405
		local Distance = (Part.Position - ToLocation).magnitude
1406
		for i = 1, AmountOfTime do
1407
			Swait()
1408
			Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
1409
			Direction = Part.CFrame
1410
		end
1411
	elseif DoesCourontine == true then
1412
		coroutine.resume(coroutine.create(function()
1413
			local Direction = CF(Part.Position,ToLocation)
1414
			local Distance = (Part.Position - ToLocation).magnitude
1415
			for i = 1, AmountOfTime do
1416
				Swait()
1417
				Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
1418
				Direction = Part.CFrame
1419
			end
1420
		end))
1421
	end
1422
end
1423
1424
function Trail(Part)
1425
	local TRAIL = Part:Clone()
1426
	TRAIL.CanCollide = false
1427
	TRAIL.Anchored = true
1428
	TRAIL.Parent = Effects
1429
	TRAIL.Name = "Trail"
1430
	local TRANS = Part.Transparency
1431
	coroutine.resume(coroutine.create(function()
1432
		for i = 1, 20 do
1433
			Swait()
1434
			TRAIL.Transparency = TRAIL.Transparency + ((1-TRANS)/20)
1435
		end
1436
		TRAIL:remove()
1437
	end))
1438
end
1439
1440
function IceChuck()
1441
	local IceMaterializeSounds = {
1442
	  "333476017",
1443
	  "333475981",
1444
	  "333475957",
1445
	  "333475929"
1446
	}
1447
	ATTACK = true
1448
	Rooted = true
1449
	for i=0, 0.6, 0.1 / Animation_Speed do
1450
		Swait()
1451
		turnto(Mouse.Hit.p)
1452
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.5 / Animation_Speed)
1453
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), 0.5 / Animation_Speed)
1454
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1455
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1456
		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.5 / Animation_Speed)
1457
		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.5 / Animation_Speed)
1458
	end
1459
	local GEM = CreatePart(3, Effects, "Ice", 0, 0.25, COLOR, "Ice", VT(2,2,2))
1460
	CreateMesh("SpecialMesh", GEM, "FileMesh", "9756362", "", VT(2,2,2), VT(0,0,0))
1461
	GEM.CFrame = CF(RightArm.CFrame*CF(0,-1.3,0).p)
1462
	MagicSphere(GEM.Size,35,GEM.CFrame,COLOR,VT(0.1,0.1,0.1))
1463
	CreateSound(IceMaterializeSounds[MRANDOM(1,#IceMaterializeSounds)], RootPart, 3, 1.3)
1464
	coroutine.resume(coroutine.create(function()
1465
		repeat 
1466
			Swait()
1467
			Trail(GEM)
1468
		until GEM.Parent == nil
1469
	end))
1470
	coroutine.resume(coroutine.create(function()
1471
		FireArc(GEM,Mouse.Hit.p,30,30,false)
1472
		MagicSphere(GEM.Size,35,GEM.CFrame,COLOR,VT(1,1,1))
1473
		MagicSphere(GEM.Size,35,GEM.CFrame,COLOR,VT(0.75,0.75,0.75))
1474
		MagicSphere(GEM.Size,35,GEM.CFrame,COLOR,VT(0.5,0.5,0.5))
1475
		CreateDebreeRing(GEM,GEM.Position+VT(0,0,0),1.5,VT(1,1,1),35)
1476
		AoEDamage(GEM.Position,15,25,54,5,false,2,2,false)
1477
		AoEStun(GEM.Position,5,2)
1478
		GEM.Parent = nil
1479
	end))
1480
	for i=0, 0.6, 0.1 / Animation_Speed do
1481
		Swait()
1482
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-35)), 0.5 / Animation_Speed)
1483
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(35)), 0.5 / Animation_Speed)
1484
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1485
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1486
		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.5 / Animation_Speed)
1487
		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.5 / Animation_Speed)
1488
	end
1489
	ATTACK = false
1490
	Rooted = false
1491
end
1492
1493
function FrozenKingdom()
1494
	ATTACK = true
1495
	Rooted = false
1496
	for i=0, 2, 0.1 / Animation_Speed do
1497
		Swait()
1498
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1499
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1500
		--PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.13,0.24,-0.58) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1501
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.75, -0.5) * ANGLES(RAD(35), RAD(0), RAD(-65)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1502
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.75, -0.5) * ANGLES(RAD(35), RAD(0), RAD(65)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1503
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1504
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1505
	end
1506
	for i=0, 0.5, 0.1 / Animation_Speed do
1507
		Swait()
1508
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0.2, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1509
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1510
		--PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.13,0.27,-0.58) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1511
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75,0) * ANGLES(RAD(0), RAD(0), RAD(85)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1512
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.75, 0) * ANGLES(RAD(0), RAD(0), RAD(-85)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1513
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(-15)), 0.5 / Animation_Speed)
1514
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(15)), 0.5 / Animation_Speed)
1515
	end
1516
	local IceMaterializeSounds = {
1517
	  "333476017",
1518
	  "333475981",
1519
	  "333475957",
1520
	  "333475929"
1521
	}
1522
	local ICICLE = CreatePart(3, Effects, "Ice", 0, 0.25, COLOR, "Ice", VT(10,25,10))
1523
	MakeForm(ICICLE,"Cone")
1524
	ICICLE.CFrame = CF(Torso.Position)
1525
	CreateDebreeRing(ICICLE,Torso.Position+VT(0,-4,0),1,VT(6,6,6),70*5)
1526
	CreateSound(IceMaterializeSounds[MRANDOM(1,#IceMaterializeSounds)], ICICLE, 3, 1)
1527
	AoEDamage(Torso.Position,2,3,4,5,false,2,2,false)
1528
	AoEStun(Torso.Position,2,5)
1529
	for i = 1, 8 do
1530
		Swait(50)
1531
		CreateSound("231917750", ICICLE, 3, 1)
1532
		CreateSound(IceMaterializeSounds[MRANDOM(1,#IceMaterializeSounds)], ICICLE, 3, 1)
1533
		AoEDamage(Torso.Position,i*10,4,12,5,false,2,2,false)
1534
		AoEStun(Torso.Position,i*10,15)
1535
		ICICLE.Size = ICICLE.Size + VT(5,5,5)
1536
		ICICLE.Mesh.Scale = ICICLE.Size/50
1537
		MagicSphere(ICICLE.Size,35,ICICLE.CFrame,COLOR,VT(0.6,0.6,0.6))
1538
		local ICICLE = CreatePart(3, Effects, "Ice", 0, 0.25, COLOR, "Ice", VT(10,25,10))
1539
		MakeForm(ICICLE,"Cone")
1540
		ICICLE.CFrame = CF(Torso.Position)*CF(MRANDOM(-10,10)*i/3,0,MRANDOM(-10,10)*i/3)*ANGLES(RAD(MRANDOM(-15,15)),RAD(MRANDOM(-15,15)),RAD(MRANDOM(-15,15)))
1541
		coroutine.resume(coroutine.create(function()
1542
			Swait(400-(50*i))
1543
			ICICLE.Anchored = false
1544
		end))
1545
		MagicSphere(ICICLE.Size,35,ICICLE.CFrame,COLOR,VT(0.3,0.3,0.3))
1546
		CreateDebreeRing(ICICLE,Torso.Position+VT(0,-4,0),i+1,VT(6+i,6+i,6+i),400-(50*i))
1547
		CreateSound(IceMaterializeSounds[MRANDOM(1,#IceMaterializeSounds)], ICICLE, 3, 1)
1548
	end
1549
	ICICLE.Anchored = false
1550
	ATTACK = false
1551
	Rooted = false
1552
end
1553
1554
function Taunt()
1555
	local IceMaterializeSounds = {
1556
	  "333476017",
1557
	  "333475981",
1558
	  "333475957",
1559
	  "333475929"
1560
	}
1561
	ATTACK = true
1562
	Rooted = true
1563
	CreateSound("649634100", Head, 10, 0.8)
1564
	for i=0, 0.55, 0.1 / Animation_Speed do
1565
		Swait()
1566
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1567
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1568
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-45), RAD(-25)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1569
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1570
		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.5 / Animation_Speed)
1571
		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.5 / Animation_Speed)
1572
	end
1573
	local GEM = CreatePart(3, Effects, "Ice", 0, 0.25, COLOR, "Ice", VT(0.3,0.6,0.3))
1574
	CreateMesh("SpecialMesh", GEM, "FileMesh", "9756362", "", VT(0.6,01.2,0.6), VT(0,0,0))
1575
	GEM.CFrame = CF(RightArm.CFrame*CF(0,-1.3,0).p+VT(0,1,0))
1576
	MagicSphere(GEM.Size,35,GEM.CFrame,COLOR,VT(0.1,0.1,0.1))
1577
	CreateSound(IceMaterializeSounds[MRANDOM(1,#IceMaterializeSounds)], GEM, 3, 1)
1578
	for i=0, 5, 0.1 / Animation_Speed do
1579
		Swait()
1580
		GEM.CFrame = GEM.CFrame * ANGLES(RAD(0),RAD(5),RAD(0))
1581
		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)
1582
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1583
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-45), RAD(-25)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1584
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1585
		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)
1586
		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)
1587
	end
1588
	MagicSphere(GEM.Size,35,GEM.CFrame,COLOR,VT(0.1,0.1,0.1))
1589
	GEM:remove()
1590
	ATTACK = false
1591
	Rooted = false
1592
end
1593
1594
--//=================================\\
1595
--||	  ASSIGN THINGS TO KEYS
1596
--\\=================================//
1597
1598
function MouseDown(Mouse)
1599
	if ATTACK == false then
1600
		Strike()
1601
	end
1602
end
1603
1604
function MouseUp(Mouse)
1605
HOLD = false
1606
end
1607
1608
function KeyDown(Key)
1609
	KEYHOLD = true
1610
	if Key == "z" and ATTACK == false then
1611
		IceWall()
1612
	end
1613
1614
	if Key == "b" and ATTACK == false then
1615
		IciclePrison()
1616
	end
1617
1618
	if Key == "c" and ATTACK == false then
1619
		IceChuck()
1620
	end
1621
1622
	if Key == "v" and ATTACK == false then
1623
		FrozenKingdom()
1624
	end
1625
1626
	if Key == "t" and ATTACK == false then
1627
		Taunt()
1628
	end
1629
end
1630
1631
function KeyUp(Key)
1632
	KEYHOLD = false
1633
end
1634
1635
	Mouse.Button1Down:connect(function(NEWKEY)
1636
		MouseDown(NEWKEY)
1637
	end)
1638
	Mouse.Button1Up:connect(function(NEWKEY)
1639
		MouseUp(NEWKEY)
1640
	end)
1641
	Mouse.KeyDown:connect(function(NEWKEY)
1642
		KeyDown(NEWKEY)
1643
	end)
1644
	Mouse.KeyUp:connect(function(NEWKEY)
1645
		KeyUp(NEWKEY)
1646
	end)
1647
1648
--//=================================\\
1649
--\\=================================//
1650
1651
1652
function unanchor()
1653
	if UNANCHOR == true then
1654
		g = Character:GetChildren()
1655
		for i = 1, #g do
1656
			if g[i].ClassName == "Part" then
1657
				g[i].Anchored = false
1658
			end
1659
		end
1660
	end
1661
end
1662
1663
1664
--//=================================\\
1665
--||	WRAP THE WHOLE SCRIPT UP
1666
--\\=================================//
1667
1668
Humanoid.Changed:connect(function(Jump)
1669
	if Jump == "Jump" and (Disable_Jump == true) then
1670
		Humanoid.Jump = false
1671
	end
1672
end)
1673
1674
while true do
1675
	Swait()
1676
	ANIMATE.Parent = nil
1677
	local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1678
	IDLEANIMATION:Play()
1679
	SINE = SINE + CHANGE
1680
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1681
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1682
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
1683
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
1684
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1685
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
1686
		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)
1687
		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)
1688
		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)
1689
		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)
1690
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1691
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1692
		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)
1693
		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)
1694
		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)
1695
	end
1696
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1697
		ANIM = "Jump"
1698
		if ATTACK == false then
1699
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1700
			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)
1701
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1702
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1703
			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)
1704
			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)
1705
	       end
1706
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1707
		ANIM = "Fall"
1708
		if ATTACK == false then
1709
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1710
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1711
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
1712
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1713
			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)
1714
			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)
1715
		end
1716
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1717
		ANIM = "Idle"
1718
		if ATTACK == false then
1719
			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)
1720
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1721
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1722
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1723
			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)
1724
			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)
1725
		end
1726
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1727
		ANIM = "Walk"
1728
		WALK = WALK + 1 / Animation_Speed
1729
		if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
1730
			WALK = 0
1731
			if WALKINGANIM == true then
1732
				WALKINGANIM = false
1733
			elseif WALKINGANIM == false then
1734
				WALKINGANIM = true
1735
			end
1736
		end
1737
		--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)
1738
		--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)
1739
		if ATTACK == false then
1740
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1741
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 8 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1742
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(30 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1743
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-30 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1744
			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(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
1745
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
1746
		end
1747
	end
1748
	unanchor()
1749
	Humanoid.MaxHealth = "inf"
1750
	Humanoid.Health = "inf"
1751
	if Rooted == false then
1752
		Disable_Jump = false
1753
		Humanoid.WalkSpeed = Speed
1754
	elseif Rooted == true then
1755
		Disable_Jump = true
1756
		Humanoid.WalkSpeed = 0
1757
	end
1758
end
1759
1760
--//=================================\\
1761
--\\=================================//
1762
1763
1764
1765
1766
1767
--//====================================================\\--
1768
--||			  		 END OF SCRIPT
1769
--\\====================================================//--