View difference between Paste ID: ZvRugxTe and WxNeWxnf
SHOW: | | - or go back to the newest paste.
1
--[[
2
TNT
3
Old-fashon explosives!
4
--]]
5
6
7
if script == nil then return end
8
9
10
ModelName = "TNT"
11-
Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("DarkShadow6")
11+
Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("timetodie23232223")
12
Selected = false
13
Connected = false
14
Button1Down = false
15
CanUse = true
16
Primed = false
17
Thrown = false
18
ProjectileData = [[Blast_Size = 25
19
Blast_Strength = 90
20
Blast_Sound = false
21
]] ..game:GetService("InsertService"):LoadAsset(60548640)["ProjectileData"].Value
22
FirstPerson = game:GetService("InsertService"):LoadAsset(60568552)["FirstPerson"].Value
23
MouseAim = game:GetService("InsertService"):LoadAsset(61527949)["MouseAim"].Value
24
25
26
function CheckPlayer()
27
	if Player.Character == nil then return false end
28
	if Player.Character:FindFirstChild("Torso") == nil or Player.Character:FindFirstChild("Right Arm") == nil or Player.Character:FindFirstChild("Left Arm") == nil or Player.Character:FindFirstChild("Humanoid") == nil then return false end
29
	if Player.Character.Humanoid.Health <= 0 then return false end
30
	return true
31
end
32
33
34
loadstring(game:GetService("InsertService"):LoadAsset(65363615)["tagHumanoid"].Value)()
35
36
37
loadstring(game:GetService("InsertService"):LoadAsset(63178291)["CameraPunch"].Value)()
38
39
40
loadstring(game:GetService("InsertService"):LoadAsset(62991657)["PacketFunctions"].Value)()
41
42
43
function CreateParts(Parent, Format)
44
	if Parent == nil then return end
45
	local Parts = Instance.new("Model")
46
	Parts.Name = ModelName
47
	if Format == 1 then
48
		Parts.Name = Parts.Name.. " (Holstered)"
49
	end
50
	Parts.Parent = Parent
51
52
	local MasterPart1 = Instance.new("Part")
53
	MasterPart1.Name = "Handle"
54
	MasterPart1.BrickColor = BrickColor.new("White")
55
	MasterPart1.TopSurface = 0
56
	MasterPart1.BottomSurface = 0
57
	MasterPart1.FormFactor = "Custom"
58
	MasterPart1.Size = Vector3.new(0.51, 0.2, 0.51)
59
	MasterPart1.Parent = Parts
60
	Instance.new("CylinderMesh", MasterPart1)
61
	local Weld = Instance.new("Weld")
62
	Weld.Part0 = MasterPart1
63
	if Format == 1 then
64
		Weld.Part1 = Player.Character:FindFirstChild("Left Leg")
65
		Weld.C0 = CFrame.new(-0.65, 0, 0.8) * CFrame.fromEulerAnglesXYZ(0, math.rad(180), math.rad(90))
66
	elseif Format == 2 then
67
		Weld.Part1 = Player.Character:FindFirstChild("Right Arm")
68
		Weld.C1 = CFrame.new(0, -1.2, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(90), 0)
69
	end
70
	Weld.Parent = Weld.Part0
71
	local Smoke = Instance.new("Smoke", MasterPart1)
72
	Smoke.Enabled = false
73
	Smoke.RiseVelocity = 5
74
	Smoke.Size = 1
75
	Smoke.Opacity = 0.3
76
77
	for i = 1, 3 do
78
		local Part = Instance.new("Part")
79
		Part.Name = "Stick " ..i
80
		Part.BrickColor = BrickColor.new("Really red")
81
		Part.TopSurface = 0
82
		Part.BottomSurface = 0
83
		Part.FormFactor = "Custom"
84
		Part.Size = Vector3.new(0.35, 1.5, 0.35)
85
		Part.Parent = Parts
86
		local Weld = Instance.new("Weld")
87
		Weld.Part0 = Part
88
		Weld.Part1 = MasterPart1
