View difference between Paste ID: uD3cSJMM and rFpHtzZZ
SHOW: | | - or go back to the newest paste.
1
-- This script has been converted to FE by iPxter
2-
sp = game.Players.LocalPlayer.Character
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
	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
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
--encript 
88
sp = owner.Character
89
sp.Head.face.Texture = "http://www.roblox.com/asset/?id=109676489"
90
sp["Body Colors"].HeadColor = BrickColor.new("Bright yellow")
91
sp["Body Colors"].TorsoColor = BrickColor.new("Bright blue")
92
sp["Body Colors"].LeftArmColor = BrickColor.new("Bright yellow")
93
sp["Body Colors"].RightArmColor = BrickColor.new("Bright yellow")
94
sp["Body Colors"].LeftLegColor = BrickColor.new("Br. yellowish green")
95
sp["Body Colors"].RightLegColor = BrickColor.new("Br. yellowish green")
96
for _, v in pairs(sp:GetChildren()) do
97
  if v.ClassName == "Shirt" then
98
    v:remove()
99
  end
100
end
101
for _, v in pairs(sp:GetChildren()) do
102
  if v.ClassName == "Pants" then
103
    v:remove()
104
  end
105
end
106
for _, v in pairs(sp:GetChildren()) do
107
  if v.ClassName == "Accessory" then
108
    v:remove()
109
  end
110
end
111
function sandbox(var,func)
112
	local env = getfenv(func)
113
	local newenv = setmetatable({},{
114
		__index = function(self,k)
115
			if k=="script" then
116
				return var
117
			else
118
				return env[k]
119
			end
120
		end,
121
	})
122
	setfenv(func,newenv)
123
	return func
