View difference between Paste ID: v70vkesw and qfM1Jamx
SHOW: | | - or go back to the newest paste.
1
Players = game:GetService("Players")
2
3-
Me = Players.sethcuzzone5
3+
Me = Players.timetodie23232223
4
5
Char = Me.Character
6
7
necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) 
8
9
Asset = "http://www.roblox.com/asset/?id="
10
11
EffectModel = nil
12
13
MeleeDmg = 55
14
15
Accuracy = {Minimum = 2, Maximum = 5.5, Momentum = 2}
16
17
Selected = false
18
19
ReloadFlash = false
20
21
Attacking = false
22
23
ReloadHold = false
24
25
Reloading = false
26
27
Swinging = false
28
29
Aiming = false
30
31
ReloadOn = false
32
33
Debounce = true
34
35
Hurt = false
36
37
ModelName = "Weapon"
38
39
ToolName = "Weapon"
40
41
Icon = Asset..(58334502)
42
43
44
45
function ReNew()
46
47
	if EffectModel then
48
49
		if EffectModel.Parent ~= workspace then
50
51
			pcall(function() EffectModel:remove() end)
52
53
			EffectModel = Instance.new("Model",workspace)
54
55
			EffectModel.Name = "Effects"
56
57
		end
58
59
	else
60
61
		EffectModel = Instance.new("Model",workspace)
62
63
		EffectModel.Name = "Effects"
64
65
	end
66
67
end
68
69
70
71
Ammunition = {
72
73
	MaxAmmo = 8,
74
75
	Ammo = 0,
76
77
	Ammoleft = 40,
78
79
}
80
81
82
83
Images = {
84
85
	Asset..(64291927),
86
87
	Asset..(64291941),
88
89
	Asset..(64291961),
90
91
	Asset..(64291977),
92
93
}
94
95
96
97
Sounds = {
98
99
	Fire = {Id = Asset..(2697294), Pitch = 0.92, Volume = 0.8},
100
101
	Reload = {Id = Asset..(2697295), Pitch = 1, Volume = 0.5},
102
103
	Slash = {Id = "rbxasset://sounds//swordslash.wav", Pitch = 1.2, Volume = 0.6},
104
105
	Out = {Id = "rbxasset://sounds\\clickfast.wav", Pitch = 1.4, Volume = 0.6},
106
107
	Hit = {Id = Asset..(10209590), Pitch = 1.1, Volume = 0.45},
108
109
	PartHit = {Id = "rbxasset://sounds\\metal.ogg", Pitch = 1, Volume = 0.2},
110
111
}
112
113
114
115
ContentProvider = game:GetService("ContentProvider")
116
117
for _,v in pairs(Images) do ContentProvider:Preload(v) end
118
119
120
121
V3 = Vector3.new
122
123
C3 = Color3.new
124
125
BN = BrickColor.new
126
127
CN = CFrame.new
128
129
CA = CFrame.Angles
130
131
MR = math.rad
132
133
MRA = math.random
134
135
MP = math.pi
136
137
MH = math.huge
138
139
UD = UDim2.new
140
141
142
143
function RC(Pos, Dir, Max, Ignore)
144
145
	return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999)), Ignore)
146
147
end
148
149
150
151
function RayC(Start, En, MaxDist, Ignore)
152
153
	return RC(Start, (En - Start), MaxDist, Ignore)
154
155
end
156
157
158
159
function ComputePos(pos1, pos2)
160
161
	return CN(pos1, V3(pos2.x, pos1.y, pos2.z))
162
163
end
164
165
166
167
function DetectSurface(pos, part)
168
169
	local surface = nil
170
171
	local pospos = part.CFrame
172
173
	local pos2 = pospos:pointToObjectSpace(pos)
174
175
	local siz = part.Size
176
177
	local shaep = part.Shape
178
179
	if shaep == Enum.PartType.Ball or shaep == Enum.PartType.Cylinder then
180
181
		surface = {"Anything", CN(pospos.p, pos)*CN(0, 0, -(pospos.p - pos).magnitude+0.12)*CA(MR(-90), 0, 0)}
182
183
	else
184
185
		if pos2.Y > ((siz.Y/2)-0.01) then
186
187
			surface = {"Top", CA(0, 0, 0)}
188
189
		elseif pos2.Y < -((siz.Y/2)-0.01) then
190
191
			surface = {"Bottom", CA(-MP, 0, 0)}
192
193
		elseif pos2.X > ((siz.X/2)-0.01) then
194
195
			surface = {"Right", CA(0, 0, MR(-90))}
196
197
		elseif pos2.X < -((siz.X/2)-0.01) then
198
199
			surface = {"Left", CA(0, 0, MR(90))}
200
201
		elseif pos2.Z > ((siz.Z/2)-0.01) then
202
203
			surface = {"Back", CA(MR(90), 0, 0)}
204
205
		elseif pos2.Z < -((siz.Z/2)-0.01) then
206
207
			surface = {"Front", CA(MR(-90), 0, 0)}
208
209
		end
210
211
	end
212
213
	return surface
214
215
end
216
217
218
219
function Compute(pos1, pos2)
220
221
	local pos3 = Vector3.new(pos2.x, pos1.y, pos2.z)
222
223
	return CN(pos1, pos3)
224
225
end
226
227
228
229
function waitChild(n, p)
230
231
	local c = p:findFirstChild(n)
232
233
	if c then return c end
234
235
	while true do
236
237
		c = p.ChildAdded:wait()
238
239
		if c.Name == n then return c end
240
241
	end
242
243
end
244
245
246
247
function Notime(func)
248
249
	coroutine.resume(coroutine.create(function()
250
251
		func()
252
253
	end))
254
255
end
256
257
258
259
local C3 = Color3.new
260
261
local UD = UDim2.new
262
263
local V2 = Vector2.new
264
265
266
267
Torso = waitChild("Torso", Char)
268
269
Head = waitChild("Head", Char)
270
271
Rarm = waitChild("Right Arm", Char)
272
273
Larm = waitChild("Left Arm", Char)
274
275
Rleg = waitChild("Right Leg", Char)
276
277
Lleg = waitChild("Left Leg", Char)
278
279
Neck = waitChild("Neck", Torso)
280
281
Hum = waitChild("Humanoid", Char)
282
283
284
285
RSH = waitChild("Right Shoulder", Torso)
286
287
LSH = waitChild("Left Shoulder", Torso)
288
289
RH = waitChild("Right Hip", Torso)
290
291
LH = waitChild("Left Hip", Torso)
292
293
294
295
RSH.Part0 = Torso
296
297
LSH.Part0 = Torso
298
299
RH.Part0 = Torso
300
301
LH.Part0 = Torso
302
303
304
305
local Classes = {"Frame", "ImageLabel", "ImageButton", "TextLabel", "TextButton", "TextBox"}
306
307
function Make(Class, Par, Size, Pos, Color, Trans, Border, Borderc, Txt, TxtC, Img)
308
309
	local Mk = "Frame"
310
311
	for _,v in pairs(Classes) do
312
313
		if Class == v then
314
315
			Mk = v
316
317
		end
318
319
	end
320
321
	local g = Instance.new(Mk)
322
323
	g.Size = Size
324
325
	g.Position = Pos
326
327
	g.BackgroundColor3 = Color
328
329
	g.Transparency = Trans
330
331
	g.BorderSizePixel = Border
332
333
	g.BorderColor3 = Borderc
334
335
	if Mk == "TextButton" or Mk == "TextLabel" or Mk == "TextBox" then
336
337
		g.Text = Txt
338
339
		g.TextColor3 = TxtC
340
341
	elseif Mk == "ImageLabel" or Mk == "ImageButton" then
342
343
		g.Image = Img
344
345
	end
346
347
	g.Parent = Par
348
349
	return g
350
351
end
352
353
354
355
Gui = Me:findFirstChild("PlayerGui")
356
357
if Gui then
358
359
	for _,v in pairs(Gui:children()) do if v.Name == "Weapon GUI" then v:remove() end end
360
361
end
362
363
364
365
Screen = Instance.new("ScreenGui")
366
367
Screen.Name = "Weapon GUI"
368
369
370
371
AmmoTable = {}
372
373
AccuracyGuis = {}
374
375
lul = {
376
377
	{unit = V2(0, -1), size = V2(2, 25), offset = V2(-1, -1-25)},
378
379
	{unit = V2(1, 0), size = V2(25, 2), offset = V2(1, -1)},
380
381
	{unit = V2(0, 1), size = V2(2, 25), offset = V2(-1, -1)},
382
383
	{unit = V2(-1, 0), size = V2(25, 2), offset = V2(-1-25, -1)}
384
385
}
386
387
388
389
Main = Make("Frame", Screen, UD(0, 175, 0, 20), UD(1, -185-60, 1, -30), C3(0.25, 0.25, 0.3), 0.6, 0, C3())
390
391
392
393
for i = 1, Ammunition.MaxAmmo, 1 do
394
395
	local Fr = Make("Frame", Main, UD(0, 8, 0, 14), UD(1, -12*i, 0, -14-6), C3(0.25, 0.25, 0.3), 0.6, 0, C3())
396
397
	table.insert(AmmoTable, Fr)