89
		Weld.C0 = CFrame.new(0, 0, 0.19) * CFrame.fromEulerAnglesXYZ(0, math.rad(360) * (i / 3), 0)
90
		Weld.Parent = Weld.Part0
91
		Instance.new("CylinderMesh", Part)
92
93
		local Part = Instance.new("Part")
94
		Part.Name = "Stick Band " ..i
95
		Part.BrickColor = BrickColor.new("White")
96
		Part.TopSurface = 0
97
		Part.BottomSurface = 0
98
		Part.FormFactor = "Custom"
99
		Part.Size = Vector3.new(0.4, 0.2, 0.4)
100
		Part.Parent = Parts
101
		local Weld = Instance.new("Weld")
102
		Weld.Part0 = Part
103
		Weld.Part1 = MasterPart1
104
		Weld.C0 = CFrame.new(0, 0, 0.19) * CFrame.fromEulerAnglesXYZ(0, math.rad(360) * (i / 3), 0)
105
		Weld.Parent = Weld.Part0
106
		Instance.new("CylinderMesh", Part)
107
108
		local Part = Instance.new("Part")
109
		Part.Name = "Stick Wick End " ..i
110
		Part.BrickColor = BrickColor.new("White")
111
		Part.TopSurface = 0
112
		Part.BottomSurface = 0
113
		Part.FormFactor = "Custom"
114
		Part.Size = Vector3.new(0.2, 0.2, 0.2)
115
		Part.Parent = Parts
116
		local Weld = Instance.new("Weld")
117
		Weld.Part0 = Part
118
		Weld.Part1 = MasterPart1
119
		Weld.C0 = CFrame.new(0, -0.75, 0.19) * CFrame.fromEulerAnglesXYZ(0, math.rad(360) * (i / 3), 0)
120
		Weld.Parent = Weld.Part0
121
		Instance.new("CylinderMesh", Part).Scale = Vector3.new(0.3, 0.1, 0.3)
122
123
		local Part = Instance.new("Part")
124
		Part.Name = "Stick Wick " ..i
125
		Part.BrickColor = BrickColor.new("White")
126
		Part.TopSurface = 0
127
		Part.BottomSurface = 0
128
		Part.FormFactor = "Custom"
129
		Part.Size = Vector3.new(0.2, 0.2, 0.2)
130
		Part.Parent = Parts
131
		local Weld = Instance.new("Weld")
132
		Weld.Part0 = Part
133
		Weld.Part1 = MasterPart1
134
		Weld.C0 = CFrame.new(0, -0.75, 0.09) * CFrame.fromEulerAnglesXYZ(0, math.rad(360) * (i / 3), 0)
135
		Weld.Parent = Weld.Part0
136
		local Mesh = Instance.new("SpecialMesh", Part)
137
		Mesh.MeshType = "Brick"
138
		Mesh.Scale = Vector3.new(0.3, 0.1, 0.9)
139
	end
140
141
	local Part = Instance.new("Part")
142
	Part.Name = "Wick"
143
	Part.BrickColor = BrickColor.new("White")
144
	Part.TopSurface = 0
145
	Part.BottomSurface = 0
146
	Part.FormFactor = "Custom"
147
	Part.Size = Vector3.new(0.2, 0.5, 0.2)
148
	Part.Parent = Parts
149
	local Weld = Instance.new("Weld")
150
	Weld.Part0 = Part
151
	Weld.Part1 = MasterPart1
152
	Weld.C0 = CFrame.new(0, -1, 0)
153
	Weld.Parent = Weld.Part0
154
	Instance.new("CylinderMesh", Part).Scale = Vector3.new(0.3, 1, 0.3)
155
156
	local MasterPart2 = Instance.new("Part")
157
	MasterPart2.Name = "Match"
158
	MasterPart2.BrickColor = BrickColor.new("Pastel brown")
159
	MasterPart2.TopSurface = 0
160
	MasterPart2.BottomSurface = 0
161
	MasterPart2.FormFactor = "Custom"
162
	MasterPart2.Size = Vector3.new(0.2, 0.5, 0.2)
163
	MasterPart2.Parent = Parts
