View difference between Paste ID: Ccbu0X19 and A17646xT
SHOW: | | - or go back to the newest paste.
1
--https://github.com/Mokiros/roblox-FE-compatibility
2
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
3
local Player,game,owner = owner,game
4
local RealPlayer = Player
5
do print("FE Compatibility code V2 by Mokiros")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end --//====================================================\\--
6
--||			   CREATED BY SHACKLUSTER
7
--\\====================================================//--
8
9
10
11
wait(1)
12
13
14
15
Player = game:GetService("Players").LocalPlayer
16
PlayerGui = Player.PlayerGui
17
Cam = workspace.CurrentCamera
18
Backpack = Player.Backpack
19
Character = Player.Character
20
Humanoid = Character.Humanoid
21
Mouse = Player:GetMouse()
22
RootPart = Character["HumanoidRootPart"]
23
Torso = Character["Torso"]
24
Head = Character["Head"]
25
RightArm = Character["Right Arm"]
26
LeftArm = Character["Left Arm"]
27
RightLeg = Character["Right Leg"]
28
LeftLeg = Character["Left Leg"]
29
RootJoint = RootPart["RootJoint"]
30
Neck = Torso["Neck"]
31
RightShoulder = Torso["Right Shoulder"]
32-
sick.SoundId = "rbxassetid://187429740"
32+
33
RightHip = Torso["Right Hip"]
34
LeftHip = Torso["Left Hip"]
35
local sick = Instance.new("Sound",Character)
36
sick.SoundId = "rbxassetid://676779397"
37
sick.Looped = true
38
sick.Pitch = 1
39
sick.Volume = 1
40
sick:Play()
41
Head:ClearAllChildren()
42
43-
tor.MeshId = "36780113"
43+
44-
tor.OverlayTextureId = "494636944"
44+
45
tor.Name = "Bones"
46
tor.BodyPart = "Torso"
47
tor.MeshId = "2574099999"
48
tor.OverlayTextureId = "2574100022"
49
50-
tor.MeshId = "36780079"
50+
51-
tor.OverlayTextureId = "494636944"
51+
52
tor.Name = "Bones"
53
tor.BodyPart = "LeftLeg"
54
tor.MeshId = "2574099999"
55
tor.OverlayTextureId = "2574100022"
56
57-
tor.MeshId = "36780195"
57+
58-
tor.OverlayTextureId = "494636944"
58+
59
tor.Name = "Bones"
60
tor.BodyPart = "RightLeg"
61
tor.MeshId = "2574099999"
62
tor.OverlayTextureId = "2574100022"
63
64-
tor.MeshId = "36780156"
64+
65-
tor.OverlayTextureId = "494636944"
65+
66
tor.Name = "Bones"
67
tor.BodyPart = "RightArm"
68
tor.MeshId = "2574099999"
69
tor.OverlayTextureId = "2574100022"
70
71-
tor.MeshId = "36780032"
71+
72-
tor.OverlayTextureId = "494636944"
72+
73
tor.Name = "Bones"
74
tor.BodyPart = "LeftArm"
75
tor.MeshId = "2574099999"
76
tor.OverlayTextureId = "2574100022"
77-
tor.MeshId = "http://www.roblox.com/asset/?id=181343290"
77+
78-
tor.TextureId = "rbxassetid://494637850"
78+
79
tor.Scale = Vector3.new(1,1,1)
80
tor.MeshType = "FileMesh"
81
tor.MeshId = "http://www.roblox.com/asset/?id=2574099999"
82
tor.TextureId = "rbxassetid://2574100022"
83
tor.Parent = Head
84
85
local naeeym2 = Instance.new("BillboardGui",Character)
86
naeeym2.AlwaysOnTop = true
87
naeeym2.Size = UDim2.new(5,35,2,35)
88
naeeym2.StudsOffset = Vector3.new(0,3,0)
89
naeeym2.Adornee = Character.Head
90
naeeym2.Name = "Name"
91
--naeeym2.PlayerToHideFrom = Player
92
naeeym2.MaxDistance = 200
93-
tecks2.Text = "Skelly Da Dank Spooky Skeleton"
93+
94
tecks2.BackgroundTransparency = 1
95
tecks2.TextScaled = true
96
tecks2.BorderSizePixel = 0
97
tecks2.Text = "The INCREDIBLE"
98
tecks2.Font = "Antique"
99
tecks2.TextSize = 30
100
tecks2.TextStrokeTransparency = 1
101
tecks2.TextColor3 = Color3.new(0,0,0)
102
tecks2.TextStrokeColor3 = Color3.new(0,0,1)
103
tecks2.Size = UDim2.new(1,0,0.5,0)
104
tecks2.Parent = naeeym2
105
106
IT = Instance.new
107
CF = CFrame.new
108
VT = Vector3.new
109
RAD = math.rad
110
C3 = Color3.new
111
UD2 = UDim2.new
112
BRICKC = BrickColor.new
113
ANGLES = CFrame.Angles
114
EULER = CFrame.fromEulerAnglesXYZ
115
COS = math.cos
116
ACOS = math.acos
117
SIN = math.sin
118
ASIN = math.asin
119
ABS = math.abs
120
MRANDOM = math.random
121
FLOOR = math.floor
122
123
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
124
	local NEWMESH = IT(MESH)
