View difference between Paste ID: ZG2Bvh6R and H8WLw3QJ
SHOW: | | - or go back to the newest paste.
1-
--MADE BY OneLegend (NOT THE SCRIPT) Thanks to CyberFromLU for letting me Publish! REGULAR SCRIPT: Go to line 16 and put your name where it says "YOUR NAME HERE"
1+
2-
-------------------------------------------------------------------------------------
2+
3-
--[[
3+
4-
Can Bomb, an improvised explosive device made from ammonium nitrate, a bean can, and a fuse.
4+
5-
Produces a nice medium-pressure explosion.
5+
6-
http://www.roblox.com/asset/?id=10470609 Beans
6+
7-
http://www.roblox.com/asset/?id=45934917 Beans
7+
8-
--]]
8+
Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("thesuperfireguy9000")
9
Name = "Can Bomb"
10
selected = false
11
Button1Down = false
12
thrown = false
13
14
15
function makeParts(format)
16-
Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("mogoon")
16+
17
	grenade.Name = Name
18
	grenade.Parent = Player.Character
19
	local pm = Instance.new("Part")
20
	pm.Name = "Handle"
21
	pm.formFactor = "Symmetric"
22
	pm.Size = Vector3.new(1, 1, 1)
23
	pm.BrickColor = BrickColor.new("Black")
24
	pm.CanCollide = false
25
	pm.Locked = true
26
	pm.TopSurface = 0
27
	pm.BottomSurface = 0
28
	pm.Parent = grenade
29
	local m = Instance.new("SpecialMesh")
30
	m.MeshType = "FileMesh"
31
	m.Scale = Vector3.new(1, 1, 1)
32
	m.MeshId = "http://www.roblox.com/asset/?id=10470609"
33
	m.TextureId = "http://www.roblox.com/asset/?id=45934917"
34
	m.Parent = pm
35
	local w = Instance.new("Weld")
36
	w.Part0 = pm
37
	if format == "hand" then
38
		w.Part1 = Player.Character:FindFirstChild("Right Arm")
39
		w.C0 = CFrame.new(-1.2, 0, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(90))
40
		w.C1 = CFrame.new()
41
	elseif format == "holster" then
42
		w.Part1 = Player.Character:FindFirstChild("Torso")
43
		w.C0 = CFrame.new(0.6, -0.4, 0.6)
44
		w.C1 = CFrame.new()
45
		grenade.Name = Name.. " (Holstered)"
46
	end
47
	w.Parent = pm
48
	local s = Instance.new("Sound")
49
	s.Name = "Explode"
50
	s.SoundId = "rbxasset://sounds\\collide.wav"
51
	s.Volume = 1
52
	s.Pitch = 1
53
	s.Looped = false
54
	s.Parent = pm
55
	local s = Instance.new("Sound")
56
	s.Name = "Pin"
57
	s.SoundId = "http://www.roblox.com/Asset/?id=31760113"
58
	s.Volume = 1
59
	s.Pitch = 1
60
	s.Looped = true
61
	s.Parent = pm
62
	local s = Instance.new("Sound")
63
	s.Name = "Light"
64
	s.SoundId = "http://www.roblox.com/Asset/?id=19095020"
65
	s.Volume = 1
66
	s.Pitch = 1
67
	s.Looped = false
68
	s.Parent = pm
69
	local p = Instance.new("Part")
70
	p.Name = "Rag"
71
	p.formFactor = "Symmetric"
72
	p.Size = Vector3.new(1, 1, 1)
73
	p.BrickColor = BrickColor.new("White")
74
	p.CanCollide = false
75
	p.Transparency = 1
76
	p.Locked = true
77
	p.TopSurface = 0
78
	p.BottomSurface = 0
79
	p.Parent = grenade
80
	local f = Instance.new("Fire")
81
	f.Enabled = false
82
	f.Name = "Fire"
83
	f.Color = Color3.new(1, 0.5, 0)
84
	f.SecondaryColor = Color3.new(1, 0.75, 0.5)
85
	f.Heat = 25
86
	f.Size = 2
87
	f.Parent = p
88
	local m = Instance.new("CylinderMesh")
89
	m.Scale = Vector3.new(0.15, 0.4, 0.15)
90
	m.Parent = p
91
	local w = Instance.new("Weld")
92
	w.Part0 = p
93
	w.Part1 = pm
94
	w.C0 = CFrame.new(0, -0.6, 0)
95
	w.C1 = CFrame.new()
96
	w.Parent = p
97
end
98
99
100
function removeParts(format)
101
	if format == "hand" then