164
	Instance.new("CylinderMesh", MasterPart2).Scale = Vector3.new(0.025 / 0.2, 1, 0.025 / 0.2)
165
	local Weld = Instance.new("Weld")
166
	Weld.Part0 = MasterPart2
167
	Weld.Part1 = MasterPart1
168
	Weld.C0 = CFrame.new(0, 0, 0.375)
169
	Weld.Parent = Weld.Part0
170
171
	local Part = Instance.new("Part")
172
	Part.Name = "Match Tip"
173
	Part.BrickColor = BrickColor.new("Bright red")
174
	Part.TopSurface = 0
175
	Part.BottomSurface = 0
176
	Part.FormFactor = "Custom"
177
	Part.Size = Vector3.new(0.2, 0.2, 0.2)
178
	Part.Parent = Parts
179
	local Mesh = Instance.new("SpecialMesh", Part)
180
	Mesh.MeshType = "Sphere"
181
	Mesh.Scale = Vector3.new(0.06 / 0.2, 0.09 / 0.2, 0.06 / 0.2)
182
	local Weld = Instance.new("Weld")
183
	Weld.Part0 = Part
184
	Weld.Part1 = MasterPart2
185
	Weld.C0 = CFrame.new(0, -0.25, 0)
186
	Weld.Parent = Weld.Part0
187
188
	for _, Part in pairs(Parts:GetChildren()) do
189
		Part.Locked = true
190
		Part.CanCollide = false
191
	end
192
end
193
194
195
function RemoveParts(Parent, Format)
196
	if Format == 1 then
197
		pcall(function() Parent[ModelName.. " (Holstered)"]:Remove() end)
198
	elseif Format == 2 then
199
		pcall(function() Parent[ModelName]:Remove() end)
200
	end
201
end
202
203
204
function SetAngle(Joint, Angle, Character)
205
	if Character == nil then return false end
206
	local Joints = {
207
		Character.Torso:FindFirstChild("Right Shoulder 2"),
208
		Character.Torso:FindFirstChild("Left Shoulder 2"),
209
		Character.Torso:FindFirstChild("Right Hip 2"),
210
		Character.Torso:FindFirstChild("Left Hip 2")
211
	}
212
	if Joints[Joint] == nil then return false end
213
	if Joint == 1 or Joint == 3 then
214
		Joints[Joint].DesiredAngle = Angle
215
	end
216
	if Joint == 2 or Joint == 4 then
217
		Joints[Joint].DesiredAngle = -Angle
218
	end
219
end
220
221
222
function ForceAngle(Joint, Angle, Character)
223
	if Character == nil then return false end
224
	local Joints = {
225
		Character.Torso:FindFirstChild("Right Shoulder 2"),
226
		Character.Torso:FindFirstChild("Left Shoulder 2"),
227
		Character.Torso:FindFirstChild("Right Hip 2"),
228
		Character.Torso:FindFirstChild("Left Hip 2")
229
	}
230
	if Joints[Joint] == nil then return false end
231
	if Joint == 1 or Joint == 3 then
232
		Joints[Joint].DesiredAngle = Angle
233
		Joints[Joint].CurrentAngle = Angle
234
	end
235
	if Joint == 2 or Joint == 4 then
236
		Joints[Joint].DesiredAngle = -Angle
237
		Joints[Joint].CurrentAngle = -Angle
238
	end
239
end
240
241
242
function SetSpeed(Joint, Speed, Character)
243
	if Character == nil then return false end
244
	local Joints = {
245
		Character.Torso:FindFirstChild("Right Shoulder 2"),
246
		Character.Torso:FindFirstChild("Left Shoulder 2"),
247
		Character.Torso:FindFirstChild("Right Hip 2"),
248
		Character.Torso:FindFirstChild("Left Hip 2")
249
	}
250
	if Joints[Joint] == nil then return false end
251
	Joints[Joint].MaxVelocity = Speed
252
end
253
254
255
function DisableLimb(Limb, Character)
256
	if Character == nil then return false end
257
	if Character:FindFirstChild("Torso") == nil then return false end