125
	if MESH == "SpecialMesh" then
126
		NEWMESH.MeshType = MESHTYPE
127
		if MESHID ~= "nil" and MESHID ~= "" then
128
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
129
		end
130
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
131
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
132
		end
133
	end
134
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
135
	NEWMESH.Scale = SCALE
136
	NEWMESH.Parent = PARENT
137
	return NEWMESH
138
end
139
140
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
141
	local NEWPART = IT("Part")
142
	NEWPART.formFactor = FORMFACTOR
143
	NEWPART.Reflectance = REFLECTANCE
144
	NEWPART.Transparency = TRANSPARENCY
145
	NEWPART.CanCollide = false
146
	NEWPART.Locked = true
147
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
148
	NEWPART.Name = NAME
149
	NEWPART.Size = SIZE
150
	NEWPART.Position = Torso.Position
151
	NEWPART.Material = MATERIAL
152
	NEWPART:BreakJoints()
153
	NEWPART.Parent = PARENT
154
	return NEWPART
155
end
156
157
158
--//=================================\\
159
--||		  CUSTOMIZATION
160
--\\=================================//
161
162
Class_Name = "Template"
163
Weapon_Name = "Add-ons"
164
165
Custom_Colors = {
166
	Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
167
	Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
168
169
	Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
170
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
171
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
172
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
173
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
174
175
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
176
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
177
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
178
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
179
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
180
}
181
182
183
Player_Size = 1 --Size of the player.
184
Animation_Speed = 3
185
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
186
187
local Speed = 16
188
local Effects2 = {}
189
190
--//=================================\\
191
--|| 	  END OF CUSTOMIZATION
192
--\\=================================//
193
194
	local function weldBetween(a, b)
195
	    local weldd = Instance.new("ManualWeld")
196
	    weldd.Part0 = a
197
	    weldd.Part1 = b
198
	    weldd.C0 = CFrame.new()
199
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
200
	    weldd.Parent = a
201
	    return weldd
202
	end
203
204
function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
205
local acs = Instance.new("Part")
206
acs.CanCollide = false
207
acs.Anchored = false
208
acs.Size = Vector3.new(0,0,0)
209
acs.CFrame = attachmentpart.CFrame
210
acs.Parent = Character
211
acs.BrickColor = color
212
    local meshs = Instance.new("SpecialMesh")
213
    meshs.MeshId = mesh
214
    meshs.TextureId = texture
215
    meshs.Parent = acs
216
    meshs.Scale = scale
217
    meshs.Offset = offset
218
weldBetween(attachmentpart,acs)
219
end
220
221
function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
222
if TYPE == "Gem" then
223
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
224
	acs.Anchored = false
225
    acs.CanCollide = false
226
	acs.CFrame = PART.CFrame
227
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
228
weldBetween(PART,acs)
229
elseif TYPE == "Skull" then
230
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
231
	acs.Anchored = false
232
    acs.CanCollide = false
233
	acs.CFrame = PART.CFrame
234
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
235
weldBetween(PART,acs)
236
elseif TYPE == "Eye" then
237
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
238
	acs.Anchored = false
239
    acs.CanCollide = false
240
	acs.CFrame = PART.CFrame
241
	local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