102
		if Player.Character:FindFirstChild(Name) ~= nil then
103
			Player.Character[Name]:Remove()
104
		end
105
	elseif format == "holster" then
106
		if Player.Character:FindFirstChild(Name.. " (Holstered)") ~= nil then
107
			Player.Character[Name.. " (Holstered)"]:Remove()
108
		end
109
	end
110
end
111
112
113
function SetAngle(Joint, Angle, Character)
114
	if Character == nil then return false end
115
	local Joints = {
116
		Character.Torso:FindFirstChild("Right Shoulder 2"),
117
		Character.Torso:FindFirstChild("Left Shoulder 2"),
118
		Character.Torso:FindFirstChild("Right Hip 2"),
119
		Character.Torso:FindFirstChild("Left Hip 2")
120
	}
121
	if Joints[Joint] == nil then return false end
122
	if Joint == 1 or Joint == 3 then
123
		Joints[Joint].DesiredAngle = Angle
124
	end
125
	if Joint == 2 or Joint == 4 then
126
		Joints[Joint].DesiredAngle = -Angle
127
	end
128
end
129
130
131
function ForceAngle(Joint, Angle, Character)
132
	if Character == nil then return false end
133
	local Joints = {
134
		Character.Torso:FindFirstChild("Right Shoulder 2"),
135
		Character.Torso:FindFirstChild("Left Shoulder 2"),
136
		Character.Torso:FindFirstChild("Right Hip 2"),
137
		Character.Torso:FindFirstChild("Left Hip 2")
138
	}
139
	if Joints[Joint] == nil then return false end
140
	if Joint == 1 or Joint == 3 then
141
		Joints[Joint].DesiredAngle = Angle
142
		Joints[Joint].CurrentAngle = Angle
143
	end
144
	if Joint == 2 or Joint == 4 then
145
		Joints[Joint].DesiredAngle = -Angle
146
		Joints[Joint].CurrentAngle = -Angle
147
	end
148
end
149
150
151
function SetSpeed(Joint, Speed, Character)
152
	if Character == nil then return false end
153
	local Joints = {
154
		Character.Torso:FindFirstChild("Right Shoulder 2"),
155
		Character.Torso:FindFirstChild("Left Shoulder 2"),
156
		Character.Torso:FindFirstChild("Right Hip 2"),
157
		Character.Torso:FindFirstChild("Left Hip 2")
158
	}
159
	if Joints[Joint] == nil then return false end
160
	Joints[Joint].MaxVelocity = Speed
161
end
162
163
164
function DisableLimb(Limb, Character)
165
	if Character == nil then return false end
166
	if Character:FindFirstChild("Torso") == nil then return false end
167
	local Joints = {
168
		Character.Torso:FindFirstChild("Right Shoulder"),
169
		Character.Torso:FindFirstChild("Left Shoulder"),
170
		Character.Torso:FindFirstChild("Right Hip"),
171
		Character.Torso:FindFirstChild("Left Hip")
172
	}
173
	local Limbs = {
174
		Character:FindFirstChild("Right Arm"),
175
		Character:FindFirstChild("Left Arm"),
176
		Character:FindFirstChild("Right Leg"),
177
		Character:FindFirstChild("Left Leg")
178
	}
179
	if Joints[Limb] == nil then return false end
180
	if Limbs[Limb] == nil then return false end
181
	local Joint = Instance.new("Motor")
182
	Joint.Parent = Character.Torso
183
	Joint.Part0 = Character.Torso
184
	Joint.Part1 = Limbs[Limb]
185
	if Limb == 1 then
186
		Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
187
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
188
		Joint.Name = "Right Shoulder 2"
189
	elseif Limb == 2 then
190
		Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
191
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
192
		Joint.Name = "Left Shoulder 2"
193
	elseif Limb == 3 then
194
		Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
195
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
196
		Joint.Name = "Right Hip 2"
197
	elseif Limb == 4 then
198
		Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
199
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
200
		Joint.Name = "Left Hip 2"
201
	end
202
	Joint.MaxVelocity = Joints[Limb].MaxVelocity
203
	Joint.CurrentAngle = Joints[Limb].CurrentAngle
204
	Joint.DesiredAngle = Joints[Limb].DesiredAngle
205
	Joints[Limb]:Remove()
206
end
207
208
209
function ResetLimbCFrame(Limb, Character)
210
	if Character == nil then return false end
211
	if Character.Parent == nil then return false end
212
	if Character:FindFirstChild("Torso") == nil then return false end