258
	local Joints = {
259
		Character.Torso:FindFirstChild("Right Shoulder"),
260
		Character.Torso:FindFirstChild("Left Shoulder"),
261
		Character.Torso:FindFirstChild("Right Hip"),
262
		Character.Torso:FindFirstChild("Left Hip")
263
	}
264
	local Limbs = {
265
		Character:FindFirstChild("Right Arm"),
266
		Character:FindFirstChild("Left Arm"),
267
		Character:FindFirstChild("Right Leg"),
268
		Character:FindFirstChild("Left Leg")
269
	}
270
	if Joints[Limb] == nil then return false end
271
	if Limbs[Limb] == nil then return false end
272
	local Joint = Instance.new("Motor6D")
273
	Joint.Parent = Character.Torso
274
	Joint.Part0 = Character.Torso
275
	Joint.Part1 = Limbs[Limb]
276
	if Limb == 1 then
277
		Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
278
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
279
		Joint.Name = "Right Shoulder 2"
280
	elseif Limb == 2 then
281
		Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
282
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
283
		Joint.Name = "Left Shoulder 2"
284
	elseif Limb == 3 then
285
		Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
286
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
287
		Joint.Name = "Right Hip 2"
288
	elseif Limb == 4 then
289
		Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
290
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
291
		Joint.Name = "Left Hip 2"
292
	end
293
	Joint.MaxVelocity = Joints[Limb].MaxVelocity
294
	Joint.CurrentAngle = Joints[Limb].CurrentAngle
295
	Joint.DesiredAngle = Joints[Limb].DesiredAngle
296
	Joints[Limb]:Remove()
297
end
298
299
300
function ResetLimbCFrame(Limb, Character)
301
	if Character == nil then return false end
302
	if Character.Parent == nil then return false end
303
	if Character:FindFirstChild("Torso") == nil then return false end
304
	local Joints = {
305
		Character.Torso:FindFirstChild("Right Shoulder 2"),
306
		Character.Torso:FindFirstChild("Left Shoulder 2"),
307
		Character.Torso:FindFirstChild("Right Hip 2"),
308
		Character.Torso:FindFirstChild("Left Hip 2")
309
	}
310
	local Limbs = {
311
		Character:FindFirstChild("Right Arm"),
312
		Character:FindFirstChild("Left Arm"),
313
		Character:FindFirstChild("Right Leg"),
314
		Character:FindFirstChild("Left Leg")
315
	}
316
	if Joints[Limb] == nil then return false end
317
	if Limbs[Limb] == nil then return false end
318
	if Limb == 1 then
319
		Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
320
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
321
	elseif Limb == 2 then
322
		Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
323
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
324
	elseif Limb == 3 then
325
		Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
326
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
327
	elseif Limb == 4 then
328
		Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
329
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
330
	end
331
end
332
333
334
function EnableLimb(Limb, Character)
335
	if Character == nil then return false end
336
	if Character:FindFirstChild("Torso") == nil then return false end
337
	local Joints = {
338
		Character.Torso:FindFirstChild("Right Shoulder 2"),
339
		Character.Torso:FindFirstChild("Left Shoulder 2"),
340
		Character.Torso:FindFirstChild("Right Hip 2"),
341
		Character.Torso:FindFirstChild("Left Hip 2")
342
	}
343
	local Limbs = {
344
		Character:FindFirstChild("Right Arm"),
345
		Character:FindFirstChild("Left Arm"),
346
		Character:FindFirstChild("Right Leg"),
347
		Character:FindFirstChild("Left Leg")
348
	}
349
	if Joints[Limb] == nil then return false end
350
	if Limbs[Limb] == nil then return false end
351
	if Limb == 1 then
352
		Joints[Limb].Name = "Right Shoulder"
353
	elseif Limb == 2 then
354
		Joints[Limb].Name = "Left Shoulder"
355
	elseif Limb == 3 then
356
		Joints[Limb].Name = "Right Hip"
357
	elseif Limb == 4 then
358
		Joints[Limb].Name = "Left Hip"
359
	end