242
weldBetween(PART,acs)
243
end
244
end
245
246
createaccessory(Head,"http://www.roblox.com/asset/?id=18755442","",VT(1,1,1),VT(0,0,-0.1),BrickColor.new("Really black"))
247
createbodypart("Eye","Pearl",Head,VT(0.2, 0.1, -0.5),VT(2,4,2))
248
createbodypart("Eye","Pearl",Head,VT(-0.2, 0.1, -0.5),VT(2,4,2))
249
createaccessory(Torso,"rbxassetid://984742986","rbxassetid://984743351",VT(0.52,0.52,0.52),VT(0,0.5,0.02),BrickColor.new("Really black"))
250
251
--//=================================\\
252
--|| 	      USEFUL VALUES
253
--\\=================================//
254
255
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
256
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
257
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
258
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
259
local CO1 = 0
260
local CO2 = 0
261
local CO3 = 0
262
local CO4 = 0
263
local CHANGEDEFENSE = 0
264
local CHANGEDAMAGE = 0
265
local CHANGEMOVEMENT = 0
266
local ANIM = "Idle"
267
local ATTACK = false
268
local EQUIPPED = false
269
local HOLD = false
270
local COMBO = 1
271
local LASTPOINT = nil
272
local BLCF = nil
273
local SCFR = nil
274
local STAGGERHITANIM = false
275
local STAGGERANIM = false
276
local STUNANIM = false
277
local CRITCHANCENUMBER = 0
278
local IDLENUMBER = 0
279
local DONUMBER = 0
280
local HANDIDLE = false
281
local SINE = 0
282
local CHANGE = 2 / Animation_Speed
283
local WALKINGANIM = false
284
local WALK = 0
285
local DISABLEJUMPING = false
286
local HASBEENBLOCKED = false
287
local STUNDELAYNUMBER = 0
288
local MANADELAYNUMBER = 0
289
local SECONDARYMANADELAYNUMBER = 0
290
local ROBLOXIDLEANIMATION = IT("Animation")
291
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
292
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
293
--ROBLOXIDLEANIMATION.Parent = Humanoid
294
local WEAPONGUI = IT("ScreenGui", nil)
295
WEAPONGUI.Name = "Weapon GUI"
296
local WEAPONTOOL = IT("HopperBin", nil)
297
WEAPONTOOL.Name = Weapon_Name
298
local Weapon = IT("Model")
299
Weapon.Name = Weapon_Name
300
local Effects = IT("Folder", Weapon)
301
Effects.Name = "Effects"
302
local ANIMATOR = Humanoid.Animator
303
local ANIMATE = Character.Animate
304
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
305
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
306
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
307
local HITBLOCKSOUNDS = {"199148933", "199148947"}
308
local UNANCHOR = true
309
local MAGICPARTICLE = "655109389"
310
311
--//=================================\\
312
--\\=================================//
313
314
--//=================================\\
315
--||			  STATS
316
--\\=================================//
317
318
if Character:FindFirstChild("Stats") ~= nil then
319
Character:FindFirstChild("Stats").Parent = nil
320
end
321
322
local Stats = IT("Folder", nil)
323
Stats.Name = "Stats"
324
local ChangeStat = IT("Folder", Stats)
325
ChangeStat.Name = "ChangeStat"
326
local Defense = IT("NumberValue", Stats)
327
Defense.Name = "Defense"
328
Defense.Value = 1
329
local Movement = IT("NumberValue", Stats)
330
Movement.Name = "Movement"
331
Movement.Value = 1
332
local Damage = IT("NumberValue", Stats)
333
Damage.Name = "Damage"
334
Damage.Value = 1
335
local Mana = IT("NumberValue", Stats)
336
Mana.Name = "Mana"
337
Mana.Value = 0
338
local SecondaryMana = IT("NumberValue", Stats)
339
SecondaryMana.Name = "SecondaryMana"
340
SecondaryMana.Value = 0
341
local CanCrit = IT("BoolValue", Stats)
342
CanCrit.Name = "CanCrit"
343
CanCrit.Value = false
344
local CritChance = IT("NumberValue", Stats)
345
CritChance.Name = "CritChance"
346
CritChance.Value = 20
347
local CanPenetrateArmor = IT("BoolValue", Stats)
348
CanPenetrateArmor.Name = "CanPenetrateArmor"
349
CanPenetrateArmor.Value = false
350
local AntiTeamKill = IT("BoolValue", Stats)
351
AntiTeamKill.Name = "AntiTeamKill"
352
AntiTeamKill.Value = false
353
local Rooted = IT("BoolValue", Stats)
354
Rooted.Name = "Rooted"
355
Rooted.Value = false
356
local Block = IT("BoolValue", Stats)
357
Block.Name = "Block"
358
Block.Value = false
359
local RecentEnemy = IT("ObjectValue", Stats)
360
RecentEnemy.Name = "RecentEnemy"
361
RecentEnemy.Value = nil
362
local StaggerHit = IT("BoolValue", Stats)
363
StaggerHit.Name = "StaggerHit"
364
StaggerHit.Value = false
365
local Stagger = IT("BoolValue", Stats)
366
Stagger.Name = "Stagger"
367
Stagger.Value = false
368
local Stun = IT("BoolValue", Stats)
369
Stun.Name = "Stun"
370
Stun.Value = false
371
local StunValue = IT("NumberValue", Stats)
372
StunValue.Name = "StunValue"
373
StunValue.Value = 0
374
375
376
--//=================================\\
377
--\\=================================//
378
379
380
381
382
383
--//=================================\\
384
--|| 	     DEBUFFS / BUFFS
385
--\\=================================//
386
387
local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
388
DEFENSECHANGE1.Name = "ChangeDefense"
389
DEFENSECHANGE1.Value = 0
390
391
local MOVEMENTCHANGE1 = IT("NumberValue", nil)
392
MOVEMENTCHANGE1.Name = "ChangeMovement"
393
MOVEMENTCHANGE1.Value = 0
394
395
--//=================================\\
396
--\\=================================//
397
398
399
400
401
402
--//=================================\\
403
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
404
--\\=================================//
405
406
ArtificialHB = Instance.new("BindableEvent", script)
407
ArtificialHB.Name = "ArtificialHB"
408
409
script:WaitForChild("ArtificialHB")
410
411
frame = Frame_Speed
412
tf = 0
413
allowframeloss = false
414
tossremainder = false
415
lastframe = tick()
416
script.ArtificialHB:Fire()
417
418
game:GetService("RunService").Heartbeat:connect(function(s, p)
419
	tf = tf + s
420
	if tf >= frame then
421
		if allowframeloss then
422
			script.ArtificialHB:Fire()
423
			lastframe = tick()
424
		else
425
			for i = 1, math.floor(tf / frame) do
426
				script.ArtificialHB:Fire()
427
			end
428
		lastframe = tick()
429
		end
430
		if tossremainder then
431
			tf = 0
432
		else
433
			tf = tf - frame * math.floor(tf / frame)
434
		end
435
	end
436
end)
437
438
--//=================================\\
439
--\\=================================//
440
441
442
443
444
445
--//=================================\\
446
--|| 	      SOME FUNCTIONS
447
--\\=================================//
448
449
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
450
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
451
end
452
453
function PositiveAngle(NUMBER)
454
	if NUMBER >= 0 then