213
	local Joints = {
214
		Character.Torso:FindFirstChild("Right Shoulder 2"),
215
		Character.Torso:FindFirstChild("Left Shoulder 2"),
216
		Character.Torso:FindFirstChild("Right Hip 2"),
217
		Character.Torso:FindFirstChild("Left Hip 2")
218
	}
219
	local Limbs = {
220
		Character:FindFirstChild("Right Arm"),
221
		Character:FindFirstChild("Left Arm"),
222
		Character:FindFirstChild("Right Leg"),
223
		Character:FindFirstChild("Left Leg")
224
	}
225
	if Joints[Limb] == nil then return false end
226
	if Limbs[Limb] == nil then return false end
227
	if Limb == 1 then
228
		Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
229
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
230
	elseif Limb == 2 then
231
		Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
232
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
233
	elseif Limb == 3 then
234
		Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
235
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
236
	elseif Limb == 4 then
237
		Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
238
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
239
	end
240
end
241
242
243
function EnableLimb(Limb, Character)
244
	if Character == nil then return false end
245
	if Character:FindFirstChild("Torso") == nil then return false end
246
	local Joints = {
247
		Character.Torso:FindFirstChild("Right Shoulder 2"),
248
		Character.Torso:FindFirstChild("Left Shoulder 2"),
249
		Character.Torso:FindFirstChild("Right Hip 2"),
250
		Character.Torso:FindFirstChild("Left Hip 2")
251
	}
252
	local Limbs = {
253
		Character:FindFirstChild("Right Arm"),
254
		Character:FindFirstChild("Left Arm"),
255
		Character:FindFirstChild("Right Leg"),
256
		Character:FindFirstChild("Left Leg")
257
	}
258
	if Joints[Limb] == nil then return false end
259
	if Limbs[Limb] == nil then return false end
260
	if Limb == 1 then
261
		Joints[Limb].Name = "Right Shoulder"
262
	elseif Limb == 2 then
263
		Joints[Limb].Name = "Left Shoulder"
264
	elseif Limb == 3 then
265
		Joints[Limb].Name = "Right Hip"
266
	elseif Limb == 4 then
267
		Joints[Limb].Name = "Left Hip"
268
	end
269
	Animate = Character:FindFirstChild("Animate")
270
	if Animate == nil then return false end
271
	Animate = Animate:Clone()
272
	Character.Animate:Remove()
273
	Animate.Parent = Character
274
end
275
276
277
function Weld(x, y)
278
	local weld = Instance.new("Weld")
279
	weld.Part0 = x
280
	weld.Part1 = y
281
	CJ = CFrame.new(x.Position)
282
	C0 = x.CFrame:inverse() * CJ
283
	C1 = y.CFrame:inverse() * CJ
284
	weld.C0 = C0
285
	weld.C1 = C1
286
	weld.Parent = x
287
end
288
289
290
function tagHumanoid(humanoid)
291
	local tag = Instance.new("ObjectValue")
292
	tag.Name = "creator"
293
	tag.Value = Player
294
	tag.Parent = humanoid
295
	local tag = Instance.new("StringValue")
296
	tag.Name = "creatorType1"
297
	tag.Value = Name
298
	tag.Parent = humanoid
299
	local tag = Instance.new("StringValue")
300
	tag.Name = "creatorType2"
301
	tag.Value = "blown up"
302
	tag.Parent = humanoid
303
end
304
305
306
function untagHumanoid(humanoid)
307
	if humanoid ~= nil then
308
		local tag = humanoid:FindFirstChild("creator")
309
		if tag ~= nil then
310
			tag:Remove()
311
		end
312
		local tag = humanoid:FindFirstChild("creatorType1")
313
		if tag ~= nil then
314
			tag:Remove()
315
		end
316
		local tag = humanoid:FindFirstChild("creatorType2")
317
		if tag ~= nil then
318
			tag:Remove()
319
		end
320
	end
321
end
322
323
324
function fire(v)
325
	if Player.Character:FindFirstChild(Name) == nil then makeParts("hand") end
326
	if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
327
	if Player.Character[Name].Handle:FindFirstChild("Weld") ~= nil then Player.Character[Name].Handle.Weld:Remove() end
328
	local bodyVelocity = Instance.new("BodyVelocity")
329
	bodyVelocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)
330
	bodyVelocity.velocity = v * 75
331
	bodyVelocity.Parent = Player.Character[Name].Handle
332
	wait(0.1)
333
	bodyVelocity:Remove()
334
end
335
336
337
function onButton1Down(mouse)
338
	if selected == false then return end
339
	if Player.Character:FindFirstChild(Name) ~= nil and Button1Down ~= true and thrown ~= true then
340
		if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
341
		Button1Down = true