398
399
end
400
401
402
403
AmmoAtm = Make("TextLabel", Main, UD(0, 0, 0, 0), UD(0, 8, 0.5, 0), C3(), 0, 0, C3(), "0", C3(1, 1, 1))
404
405
AmmoAtm.BackgroundTransparency = 1
406
407
AmmoAtm.TextXAlignment = "Left"
408
409
AmmoAtm.Font = "ArialBold"
410
411
AmmoAtm.FontSize = "Size18"
412
413
414
415
AmmoLeft = Make("TextLabel", Main, UD(0, 0, 0, 0), UD(1, -8, 0.5, 0), C3(), 0, 0, C3(), "40", C3(1, 1, 1))
416
417
AmmoLeft.BackgroundTransparency = 1
418
419
AmmoLeft.TextXAlignment = "Right"
420
421
AmmoLeft.Font = "ArialBold"
422
423
AmmoLeft.FontSize = "Size18"
424
425
426
427
ReloadGui = Make("TextLabel", Main, UD(0, 0, 0, 0), UD(1, -12, 0, -40), C3(), 1, 0, C3(), "RELOAD", C3(1, 0.25, 0.1))
428
429
ReloadGui.TextXAlignment = "Right"
430
431
ReloadGui.Font = "ArialBold"
432
433
ReloadGui.FontSize = "Size24"
434
435
436
437
for _, prop in pairs(lul) do
438
439
	local g = Make("Frame", Screen, UD(0, prop.size.x, 0, prop.size.y), UD(0.5, prop.offset.x, 0.5, prop.offset.y), C3(0.8, 0.8, 0.9), 1, 0, C3())
440
441
	table.insert(AccuracyGuis, {Gui = g, props = prop})
442
443
end
444
445
446
447
Screen.Parent = Gui
448
449
450
451
local Offset = 0.1
452
453
local Thing = 1
454
455
local Speed1 = 0.1
456
457
local Speed2 = 0
458
459
local TempAcc = 0
460
461
local AccTimesMax = 17
462
463
local AccTime = 1.25
464
465
local AccTimes = AccTimesMax
466
467
local AccOn = false
468
469
function AddInaccuracy(Acc)
470
471
	TempAcc = Acc
472
473
end
474
475
Notime(function()
476
477
	while true do
478
479
		ReNew()
480
481
		AmmoAtm.Text = Ammunition.Ammo
482
483
		AmmoLeft.Text = Ammunition.Ammoleft
484
485
		for i,v in pairs(AmmoTable) do
486
487
			v.Transparency = 1
488
489
		end
490
491
		for i = 1, Ammunition.Ammo do
492
493
			AmmoTable[i].Transparency = 0.6
494
495
		end
496
497
		if Ammunition.Ammo <= Ammunition.MaxAmmo/4 then ReloadFlash = true else ReloadFlash = false end
498
499
		local Speed = Torso.Velocity.magnitude
500
501
		Offset = 0
502
503
		if Speed > 1 then
504
505
			Speed1 = Speed
506
507
			Thing = Thing*1.2
508
509
		else
510
511
			Speed2 = Speed
512
513
			local lol = 1.4
514
515
			if AccOn then lol = AccTime end
516
517
			Thing = Thing/lol
518
519
		end
520
521
		if TempAcc ~= 0 then
522
523
			Speed1 = TempAcc
524
525
			Thing = TempAcc/2
526
527
			AccOn = true
528
529
			if TempAcc ~= 0 then
530
531
				AccTimes = AccTimes - 1
532
533
				if AccTimes < 1 then AccTimes = AccTimesMax Notime(function() wait(0.4) AccOn = false end) TempAcc = 0 end
534
535
			end
536
537
		end
538
539
		if Thing < 1 then Thing = 1 elseif Thing > 14 then Thing = 14 end
540
541
		Offset = Accuracy.Minimum + ((Speed1 - Speed1/Thing)/(Speed1 - Speed1/14))*Accuracy.Maximum
542
543
		Accuracy.Momentum = Offset
544
545
		wait()
546
547
	end
548
549
end)
550
551
552
553
Notime(function()
554
555
	while true do
556
557
		if ReloadFlash then
558
559
			if ReloadOn then
560
561
				ReloadOn = false
562
563
				ReloadGui.Transparency = 1
564
565
			else
566
567
				ReloadOn = true
568
569
				ReloadGui.Transparency = 0
570
571
			end
572
573
		else
574
575
			ReloadGui.Transparency = 1
576
577
		end
578
579
		wait(0.4)
580
581
	end
582
583
end)
584
585
586
587
588
589
Add = {
590
591
	Head = function(P, Scale)
592
593
		local m = Instance.new("SpecialMesh")
594
595
		m.MeshType = "Head"
596
597
		m.Scale = Scale or V3(1, 1, 1)
598
599
		m.Parent = P
600
601
		return m
602
603
	end,
604
605
	Sphere = function(P, Scale)
606
607
		local m = Instance.new("SpecialMesh")
608
609
		m.MeshType = "Sphere"
610
611
		m.Scale = Scale or V3(1, 1, 1)
612
613
		m.Parent = P
614
615
		return m
616
617
	end,
618
619
	Wedge = function(P, Scale)
620
621
		local m = Instance.new("SpecialMesh")
622
623
		m.MeshType = "Wedge"
624
625
		m.Scale = Scale or V3(1, 1, 1)
626
627
		m.Parent = P
628
629
		return m
630
631
	end,
632
633
	Block = function(P, Scale, Bevel)
634
635
		local m = Instance.new("BlockMesh")
636
637
		m.Bevel = Bevel
638
639
		m.Scale = Scale or V3(1,1,1)
640
641
		m.Parent = P
642
643
		return m
644
645
	end
646
647
}
648
649
650
651
for _,v in pairs(Sounds) do
652
653
	ContentProvider:Preload(v.Id)
654
655
end
656
657
658
659
function PlaySound(Sound, bool)
660
661
	Pitch = Sound.Pitch
662
663
	if bool then
664
665
		Pitch = MRA((Sound.Pitch*0.75)*1000, (Sound.Pitch*1.15)*1000)/1000
666
667
	end
668
669
	local a = Instance.new("Sound")
670
671
	a.SoundId = Sound.Id
672
673
	a.Volume = Sound.Volume
674
675
	a.Pitch = Pitch
676
677
	a.Name = "FX"
678
679
	a.Parent = Torso
680
681
	a:play()
682
683
	Notime(function()
684
685
		wait(1)
686
687
		a:remove()
688
689
	end)
690
691
end
692
693
694
695
function GetParts(pos, dist)
696
697
	local parts = {}
698
699
	local function o(p)
700
701
		for _,v in pairs(p:children()) do
702
703
			if v:IsA("BasePart") then
704
705
				if (pos - v.Position).magnitude <= dist then
706
707
					table.insert(parts, {v, (pos - v.Position).magnitude, v.Anchored})
708
709
				end
710
711
			end
712
713
			o(v)
714
715
		end
716
717
	end
718
719
	o(workspace)
720
721
	return parts
722
723
end
724
725
726
727
function GetHum(P)
728
729
	for _,v in pairs(P:children()) do
730
731
		if v:IsA("Humanoid") then
732
733
			if v.Health > 0 then
734
735
				return v
736
737
			end
738
739
		end
740
741
	end
742
743
end
744
745
746
747
function GetGroup(Pos, Distance, Hit)
748
749
	local tab = {}
750
751
	for _,v in pairs(workspace:children()) do
752
753
		local h = GetHum(v)
754
755
		local t = v:findFirstChild("Torso")
756
757
		if h and t and v ~= Hit.Parent then
758
759
			if (t.Position - Pos).magnitude <= Distance then
760
761
				table.insert(tab, {h, v, (t.Position - Pos).magnitude})
762
763
			end
764
765
		end
766
767
	end
768
769
	if Hit then
770
771
		local h = GetHum(Hit.Parent)
772
773
		if h then
774
775
			table.insert(tab, {h, Hit.Parent, 0})
776
777
		end
778
779
	end
780
781
	return tab
782
783
end
784
785
786
787
function Part(Par, Anc, Colli, Tran, Ref, Col, Siz)
788
789
	local p = Instance.new("Part")
790
791
	p.formFactor = "Custom"
792
793
	p.TopSurface = 0
794
795
	p.BottomSurface = 0
796
797
	p.Transparency = Tran
798
799
	p.Reflectance = Ref
800
801
	p.Anchored = Anc
802
803
	p.CanCollide = Colli
804
805
	p.BrickColor = Col
806
807
	p.Size = Siz
808
809
	p.Locked = true
810
811
	p.Parent = Par
812
813
	p:BreakJoints()
814
815
	return p
816
817
end
818
819
820
821
function Weld(P0, P1, C0, C1)
822
823
	local w = Instance.new("Weld")
824
825
	w.Part0 = P0
826
827
	w.Part1 = P1
828
829
	if C0 then
830
831
		w.C0 = C0
832
833
	end
834
835
	if C1 then
836
837
		w.C1 = C1
838
839
	end
840
841
	w.Parent = P0
842
843
	return w
844
845
end
846
847
848
849
for _,v in pairs(Char:children()) do
850
851
	if v.Name == ModelName then
852
853
		v:remove()
854
855
	end