455
		NUMBER = 0
456
	end
457
	return NUMBER
458
end
459
460
function NegativeAngle(NUMBER)
461
	if NUMBER <= 0 then
462
		NUMBER = 0
463
	end
464
	return NUMBER
465
end
466
467
function Swait(NUMBER)
468
	if NUMBER == 0 or NUMBER == nil then
469
		ArtificialHB.Event:wait()
470
	else
471
		for i = 1, NUMBER do
472
			ArtificialHB.Event:wait()
473
		end
474
	end
475
end
476
477
function QuaternionFromCFrame(cf)
478
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
479
	local trace = m00 + m11 + m22
480
	if trace > 0 then 
481
		local s = math.sqrt(1 + trace)
482
		local recip = 0.5 / s
483
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
484
	else
485
		local i = 0
486
		if m11 > m00 then
487
			i = 1
488
		end
489
		if m22 > (i == 0 and m00 or m11) then
490
			i = 2
491
		end
492
		if i == 0 then
493
			local s = math.sqrt(m00 - m11 - m22 + 1)
494
			local recip = 0.5 / s
495
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
496
		elseif i == 1 then
497
			local s = math.sqrt(m11 - m22 - m00 + 1)
498
			local recip = 0.5 / s
499
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
500
		elseif i == 2 then
501
			local s = math.sqrt(m22 - m00 - m11 + 1)
502
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
503
		end
504
	end
505
end
506
 
507
function QuaternionToCFrame(px, py, pz, x, y, z, w)
508
	local xs, ys, zs = x + x, y + y, z + z
509
	local wx, wy, wz = w * xs, w * ys, w * zs
510
	local xx = x * xs
511
	local xy = x * ys
512
	local xz = x * zs
513
	local yy = y * ys
514
	local yz = y * zs
515
	local zz = z * zs
516
	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))
517
end
518
 
519
function QuaternionSlerp(a, b, t)
520
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
521
	local startInterp, finishInterp;
522
	if cosTheta >= 0.0001 then
523
		if (1 - cosTheta) > 0.0001 then
524
			local theta = ACOS(cosTheta)
525
			local invSinTheta = 1 / SIN(theta)
526
			startInterp = SIN((1 - t) * theta) * invSinTheta
527
			finishInterp = SIN(t * theta) * invSinTheta
528
		else
529
			startInterp = 1 - t
530
			finishInterp = t
531
		end
532
	else
533
		if (1 + cosTheta) > 0.0001 then
534
			local theta = ACOS(-cosTheta)
535
			local invSinTheta = 1 / SIN(theta)
536
			startInterp = SIN((t - 1) * theta) * invSinTheta
537
			finishInterp = SIN(t * theta) * invSinTheta
538
		else
539
			startInterp = t - 1
540
			finishInterp = t
541
		end
542
	end
543
	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
544
end
545
546
function Clerp(a, b, t)
547
	local qa = {QuaternionFromCFrame(a)}
548
	local qb = {QuaternionFromCFrame(b)}
549
	local ax, ay, az = a.x, a.y, a.z
550
	local bx, by, bz = b.x, b.y, b.z
551
	local _t = 1 - t
552
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
553
end
554
555
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
556
	local frame = IT("Frame")
557
	frame.BackgroundTransparency = TRANSPARENCY
558
	frame.BorderSizePixel = BORDERSIZEPIXEL
559
	frame.Position = POSITION
560
	frame.Size = SIZE
561
	frame.BackgroundColor3 = COLOR
562
	frame.BorderColor3 = BORDERCOLOR
563
	frame.Name = NAME
564
	frame.Parent = PARENT
565
	return frame
566
end
567
568
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
569
	local label = IT("TextLabel")
570
	label.BackgroundTransparency = 1
571
	label.Size = UD2(1, 0, 1, 0)
572
	label.Position = UD2(0, 0, 0, 0)
573
	label.TextColor3 = C3(255, 255, 255)
574
	label.TextStrokeTransparency = STROKETRANSPARENCY
575
	label.TextTransparency = TRANSPARENCY
576
	label.FontSize = TEXTFONTSIZE
577
	label.Font = TEXTFONT
578
	label.BorderSizePixel = BORDERSIZEPIXEL
579
	label.TextScaled = true
580
	label.Text = TEXT
581
	label.Name = NAME
582
	label.Parent = PARENT
583
	return label
584
end
585
586
function NoOutlines(PART)
587
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
588
end
589
590
591
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
592
	local NEWWELD = IT(TYPE)
593
	NEWWELD.Part0 = PART0
594
	NEWWELD.Part1 = PART1
