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