856
857
end
858
859
860
861
for _,v in pairs(Char:children()) do if v.Name == ModelName then v:remove() end end
862
863
864
865
Model = Instance.new("Model")
866
867
Model.Name = ModelName
868
869
870
871
FTorso = Part(Model, false, false, 1, 0, Torso.BrickColor, V3(2, 2, 1))
872
873
FW = Weld(Torso, FTorso)
874
875
876
877
RAB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
878
879
LAB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
880
881
RLB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
882
883
LLB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
884
885
886
887
RABW = Weld(Torso, RAB, CN(), CN(-1.5, -0.5, 0))
888
889
LABW = Weld(Torso, LAB, CN(), CN(1.5, -0.5, 0))
890
891
RLBW = Weld(Torso, RLB, CN(), CN(-0.5, 1, 0))
892
893
LLBW = Weld(Torso, LLB, CN(), CN(0.5, 1, 0))
894
895
896
897
RAW = Weld(RAB, nil, CN(), CN(0, 0.5, 0))
898
899
LAW = Weld(LAB, nil, CN(), CN(0, 0.5, 0))
900
901
RLW = Weld(RLB, nil, CN(), CN(0, 1, 0))
902
903
LLW = Weld(LLB, nil, CN(), CN(0, 1, 0))
904
905
906
907
TW = Weld(Torso, nil, CN(-0.4, -1.5, 0.7), CA(MR(55), MR(-90), MR(0)))
908
909
910
911
local FH = Instance.new("Humanoid",Model)
912
913
FH.PlatformStand = true
914
915
FH.MaxHealth = math.huge
916
917
FH.Health = math.huge
918
919
920
921
pcall(function() Torso:findFirstChild("Shirt"):clone().Parent = Model end)
922
923
924
925
local hh = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
926
927
hh.Name = "Head"
928
929
Weld(FTorso, hh)
930
931
932
933
Weapon = Instance.new("Model")
934
935
Weapon.Name = "Weapon"
936
937
938
939
HB = Part(Weapon, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
940
941
HBW = Weld(Rarm, HB, CN(0, -0.7, 0), CA(MR(-90), MR(180), 0))
942
943
HW = Weld(HB, nil, CA(MR(38), MR(-28), MR(-90)) * CN(0, -0.2, -3.8))
944
945
946
947
LHB = Part(Weapon, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
948
949
LHBW = Weld(Larm, LHB, CN(0, -0.7, 0), CA(MR(-90), MR(180), 0))
950
951
LHW = Weld(LHB, nil, CA(MR(-2), MR(30), MR(-3)) * CN(-0.1, 0.32, -0.24))
952
953
LHWK = Weld(LHB, nil, CA(MR(170), 0, 0))
954
955
956
957
958
959
Handle = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.5, 0.9, 0.9))
960
961
TW.Part1 = Handle
962
963
964
965
Handle2 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.5, 0.6, 1.6))
966
967
Weld(Handle, Handle2, CA(MR(-45), 0, 0), CN(0, 0.5, -0.4))
968
969
970
971
Handle3 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.5, 0.7, 1.3))
972
973
Weld(Handle2, Handle3, CA(MR(45), 0, 0), CN(0, -0.4, -0.9))
974
975
976
977
Pipe1 = Part(Weapon, false, false, 0, 0.1, BN("Light grey"), V3(0.3, 0.3, 3.2))
978
979
Add.Block(Pipe1, V3(1,1,1), 0.08)
980
981
Weld(Handle3, Pipe1, CN(0, 0.15, 1.6+0.55))
982
983
984
985
Pipe2 = Part(Weapon, false, false, 0, 0.1, BN("Light grey"), V3(0.3, 0.3, 1.7))
986
987
Add.Block(Pipe2, V3(1,1,1), 0.08)
988
989
Weld(Handle3, Pipe2, CN(0, -0.15, 0.85+0.55))
990
991
992
993
Pipe3 = Part(Weapon, false, false, 0, 0.1, BN("Light grey"), V3(0.25, 0.25, 1.6))
994
995
Add.Block(Pipe3, V3(1,1,1), 0.065)
996
997
Weld(Pipe2, Pipe3, CN(0, 0, 0.8+0.7))
998
999
1000
1001
Pump = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.45, 0.45, 1.1))
1002
1003
Add.Block(Pump, V3(1,1,1), 0.225/2)
1004
1005
PumpWeld = Weld(Pipe2, Pump, CN(0, 0, 0.6), CN(0, 0, 0))
1006
1007
1008
1009
Pump2 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.5, 0.5, 0.3))
1010
1011
Add.Block(Pump, V3(1,1,1), 0.13)
1012
1013
Weld(Pump, Pump2, CN(0, 0, -0.5))
1014
1015
1016
1017
for degrees = -20, 200, 20 do
1018
1019
	local Derp = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.2, 0.2, 0.2))
1020
1021
	Add.Block(Derp, V3(0.4,0.6,0.4), 0.02)
1022
1023
	Weld(Handle3, Derp, CN(0, -0.45, -0.32) * CA(MR(degrees), 0, 0), CN(0, 0, -0.2))
1024
1025
end
1026
1027
1028
1029
Derp = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.2, 0.2, 0.3))
1030
1031
Add.Block(Derp, V3(0.4,1,1), 0.02)
1032
1033
Weld(Handle3, Derp, CN(0, 0, -0.32) * CA(MR(-20), 0, 0), CN(0, 0.45, -0.2))
1034
1035
1036
1037
Trigger = Part(Weapon, false, false, 0, 0, BN("Really black"), V3(0.2, 0.3, 0.2))
1038
1039
Add.Block(Trigger, V3(0.5, 0.9, 0.3), 0.02)
1040
1041
TriggerWeld = Weld(Handle3, Trigger, CN(0, -0.45, -0.4) * CA(MR(2), 0, 0))
1042
1043
1044
1045
Aim = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.3, 0.2, 0.7))
1046
1047
Add.Block(Aim, V3(1,0.7,1), 0.05)
1048
1049
Weld(Pipe1, Aim, CN(0, 0.12, 1.1))
1050
1051
1052
1053
Aim1 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.2, 0.2, 0.2))
1054
1055
Add.Block(Aim1, V3(0.3, 0.7, 0.5))
1056
1057
Weld(Aim, Aim1, CN(-.1, 0.1, -0.25))
1058
1059
1060
1061
Aim2 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.2, 0.2, 0.2))
1062
1063
Add.Block(Aim2, V3(0.3, 0.7, 0.5))
1064
1065
Weld(Aim, Aim2, CN(.1, 0.1, -0.25))
1066
1067
1068
1069
Aim3 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.2, 0.2, 0.2))
1070
1071
Add.Block(Aim3, V3(0.3, 0.7, 0.5))
1072
1073
Weld(Aim, Aim3, CN(0, 0.1, 0.25))
1074
1075
1076
1077
BulletFlip = Part(Weapon, false, false, 0, 0, BN("Light grey"), V3(0.2, 0.3, 0.6))
1078
1079
Flip = Weld(Handle3, BulletFlip, CN(-0.18, 0.1, 0.2) * CA(0, MR(-10), 0))
1080
1081
1082
1083
---POCKET
1084
1085
1086
1087
BeltWelds = {}
1088
1089
1090
1091
BeltK = nil
1092
1093
for i = -0.5, 0.5, 1 do
1094
1095
	local Belt = Part(Weapon, false, false, 0, 0, BN("Black"), V3(2.1, 0.3, 0.2))
1096
1097
	table.insert(BeltWelds, Weld(Torso, Belt, CN(0, -0.9, i)))
1098
1099
end
1100
1101
for i = 1, -1, -2 do
1102
1103
	local Belt = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.2, 0.3, 1.1))
1104
1105
	table.insert(BeltWelds, Weld(Torso, Belt, CN(i, -0.9, 0)))
1106
1107
	BeltK = Belt
1108
1109
end
1110
1111
1112
1113
for i = -0.25, 0.25, 0.5 do
1114
1115
	local Pocket = Part(Weapon, false, false, 0, 0, BN("Black"), V3(1.1, 0.9, 0.2))
1116
1117
	table.insert(BeltWelds, Weld(Torso, Pocket, CN(0.8, -1.2, -0.8) * CA(0, MR(-15), 0), CN(0, 0, i)))
1118
1119
end
1120
1121
1122
1123
for i = -0.5, 0.5, 1 do
1124
1125
	local Pocket = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.6, 0.9, 0.2))
1126
1127
	table.insert(BeltWelds, Weld(Torso, Pocket, CN(0.8, -1.2, -0.8) * CA(0, MR(-15)+MP/2, 0), CN(0, 0, i)))
1128
1129
end
1130
1131
Pocket = Part(Weapon, false, false, 0, 0, BN("Black"), V3(1.1, 0.2, 0.6))
1132
1133
table.insert(BeltWelds, Weld(Torso, Pocket, CN(0.8, -1.6, -0.8) * CA(0, MR(-15), 0)))
1134
1135
1136
1137
function Shell(P)
1138
1139
	local Shel = Instance.new("Model")
1140
1141
	local Back = Part(Shel, false, false, 0, 0, BN("Bright yellow"), V3(0.3, 0.3, 0.25))