595
	NEWWELD.C0 = C0
596
	NEWWELD.C1 = C1
597
	NEWWELD.Parent = PARENT
598
	return NEWWELD
599
end
600
601
function CreateSound(ID, PARENT, VOLUME, PITCH)
602
	local NEWSOUND = nil
603
	coroutine.resume(coroutine.create(function()
604
		NEWSOUND = IT("Sound", PARENT)
605
		NEWSOUND.Volume = VOLUME
606
		NEWSOUND.Pitch = PITCH
607
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
608
		Swait()
609
		NEWSOUND:play()
610
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
611
	end))
612
	return NEWSOUND
613
end
614
615
function CFrameFromTopBack(at, top, back)
616
	local right = top:Cross(back)
617
	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)
618
end
619
620
function CreateWave(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
621
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
622
	local mesh = IT("SpecialMesh",wave)
623
	mesh.MeshType = "FileMesh"
624
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
625
	mesh.Scale = VT(size,size,size)
626
	mesh.Offset = VT(0,0,-size/8)
627
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
628
	coroutine.resume(coroutine.create(function(PART)
629
		for i = 1, waitt do
630
			Swait()
631
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
632
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
633
			if doesrotate == true then
634
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
635
			end
636
			wave.Transparency = wave.Transparency + (0.5/waitt)
637
			if wave.Transparency > 0.99 then
638
				wave:remove()
639
			end
640
		end
641
	end))
642
end
643
644
function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
645
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
646
	local mesh = IT("SpecialMesh",wave)
647
	mesh.MeshType = "FileMesh"
648
	mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
649
	mesh.Scale = VT(size,size,size)
650
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
651
	coroutine.resume(coroutine.create(function(PART)
652
		for i = 1, waitt do
653
			Swait()
654
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
655
			if doesrotate == true then
656
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
657
			end
658
			wave.Transparency = wave.Transparency + (0.5/waitt)
659
			if wave.Transparency > 0.99 then
660
				wave:remove()
661
			end
662
		end
663
	end))
664
end
665
666
function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
667
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
668
	local mesh = IT("SpecialMesh",wave)
669
	mesh.MeshType = "FileMesh"
670
	mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
671
	mesh.Scale = VT(size,size,size)
672
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
673
	coroutine.resume(coroutine.create(function(PART)
674
		for i = 1, waitt do
675
			Swait()
676
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
677
			if doesrotate == true then
678
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
679
			end
680
			wave.Transparency = wave.Transparency + (0.5/waitt)
681
			if wave.Transparency > 0.99 then
682
				wave:remove()
683
			end
684
		end
685
	end))
686
end
687
688
function CreateRing(inair,size,doesrotate,rotatedirection,waitt,part,offset,spin1,spin2,color)
689
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
690
	local mesh = IT("SpecialMesh",wave)
691
	mesh.MeshType = "FileMesh"
692
	mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
693
	mesh.Scale = VT(size,size,size)
694
	mesh.Offset = VT(0,0,0)
695
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
696
	coroutine.resume(coroutine.create(function(PART)
697
		for i = 1, waitt do
698
			Swait()
699
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
700
			if doesrotate == true then
701
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1)
702
			end
703
			wave.Transparency = wave.Transparency + (0.5/waitt)
704
			if wave.Transparency > 0.99 then
705
				wave:remove()
706
			end
707
		end
708
	end))
709
end
710
711
function MagicSphere(size,waitt,part,offset,color)
712
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(0,0,0))
713
	local mesh = IT("SpecialMesh",wave)
714
	mesh.MeshType = "FileMesh"
715
	mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
716
	mesh.Scale = VT(size,size,size)
717
	mesh.Offset = VT(0,0,0)
718
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
719
	coroutine.resume(coroutine.create(function(PART)
720
		for i = 1, waitt do
721
			Swait()
722
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
723
			wave.Transparency = wave.Transparency + (0.5/waitt)
724
			if wave.Transparency > 0.99 then
725
				wave:remove()
726
			end
727
		end
728
	end))
729
end
730
731
function MagicBlock(size,waitt,part,offset,color)
732
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size))
733
	local mesh = IT("BlockMesh",wave)
734
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
735
	coroutine.resume(coroutine.create(function(PART)
736
		for i = 1, waitt do
737
			Swait()
738
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
739
			wave.CFrame = CF(wave.Position) * ANGLES(RAD(math(-360,360)),RAD(math(-360,360)),RAD(math(-360,360)))
740
			wave.Transparency = wave.Transparency + (0.5/waitt)
741
			if wave.Transparency > 0.99 then
742
				wave:remove()
743
			end
744
		end
745
	end))