360
	Animate = Character:FindFirstChild("Animate")
361
	if Animate == nil then return false end
362
	Animate = Animate:Clone()
363
	Character.Animate:Remove()
364
	Animate.Parent = Character
365
end
366
367
368
function onButton1Down(Mouse)
369
	if Button1Down == true then return end
370
	Button1Down = true
371
	if CheckPlayer() == false or Primed == true or Thrown == true or CanUse == false then return end
372
	CanUse = false
373
	Primed = true
374
	DisableLimb(2, Player.Character)
375
	SetSpeed(2, 0.25, Player.Character)
376
	SetAngle(2, math.rad(90), Player.Character)
377
	for i = 0, 1, 0.08 do
378
		pcall(function()
379
			Player.Character.Torso["Left Shoulder 2"].C0 =
380
				CFrame.new(-1.5 + (0.4 * i), 0.5, -0.3 * i) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (35 * i)), 0)
381
			Player.Character.Torso["Right Shoulder 2"].C0 =
382
				CFrame.new(1.5 - (0.4 * i), 0.5, -0.3 * i) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (35 * i)), 0)
383
		end)
384
		wait()
385
	end
386
	pcall(function()
387
		Player.Character.Torso["Left Shoulder 2"].C0 =
388
			CFrame.new(-1.1, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(0, math.rad(-125), 0)
389
		Player.Character.Torso["Right Shoulder 2"].C0 =
390
			CFrame.new(1.1, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(0, math.rad(125), 0)
391
		Player.Character[ModelName].Match.Weld.Part1 = Player.Character["Left Arm"]
392
		Player.Character[ModelName].Match.Weld.C0 = CFrame.new()
393
		Player.Character[ModelName].Match.Weld.C1 = CFrame.new(0, -1.01, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), 0, 0)
394
	end)
395
	SetSpeed(2, 0.1, Player.Character)
396
	SetAngle(2, math.rad(100), Player.Character)
397
	for i = 0, 1, 0.2 do
398
		pcall(function()
399
			Player.Character.Torso["Left Shoulder 2"].C0 =
400
				CFrame.new(-1.1, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(0, math.rad(-125 + (10 * i)), 0)
401
		end)
402
		wait()
403
	end
404
	SetAngle(2, math.rad(110), Player.Character)
405
	SetSpeed(2, 0.025, Player.Character)
406
	for i = 0, 1, 0.2 do
407
		pcall(function()
408
			Player.Character.Torso["Left Shoulder 2"].C0 =
409
				CFrame.new(-1.1, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(0, math.rad(-115 + (5 * i)), 0)
410
			Player.Character[ModelName].Match.Weld.C0 =
411
				CFrame.fromEulerAnglesXYZ(math.rad(i * 50), 0, math.rad(i * 90)) * CFrame.new(-0.15 * i, 0, 0.15 * i)
412
		end)
413
		wait()
414
	end
415
	pcall(function()
416
		Player.Character.Torso["Left Shoulder 2"].C0 =
417
			CFrame.new(-1.1, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(0, math.rad(-110), 0)
418
		Player.Character[ModelName].Match.Weld.C0 =
419
			CFrame.fromEulerAnglesXYZ(math.rad(50), 0, math.rad(90)) * CFrame.new(-0.15, 0, 0.15)
420
	end)
421
	SetAngle(2, math.rad(50), Player.Character)
422
	SetSpeed(2, 0.1, Player.Character)
423
	SoundToServer("Light", "http://www.roblox.com/Asset/?id=19095020", 1, 1, false, Player.Character.Torso)
424
	do
425
		SendToServer([[while Source.Parent ~= nil do
426
	local Part = Instance.new("Part")
427
	Part.Name = "Flame"
428
	Part.BrickColor = BrickColor.new("Neon orange")
429
	Part.TopSurface = 0
430
	Part.BottomSurface = 0
431
	Part.FormFactor = "Custom"
432
	Part.Size = Vector3.new(0.2, 0.2, 0.2)
433
	Part.Anchored = true
434
	Part.CanCollide = false
435
	Part.CFrame = CFrame.new(Source.CFrame.p) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(-10000, 10000) / 1000), math.rad(math.random(-10000, 10000) / 1000), math.rad(math.random(-10000, 10000) / 1000))
436
	Part.Parent = Workspace
437
	local Mesh = Instance.new("SpecialMesh", Part)
438
	Mesh.MeshType = "Sphere"
439
	Mesh.Scale = Vector3.new(0.08 / 0.2, 0.08 / 0.2, 0.08 / 0.2)
440
	coroutine.wrap(function()
441
		local Velocity = Source.Velocity
442
		for x = 0, 1, 0.05 do
443
			Part.CFrame = Part.CFrame * CFrame.new(0, 0.1, 0) * CFrame.new(Velocity / 50)
444
			Part.Transparency = x
445
			wait()
446
		end
447
		Part:Remove()
448
	end)()
449
	wait(math.random() * 0.1)
450
end]], "Match", {"Source", Player.Character[ModelName]["Match Tip"]})
451
	end
452
	wait(0.4)
453
	SetAngle(2, math.rad(100), Player.Character)
454
	SetSpeed(2, 0.1, Player.Character)
455
	for i = 0, 1, 0.1 do
456
		pcall(function()
457
			Player.Character.Torso["Right Shoulder 2"].C0 =
458
				CFrame.new(1.1, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(0, math.rad(125 - (30 * i)), 0)
459
			Player.Character[ModelName].Handle.Weld.C0 =
460
				CFrame.fromEulerAnglesXYZ(math.rad(60 * i), 0, 0)
461
		end)
462
		wait()
463
	end
464
	pcall(function()
465
		Player.Character.Torso["Right Shoulder 2"].C0 =
466
			CFrame.new(1.1, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(0, math.rad(95), 0)
467
		Player.Character[ModelName].Handle.Weld.C0 =
468
			CFrame.fromEulerAnglesXYZ(math.rad(60), 0, 0)
469
	end)
470
	wait(math.random(900, 1200) / 1000)
471
	SoundToServer("Fire", "http://www.roblox.com/Asset/?id=31760113", 2, 1, true, Player.Character[ModelName].Handle)
472
	SetSpeed(1, 0.1, Player.Character)
473
	SetSpeed(2, 0.1, Player.Character)
474
	SetAngle(1, math.rad(200), Player.Character)
475
	SetAngle(2, 0, Player.Character)
476
	for i = 0, 1, 0.1 do
477
		pcall(function()
478
			Player.Character.Torso["Left Shoulder 2"].C0 =
479
				CFrame.new(-1.1 - (0.4 * i), 0.5, -0.3 * (1 - i)) * CFrame.fromEulerAnglesXYZ(0, math.rad(-110 + (20 * i)), 0)
480
			Player.Character.Torso["Right Shoulder 2"].C0 =
481
				CFrame.new(1.1 + (0.4 * i), 0.5, -0.3 * (1 - i)) * CFrame.fromEulerAnglesXYZ(0, math.rad(95 - (5 * i)), 0)
482
			Player.Character[ModelName].Handle.Weld.C0 =
483
				CFrame.fromEulerAnglesXYZ(math.rad(60 * (1 - i)), 0, 0)
484
		end)
485
		wait()
486
	end
487
	ResetLimbCFrame(1, Player.Character)
488
	ResetLimbCFrame(2, Player.Character)
489
	EnableLimb(1, Player.Character)
490
	EnableLimb(2, Player.Character)
491
	DisableLimb(1, Player.Character)
492
	pcall(function() Player.Character[ModelName].Handle.Weld.C0 = CFrame.new() end)
493
	pcall(function() Player.Character[ModelName].Handle.Smoke.Enabled = true end)
494
	pcall(function() Player.Character[ModelName].Match.Weld:Remove() end)
495
	for _, Part in pairs(Player.Character[ModelName]:GetChildren()) do
496
		if Part.Name == "Match" or Part.Name == "Match Tip" then
497
			pcall(function()
498
				Part.CanCollide = true
499
				Part.Parent = Workspace
500
				game:GetService("Debris"):AddItem(Part, 5)
501
			end)
502
		end
503
	end
504
	wait(0.1)
505
	tagHumanoid(Player.Character[ModelName].Handle)
506
	Instance.new("Configuration", Player.Character[ModelName].Handle).Name = "CanExplode"
507
	SendToServer([[wait(math.random(3000, 10000) / 1000)
508
if Source.Parent == nil then return end
509
Source.Parent.Parent = Workspace
510
pcall(function() Source.Weld:Remove() end)
511
for i = 1, 10 do
512
	local Sound = Instance.new("Sound")
513
	Sound.Name = "Explode"
514
	Sound.SoundId = "rbxasset://sounds/collide.wav"
515
	Sound.Volume = 1
516
	Sound.Pitch = math.random(400, 600) / 1000
517
	Sound.Parent = Source
518
	Sound:Play()
519
end
520
for _, Part in pairs(Source:GetChildren()) do
521
	if Part.Name == "Fire" then
522
		pcall(function()
523
			Part:Stop()
524
			Part.Volume = 0
525
		end)
526
	end
527
end
528
]] ..ProjectileData, "TNT", {"Source", Player.Character[ModelName].Handle})
529
	Player.Character[ModelName].Changed:connect(function(Property)
530
		if Property == "Parent" then
531
			while CanUse == false do wait() end
532
			EnableLimb(1, Player.Character)
533
			UpdateFirstPerson()
534
			script.Parent:Remove()
535
		end
536
	end)
537
	CanUse = true
538
	coroutine.wrap(function()
539
		while Selected == true do
540
			if pcall(function() return Mouse.Target end) == false then
541
				Button1Down = true
542
				onButton1Up({Hit = Player.Character.Torso.CFrame * CFrame.new(0, 10, -10)})
543
			end
544
			wait()
545
		end
546
	end)()
547
end
548
549
550
function onButton1Up(Mouse)
551
	if Button1Down == false then return end
552
	Button1Down = false
553
	if CanUse == false then return end
554
	if Player.Character:FindFirstChild(ModelName) ~= nil and Thrown == false then
555
		Thrown = true
556
		SetSpeed(1, 0.75, Player.Character)
557
		SetAngle(1, 0, Player.Character)
558
		wait()
559
		SoundToServer("Fire", "http://www.roblox.com/Asset/?id=31760113", 2, 1, true, Player.Character[ModelName].Handle)
560
		pcall(function() Player.Character[ModelName].Handle.Weld:Remove() end)
561
		for _, Part in pairs(Player.Character[ModelName]:GetChildren()) do
562
			pcall(function() Part.CanCollide = true end)
563
		end
564
		local BodyVelocity = Instance.new("BodyVelocity")
565
		BodyVelocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)
566
		BodyVelocity.velocity = (Mouse.Hit.p - Player.Character[ModelName].Handle.Position).unit * 75
567
		BodyVelocity.Parent = Player.Character[ModelName].Handle
568
		game:GetService("Debris"):AddItem(BodyVelocity, 0.1)
569
		game:GetService("Debris"):AddItem(Player.Character[ModelName], 10)
570
		Player.Character[ModelName].Parent = Workspace
571
	end
572
end
573
574
575
function onKeyDown(Key, Mouse)
576
	if Selected == false then return end
577
	Key = Key:lower()
578
	if Button1Down == false and CanUse == true and CheckPlayer() == true then
579
		if Key == "q" then
580
			if Mouse.Target == nil then return end
581
			if CheckPlayer() == false then return end
582
			local NewPlayer = game:GetService("Players"):GetPlayerFromCharacter(Mouse.Target.Parent)
583
			if NewPlayer == nil then return end
584
			if NewPlayer.Character == nil then return end
585
			if NewPlayer.Character:FindFirstChild("Torso") == nil then return end
586
			if (NewPlayer.Character.Torso.Position - Player.Character.Torso.Position).magnitude > 10 then return end
587
			onDeselected(Mouse)
588
			wait()
589
			RemoveParts(Player.Character, 1)
590
			script.Parent.Parent = NewPlayer.Backpack
591
			Player = NewPlayer
592
		elseif Key == "g" then
593
			CanUse = false
594
			SoundToServer("Slash", "rbxasset://sounds/swordslash.wav", 2, 1, false, Player.Character.Torso)
595
			SetAngle(1, math.rad(200), Player.Character)
596
			CameraSlide(math.rad(5), 0, 0.3)
597
			SetSpeed(1, 0.75, Player.Character)
598
			SetAngle(1, 0, Player.Character)
599
			local HasHit = false
600
			local _, HitConnection = pcall(function() return Player.Character[ModelName].Handle.Touched:connect(function(Hit)
601
				if HasHit == true or Hit:IsDescendantOf(Player.Character) then return end
602
				HasHit = true
603
				SoundToServer("Bash", "http://www.roblox.com/Asset/?id=46153268", 1, 0.25, false, Player.Character.Torso)
604
				local Humanoid = Hit.Parent:FindFirstChild("Humanoid") or Hit.Parent.Parent:FindFirstChild("Humanoid")
605
				if Humanoid ~= nil then
606
					tagHumanoid(Humanoid)
607
					Humanoid:TakeDamage(7)
608
					wait()
609
					pcall(function() untagHumanoid(Humanoid) end)
610
				end
611
			end) end)
612
			CameraSlide(math.rad(-20), 0, 0.2)
613
			pcall(function() HitConnection:disconnect() end)
614
			SetSpeed(1, 0.5, Player.Character)
615
			SetAngle(1, math.rad(90), Player.Character)
616
			CameraSlide(math.rad(15), 0, 0.2)
617
			CanUse = true
618
		end
619
	end
620
end
621
622
623
function onSelected(Mouse)
624
	if Selected == true or CanUse == false then return end
625
	CanUse = false
626
	while true do
627
		if CheckPlayer() == true then
628
			if Player.Character.Torso:FindFirstChild("Right Shoulder") ~= nil then
629
				break
630
			end
631
		end
632
		wait(0.1)
633
	end
634
	Selected = true
635
	RemoveParts(Player.Character, 1)
636
	CreateParts(Player.Character, 2)
637
	DisableLimb(1, Player.Character)
638
	SetSpeed(1, 0.5, Player.Character)
639
	SetAngle(1, math.rad(90), Player.Character)
640
	Mouse.Icon = "rbxasset://textures\\GunCursor.png"
641
	Mouse.Button1Down:connect(function() onButton1Down(Mouse) end)
642
	Mouse.Button1Up:connect(function() onButton1Up(Mouse) end)
643
	Mouse.KeyDown:connect(function(Key) onKeyDown(Key, Mouse) end)
644
	CanUse = true
645
end
646
647
648
function onDeselected(Mouse)
649
	if Selected == false or Primed == true then return end
650
	Selected = false
651
	while CanUse == false do wait() end
652
	if Selected == true then return end
653
	CanUse = false
654
	RemoveParts(Player.Character, 2)
655
	CreateParts(Player.Character, 1)
656
	SetAngle(1, 0, Player.Character)
657
	ResetLimbCFrame(1, Player.Character)
658
	EnableLimb(1, Player.Character)
659
	CanUse = true
660
end
661
662
663
if script.Parent.ClassName ~= "HopperBin" then
664
	if Player == nil then print("Error: Player not found!") return end
665
	Tool = Instance.new("HopperBin")
666
	Tool.Name = ModelName
667
	Tool.Parent = Player.Backpack
668
	script.Name = "Main"
669
	script.Parent = Tool
670
elseif script.Parent.ClassName == "HopperBin" and Connected == false then
671
	Connected = true
672
	Player = script.Parent.Parent.Parent
673
	script.Parent.Selected:connect(onSelected)
674
	script.Parent.Deselected:connect(onDeselected)
675
	CreateParts(Player.Character, 1)
676
	coroutine.wrap(loadstring(FirstPerson))()
677
	coroutine.wrap(loadstring(MouseAim))()
678
end