1142
1143
	local Main = Part(Shel, false, false, 0, 0, BN("Bright red"), V3(0.3, 0.3, 0.4))
1144
1145
	Add.Block(Back, V3(1,1,1), 0.077)
1146
1147
	Add.Block(Main, V3(1,1,1), 0.077)
1148
1149
	Weld(Main, Back, CN(0, 0, -0.225))
1150
1151
	Shel.Parent = P
1152
1153
	return {Model = Shel, Back = Back, Main = Main}
1154
1155
end
1156
1157
1158
1159
for y = 0.15, 0.65, 0.25 do
1160
1161
	for x = -0.12, 0.13, 0.24 do
1162
1163
		for z = -0.25, 0.26, 0.5 do
1164
1165
			local sh = Shell(Weapon)
1166
1167
			Weld(Pocket, sh.Main, CN(z-0.05, y, x), CA(0, MP/2, 0))
1168
1169
		end
1170
1171
	end
1172
1173
end
1174
1175
1176
1177
KnifeSheath = Part(Weapon, false, false, 0, 0, BN("Black"), V3(0.3, 0.9, 0.6))
1178
1179
SheathWeld = Weld(BeltK, KnifeSheath, CN(-0.2, -0.3, -0.25) * CA(MR(-20), 0, 0))
1180
1181
1182
1183
KnifeHandle = Part(Weapon, false, false, 0, 0, BN("Really black"), V3(0.3, 0.6, 0.3))
1184
1185
KnifeWeld = Weld(KnifeSheath, KnifeHandle, CA(MP, 0, 0), CN(0, 0.9, 0))
1186
1187
1188
1189
KnifeHandle2 = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(0.3, 0.2, 0.4))
1190
1191
Weld(KnifeHandle, KnifeHandle2, CN(0, 0.35, 0))
1192
1193
1194
1195
KnifeBlade1 = Part(Weapon, false, false, 0, 0.1, BN("Light grey"), V3(0.2, 0.8, 0.3))
1196
1197
Add.Block(KnifeBlade1, V3(0.4, 1, 1), 0.05)
1198
1199
Weld(KnifeHandle2, KnifeBlade1, CN(0, 0.42, 0))
1200
1201
1202
1203
KnifeBlade2 = Part(Weapon, false, false, 0, 0.1, BN("Light grey"), V3(0.2, 0.24, 0.24))
1204
1205
Add.Block(KnifeBlade2, V3(0.4, 1, 1), 0.05)
1206
1207
Weld(KnifeBlade1, KnifeBlade2, CN(0, 0.32, 0), CA(MR(45), 0, 0))
1208
1209
1210
1211
function Show_Damage(P, D, Area)
1212
1213
	local mo = Instance.new("Model")
1214
1215
	mo.Name = D
1216
1217
	local p = Part(mo, true, false, 0, 0, BN("Bright red"), V3(0.2, 0.2, 0.2))
1218
1219
	p.Name = "Head"
1220
1221
	local m = Instance.new("SpecialMesh")
1222
1223
	m.MeshType = "Brick"
1224
1225
	m.Scale = Vector3.new(3.5, 2.3, 3.5)
1226
1227
	m.Parent = p
1228
1229
	local h = Instance.new("Humanoid")
1230
1231
	h.Health = 0
1232
1233
	h.MaxHealth = 0
1234
1235
	h.Name = "asd"
1236
1237
	h.Parent = mo
1238
1239
	local nah = true
1240
1241
	mo.Parent = workspace
1242
1243
	local cf = CN(P) * CN(MRA(-Area*100, Area*100)/100, MRA(-Area*100, Area*100)/100, MRA(-Area*100, Area*100)/100)
1244
1245
	p.CFrame = cf
1246
1247
	Notime(function()
1248
1249
		Notime(function()
1250
1251
			for i = 0, 6, 0.03 do
1252
1253
				wait()
1254
1255
				p.CFrame = cf * CN(0, i, 0)
1256
1257
			end
1258
1259
		end)
1260
1261
		wait(1.5)
1262
1263
		for i = 0, 1, 0.05 do
1264
1265
			p.Transparency = i
1266
1267
			if nah then mo.Name = "" nah = false else mo.Name = "- "..D nah = true end
1268
1269
			wait()
1270
1271
		end
1272
1273
		mo:remove()
1274
1275
	end)
1276
1277
end
1278
1279
1280
1281
function Hit(part)
1282
1283
	local H = GetHum(part.Parent)
1284
1285
	if H and Debounce and Hurt then
1286
1287
		Debounce = false
1288
1289
		local Dmg = MRA(MeleeDmg/1.3, MeleeDmg)
1290
1291
		H.Health = H.Health - Dmg
1292
1293
		Show_Damage(KnifeBlade2.Position, Dmg, 0.1)
1294
1295
	end
1296
1297
end
1298
1299
1300
1301
KnifeBlade1.Touched:connect(Hit)
1302
1303
KnifeBlade2.Touched:connect(Hit)
1304
1305
1306
1307
Weapon.Parent = Model
1308
1309
Model.Parent = Char
1310
1311
1312
1313
if script.Parent.className ~= "HopperBin" then
1314
1315
	h = Instance.new("HopperBin", Me.Backpack)
1316
1317
	h.Name = ToolName
1318
1319
	script.Parent = h
1320
1321
end
1322
1323
1324
1325
bin = script.Parent
1326
1327
1328
1329
function Attach(t)
1330
1331
	RSH.Part0 = t
1332
1333
	LSH.Part0 = t
1334
1335
	RH.Part0 = t
1336
1337
	LH.Part0 = t
1338
1339
	RABW.Part0 = t
1340
1341
	LABW.Part0 = t
1342
1343
	LLBW.Part0 = t
1344
1345
	RLBW.Part0 = t
1346
1347
	for _,v in pairs(BeltWelds) do
1348
1349
		v.Part0 = t
1350
1351
	end
1352
1353
	if t == Torso then
1354
1355
		FTorso.Transparency = 1
1356
1357
	else
1358
1359
		Torso.Transparency = 1
1360
1361
	end
1362
1363
	t.Transparency = 0
1364
1365
end
1366
1367
1368
1369
function Normal()
1370
1371
	RAW.C0 = CA(MR(90), 0, MR(-65)) * CN(0.6, -0.9, 0)
1372
1373
	LAW.C0 = CA(MR(85), 0, MR(-40)) * CN(0.5, -0.5, 0)
1374
1375
	FW.C0 = CA(0, MR(-70), 0)
1376
1377
	HW.C0 = CA(MR(0), MR(5), MR(0)) * CN(0.4, 0, -1.2)
1378
1379
	LHW.C0 = CA(MR(-2), MR(30), MR(-3)) * CN(-0.1, 0.32, -0.24)
1380
1381
	PumpWeld.C1 = CN(0, 0, 0)
1382
1383
	Flip.C1 = CN(0, 0, 0)
1384
1385
	Attach(FTorso)
1386
1387
	LHW.Part1 = nil
1388
1389
	TW.Part1 = nil
1390
1391
	LHWK.Part1 = nil
1392
1393
	KnifeWeld.Part1 = KnifeHandle
1394
1395
	Neck.C0 = necko
1396
1397
	HW.Part1 = Handle
1398
1399
end
1400
1401
1402
1403
function Swing()
1404
1405
	Swinging = true
1406
1407
	for i = 0.5, 1, 0.5 do
1408
1409
		LAW.C0 = CA(MR(85-8*i), 0, MR(-40+5*i)) * CN(0.5, -0.5+0.2*i, 0)
1410
1411
		RAW.C0 = CA(MR(90-5*i), 0, MR(-65-5*i)) * CN(0.6+0.05*i, -0.9+0.05*i, -0.1*i)
1412
1413
		HW.C0 = CA(MR(-5*i), MR(5+5*i), MR(0)) * CN(0.4, 0, -1.2)
1414
1415
		FW.C0 = CA(0, MR(-70+8*i), 0)
1416
1417
		wait()
1418
1419
	end
1420
1421
	for i = 0.33, 1, 0.33 do
1422
1423
		LAW.C0 = CA(MR(77-37*i), 0, MR(-35+30*i)) * CN(0.5-0.15*i, -0.3+0.3*i, 0)
1424
1425
		RAW.C0 = CA(MR(85-15*i), 0, MR(-70-5*i)) * CN(0.65+0.15*i, -0.85+0.2*i, -0.1-0.2*i)
1426
1427
		HW.C0 = CA(MR(-5-15*i), MR(10+10*i), MR(0)) * CN(0.4, 0, -1.2)
1428
1429
		FW.C0 = CA(0, MR(-62+58*i), 0)
1430
1431
		wait()
1432
1433
	end
1434
1435
	LHWK.Part1 = KnifeHandle
1436
1437
	KnifeWeld.Part1 = nil
1438
1439
	PlaySound(Sounds.Slash)
1440
1441
	for i = 0.25, 1, 0.25 do
1442
1443
		LAW.C0 = CA(MR(40+30*i), 0, MR(-5-45*i)) * CN(0.35-0.2*i, -0.5*i, 0)
1444
1445
		RAW.C0 = CA(MR(70-15*i), 0, MR(-75-5*i)) * CN(0.8, -0.65+0.15*i, -0.3-0.05*i)