124
end
125
cors = {}
126
mas = Instance.new("Model",game:GetService("Lighting"))
127
Tool0 = Instance.new("Tool")
128
BoolValue1 = Instance.new("BoolValue")
129
BoolValue2 = Instance.new("BoolValue")
130
BoolValue3 = Instance.new("BoolValue")
131
BoolValue4 = Instance.new("BoolValue")
132
Script5 = Instance.new("Script")
133
LocalScript6 = Instance.new("LocalScript")
134
LocalScript7 = Instance.new("LocalScript")
135
LocalScript8 = Instance.new("LocalScript")
136
Part9 = Instance.new("Part")
137
Sound10 = Instance.new("Sound")
138
Sound11 = Instance.new("Sound")
139
Sound12 = Instance.new("Sound")
140
SpecialMesh13 = Instance.new("SpecialMesh")
141
Animation14 = Instance.new("Animation")
142
Animation15 = Instance.new("Animation")
143
Animation16 = Instance.new("Animation")
144
Animation17 = Instance.new("Animation")
145
Animation18 = Instance.new("Animation")
146
Script19 = Instance.new("Script")
147
Script20 = Instance.new("Script")
148
Tool0.Name = "SpamKnife"
149
Tool0.Parent = mas
150
Tool0.TextureId = "http://www.roblox.com/asset?id=155344898"
151
Tool0.GripPos = Vector3.new(0, -1, -0.100000001)
152
BoolValue1.Name = "PlayDownStab"
153
BoolValue1.Parent = Tool0
154
BoolValue2.Name = "PlayStabPunch"
155
BoolValue2.Parent = Tool0
156
BoolValue3.Name = "PlayThrow"
157
BoolValue3.Parent = Tool0
158
BoolValue4.Name = "PlayThrowCharge"
159
BoolValue4.Parent = Tool0
160
Script5.Name = "SoundScript"
161
Script5.Parent = Tool0
162
table.insert(cors,sandbox(Script5,function()
163
-- Waits for the child of the specified parent
164
local function WaitForChild(parent, childName)
165
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
166
	return parent[childName]
167
end
168
169
170
local Tool = script.Parent
171
local Handle = WaitForChild(Tool, 'Handle')
172
local Debounce = false
173
174
local TouchConnection
175
176
177
function OnTouched(hit)
178
	local humanoid = hit.Parent:findFirstChild('Humanoid')
179
	if Debounce == false then
180
		Debounce = true
181
		if humanoid then
182
			
183
		else
184
			Handle.Ting:Play()
185
		end
186
	end
187
	wait(0.5)
188
	Debounce = false
189
end
190
191
192
Tool.Equipped:connect(function()
193
	TouchConnection = Handle.Touched:connect(OnTouched)
194
end)
195
196
Tool.Unequipped:connect(function()
197
	if TouchConnection then
198
		TouchConnection:disconnect()
199
		TouchConnection = nil
200
	end
201
end)
202
203
end))
204
LocalScript6.Name = "AnimationScript"
205
LocalScript6.Parent = Tool0
206
table.insert(cors,sandbox(LocalScript6,function()
207
-- Waits for the child of the specified parent
208
local function WaitForChild(parent, childName)
209
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
210
	return parent[childName]
211
end
212
213
local Tool = script.Parent
214
215
local downStabAnim
216
local stabPunchAnim
217
local throwAnim
218
local throwChargeAnim
219
220
local MyHumanoid
221
222
-- This table will make sure that when we stop an animation it is
223
-- because it is the only animation of it running
224
local PlayCountTable = {}
225
226
227
local function PlayAnimation(animation, valueToCheck, animationLength)
228
	if valueToCheck and valueToCheck.Value then
229
		if MyHumanoid then
230
			animation:Play()
231
			if PlayCountTable[animation] then
232
				PlayCountTable[animation] = PlayCountTable[animation] + 1
233
			end
234
			-- wait the duration of the animation	
235
			if animationLength then
236
				wait(animationLength)
237
				if PlayCountTable[animation] then
238
					PlayCountTable[animation] = PlayCountTable[animation] - 1
239
					if PlayCountTable[animation] == 0 then
240
						animation:Stop()
241
					end
242
				end
243
			end
244
		end
245
	end
246
end
247
248
function OnEquipped()
249
	MyHumanoid = Tool.Parent:FindFirstChild('Humanoid')
250
	downStabAnim = MyHumanoid:LoadAnimation(WaitForChild(Tool, 'DownStab'))
251
	PlayCountTable[downStabAnim] = 0
252
	stabPunchAnim = MyHumanoid:LoadAnimation(WaitForChild(Tool, 'StabPunch'))
253
	PlayCountTable[stabPunchAnim] = 0
254
	throwAnim = MyHumanoid:LoadAnimation(WaitForChild(Tool, 'Throw'))
255
	PlayCountTable[throwAnim] = 0
256
	throwChargeAnim = MyHumanoid:LoadAnimation(WaitForChild(Tool, 'ThrowCharge'))
257
	PlayCountTable[throwChargeAnim] = 0
258
	
259
260
	local playStabPunch = WaitForChild(Tool, 'PlayStabPunch')
261
	local playDownStab = WaitForChild(Tool, 'PlayDownStab')
262
	local playThrow = WaitForChild(Tool, 'PlayThrow')
263
	local playThrowCharge = WaitForChild(Tool, 'PlayThrowCharge')
264
265
	playStabPunch.Changed:connect(function() PlayAnimation(stabPunchAnim, playStabPunch, 1.0) end)
266
	playDownStab.Changed:connect(function() PlayAnimation(downStabAnim, playDownStab, 1.0) end)
267
	playThrow.Changed:connect(function() PlayAnimation(throwAnim, playThrow, 1.5) end)
268
	playThrowCharge.Changed:connect(function(value)
269
		if value then
270
			PlayAnimation(throwChargeAnim, playThrowCharge, 1.0)
271
		else
272
			throwChargeAnim:Stop()
273
		end
274
	end)
275
end
276
277
function OnUnequipped()
278
	if downStabAnim then
279
		downStabAnim:Stop()
280
		downStabAnim = nil
281
	end
282
	if stabPunchAnim then
283
		stabPunchAnim:Stop()
284
		stabPunchAnim = nil
285
	end
286
	if throwAnim then
287
		throwAnim:Stop()
288
		throwAnim = nil
289
	end
290
	if throwChargeAnim then
291
		throwChargeAnim:Stop()
292
		throwChargeAnim = nil
293
	end
294
	PlayCountTable = {}
295
end
296
297
Tool.Equipped:connect(OnEquipped)
298
Tool.Unequipped:connect(OnUnequipped)
299
300
301
end))
302
LocalScript7.Name = "BladeGui"
303
LocalScript7.Parent = Tool0
304
table.insert(cors,sandbox(LocalScript7,function()
305
local Tool = script.Parent
306
307
function OnButton1Down(mouse)
308
	if Tool.Enabled then
309
		mouse.Icon = 'http://www.roblox.com/asset/?id=54019936'
310
	else
311
		mouse.Icon = 'http://www.roblox.com/asset/?id=54019936'
312
	end
313
	while not Tool.Enabled do
314
		Tool.Changed:wait()
315
	end
316
	if Tool.Enabled then
317
		mouse.Icon = 'http://www.roblox.com/asset/?id=54019936'
318
	end
319
end
320
321
function OnEquipped(mouse)
322
	if mouse == nil then
323
		print("Mouse not found")
324
		return 
325
	end
326
327
	mouse.Icon = 'http://www.roblox.com/asset/?id=54019936'
328
	mouse.Button1Down:connect(function() OnButton1Down(mouse) end)
329
end
330
331
332
Tool.Equipped:connect(OnEquipped)
333
334
end))
335
LocalScript8.Name = "KnifeScript"
336
LocalScript8.Parent = Tool0
337
table.insert(cors,sandbox(LocalScript8,function()
338
--------------------- TEMPLATE BLADE WEAPON ---------------------------
339
-- Waits for the child of the specified parent
340
local function WaitForChild(parent, childName)
341
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
342
	return parent[childName]
343
end
344
345
346
local SLASH_DAMAGE = 20
347
local DOWNSTAB_DAMAGE = 35
348
local THROWING_DAMAGE = 40
349
local HOLD_TO_THROW_TIME = 0
350
351
352
local Damage = 20
353
354
local MyHumanoid = nil
355
local MyTorso = nil
356
local MyCharacter = nil
357
local MyPlayer = nil
358
359
local Tool = script.Parent
360
local Handle = WaitForChild(Tool, 'Handle')
361
362
local BlowConnection
363
local Button1DownConnection
364
local Button1UpConnection
365
366
local PlayStabPunch
367
local PlayDownStab
368
local PlayThrow
369
local PlayThrowCharge
370
371
local IconUrl = Tool.TextureId  -- URL to the weapon knife icon asset
372
373
local DebrisService = game:GetService('Debris')
374
local PlayersService = game:GetService('Players')
375
376
local SlashSound
377
378
local HitPlayers = {}
379
380
local LeftButtonDownTime = nil
381
382
local Attacking = false
383
384
function Blow(hit)
385
	if Attacking then
386
		BlowDamage(hit, Damage)
387
	end
388
end
389
390
function BlowDamage(hit, damage)
391
	local humanoid = hit.Parent:FindFirstChild('Humanoid')
392
	local player = PlayersService:GetPlayerFromCharacter(hit.Parent)
393
	if humanoid ~= nil and MyHumanoid ~= nil and humanoid ~= MyHumanoid then
394
		if not MyPlayer.Neutral then 		
395
			-- Ignore teammates hit
396
			if player and player ~= MyPlayer and player.TeamColor == MyPlayer.TeamColor then
397
				return
398
			end
399
		end
400
		-- final check, make sure weapon is in-hand
401
		local rightArm = MyCharacter:FindFirstChild('Right Arm')
402
		if (rightArm ~= nil) then
403
			-- Check if the weld exists between the hand and the weapon
404
			local joint = rightArm:FindFirstChild('RightGrip')
405
			if (joint ~= nil and (joint.Part0 == Handle or joint.Part1 == Handle)) then
406
				-- Make sure you only hit them once per swing
407
					TagHumanoid(humanoid, MyPlayer)
408
					print("Sending " .. damage)				
409
					
410
					local checksound = humanoid.Parent:findFirstChild("Sound")
411
					if checksound == nil then
412
					local givesound = script.Parent.Sound:clone()
413
					givesound.Parent = humanoid.Parent
414
					givesound.Disabled = false
415
					else
416
					checksound:remove()
417
					local givesound = script.Parent.Sound:clone()
418
					givesound.Parent = humanoid.Parent
419
					givesound.Disabled = false
420
					end
421
					wait()
422
					humanoid.Parent:BreakJoints()
423
					if humanoid.Health == math.huge or humanoid.MaxHealth == math.huge then
424
						humanoid.Parent:BreakJoints()
425
					end
426
				end
427
		end
428
	end
429
end
430
431
function TagHumanoid(humanoid, player)
432
	-- Add more tags here to customize what tags are available.
433
	while humanoid:FindFirstChild('creator') do
434
		humanoid:FindFirstChild('creator'):Destroy()
435
	end 
436
437
	local creatorTag = Instance.new('ObjectValue')
438
	creatorTag.Value = player
439
	creatorTag.Name = 'creator'
440
	creatorTag.Parent = humanoid
441
	DebrisService:AddItem(creatorTag, 1.5)
442
443
	local weaponIconTag = Instance.new('StringValue')
444
	weaponIconTag.Value = IconUrl
445
	weaponIconTag.Name = 'icon'
446
	weaponIconTag.Parent = creatorTag
447
	DebrisService:AddItem(weaponIconTag, 1.5)
448
end
449
450
function HardAttack()
451
	Damage = SLASH_DAMAGE
452
	HitSound:play()
453
	if PlayStabPunch then
454
		PlayStabPunch.Value = true
455
		wait(1.0)
456
		PlayStabPunch.Value = false
457
	end
458
end
459
460
function NormalAttack()
461
	Damage = DOWNSTAB_DAMAGE
462
	KnifeDown()
463
	HitSound:play()
464
	if PlayDownStab then
465
		PlayDownStab.Value = true
466
		wait(1.0)
467
		PlayDownStab.Value = false
468
	end
469
	KnifeUp()
470
end
471
472
function ThrowAttack()
473
	KnifeOut()
474
	if PlayThrow then
475
		PlayThrow.Value = true
476
		wait()
477
		if not Handle then return end
478
		local throwingHandle = Handle:Clone()
479
		DebrisService:AddItem(throwingHandle, 5)
480
		throwingHandle.Parent = game.Workspace
481
		if MyCharacter and MyHumanoid then
482
			throwingHandle.Velocity = (MyHumanoid.TargetPoint - throwingHandle.CFrame.p).unit * 100
483
			-- set the orientation to the direction it is being thrown in
484
			throwingHandle.CFrame = CFrame.new(throwingHandle.CFrame.p, throwingHandle.CFrame.p + throwingHandle.Velocity) * CFrame.Angles(0, 0, math.rad(-90))
485
			local floatingForce = Instance.new('BodyForce', throwingHandle)
486
			floatingForce.force = Vector3.new(0, 196.2 * throwingHandle:GetMass() * 0.98, 0)
487
			local spin = Instance.new('BodyAngularVelocity', throwingHandle)
488
			spin.angularvelocity = throwingHandle.CFrame:vectorToWorldSpace(Vector3.new(0, -400, 0))
489
		end
490
		Handle.Transparency = 1
491-
	MyPlayer = PlayersService.LocalPlayer
491+
492
		wait()
493
		if throwingHandle then
494
			local Throwevent = script.Parent.ThrowHandleHitWeld:Clone()
495
			Throwevent.Parent = throwingHandle
496
			Throwevent.Disabled = false
497
			local touchedConn = throwingHandle.Touched:connect(function(hit) print("hit throw") BlowDamage(hit, THROWING_DAMAGE) end)
498
		end
499
		-- must check if it still exists since we waited
500
		if throwingHandle then
501
			throwingHandle.CanCollide = true
502
		end
503
		wait()
504
		if Handle and PlayThrow then
505
			Handle.Transparency = 0
506
			PlayThrow.Value = false
507
		end
508
	end
509
	KnifeUp()
510
end
511
512
function KnifeUp()
513
	Tool.GripForward = Vector3.new(0,0,-1)
514
	Tool.GripRight = Vector3.new(1,0,0)
515
	Tool.GripUp = Vector3.new(0,1,0)
516
end
517
518
function KnifeDown()
519
	Tool.GripForward = Vector3.new(0,0,-1)
520
	Tool.GripRight = Vector3.new(1,0,0)
521
	Tool.GripUp = Vector3.new(0,-1,0)
522
end
523
524
function KnifeOut()
525
	Tool.GripForward = Vector3.new(0,0,-1)
526
	Tool.GripRight = Vector3.new(1,0,0)
527
	Tool.GripUp = Vector3.new(0,1,0)
528
end
529
530
Tool.Enabled = true
531
532
function OnLeftButtonDown()
533
	LeftButtonDownTime = time()
534
	if PlayThrowCharge then
535
		PlayThrowCharge.Value = true
536
	end
537
end
538
539
function OnLeftButtonUp()
540
	if not Tool.Enabled then return end
541
	-- Reset the list of hit players every time we start a new attack
542
	HitPlayers = {}
543
	if PlayThrowCharge then
544
		PlayThrowCharge.Value = false
545
	end
546
	if Tool.Enabled and MyHumanoid and MyHumanoid.Health > 0 then
547
		Tool.Enabled = false
548
		local currTime = time()
549
		if LeftButtonDownTime and currTime - LeftButtonDownTime > HOLD_TO_THROW_TIME and
550
			currTime - LeftButtonDownTime < 1.15 then
551
			ThrowAttack()
552
		else
553
			Attacking = true
554
			if math.random(1, 2) == 1 then
555
				HardAttack()
556
			else
557
				NormalAttack()
558
			end
559
			Attacking = false
560
		end
561
		Tool.Enabled = true
562
	end
563
end
564
565
function OnEquipped(mouse)
566
	PlayStabPunch = WaitForChild(Tool, 'PlayStabPunch')
567
	PlayDownStab = WaitForChild(Tool, 'PlayDownStab')
568
	PlayThrow = WaitForChild(Tool, 'PlayThrow')
569
	PlayThrowCharge = WaitForChild(Tool, 'PlayThrowCharge')
570
 	SlashSound = WaitForChild(Handle, 'Swoosh1')
571
	HitSound = WaitForChild(Handle, 'Ting')
572
	SlashSound:play()
573
	BlowConnection = Handle.Touched:connect(Blow)
574
	MyCharacter = Tool.Parent
575
	MyTorso = MyCharacter:FindFirstChild('Torso')
576
	MyHumanoid = MyCharacter:FindFirstChild('Humanoid')
577
	MyPlayer = owner
578
	if mouse then
579
		Button1DownConnection = mouse.Button1Down:connect(OnLeftButtonDown)
580
		Button1UpConnection = mouse.Button1Up:connect(OnLeftButtonUp)
581
	end
582
	KnifeUp()
583
end
584
585
function OnUnequipped()
586
	-- Unequip logic here
587
	if BlowConnection then
588
		BlowConnection:disconnect()
589
		BlowConnection = nil
590
	end
591
	if Button1DownConnection then
592
		Button1DownConnection:disconnect()
593
		Button1DownConnection = nil
594
	end
595
	if Button1UpConnection then
596
		Button1UpConnection:disconnect()
597
		Button1UpConnection = nil
598
	end
599
	MyHumanoid = nil
600
end
601
602
603
Tool.Equipped:connect(OnEquipped)
604
Tool.Unequipped:connect(OnUnequipped)
605
606
end))
607
Part9.Name = "Handle"
608
Part9.Parent = Tool0
609
Part9.Material = Enum.Material.DiamondPlate
610
Part9.BrickColor = BrickColor.new("Really black")
611
Part9.Reflectance = 0.0099999997764826
612
Part9.Rotation = Vector3.new(-180, 0, -180)
613
Part9.Elasticity = 0
614
Part9.FormFactor = Enum.FormFactor.Custom
615
Part9.Size = Vector3.new(0.400000006, 3, 0.699999988)
616
Part9.CFrame = CFrame.new(0, 17.2999992, 22, -1, 0, 0, 0, 1, 0, 0, 0, -1)
617
Part9.BottomSurface = Enum.SurfaceType.Smooth
618
Part9.TopSurface = Enum.SurfaceType.Smooth
619
Part9.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
620
Part9.Position = Vector3.new(0, 17.2999992, 22)
621
Part9.Orientation = Vector3.new(0, 180, 0)
622
Part9.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
623
Sound10.Name = "Swoosh"
624
Sound10.Parent = Part9
625
Sound10.SoundId = "http://www.roblox.com/asset?id=153647529"
626
Sound10.Volume = 1
627
Sound10.PlayOnRemove = true
628
Sound11.Name = "Swoosh1"
629
Sound11.Parent = Part9
630
Sound11.SoundId = "http://www.roblox.com/asset?id=153647514"
631
Sound11.Volume = 1
632
Sound11.PlayOnRemove = true
633
Sound12.Name = "Ting"
634
Sound12.Parent = Part9
635
Sound12.SoundId = "http://www.roblox.com/asset?id=153647529"
636
Sound12.Volume = 0.20000000298023
637
SpecialMesh13.Parent = Part9
638
SpecialMesh13.MeshId = "http://www.roblox.com/asset/?id=121944778  "
639
SpecialMesh13.TextureId = "http://www.roblox.com/asset/?id=121944805     "
640
SpecialMesh13.MeshType = Enum.MeshType.FileMesh
641
Animation14.Name = "DownStab"
642
Animation14.Parent = Tool0
643
Animation14.AnimationId = "http://www.roblox.com/Asset?ID=89133529"
644
Animation15.Name = "KnifeIdle"
645
Animation15.Parent = Tool0
646
Animation16.Name = "StabPunch"
647
Animation16.Parent = Tool0
648
Animation16.AnimationId = "http://www.roblox.com/Asset?ID=89134792"
649
Animation17.Name = "Throw"
650
Animation17.Parent = Tool0
651
Animation17.AnimationId = "http://www.roblox.com/Asset?ID=89147993"
652
Animation18.Name = "ThrowCharge"
653
Animation18.Parent = Tool0
654
Animation18.AnimationId = "http://www.roblox.com/Asset?ID=93103762"
655
Script19.Name = "ThrowHandleHitWeld"
656
Script19.Parent = Tool0
657
Script19.Disabled = true
658
table.insert(cors,sandbox(Script19,function()
659
arrow = script.Parent
660
661
662
local HitSound = Instance.new("Sound")
663
HitSound.SoundId = "http://www.roblox.com/asset?id=153647563"
664
HitSound.Parent = arrow
665
HitSound.Volume = .5
666
667
668
function stick(hit)
669
	
670
	local AV = arrow:findFirstChild("BodyForce")
671
	local FO = arrow:findFirstChild("BodyAngularVelocity")
672
	
673
	if AV ~= nil then AV:remove() end
674
	if FO ~= nil then FO:remove() end
675
	
676
	-- joint myself to the thing i hit
677
678
	local weld = Instance.new("Weld")
679
680
	weld.Name = "PieWeld"
681
	weld.Part0 = arrow
682
	weld.Part1 = hit
683
	
684
	local backupweld = Instance.new("Weld")
685
686
	backupweld.Name = "PieWeldBackup"
687
	backupweld.Part0 = arrow
688
	backupweld.Part1 = hit
689
690
	-- correction term to account for average skew between physics update and heartbeat
691
	local HitPos = arrow.Position --+ (-arrow.Velocity * (1/60)) --+ (arrow.CFrame.lookVector * .5)
692
693
	local CJ = CFrame.new(HitPos)
694
	local C0 = arrow.CFrame:inverse() *CJ
695
	local C1 = hit.CFrame:inverse() * CJ
696
	
697
	weld.C0 = C0
698
	weld.C1 = C1
699
700
	weld.Parent = arrow
701
	
702
	backupweld.C0 = C0
703
	backupweld.C1 = C1
704
705
	backupweld.Parent = arrow
706
707
end
708
709
710
function onTouched(hit)
711
712
	connection:disconnect()
713
714
	stick(hit)
715
	HitSound:Play()
716
717
	
718
end
719
720-
	v.Parent = game:GetService("Players").LocalPlayer.Backpack
720+
721
722
connection = arrow.Touched:connect(onTouched)
723
724
725
726
wait(2)
727
728
if (arrow:FindFirstChild("PieWeld") ~= nil) then
729
	arrow.PieWeld:Remove()
730
end
731
732
wait(8)
733
734
arrow.Parent = nil
735
end))
736
Script20.Name = "Sound"
737
Script20.Parent = Tool0
738
Script20.Disabled = true
739
table.insert(cors,sandbox(Script20,function()
740
-- For knife
741
742
function waitForChild(parent, childName)
743
	local child = parent:findFirstChild(childName)
744
	if child then return child end
745
	while true do
746
		child = parent.ChildAdded:wait()
747
		if child.Name==childName then return child end
748
	end
749
end
750
751
function newSound(id)
752
	local sound = Instance.new("Sound")
753
	sound.SoundId = id
754
	sound.archivable = false
755
	sound.Parent = script.Parent.Head
756
	return sound
757
end
758
759
-- declarations
760
761
local sDied = newSound("http://www.roblox.com/asset?id=146594640")
762
local sFallingDown = newSound("rbxasset://sounds/splat.wav")
763
local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
764
local sGettingUp = newSound("rbxasset://sounds/hit.wav")
765
local sJumping = newSound("rbxasset://sounds/button.wav")
766
local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
767
sRunning.Looped = true
768
769
local Figure = script.Parent
770
local Head = waitForChild(Figure, "Head")
771
local Humanoid = waitForChild(Figure, "Humanoid")
772
773
-- functions
774
775
function onDied()
776
	sDied:Play()
777
end
778
779
function onState(state, sound)
780
	if state then
781
		sound:Play()
782
	else
783
		sound:Pause()
784
	end
785
end
786
787
function onRunning(speed)
788
	if speed>0.01 then
789
		sRunning:Play()
790
	else
791
		sRunning:Pause()
792
	end
793
end
794
795
-- connect up
796
797
Humanoid.Died:connect(onDied)
798
Humanoid.Running:connect(onRunning)
799
Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
800
Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
801
Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
802
Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
803
804
end))
805
for i,v in pairs(mas:GetChildren()) do
806
	v.Parent = owner.Backpack