746
end
747
748
local EyeSizes={
749
	NumberSequenceKeypoint.new(0,1,0),
750
	NumberSequenceKeypoint.new(1,0.2,0)
751
}
752
local EyeTrans={
753
	NumberSequenceKeypoint.new(0,0.8,0),
754
	NumberSequenceKeypoint.new(1,1,0)
755
}
756
local PE=Instance.new("ParticleEmitter")
757
PE.LightEmission=0
758
PE.Size=NumberSequence.new(EyeSizes)
759
PE.Transparency=NumberSequence.new(EyeTrans)
760
PE.Lifetime=NumberRange.new(0.35,0.35,0.35)
761
PE.Rotation=NumberRange.new(0,360)
762
PE.Rate=15
763
PE.Acceleration = Vector3.new(0,75,0)
764
PE.Drag = 5
765
PE.Enabled = false
766
PE.Speed = NumberRange.new(0,0,0)
767
PE.Texture="http://www.roblox.com/asset/?id=1179557490"
768
PE.ZOffset = 0
769
PE.Name = "Particles"
770
771
function CreateParticles(art,text,accel,drag,rate,type,isenabledbydefault)
772
	local particle = PE:Clone()
773
	particle.Parent = art
774
	particle.Acceleration = accel
775
	PE.Rate = rate
776
	if type == "Fire" then
777
		local EyeSizes={
778
			NumberSequenceKeypoint.new(0,1,0.3),
779
			NumberSequenceKeypoint.new(1,0.2,0.2)
780
		}
781
		PE.Size = NumberSequence.new(EyeSizes)
782
	elseif type == "Smoke" then
783
		local EyeSizes={
784
			NumberSequenceKeypoint.new(0,1,0),
785
			NumberSequenceKeypoint.new(1,5,0.5)
786
		}
787
		PE.Size = NumberSequence.new(EyeSizes)
788
	elseif type == "Solid" then
789
		local EyeSizes={
790
			NumberSequenceKeypoint.new(0,1,0),
791
			NumberSequenceKeypoint.new(1,1,0)
792
		}
793
		PE.Size = NumberSequence.new(EyeSizes)
794
	end
795
	PE.Drag = drag
796
	particle.Texture = "http://www.roblox.com/asset/?id="..text
797
	particle.Enabled = isenabledbydefault
798
return particle
799
end
800
801
--//=================================\\
802
--\\=================================//
803
804
805
--//=================================\\
806
--||	     WEAPON CREATION
807
--\\=================================//
808
809
if Player_Size ~= 1 then
810
	for _, v in pairs (Weapon:GetChildren()) do
811
		if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
812
			local p1 = v.Part1
813
			v.Part1 = nil
814
			local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
815
			v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
816
			v.Part1 = p1
817
		elseif v.ClassName == "Part" then
818
			for _, b in pairs (v:GetChildren()) do
819
				if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
820
					b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
821
				end
822
			end
823
		end
824
	end
825
end
826
827
for _, c in pairs(Weapon:GetChildren()) do
828
	if c.ClassName == "Part" then
829
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
830
	end
831
end
832
833-
	tecks2.Text = "BRUH WTF"
833+
834
835
Humanoid.Died:connect(function()
836
	sick:remove()
837
	tecks2.Text = "BRUH WTH"
838
	ATTACK = true
839
end)
840
841
print(Class_Name.." loaded.")
842
843
--//=================================\\
844
--\\=================================//
845
846
847
848
849
850
--//=================================\\
851
--||	     DAMAGE FUNCTIONS
852
--\\=================================//
853
854
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
855
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
856
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
857
	local BODYGYRO = IT("BodyGyro", STATPART)
858
	local BODYPOSITION = IT("BodyPosition", STATPART)
859
	BODYPOSITION.P = 2000
860
	BODYPOSITION.D = 100
861
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
862
	if LABELTYPE == "Normal" then
863
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
864
	elseif LABELTYPE == "Debuff" then
865
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
866
	elseif LABELTYPE == "Interruption" then
867
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
868
	end
869
	game:GetService("Debris"):AddItem(STATPART ,5)
870
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
871
	BILLBOARDGUI.Adornee = STATPART
872
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
873
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
874
	BILLBOARDGUI.AlwaysOnTop = false
875
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
876
	TEXTLABEL.BackgroundTransparency = 1
877
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
878
	TEXTLABEL.Text = TEXT
879
	TEXTLABEL.Font = "SciFi"
880
	TEXTLABEL.FontSize="Size42"
881
	TEXTLABEL.TextColor3 = COLOR
882
	TEXTLABEL.TextStrokeTransparency = 1
883
	TEXTLABEL.TextScaled = true
884
	TEXTLABEL.TextWrapped = true
885
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
886
		wait(0.2)
887
		for i=1, 5 do
888
			wait()
889
			THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
890
		end
891
		wait(1.2)
892
		for i=1, 5 do
893
			wait()
894
			THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
895
			THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
896
			THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
897
		end
898
		THEPART.Parent = nil
899
	end),STATPART, BODYPOSITION, TEXTLABEL)
900
end
901
902
903
--//=================================\\
904
--||			DAMAGING
905
--\\=================================//
906
907
function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier)
908
	if hit.Parent ~= Character and hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then
909
		local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
910
		local dmg = math.random(min,max)
911
		if humanoid.Health > 0 then
912
			if beserk == true then
913
				humanoid.Health = 0
914
			else
915
				CreateSound("260430060", hit, 1.2, MRANDOM(7, 12) / 10)
916
				hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength
917
				if math.random(1,100) < critrate+1 then
918
					humanoid.Health = humanoid.Health - dmg*critmultiplier
919
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
920
				else
921
					humanoid.Health = humanoid.Health - dmg
922
					StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(0, 0, 0))
923
				end
924
				local defence = Instance.new("BoolValue",hit.Parent)
925
				defence.Name = ("HitBy"..Player.Name)
926
				game:GetService("Debris"):AddItem(defence, 0.5)
927
			end
928
		end
929
	end
930
end
931
932
function AoEDamage(position,radius,min,max,maxstrength,beserk,critrate,critmultiplier,CanBeDodgedByJumping)
933
	local dmg = math.random(min,max)
934
	for i,v in ipairs(workspace:GetChildren()) do
935
	if v:FindFirstChild("HitBy"..Player.Name) == nil then
936
		local body = v:GetChildren()
937
			for part = 1, #body do
938
				if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
939
					if(body[part].Position - position).Magnitude < radius then
940
						if v.ClassName == "Model" then
941
							if v:FindFirstChild("Humanoid") then
942
								if v.Humanoid.Health ~= 0 then
943
									if CanBeDodgedByJumping == true then
944
										if body[part].Position.Y < position.Y+5 then
945
											if math.random(1,100) < critrate+1 then
946
												v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
947
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
948
											else
949
												v.Humanoid.Health = v.Humanoid.Health - dmg
950
												StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
951
											end
952
											local defence = Instance.new("BoolValue",v)
953
											defence.Name = ("HitBy"..Player.Name)
954
											game:GetService("Debris"):AddItem(defence, 0.5)
955
										end
956
									else
957
										if beserk == true then
958
											v.Humanoid.Health = 0
959
										end
960
										if math.random(1,100) < critrate+1 then
961
											v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier
962
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
963
										else
964
											v.Humanoid.Health = v.Humanoid.Health - dmg
965
											StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0))
966
										end
967
										local defence = Instance.new("BoolValue",v)
968
										defence.Name = ("HitBy"..Player.Name)
969
										game:GetService("Debris"):AddItem(defence, 0.5)
970
									end
971
								end
972
							end
973
						end
974
						body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
975
					end
976
				end
977
			end
978
			if v.ClassName == "Part" then
979
				if v.Anchored == false and (v.Position - position).Magnitude < radius then
980
					v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
981
				end
982
			end
983
		end
984
	end
985
end
986
987
function killnearest(position,range,maxstrength)
988
	for i,v in ipairs(workspace:GetChildren()) do
989
	local body = v:GetChildren()
990
		for part = 1, #body do
991
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
992
				if(body[part].Position - position).Magnitude < range then
993
					if v.ClassName == "Model" then
994
						v:BreakJoints()
995
					end
996
					--table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
997
					body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
998
				end
999
			end
1000
		end
1001
		if v.ClassName == "Part" then
1002
			if v.Anchored == false and (v.Position - position).Magnitude < range then
1003
				--table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
1004
				v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1005
			end
1006
		end
1007
	end
1008
end
1009
1010
--//=================================\\
1011
--||	ATTACK FUNCTIONS AND STUFF
1012
--\\=================================//
1013
1014-
	mesh.MeshId = "rbxassetid://523610338"
1014+
1015
	local bone = IT("Part",Effects)
1016
	bone.Size = VT(2,2,2)
1017
	local mesh = IT("SpecialMesh",bone)
1018
	mesh.MeshId = "rbxassetid://2686025433"
1019
	mesh.Scale = VT(0.02,0.02,0.02)
1020
	return bone
1021-
	tecks2.Text = "Finna imma rattle ur bones"
1021+
1022
1023
function rattlebones()
1024
	ATTACK = true
1025
	tecks2.Text = "sTrOnG"
1026
	for i = 1, 15 do
1027
		local bone = makebone()
1028
		bone.CFrame = RootPart.CFrame * ANGLES(RAD(math.random(-5,5)),RAD(math.random(-10,10)),RAD(math.random(-30,30)))
1029
		local bv = Instance.new("BodyVelocity") 
1030
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1031
		bv.velocity = bone.CFrame.lookVector * MRANDOM(50,150)
1032
		bv.Parent = bone
1033
		bv.Name = "DASH"
1034
		bone.CanCollide = false
1035
		local paw = bone.Touched:Connect(function(hit)
1036
			dealdamage(hit,35,45,5,false,7,5)
1037
		end) 
1038-
	tecks2.Text = "Bone-Thugga"
1038+
1039
		Swait()
1040
	end
1041
	Swait(20)
1042
	tecks2.Text = "The INCREDIBLE"
1043
	ATTACK = false
1044-
	tecks2.Text = "Finna imma rattle u so hard"
1044+
1045
1046
function risingbones()
1047
	ATTACK = true
1048
	tecks2.Text = "Bomb Voyage!"
1049
	for i = 1, 50 do
1050
		for i = 1, 5 do
1051
			local bone = makebone()
1052
			bone.Anchored = true
1053
			bone.CanCollide = false