1446
1447
		HW.C0 = CA(MR(-20-10*i), MR(20+5*i), MR(0)) * CN(0.4, 0, -1.2)
1448
1449
		FW.C0 = CA(0, MR(-4+14*i), 0)
1450
1451
		LHWK.C0 = CN(0, -0.1*i, 0.2*i) * CA(MR(170), 0, MR(-50*i))
1452
1453
		wait()
1454
1455
	end
1456
1457
	Hurt = true
1458
1459
	Debounce = true
1460
1461
	for i = 0.25, 1, 0.25 do
1462
1463
		LAW.C0 = CA(MR(70+20*i), 0, MR(-50+35*i)) * CN(0.15-0.05*i, -0.5-0.3*i, 0)
1464
1465
		FW.C0 = CA(0, MR(10-60*i), 0)
1466
1467
		LHWK.C0 = CN(0, -0.1-0.05*i, 0.2+0.1*i) * CA(MR(170), 0, MR(-50-40*i))
1468
1469
		wait()
1470
1471
	end
1472
1473
	for i = 0.25, 1, 0.25 do
1474
1475
		LAW.C0 = CA(MR(90+10*i), 0, MR(-15+15*i)) * CN(0.1, -0.9, 0)
1476
1477
		FW.C0 = CA(0, MR(-50-40*i), 0)
1478
1479
		LHWK.C0 = CN(0, -0.15, 0.3) * CA(MR(170), 0, MR(-90))
1480
1481
		wait()
1482
1483
	end
1484
1485
	for i = 0.33, 1, 0.33 do
1486
1487
		LAW.C0 = CA(MR(100+3*i), 0, 0) * CN(0.1, -0.9, 0)
1488
1489
		FW.C0 = CA(0, MR(-90-6*i), 0)
1490
1491
		LHWK.C0 = CN(0, -0.15, 0.3) * CA(MR(170), 0, MR(-90))
1492
1493
		wait()
1494
1495
	end
1496
1497
	Hurt = false
1498
1499
	wait(0.04)
1500
1501
	for i = 0.25, 1, 0.25 do
1502
1503
		LAW.C0 = CA(MR(103-13*i), 0, 0) * CN(0.1, -0.9+0.1*i, 0)
1504
1505
		FW.C0 = CA(0, MR(-96+16*i), 0)
1506
1507
		LHWK.C0 = CN(0, -0.15, 0.3-0.1*i) * CA(MR(170), 0, MR(-90+15*i))
1508
1509
		wait()
1510
1511
	end
1512
1513
	for i = 0.25, 1, 0.25 do
1514
1515
		LAW.C0 = CA(MR(90-42*i), 0, 0) * CN(0.1+0.1*i, -0.8+0.3*i, 0)
1516
1517
		RAW.C0 = CA(MR(55+15*i), 0, MR(-80+5*i)) * CN(0.8-0.05*i, -0.5-0.1*i, -0.35+0.05*i)
1518
1519
		FW.C0 = CA(0, MR(-80+10*i), 0)
1520
1521
		HW.C0 = CA(MR(-30+20*i), MR(25-15*i), MR(0)) * CN(0.4, 0, -1.2)
1522
1523
		LHWK.C0 = CN(0, -0.15, 0.2-0.45*i) * CA(MR(170), 0, MR(-75+75*i))
1524
1525
		wait()
1526
1527
	end
1528
1529
	for i = 0.5, 1, 0.5 do
1530
1531
		LAW.C0 = CA(MR(48-8*i), 0, 0) * CN(0.2+0.05*i, -0.5, 0)
1532
1533
		RAW.C0 = CA(MR(70+10*i), 0, MR(-75+7*i)) * CN(0.75-0.05*i, -0.6-0.1*i, -0.3+0.05*i)
1534
1535
		FW.C0 = CA(0, MR(-70), 0)
1536
1537
		HW.C0 = CA(MR(-10+10*i), MR(10-5*i), MR(0)) * CN(0.4, 0, -1.2)
1538
1539
		LHWK.C0 = CN(0, -0.15, -0.25-0.15*i) * CA(MR(170), 0, 0)
1540
1541
		wait()
1542
1543
	end
1544
1545
	LHWK.Part1 = nil
1546
1547
	KnifeWeld.Part1 = KnifeHandle
1548
1549
	for i = 0.25, 1, 0.25 do
1550
1551
		LAW.C0 = CA(MR(40+40*i), 0, MR(-30*i)) * CN(0.25+0.2*i, -0.5, 0)
1552
1553
		RAW.C0 = CA(MR(80+10*i), 0, MR(-68+3*i)) * CN(0.7-0.1*i, -0.7-0.2*i, -0.25+0.2*i)
1554
1555
		wait()
1556
1557
	end
1558
1559
	for i = 0.5, 1, 0.5 do
1560
1561
		LAW.C0 = CA(MR(80+5*i), 0, MR(-30-10*i)) * CN(0.45+0.05*i, -0.5, -0.05+0.05*i)
1562
1563
		RAW.C0 = CA(MR(90), 0, MR(-65)) * CN(0.6, -0.9, 0)
1564
1565
		wait()
1566
1567
	end
1568
1569
	Normal()
1570
1571
	Swinging = false
1572
1573
end
1574
1575
1576
1577
function Reload(once)
1578
1579
	while Ammunition.Ammo < Ammunition.MaxAmmo and Ammunition.Ammoleft > 0 do
1580
1581
		wait()
1582
1583
		for i = 0.33, 1, 0.33 do
1584
1585
			RAW.C0 = CA(MR(45-2*i), 0, MR(-15)) * CN(0, -0.15-0.05*i, 0)
1586
1587
			LAW.C0 = CA(MR(50), MR(40), MR(-15)) * CN(0.5, -0.5, 0)
1588
1589
			LHW.C0 = CA(MR(-35), MR(60), MR(-45)) * CN(-0.6, 0.2, -0.24)
1590
1591
			wait()
1592
1593
		end
1594
1595
		for i = 0.25, 1, 0.25 do
1596
1597
			RAW.C0 = CA(MR(43-8*i), 0, MR(-15)) * CN(0, -0.2-0.2*i, 0)
1598
1599
			LAW.C0 = CA(MR(50), MR(40), MR(-15)) * CN(0.5, -0.5, 0)
1600
1601
			LHW.C0 = CA(MR(-35), MR(60), MR(-45)) * CN(-0.6, 0.2, -0.24)
1602
1603
			wait()
1604
1605
		end
1606
1607
		for i = 0.5, 1, 0.5 do
1608
1609
			RAW.C0 = CA(MR(35-2*i), 0, MR(-15)) * CN(0, -0.4-0.05*i, 0)
1610
1611
			wait()
1612
1613
		end
1614
1615
		local shel = Shell(Weapon)
1616
1617
		local w = Weld(Rarm, shel.Main, CN(0, -1.25, 0.45), CA(MR(-140), 0, MR(60)))
1618
1619
		for i = 0.25, 1, 0.25 do
1620
1621
			RAW.C0 = CA(MR(33+20*i), 0, MR(-15-10*i)) * CN(0, -0.45+0.2*i, 0)
1622
1623
			LAW.C0 = CA(MR(50-5*i), MR(40), MR(-15+5*i)) * CN(0.5, -0.5, 0)
1624
1625
			w.C0 = CN(-0.1*i, -1.25, 0.45-0.25*i)
1626
1627
			wait()
1628
1629
		end
1630
1631
		for i = 0.2, 1, 0.2 do
1632
1633
			RAW.C0 = CA(MR(53+32*i), 0, MR(-25-12*i)) * CN(0, -0.25-0.3*i, 0)
1634
1635
			LAW.C0 = CA(MR(45), MR(40), MR(-10+10*i)) * CN(0.5, -0.5+0.15*i, 0)
1636
1637
			w.C0 = CN(-0.1-0.1*i, -1.25, 0.2-0.3*i)
1638
1639
			w.C1 = CA(MR(-140+50*i), 0, MR(60))
1640
1641
			wait()
1642
1643
		end
1644
1645
		PlaySound(Sounds.Reload, false)
1646
1647
		for i = 0.25, 1, 0.25 do
1648
1649
			RAW.C0 = CA(MR(85+10*i), 0, MR(-42-8*i)) * CN(0, -0.55-0.1*i, 0)
1650
1651
			LAW.C0 = CA(MR(45), MR(40), 0) * CN(0.5, -0.35, 0)
1652
1653
			w.C0 = CN(-0.2-0.05*i, -1.25, -0.1-0.1*i)
1654
1655
			wait()
1656
1657
		end
1658
1659
		shel.Model:remove() shell = nil
1660
1661
		Ammunition.Ammo = Ammunition.Ammo + 1
1662
1663
		Ammunition.Ammoleft = Ammunition.Ammoleft - 1
1664
1665
		wait(0.1)
1666
1667
		for i = 0.33, 1, 0.33 do
1668
1669
			RAW.C0 = CA(MR(95-10*i), 0, MR(-50+10*i)) * CN(0, -0.65+0.1*i, 0)
1670
1671
			LAW.C0 = CA(MR(45+5*i), MR(40), MR(-12*i)) * CN(0.5, -0.35-0.1*i, 0)
1672
1673
			wait()
1674
1675
		end