807
	pcall(function() v:MakeJoints() end)
808
end
809
mas:Destroy()
810
for i,v in pairs(cors) do
811
	spawn(function()
812
		pcall(v)
813
	end)
814-
	v.Parent = game:GetService("Players").LocalPlayer.Character
814+
815
function sandbox(var,func)
816
	local env = getfenv(func)
817
	local newenv = setmetatable({},{
818
		__index = function(self,k)
819
			if k=="script" then
820
				return var
821
			else
822
				return env[k]
823
			end
824
		end,
825
	})
826
	setfenv(func,newenv)
827
	return func
828
end
829
cors = {}
830
mas = Instance.new("Model",game:GetService("Lighting"))
831
Script0 = Instance.new("Script")
832
Sound1 = Instance.new("Sound")
833
Sound2 = Instance.new("Sound")
834
Sound3 = Instance.new("Sound")
835
Sound4 = Instance.new("Sound")
836
Sound5 = Instance.new("Sound")
837
Sound6 = Instance.new("Sound")
838
Script0.Name = "die"
839
Script0.Parent = mas
840
table.insert(cors,sandbox(Script0,function()
841
--[[
842
	Credit to minecraftbeast78 for script.
843
	Put the chat in the quotes after script.Parent.Head.
844
	To change the color, replace Blue after Enum.ChatColor. to Green or Red.
845
	Make sure the first letter of the color is capitalized.
846
	You can have mutiple chat colors.
847
	To change the wait time, change the number in parenthesis to what you want the
848
	wait time to be.
849
	The chat will disappear automatically after 6 to 7 seconds.
850
]]
851
	 
852
while true do
853
game:GetService("Chat"):Chat(script.Parent.Head, "LIKE THE FLEAS IN YOUR FUR, I KEEP COMING BACK!", Enum.ChatColor.White)
854
script.FleasInYourFur:play()
855
wait(3)
856
game:GetService("Chat"):Chat(script.Parent.Head, "SLIP AND SLIDE ON THIS BANANA PEEL!", Enum.ChatColor.White)
857
script.BananaPeel:play()
858
wait(4)
859
game:GetService("Chat"):Chat(script.Parent.Head, "HA HA HA!", Enum.ChatColor.White)
860
wait(2)
861
game:GetService("Chat"):Chat(script.Parent.Head, "WHAT ARE YOU DOING?!", Enum.ChatColor.White)
862
script.WHATAREYOUDOING:play()
863
wait(3)
864
game:GetService("Chat"):Chat(script.Parent.Head, "*GASP* AHHHHHHHHHH!", Enum.ChatColor.White)
865
script.gaspAAAHHHH:play()
866
wait(5)
867
game:GetService("Chat"):Chat(script.Parent.Head, "THAT'S MY PURSE! I DON'T KNOW YOU!", Enum.ChatColor.White)
868
script.DATSMYPURSE:play()
869
wait(3)
870
game:GetService("Chat"):Chat(script.Parent.Head, "NO, DON'T TOUCH THAT!", Enum.ChatColor.White)
871
script.DONTTOUCHTHAT:play()
872
wait(3)
873
end
874
end))
875
Sound1.Name = "BananaPeel"
876
Sound1.Parent = Script0
877
Sound1.SoundId = "rbxassetid://579837049"
878
Sound1.Volume = 1
879
Sound2.Name = "DATSMYPURSE"
880
Sound2.Parent = Script0
881
Sound2.SoundId = "rbxassetid://130760834"
882
Sound2.Volume = 1
883
Sound3.Name = "DONTTOUCHTHAT"
884
Sound3.Parent = Script0
885
Sound3.SoundId = "rbxassetid://577962209"
886
Sound3.Volume = 1
887
Sound4.Name = "FleasInYourFur"
888
Sound4.Parent = Script0
889
Sound4.SoundId = "rbxassetid://430155758"
890
Sound4.Volume = 1
891
Sound5.Name = "WHATAREYOUDOING"
892
Sound5.Parent = Script0
893
Sound5.SoundId = "rbxassetid://549200427"
894
Sound5.Volume = 1
895
Sound6.Name = "gaspAAAHHHH"
896
Sound6.Parent = Script0
897
Sound6.SoundId = "rbxassetid://633394595"
898
Sound6.Volume = 1
899
for i,v in pairs(mas:GetChildren()) do
900
	v.Parent = owner.Character
901
	pcall(function() v:MakeJoints() end)
902
end
903
mas:Destroy()
904
for i,v in pairs(cors) do
905
	spawn(function()
906
		pcall(v)
907
	end)
908
end