1054
			bone.CFrame = RootPart.CFrame * CF(math.random(-25,25),-6,math.random(-25,25)) * ANGLES(RAD(-135),RAD(0),RAD(math.random(-10,10)))
1055
			local paw = bone.Touched:Connect(function(hit)
1056
				dealdamage(hit,35,45,5,false,7,5)
1057
			end) 
1058
			coroutine.resume(coroutine.create(function()
1059
				for i = 1, 10 do
1060
					bone.CFrame = bone.CFrame * CF(0,0,0.5)
1061
					Swait()
1062
				end
1063
				for i = 1, 10 do
1064
					bone.Transparency = bone.Transparency + 0.1
1065
					Swait()
1066
				end
1067
				bone:remove()
1068
			end))
1069-
	tecks2.Text = "Bone-Thugga"
1069+
1070
		Swait()
1071
	end
1072
	Swait(20)
1073
	tecks2.Text = "The INCREDIBLE"
1074
	ATTACK = false
1075
end
1076
1077
--//=================================\\
1078
--||	  ASSIGN THINGS TO KEYS
1079
--\\=================================//
1080
1081
function MouseDown(Mouse)
1082
	if ATTACK == false then
1083
	end
1084
end
1085
1086
function MouseUp(Mouse)
1087
HOLD = false
1088
end
1089
1090
function KeyDown(Key)
1091
	if Key == "e" and ATTACK == false then
1092
		rattlebones()
1093
	end
1094
	if Key == "r" and ATTACK == false then
1095
		risingbones()
1096
	end
1097
end
1098
1099
function KeyUp(Key)
1100
end
1101
1102
	Mouse.Button1Down:connect(function(NEWKEY)
1103
		MouseDown(NEWKEY)
1104
	end)
1105
	Mouse.Button1Up:connect(function(NEWKEY)
1106
		MouseUp(NEWKEY)
1107
	end)
1108
	Mouse.KeyDown:connect(function(NEWKEY)
1109
		KeyDown(NEWKEY)
1110
	end)
1111
	Mouse.KeyUp:connect(function(NEWKEY)
1112
		KeyUp(NEWKEY)
1113
	end)
1114
1115
--//=================================\\
1116
--\\=================================//
1117
1118
1119
function unanchor()
1120
	if UNANCHOR == true then
1121
		g = Character:GetChildren()
1122
		for i = 1, #g do
1123
			if g[i].ClassName == "Part" then
1124
				g[i].Anchored = false
1125
			end
1126
		end
1127
	end
1128
end
1129
1130
1131
--//=================================\\
1132
--||	WRAP THE WHOLE SCRIPT UP
1133
--\\=================================//
1134
1135
while true do
1136
	Swait()
1137
1138
if #Effects2>0 then
1139
for e=1,#Effects2 do
1140
if Effects2[e]~=nil then
1141
local Thing=Effects2[e]
1142
if Thing~=nil then
1143
local Part=Thing[1]
1144
local Mode=Thing[2]
1145
local Delay=Thing[3]
1146
local IncX=Thing[4]
1147
local IncY=Thing[5]
1148
local IncZ=Thing[6]
1149
local Part2=Thing[8]
1150
if Thing[1].Transparency<=1 then
1151
if Thing[2]=="Block1" then
1152
Thing[1].CFrame=Thing[1].CFrame
1153
Mesh=Thing[1].Mesh
1154
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1155
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1156
elseif Thing[2]=="Cylinder" then
1157
Mesh=Thing[1].Mesh
1158
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1159
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1160
elseif Thing[2]=="Blood" then
1161
Mesh=Thing[7]
1162
Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
1163
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1164
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1165
elseif Thing[2]=="Elec" then
1166
Mesh=Thing[1].Mesh
1167
Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
1168
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1169
elseif Thing[2]=="Disappear" then
1170
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1171
end
1172
else
1173
Part.Parent=nil
1174
table.remove(Effects2,e)
1175
end
1176
end
1177
end
1178
end
1179
end
1180
Humanoid.DisplayDistanceType = "None"
1181
unanchor()
1182
Humanoid.MaxHealth = "inf"
1183
Humanoid.Health = "inf"
1184
Humanoid.WalkSpeed = 26
1185
q = Character:GetChildren()
1186
for u = 1, #q do
1187
	if q[u].ClassName == "Accessory" or q[u].ClassName == "Hat" then
1188
		q[u]:remove()
1189
	elseif q[u].ClassName == "Shirt" and q[u].Name ~= "ChaniacClothes1" then
1190
		q[u]:Destroy()
1191
	elseif q[u].ClassName == "Pants" and q[u].Name ~= "ChaniacClothes2" then
1192
		q[u]:Destroy()
1193
	elseif q[u].ClassName == "CharacterMesh" and q[u].Name ~= "Bones" then
1194
		q[u]:remove()
1195
	elseif q[u].ClassName == "ShirtGraphic" then
1196
		q[u]:remove()
1197
	end
1198
end
1199
end
1200
1201
--//=================================\\
1202
--\\=================================//
1203
1204
1205
1206
1207
1208
--//====================================================\\--
1209
--||			  		 END OF SCRIPT
1210
--\\====================================================//--