1676
1677
		for i = 0.25, 1, 0.25 do
1678
1679
			RAW.C0 = CA(MR(85-40*i), 0, MR(-40+25*i)) * CN(0, -0.55+0.4*i, 0)
1680
1681
			LAW.C0 = CA(MR(50), MR(40), MR(-12-3*i)) * CN(0.5, -0.45-0.05*i, 0)
1682
1683
			wait()
1684
1685
		end
1686
1687
		if once then break end
1688
1689
		if not ReloadHold then break end
1690
1691
	end
1692
1693
	for i = 0.33, 1, 0.33 do
1694
1695
		RAW.C0 = CA(MR(45+10*i), 0, MR(-15-10*i)) * CN(0.1*i, -0.15-0.1*i, 0)
1696
1697
		LAW.C0 = CA(MR(52+12*i), MR(40-5*i), MR(-15-5*i)) * CN(0.5, -0.5, 0)
1698
1699
		LHW.C0 = CA(MR(-35+10*i), MR(60-10*i), MR(-45+10*i)) * CN(-0.6+0.1*i, 0.2, -0.24)
1700
1701
		wait()
1702
1703
	end
1704
1705
	for i = 0.2, 1, 0.2 do
1706
1707
		RAW.C0 = CA(MR(55+30*i), 0, MR(-25-30*i)) * CN(0.1+0.4*i, -0.25-0.55*i, 0)
1708
1709
		LAW.C0 = CA(MR(70+10*i), MR(35-30*i), MR(-20-15*i)) * CN(0.5, -0.5, 0)
1710
1711
		LHW.C0 = CA(MR(-25+18*i), MR(50-15*i), MR(-35+25*i)) * CN(-0.5+0.3*i, 0.2+0.1*i, -0.24)
1712
1713
		wait()
1714
1715
	end
1716
1717
	for i = 0.25, 1, 0.25 do
1718
1719
		RAW.C0 = CA(MR(85+5*i), 0, MR(-55-10*i)) * CN(0.5+0.1*i, -0.8-0.1*i, 0)
1720
1721
		LAW.C0 = CA(MR(80+5*i), MR(5-5*i), MR(-35-5*i)) * CN(0.5, -0.5, 0)
1722
1723
		LHW.C0 = CA(MR(-7+5*i), MR(35-5*i), MR(-10+7*i)) * CN(-0.2+0.1*i, 0.3+0.02*i, -0.24)
1724
1725
		wait()
1726
1727
	end
1728
1729
end
1730
1731
1732
1733
function ReloadStart(once)
1734
1735
	Reloading = true
1736
1737
	HW.Part1 = nil
1738
1739
	LHW.Part1 = Pipe2
1740
1741
	for i = 0.25, 1, 0.25 do
1742
1743
		RAW.C0 = CA(MR(90-10*i), 0, MR(-65+10*i)) * CN(0.6-0.2*i, -0.9+0.15*i, 0)
1744
1745
		LAW.C0 = CA(MR(85-5*i), MR(7*i), MR(-40+5*i)) * CN(0.5, -0.5, 0)
1746
1747
		LHW.C0 = CA(MR(-2-8*i), MR(30+5*i), MR(-3-12*i)) * CN(-0.1-0.1*i, 0.32-0.12*i, -0.24)
1748
1749
		wait()
1750
1751
	end
1752
1753
	for i = 0.15, 1, 0.15 do
1754
1755
		RAW.C0 = CA(MR(80-35*i), 0, MR(-55+40*i)) * CN(0.4-0.4*i, -0.75+0.6*i, 0)
1756
1757
		LAW.C0 = CA(MR(80-30*i), MR(7+33*i), MR(-35+20*i)) * CN(0.5, -0.5, 0)
1758
1759
		LHW.C0 = CA(MR(-10-25*i), MR(35+25*i), MR(-15-30*i)) * CN(-0.2-0.4*i, 0.2, -0.24)
1760
1761
		wait()
1762
1763
	end
1764
1765
	Reload(once)
1766
1767
	Normal()
1768
1769
	Reloading = false
1770
1771
end
1772
1773
1774
1775
function AimEet()
1776
1777
end
1778
1779
1780
1781
function Shoot(Start, To)
1782
1783
	local Accu = CA(MR(MRA(-Accuracy.Momentum*1000, Accuracy.Momentum*1000)/1700),  MR(MRA(-Accuracy.Momentum*1000, Accuracy.Momentum*1000)/1000), MR(MRA(-Accuracy.Momentum*1000, Accuracy.Momentum*1000)/1000))
1784
1785
	for Pellets = 1, 8 do
1786
1787
		local Power = 20
1788
1789
		local Drop = 0.2
1790
1791
		local Face = CN(Start, To) * Accu * CA(MR(MRA(-10000, 10000)/2500), MR(MRA(-10000, 10000)/2500), MR(MRA(-10000, 10000)/2500))
1792
1793
		local Pellet = Part(PelletModel, true, false, 0, 0, BN("Dark grey"), V3(0.2, 0.2, 0.3))
1794
1795
		Pellet.CFrame = Face
1796
1797
		local LastPoint = Face.p