342
		mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
343
		Player.Character[Name].Handle.Pin:Play()
344
		Player.Character[Name].Handle.Light:Play()
345
		Player.Character[Name].Rag.Fire.Enabled = true 
346
		Player.Character[Name].Handle.CanCollide = true
347
		Player.Character[Name].Rag.CanCollide = true  
348
		coroutine.resume(coroutine.create(function()
349
			wait(math.random(3, 6))
350
			if Player.Character:FindFirstChild(Name) ~= nil then
351
				if Player.Character[Name]:FindFirstChild("Handle") ~= nil then
352
					local e = Instance.new("Explosion")
353
					e.BlastPressure = 20
354
					e.BlastRadius = 10
355
					e.Position = Player.Character[Name].Handle.Position
356
					e.Parent = game:GetService("Workspace")
357
					e.Hit:connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") ~= nil then tagHumanoid(hit.Parent.Humanoid) delay(1, function() untagHumanoid(hit.Parent.Humanoid) end) end end)
358
					Player.Character[Name].Handle.Explode:Play()
359
					Player.Character[Name].Handle.Transparency = 1
360
					Player.Character[Name].Handle.CanCollide = false
361
					Player.Character[Name].Handle.Pin:Stop()
362
				end
363
			end
364
			wait()
365
			if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
366
				Player.Character.WeaponActivated:Remove()
367
			end
368
			thrown = false
369
			Button1Down = false
370
			selected = true
371
			onDeselected(mouse)
372
			removeParts("holster")
373
			script.Parent:Remove()
374
		end))
375
	end
376
end
377
378
379
function onButton1Up(mouse)
380
	if selected == false then return end
381
	if Button1Down == true and thrown ~= true then
382
		thrown = true
383
		mouse.Icon = "rbxasset://textures\\GunCursor.png"
384
		SetSpeed(1, 2, Player.Character)
385
		SetAngle(1, 0, Player.Character)
386
		EnableLimb(1, Player.Character)
387
		fire((mouse.Hit.p - Player.Character[Name].Handle.Position).unit)
388
	end
389
	Button1Down = false
390
end
391
392
393
function onKeyDown(key, mouse)
394
	if selected == false then return end
395
	key = key:lower()
396
	if key == "q" and Button1Down == false and thrown ~= true then
397
		if mouse.Target == nil then return end
398
		if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
399
			onDeselected(mouse)
400
			removeParts("holster")
401
			script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
402
		end
403
	end
404
end
405
406
407
function onSelected(mouse)
408
	if selected == true then return end
409
	selected = true
410
	mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
411
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil or thrown == true do
412
		if Player.Character.WeaponActivated.Value == nil then break end
413
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
414
		wait()
415
	end
416
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
417
	removeParts("holster")
418
	makeParts("hand")
419
	local weapon = Instance.new("ObjectValue")
420
	weapon.Name = "WeaponActivated"
421
	weapon.Value = script.Parent
422
	weapon.Parent = Player.Character
423
	DisableLimb(1, Player.Character)
424
	SetAngle(1, math.rad(200), Player.Character)
425
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
426
	mouse.Button1Up:connect(function() onButton1Up(mouse) end)
427
	mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
428
end
429
430
431
function onDeselected(mouse)
432
	if selected == false then return end
433
	selected = false
434
	while Button1Down == true or thrown == true do
435
		wait()
436
	end
437
	if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
438
		if Player.Character.WeaponActivated.Value == script.Parent then
439
			Player.Character.WeaponActivated:Remove()
440
		end
441
	end
442
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
443
		if Player.Character.WeaponActivated.Value == nil then break end
444
		if pcall(function() if Player.Character.WeaponActivated.Value.Parent == nil then return true end end) then break end
445
		wait()
446
	end
447
	removeParts("hand")
448
	makeParts("holster")
449
	SetAngle(1, 0, Player.Character)
450
	EnableLimb(1, Player.Character)
451
end
452
453
454
if script.Parent.className ~= "HopperBin" then
455
	if Player == nil then print("Error: Player not found!") return end
456
	Tool = Instance.new("HopperBin")
457
	Tool.Name = Name
458
	Tool.Parent = Player.Backpack
459
	script.Name = "Main"
460
	script.Parent = Tool
461
elseif script.Parent.className == "HopperBin" then
462
	while script.Parent.Parent.className ~= "Backpack" do
463
		wait()
464
	end
465
	Player = script.Parent.Parent.Parent
466
	makeParts("holster")
467
	script.Parent.Selected:connect(onSelected)
468
	script.Parent.Deselected:connect(onDeselected)
469
end