1798
1799
		Notime(function()
1800
1801
			local HitObj
1802
1803
			local HitPos
1804
1805
			local DistThing = 250
1806
1807
			for Distance = Power, 600, Power do
1808
1809
				Face = Face * CA(MR(-Drop), 0, 0) * CN(0, 0, -Power)
1810
1811
				local PointNow = Face.p
1812
1813
				local Hit, Pos = RayC(LastPoint, PointNow, Power+2, EffectModel)
1814
1815
				if Hit then
1816
1817
					DistThing = Distance
1818
1819
					if DistThing > 250 then DistThing = 200 end
1820
1821
					PointNow = Pos
1822
1823
					HitPos = Pos
1824
1825
					HitObj = Hit
1826
1827
				end
1828
1829
				local Dist = (PointNow - LastPoint).magnitude
1830
1831
				Pellet.CFrame = Face
1832
1833
				Drop = Drop + 0.04
1834
1835
				local Effect = Part(EffectModel, true, false, 0, 0, BN("White"), V3(0.2, 0.2, 0.2))
1836
1837
				Effect.CFrame = CN(LastPoint, PointNow) * CA(MR(-90), 0, 0) * CN(0, Dist/2, 0)
1838
1839
				local H = Add.Head(Effect, V3(0.8, Dist*5, 0.8))
1840
1841
				LastPoint = Face.p
1842
1843
				Power = Power - Drop/3
1844
1845
				Notime(function()
1846
1847
					for i = 0, 1, 0.2 do
1848
1849
						wait()
1850
1851
						Effect.Transparency = i
1852
1853
					end
1854
1855
					Effect:remove()
1856
1857
				end)
1858
1859
				if Hit then
1860
1861
					Pellet.CFrame = CN(Pos)
1862
1863
					break
1864
1865
				end
1866
1867
				wait()
1868
1869
			end
1870
1871
			Pellet:remove()
1872
1873
			if HitObj then
1874
1875
				local Surface = DetectSurface(HitPos, HitObj)
1876
1877
				local C = CN(HitPos) * CA(HitObj.CFrame:toEulerAnglesXYZ()) * Surface[2]
1878
1879
				if Surface[1] == "Anything" then
1880
1881
					C = Surface[2]
1882
1883
				end
1884
1885
				local H = nil
1886
1887
				if HitObj.Parent ~= workspace then
1888
1889
					H = GetHum(HitObj.Parent)
1890
1891
					if HitObj.Parent.Parent ~= workspace and H == nil then
1892
1893
						H = GetHum(HitObj.Parent.Parent)
1894
1895
					end
1896
1897
				end
1898
1899
				if H then
1900
1901
					local Dmg = DistThing/200
1902
1903
					Dmg = (1-Dmg)*15
1904
1905
					Dmg = MRA(Dmg*850, Dmg*1100)/1000
1906
1907
					H.Health = H.Health - Dmg
1908
1909
					PlaySound(Sounds.Hit)
1910
1911
					Show_Damage(HitObj.Position, math.floor(Dmg), 1.5)
1912
1913
				else
1914
1915
					PlaySound(Sounds.PartHit)
1916
1917
					local BulletHole = Part(EffectModel, true, false, 1, 0, BN("White"), V3(0.8, 0.2, 0.8))
1918
1919
					BulletHole.CFrame = C * CN(0, -0.085, 0)
1920
1921
					local Dec = Instance.new("Decal",BulletHole)
1922
1923
					Dec.Texture = Images[MRA(1,#Images)]
1924
1925
					Dec.Face = "Top"
1926
1927
					if not HitObj.Anchored then
1928
1929
						BulletHole.Anchored = false
1930
1931
						local W = Weld(HitObj, BulletHole, HitObj.CFrame:toObjectSpace(C))
1932
1933
					end
1934
1935
					Notime(function()
1936
1937
						wait(MRA(700, 15000)/100)
1938
1939
						BulletHole:remove()
1940
1941
					end)
1942
1943
				end
1944
1945
			end
1946
1947
		end)
1948
1949
	end
1950
1951
end
1952
1953
1954
1955
function ShootAnim(From, To)
1956
1957
	Shoot(From, To)
1958
1959
	AddInaccuracy(16)
1960
1961
	PlaySound(Sounds.Fire, false)
1962
1963
	for i = 0.33, 1, 0.33 do
1964
1965
		RAW.C0 = CA(MR(90+10*i), 0, MR(-65)) * CN(0.6, -0.9+0.5*i, 0)
1966
1967
		LAW.C0 = CA(MR(85+26*i), 0, MR(-40)) * CN(0.5, -0.5+0.1*i, 0)
1968
1969
		HW.C0 = CA(MR(-15*i), MR(5), MR(0)) * CN(0.4, 0, -1.2)
1970
1971
		wait()
1972
1973
	end
1974
1975
	for i = 0.2, 1, 0.2 do
1976
1977
		RAW.C0 = CA(MR(100+5*i), 0, MR(-65)) * CN(0.6, -0.4+0.15*i, 0)
1978
1979
		LAW.C0 = CA(MR(111+4*i), 0, MR(-40)) * CN(0.5, -0.4+0.05*i, 0)
1980
1981
		HW.C0 = CA(MR(-15-2*i), MR(5), MR(0)) * CN(0.4, 0, -1.2)
1982
1983
		wait()
1984
1985
	end
1986
1987
	for i = 0.5, 1, 0.5 do
1988
1989
		RAW.C0 = CA(MR(105+2*i), 0, MR(-65)) * CN(0.6, -0.25+0.03*i, 0)
1990
1991
		LAW.C0 = CA(MR(115+2*i), 0, MR(-40)) * CN(0.5, -0.35+0.02*i, 0)
1992
1993
		HW.C0 = CA(MR(-17), MR(5), MR(0)) * CN(0.4, 0, -1.2)
1994
1995
		wait()
1996
1997
	end
1998
1999
	for i = 0.2, 1, 0.2 do
2000
2001
		RAW.C0 = CA(MR(107-12*i), 0, MR(-65)) * CN(0.6, -0.22-0.68*i, 0)
2002
2003
		LAW.C0 = CA(MR(117-17*i), 0, MR(-40)) * CN(0.5, -0.33-0.02*i, 0)
2004
2005
		HW.C0 = CA(MR(-17+2*i), MR(5), MR(0)) * CN(0.4, 0, -1.2)
2006
2007
		wait()
2008
2009
	end
2010
2011
	for i = 0.33, 1, 0.33 do
2012
2013
		RAW.C0 = CA(MR(95-5*i), 0, MR(-65)) * CN(0.6, -0.9-0.1*i, 0)
2014
2015
		LAW.C0 = CA(MR(100-5*i), 0, MR(-40)) * CN(0.5+0.1*i, -0.35+0.1*i, 0)
2016
2017
		HW.C0 = CA(MR(-15+11*i), MR(5), MR(0)) * CN(0.4, 0, -1.2)
2018
2019
		PumpWeld.C1 = CN(0, 0, 0.1*i)
2020
2021
		wait()
2022
2023
	end
2024
2025
	for i = 0.33, 1, 0.33 do
2026
2027
		RAW.C0 = CA(MR(90-3*i), 0, MR(-65)) * CN(0.6, -1+0.05*i, 0)
2028
2029
		LAW.C0 = CA(MR(95-5*i), 0, MR(-40)) * CN(0.6+0.2*i, -0.25+0.35*i, 0)
2030
2031
		HW.C0 = CA(MR(-4+4*i), MR(5), MR(0)) * CN(0.4, 0, -1.2)
2032
2033
		PumpWeld.C1 = CN(0, 0, 0.1+0.6*i)
2034
2035
		Flip.C1 = CN(0, 0, 0.5*i)
2036
2037
		wait()
2038
2039
	end
2040
2041
	local sh = Shell(workspace)
2042
2043
	sh.Main.CanCollide = true
2044
2045
	sh.Back.CanCollide = true
2046
2047
	sh.Main.CFrame = Handle3.CFrame * CN(0.3, 0.2, 0)
2048
2049
	sh.Main.Velocity = (Handle3.CFrame * CA(0, MR(90), 0)).lookVector * 15
2050
2051
	Notime(function()
2052
2053
		wait(MRA(100,180)/10)
2054
2055
		for i = 0, 1, 0.005 do
2056
2057
			sh.Main.Transparency = i
2058
2059
			sh.Back.Transparency = i
2060
2061
			wait()
2062
2063
		end
2064
2065
		sh.Model:remove()
2066
2067
	end)
2068
2069
	for i = 0.33, 1, 0.33 do
2070
2071
		RAW.C0 = CA(MR(87+3*i), 0, MR(-65)) * CN(0.6, -0.95+0.05*i, 0)
2072
2073
		LAW.C0 = CA(MR(90-5*i), 0, MR(-40)) * CN(0.8-0.3*i, 0.1-0.6*i, 0)
2074
2075
		HW.C0 = CA(0, MR(5), 0) * CN(0.4, 0, -1.2)
2076
2077
		PumpWeld.C1 = CN(0, 0, 0.7-0.7*i)
2078
2079
		Flip.C1 = CN(0, 0, 0.5-0.5*i)
2080
2081
		wait()
2082
2083
	end
2084
2085
	Normal()
2086
2087
end
2088
2089
2090
2091
function ShootFunc(From, To)
2092
2093
	local H, Pos = RayC(From, To, 10, EffectModel)
2094
2095
	local Can = true
2096
2097
	if H then
2098
2099
		if H:IsDescendantOf(Char) then
2100
2101
			Can = false
2102
2103
		end
2104
2105
	end
2106
2107
	if Can then
2108
2109
		Attacking = true
2110
2111
		Ammunition.Ammo = Ammunition.Ammo - 1
2112
2113
		if Ammunition.Ammo < 0 then Ammunition.Ammo = 0 end
2114
2115
		ShootAnim(From, To)
2116
2117
		Attacking = false
2118
2119
	end
2120
2121
end
2122
2123
2124
2125
function SelectAnim()
2126
2127
	RAW.Part1 = Rarm
2128
2129
	for i = 0.25, 1, 0.25 do
2130
2131
		RAW.C0 = CA(MR(-10*i), 0, MR(2*i))
2132
2133
		wait()
2134
2135
	end
2136
2137
	for i = 0.1, 1, 0.1 do
2138
2139
		RAW.C0 = CN(-0.15*i, 0, -0.45*i) * CA(MR(-10-115*i), 0, MR(2+8*i)) * CN(0, -0.4*i, 0)
2140
2141
		wait()
2142
2143
	end
2144
2145
	for i = 0.25, 1, 0.25 do
2146
2147
		RAW.C0 = CN(-0.15, 0, -0.45-0.05*i) * CA(MR(-125-15*i), 0, MR(10)) * CN(0, -0.4, 0)
2148
2149
		wait()
2150
2151
	end
2152
2153
	TW.Part1 = nil
2154
2155
	HW.Part1 = Handle
2156
2157
	for i = 0.25, 1, 0.25 do
2158
2159
		RAW.C0 = CN(-0.15+0.15*i, 0, -0.5+0.1*i) * CA(MR(-140+10*i), 0, MR(10+2*i)) * CN(0, -0.4+0.15*i, 0)
2160
2161
		HW.C0 = CA(MR(38+12*i), MR(-28-15*i), MR(-90-10*i)) * CN(0, -0.1*i, -3.8)
2162
2163
		wait()
2164
2165
	end
2166
2167
	Attach(FTorso)
2168
2169
	for i = 0.1, 1, 0.1 do
2170
2171
		RAW.C0 = CN(0, 0, -0.4+0.3*i) * CA(MR(-130+90*i), 0, MR(12+30*i)) * CN(0, -0.25+0.25*i, 0)
2172
2173
		HW.C0 = CA(MR(50+30*i), MR(-43-50*i), MR(-100-50*i)) * CN(0, -0.1-0.7*i, -3.8+0.7*i)
2174
2175
		FW.C0 = CA(0, MR(-15*i), 0)
2176
2177
		wait()
2178
2179
	end
2180
2181
	LAW.Part1 = Larm
2182
2183
	for i = 0.15, 1, 0.15 do
2184
2185
		RAW.C0 = CN(0, 0, -0.1+0.1*i) * CA(MR(-40+60*i), 0, MR(42+4*i))
2186
2187
		LAW.C0 = CA(MR(10*i), 0, MR(-8*i)) * CN(0, -0.15*i, 0)
2188
2189
		FW.C0 = CA(0, MR(-15-20*i), 0)
2190
2191
		HW.C0 = CA(MR(80+50*i), MR(-93-57*i), MR(-150-30*i)) * CN(0, -0.8, -3.1+1*i)
2192
2193
		wait()
2194
2195
	end
2196
2197
	for i = 0.15, 1, 0.15 do
2198
2199
		RAW.C0 = CA(MR(20+58*i), 0, MR(46-60*i)) * CN(0.2*i, -0.35*i, 0)
2200
2201
		LAW.C0 = CA(MR(10+65*i), 0, MR(-8-32*i)) * CN(0.3*i, -0.15-0.25*i, 0)
2202
2203
		FW.C0 = CA(0, MR(-35-30*i), 0)
2204
2205
		HW.C0 = CA(MR(130+50*i), MR(-150-20*i), MR(-180)) * CN(0.25*i, -0.8+0.3*i, -2.1+0.9*i)
2206
2207
		wait()
2208
2209
	end
2210
2211
	for i = 0.2, 1, 0.2 do
2212
2213
		RAW.C0 = CA(MR(78+8*i), 0, MR(-14-41*i)) * CN(0.2+0.35*i, -0.35-0.55*i, 0)
2214
2215
		LAW.C0 = CA(MR(75+7*i), 0, MR(-40)) * CN(0.3+0.15*i, -0.4-0.06*i, 0)
2216
2217
		FW.C0 = CA(0, MR(-65-5*i), 0)
2218
2219
		HW.C0 = CA(MR(0), MR(-10+10*i), MR(0)) * CN(0.25+0.1*i, -0.5+0.4*i, -1.2)
2220
2221
		wait()
2222
2223
	end
2224
2225
	for i = 0.25, 1, 0.25 do
2226
2227
		RAW.C0 = CA(MR(86+4*i), 0, MR(-55-10*i)) * CN(0.55+0.05*i, -0.8-0.1*i, 0)
2228
2229
		LAW.C0 = CA(MR(82+3*i), 0, MR(-40)) * CN(0.45+0.05*i, -0.46-0.04*i, 0)
2230
2231
		FW.C0 = CA(0, MR(-70), 0)
2232
2233
		HW.C0 = CA(MR(0), MR(5*i), MR(0)) * CN(0.35+0.05*i, -0.1+0.1*i, -1.2)
2234
2235
		wait()
2236
2237
	end
2238
2239
end
2240
2241
2242
2243
function DeselAnim()
2244
2245
	for i = 0.25, 1, 0.25 do
2246
2247
		RAW.C0 = CA(MR(90-10*i), 0, MR(-65+10*i)) * CN(0.6-0.05*i, -0.9+0.35*i, 0)
2248
2249
		LAW.C0 = CA(MR(85-10*i), 0, MR(-40+4*i)) * CN(0.5-0.05*i, -0.5+0.04*i, 0)
2250
2251
		FW.C0 = CA(0, MR(-70+10*i), 0)
2252
2253
		HW.C0 = CA(MR(180-10*i), MR(-185+10*i), MR(180-10*i)) * CN(0.4-0.05*i, -0.1*i, -1.2)
2254
2255
		wait()
2256
2257
	end
2258
2259
	for i = 0.07, 1, 0.07 do
2260
2261
		RAW.C0 = CA(MR(80-80*i), 0, MR(-55+90*i)) * CN(0.55-0.35*i, -0.55+0.55*i, 0)
2262
2263
		LAW.C0 = CA(MR(75-70*i), 0, MR(-36+30*i)) * CN(0.45-0.35*i, -0.46+0.36*i, 0)
2264
2265
		FW.C0 = CA(0, MR(-60+40*i), 0)
2266
2267
		HW.C0 = CA(MR(170-70*i), MR(-175+70*i), MR(170-70*i)) * CN(0.35-0.35*i, -0.1-0.1*i, -1.2-1*i)
2268
2269
		wait()
2270
2271
	end
2272
2273
	for i = 0.25, 1, 0.25 do
2274
2275
		RAW.C0 = CN(-0.1*i, 0, -0.15*i) * CA(MR(-30*i), 0, MR(35+10*i)) * CN(0.2-0.2*i, 0, 0)
2276
2277
		LAW.C0 = CA(MR(5-5*i), 0, MR(-6+6*i)) * CN(0.1-0.1*i, -0.1+0.1*i, 0)
2278
2279
		FW.C0 = CA(0, MR(-20+15*i), 0)
2280
2281
		HW.C0 = CA(MR(100-20*i), MR(-105+15*i), MR(100-15*i)) * CN(0, -0.2, -2.2-0.3*i)
2282
2283
		wait()
2284
2285
	end
2286
2287
	LAW.Part1 = nil
2288
2289
	for i = 0.12, 1, 0.12 do
2290
2291
		RAW.C0 = CN(-0.1-0.05*i, 0, -0.15-0.3*i) * CA(MR(-30-100*i), 0, MR(45-30*i)) * CN(0, -0.3*i, 0)
2292
2293
		FW.C0 = CA(0, MR(-5+5*i), 0)
2294
2295
		HW.C0 = CA(MR(80-37*i), MR(-90+55*i), MR(85-135*i)) * CN(0, -0.2, -2.5-0.9*i)
2296
2297
		wait()
2298
2299
	end
2300
2301
	Attach(Torso)
2302
2303
	for i = 0.2, 1, 0.2 do
2304
2305
		RAW.C0 = CN(-0.15*i, 0, -0.45-0.05*i) * CA(MR(-130-10*i), 0, MR(15-5*i)) * CN(0, -0.3-0.1*i, 0)
2306
2307
		HW.C0 = CA(MR(43-5*i), MR(-35+7*i), MR(-50-40*i)) * CN(0, -0.2, -3.4-0.4*i)
2308
2309
		wait()
2310
2311
	end
2312
2313
	TW.Part1 = Handle
2314
2315
	HW.Part1 = nil
2316
2317
	for i = 0.25, 1, 0.25 do
2318
2319
		RAW.C0 = CN(-0.15+0.05*i, 0, -0.5+0.15*i) * CA(MR(-140+10*i), 0, MR(10-3*i)) * CN(0, -0.4+0.1*i, 0)
2320
2321
		wait()
2322
2323
	end
2324
2325
	for i = 0.15, 1, 0.15 do
2326
2327
		RAW.C0 = CN(-0.1+0.1*i, 0, -0.35+0.25*i) * CA(MR(-130+115*i), 0, MR(7-7*i)) * CN(0, -0.3+0.25*i, 0)
2328
2329
		wait()
2330
2331
	end
2332
2333
	for i = 0.33, 1, 0.33 do
2334
2335
		RAW.C0 = CN(0, 0, -0.1+0.1*i) * CA(MR(-15+15*i), 0, 0) * CN(0, -0.05+0.05*i, 0)
2336
2337
		wait()
2338
2339
	end
2340
2341
	Attach(Torso)
2342
2343
	TW.Part1 = Handle
2344
2345
	HW.Part1 = nil
2346
2347
	RAW.Part1 = nil
2348
2349
	LAW.Part1 = nil
2350
2351
end
2352
2353
2354
2355
function ReloadFunc(once)
2356
2357
	if Ammunition.Ammo < Ammunition.MaxAmmo and Selected and not Reloading and not Attacking and Ammunition.Ammoleft > 0 then
2358
2359
		if not once then
2360
2361
			ReloadHold = true
2362
2363
		end
2364
2365
		ReloadStart(once)
2366
2367
	end
2368
2369
end
2370
2371
2372
2373
function onSelected(mouse)
2374
2375
	SelectAnim()
2376
2377
	mouse.Icon = Icon
2378
2379
	Selected = true
2380
2381
	Notime(function()
2382
2383
		for _, g in pairs(AccuracyGuis) do
2384
2385
			g.Gui.Transparency = 0.2
2386
2387
		end
2388
2389
		while Selected do
2390
2391
			pcall(function()
2392
2393
				for _, g in pairs(AccuracyGuis) do
2394
2395
					g.Gui.Position = UD(0, mouse.X+g.props.offset.x+g.props.unit.x*(Accuracy.Momentum*11), 0, mouse.Y+g.props.offset.y+g.props.unit.y*(Accuracy.Momentum*11))
2396
2397
				end
2398
2399
			end)
2400
2401
			wait()
2402
2403
		end
2404
2405
	end)
2406
2407
	mouse.Button1Down:connect(function()
2408
2409
		if Selected and not Attacking and not Swinging then
2410
2411
			if Reloading then
2412
2413
				ReloadHold = false
2414
2415
			else
2416
2417
				if Ammunition.Ammo < 1 then
2418
2419
					ReloadFunc(true)
2420
2421
				else
2422
2423
					ShootFunc((Pipe1.CFrame * CN(0, 0, 1.65)).p, mouse.Hit.p)
2424
2425
				end
2426
2427
				if Ammunition.Ammo < 1 and Ammunition.Ammoleft < 1 then
2428
2429
					PlaySound(Sounds.Out)
2430
2431
				end
2432
2433
			end
2434
2435
		end
2436
2437
	end)
2438
2439
	mouse.KeyDown:connect(function(key)
2440
2441
		key = key:lower()
2442
2443
		if Selected and not Attacking and not Swinging then
2444
2445
			if key == "r" then
2446
2447
				ReloadFunc()
2448
2449
			elseif key == "e" then
2450
2451
				Swing()
2452
2453
			end
2454
2455
		end
2456
2457
	end)
2458
2459
	mouse.KeyUp:connect(function(key)
2460
2461
		key = key:lower()
2462
2463
		if key == "r" then
2464
2465
			ReloadHold = false
2466
2467
		end
2468
2469
	end)
2470
2471
end
2472
2473
2474
2475
function onDeselected(mouse)
2476
2477
	Selected = false
2478
2479
	for _, g in pairs(AccuracyGuis) do
2480
2481
		g.Gui.Transparency = 1
2482
2483
	end
2484
2485
	DeselAnim()
2486
2487
end
2488
2489
2490
2491
bin.Selected:connect(onSelected)
2492
2493
bin.Deselected:connect(onDeselected)