View difference between Paste ID: 9n6GrygS and tgyw7GNX
SHOW: | | - or go back to the newest paste.
1
--[[
2
Poison Syringe
3
4
Syringe filled with a deadly poison that slowly kills its' host.
5
Script by DarkShadow6
6
--]]
7
8
9
if script == nil then return end
10
11
12-
Player = game:GetService("Players"):FindFirstChild("myalt1562")
12+
Player = game:GetService("Players"):FindFirstChild("gyropromainia456")
13
Name = "Poison Syringe"
14
selected = false
15
Button1Down = false
16
CanUse = true
17
18
19
function makeParts(format)
20
	local model = Instance.new("Model")
21
	model.Name = Name
22
	local pm = Instance.new("Part")
23
	pm.Name = "Handle"
24
	pm.FormFactor = "Custom"
25
	pm.Size = Vector3.new(1, 1, 1)
26
	pm.BrickColor = BrickColor.new("Institutional white")
27
	pm.Locked = true
28
	pm.TopSurface = 0
29
	pm.BottomSurface = 0
30
	pm.Parent = model
31
	local m = Instance.new("CylinderMesh")
32
	m.Scale = Vector3.new(0.25, 1, 0.25)
33
	m.Parent = pm
34
	if format ~= nil then
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(0, 0.1, 1.1) * CFrame.fromEulerAnglesXYZ(math.rad(70), 0, 0)
40
			w.C1 = CFrame.new()
41
		elseif format == "holster" then
42
			w.Part1 = Player.Character:FindFirstChild("Right Leg")
43
			w.C0 = CFrame.new(-0.65, -0.25, 0) * CFrame.fromEulerAnglesXYZ(math.rad(25), 0, 0)
44
			w.C1 = CFrame.new()
45
			w.Parent = pm
46
			model.Name = Name.. " (Holstered)"
47
		end
48
		w.Parent = pm
49
		model.Parent = Player.Character
50
	end
51
	local p = Instance.new("Part")
52
	p.Name = "Syringe Valve 1"
53
	p.FormFactor = "Custom"
54
	p.Size = Vector3.new(1, 1, 1)
55
	p.BrickColor = BrickColor.new("Institutional white")
56
	p.CanCollide = false
57
	p.Locked = true
58
	p.TopSurface = 0
59
	p.BottomSurface = 0
60
	p.Parent = model
61
	local m = Instance.new("CylinderMesh")
62
	m.Scale = Vector3.new(0.15, 0.5, 0.15)
63
	m.Parent = p
64
	local w = Instance.new("Weld")
65
	w.Part0 = p
66
	w.Part1 = pm
67
	w.C0 = CFrame.new(0, -0.75, 0)
68
	w.C1 = CFrame.new()
69
	w.Parent = p
70
	local p = Instance.new("Part")
71
	p.Name = "Syringe Valve 2"
72
	p.FormFactor = "Custom"
73
	p.Size = Vector3.new(1, 1, 1)
74
	p.BrickColor = BrickColor.new("Institutional white")
75
	p.CanCollide = false
76
	p.Locked = true
77
	p.TopSurface = 0
78
	p.BottomSurface = 0
79
	p.Parent = model
80
	local m = Instance.new("CylinderMesh")
81
	m.Scale = Vector3.new(0.3, 0.01, 0.3)
82
	m.Parent = p
83
	local w = Instance.new("Weld")
84
	w.Part0 = p
85
	w.Part1 = pm
86
	w.C0 = CFrame.new(0, -1, 0)
87
	w.C1 = CFrame.new()
88
	w.Parent = p
89
	local p = Instance.new("Part")
90
	p.Name = "Syringe Tip"
91
	p.FormFactor = "Custom"
92
	p.Size = Vector3.new(1, 1, 1)
93
	p.BrickColor = BrickColor.new("Institutional white")
94
	p.CanCollide = false
95
	p.Locked = true
96
	p.TopSurface = 0
97
	p.BottomSurface = 0
98
	p.Parent = model
99
	local m = Instance.new("CylinderMesh")
100
	m.Scale = Vector3.new(0.2, 0.1, 0.2)
101
	m.Parent = p
102
	local w = Instance.new("Weld")
103
	w.Part0 = p
104
	w.Part1 = pm
105
	w.C0 = CFrame.new(0, 0.5, 0)
106
	w.C1 = CFrame.new()
107
	w.Parent = p
108
	local p = Instance.new("Part")
109
	p.Name = "Syringe Needle"
110
	p.FormFactor = "Custom"
111
	p.Size = Vector3.new(1, 1, 1)
112
	p.BrickColor = BrickColor.new("Medium stone grey")
113
	p.CanCollide = false
114
	p.Locked = true
115
	p.TopSurface = 0
116
	p.BottomSurface = 0
117
	p.Parent = model
118
	local m = Instance.new("CylinderMesh")
119
	m.Scale = Vector3.new(0.01, 1, 0.01)
120
	m.Parent = p
121
	local w = Instance.new("Weld")
122
	w.Part0 = p
123
	w.Part1 = pm
124
	w.C0 = CFrame.new(0, 1, 0)
125
	w.C1 = CFrame.new()
126
	w.Parent = p
127
	return model
128
end
129
130
131
function removeParts(format)
132
	if format == "hand" then
133
		pcall(function() Player.Character[Name]:Remove() end)
134
	elseif format == "holster" then
135
		pcall(function() Player.Character[Name.. " (Holstered)"]:Remove() end)
136
	end
137
end
138
139
140
function SetAngle(Joint, Angle, Character)
141
	if Character == nil then return false end
142
	local Joints = {
143
		Character.Torso:FindFirstChild("Right Shoulder 2"),
144
		Character.Torso:FindFirstChild("Left Shoulder 2"),
145
		Character.Torso:FindFirstChild("Right Hip 2"),
146
		Character.Torso:FindFirstChild("Left Hip 2")
147
	}
148
	if Joints[Joint] == nil then return false end
149
	if Joint == 1 or Joint == 3 then
150
		Joints[Joint].DesiredAngle = Angle
151
	end
152
	if Joint == 2 or Joint == 4 then
153
		Joints[Joint].DesiredAngle = -Angle
154
	end
155
end
156
157
158
function ForceAngle(Joint, Angle, Character)
159
	if Character == nil then return false end
160
	local Joints = {
161
		Character.Torso:FindFirstChild("Right Shoulder 2"),
162
		Character.Torso:FindFirstChild("Left Shoulder 2"),
163
		Character.Torso:FindFirstChild("Right Hip 2"),
164
		Character.Torso:FindFirstChild("Left Hip 2")
165
	}
166
	if Joints[Joint] == nil then return false end
167
	if Joint == 1 or Joint == 3 then
168
		Joints[Joint].DesiredAngle = Angle
169
		Joints[Joint].CurrentAngle = Angle
170
	end
171
	if Joint == 2 or Joint == 4 then
172
		Joints[Joint].DesiredAngle = -Angle
173
		Joints[Joint].CurrentAngle = -Angle
174
	end
175
end
176
177
178
function SetSpeed(Joint, Speed, Character)
179
	if Character == nil then return false end
180
	local Joints = {
181
		Character.Torso:FindFirstChild("Right Shoulder 2"),
182
		Character.Torso:FindFirstChild("Left Shoulder 2"),
183
		Character.Torso:FindFirstChild("Right Hip 2"),
184
		Character.Torso:FindFirstChild("Left Hip 2")
185
	}
186
	if Joints[Joint] == nil then return false end
187
	Joints[Joint].MaxVelocity = Speed
188
end
189
190
191
function DisableLimb(Limb, Character)
192
	if Character == nil then return false end
193
	if Character:FindFirstChild("Torso") == nil then return false end
194
	local Joints = {
195
		Character.Torso:FindFirstChild("Right Shoulder"),
196
		Character.Torso:FindFirstChild("Left Shoulder"),
197
		Character.Torso:FindFirstChild("Right Hip"),
198
		Character.Torso:FindFirstChild("Left Hip")
199
	}
200
	local Limbs = {
201
		Character:FindFirstChild("Right Arm"),
202
		Character:FindFirstChild("Left Arm"),
203
		Character:FindFirstChild("Right Leg"),
204
		Character:FindFirstChild("Left Leg")
205
	}
206
	if Joints[Limb] == nil then return false end
207
	if Limbs[Limb] == nil then return false end
208
	local Joint = Instance.new("Motor")
209
	Joint.Parent = Character.Torso
210
	Joint.Part0 = Character.Torso
211
	Joint.Part1 = Limbs[Limb]
212
	if Limb == 1 then
213
		Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
214
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
215
		Joint.Name = "Right Shoulder 2"
216
	elseif Limb == 2 then
217
		Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
218
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
219
		Joint.Name = "Left Shoulder 2"
220
	elseif Limb == 3 then
221
		Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
222
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
223
		Joint.Name = "Right Hip 2"
224
	elseif Limb == 4 then
225
		Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
226
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
227
		Joint.Name = "Left Hip 2"
228
	end
229
	Joint.MaxVelocity = Joints[Limb].MaxVelocity
230
	Joint.CurrentAngle = Joints[Limb].CurrentAngle
231
	Joint.DesiredAngle = Joints[Limb].DesiredAngle
232
	Joints[Limb]:Remove()
233
end
234
235
236
function ResetLimbCFrame(Limb, Character)
237
	if Character == nil then return false end
238
	if Character.Parent == nil then return false end
239
	if Character:FindFirstChild("Torso") == nil then return false end
240
	local Joints = {
241
		Character.Torso:FindFirstChild("Right Shoulder 2"),
242
		Character.Torso:FindFirstChild("Left Shoulder 2"),
243
		Character.Torso:FindFirstChild("Right Hip 2"),
244
		Character.Torso:FindFirstChild("Left Hip 2")
245
	}
246
	local Limbs = {
247
		Character:FindFirstChild("Right Arm"),
248
		Character:FindFirstChild("Left Arm"),
249
		Character:FindFirstChild("Right Leg"),
250
		Character:FindFirstChild("Left Leg")
251
	}
252
	if Joints[Limb] == nil then return false end
253
	if Limbs[Limb] == nil then return false end
254
	if Limb == 1 then
255
		Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
256
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
257
	elseif Limb == 2 then
258
		Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
259
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
260
	elseif Limb == 3 then
261
		Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
262
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
263
	elseif Limb == 4 then
264
		Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
265
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
266
	end
267
end
268
269
270
function EnableLimb(Limb, Character)
271
	if Character == nil then return false end
272
	if Character:FindFirstChild("Torso") == nil then return false end
273
	local Joints = {
274
		Character.Torso:FindFirstChild("Right Shoulder 2"),
275
		Character.Torso:FindFirstChild("Left Shoulder 2"),
276
		Character.Torso:FindFirstChild("Right Hip 2"),
277
		Character.Torso:FindFirstChild("Left Hip 2")
278
	}
279
	local Limbs = {
280
		Character:FindFirstChild("Right Arm"),
281
		Character:FindFirstChild("Left Arm"),
282
		Character:FindFirstChild("Right Leg"),
283
		Character:FindFirstChild("Left Leg")
284
	}
285
	if Joints[Limb] == nil then return false end
286
	if Limbs[Limb] == nil then return false end
287
	if Limb == 1 then
288
		Joints[Limb].Name = "Right Shoulder"
289
	elseif Limb == 2 then
290
		Joints[Limb].Name = "Left Shoulder"
291
	elseif Limb == 3 then
292
		Joints[Limb].Name = "Right Hip"
293
	elseif Limb == 4 then
294
		Joints[Limb].Name = "Left Hip"
295
	end
296
	Animate = Character:FindFirstChild("Animate")
297
	if Animate == nil then return false end
298
	Animate = Animate:Clone()
299
	Character.Animate:Remove()
300
	Animate.Parent = Character
301
end
302
303
304
function onButton1Down(mouse)
305
	if selected == false or CanUse == false then return end
306
	if Player.Character:FindFirstChild(Name) ~= nil then
307
		local Model = nil
308
		if mouse.Target ~= nil then
309
			if mouse.Target.Parent:FindFirstChild("Humanoid") ~= nil and mouse.Target.Parent:FindFirstChild("Torso") ~= nil then
310
				Model = mouse.Target.Parent
311
				if (Model.Torso.Position - Player.Character[Name]["Syringe Needle"].Position).magnitude > 3 then return end
312
			end
313
		end
314
		if Model == nil then
315
			if Player.Character:FindFirstChild("Humanoid") ~= nil and Player.Character:FindFirstChild("Torso") ~= nil then
316
				Model = Player.Character
317
			end
318
		end
319
		if Model == nil then return end
320
		if Model:FindFirstChild("IsPoisoned") ~= nil then return end
321
		CanUse = false
322
		coroutine.wrap(function()
323
			Instance.new("Model", Model).Name = "IsPoisoned"
324
			for i = Model.Humanoid.Health, Model.Humanoid.MaxHealth, 5 do
325
				Model.Humanoid.Health = i
326
				wait()
327
			end
328
			Model.Humanoid.Health = Model.Humanoid.MaxHealth
329
			wait(1)
330
			local Player2 = game:GetService("Players"):GetPlayerFromCharacter(Model)
331
			if Player2 ~= nil then
332
				if Player2:FindFirstChild("PlayerGui") ~= nil then
333
					local Gui = Instance.new("ScreenGui")
334
					Gui.Name = "Poison"
335
					Gui.Parent = Player2.PlayerGui
336
					local Frame = Instance.new("Frame")
337
					Frame.Name = "Black"
338
					Frame.Size = UDim2.new(2, 0, 2, 0)
339
					Frame.Position = UDim2.new(-0.5, 0, -0.5, 0)
340
					Frame.BackgroundColor3 = Color3.new(0.05, 0, 0.1)
341
					Frame.BackgroundTransparency = 0
342
					Frame.Parent = Gui
343
					Gui.Parent = Player2.PlayerGui
344
				end
345
			end
346
			while Model.Humanoid.Health > 1 and Model:FindFirstChild("IsPoisoned") ~= nil do
347
				Model.Humanoid.Health = Model.Humanoid.Health - 0.25
348
				pcall(function() Player2.PlayerGui.Poison.Black.BackgroundTransparency = Model.Humanoid.Health / Model.Humanoid.MaxHealth end)
349
				Model.Humanoid.WalkSpeed = (Model.Humanoid.Health / Model.Humanoid.MaxHealth) * 16
350
				wait()
351
			end
352
			if Model:FindFirstChild("IsPoisoned") ~= nil then
353
				Model.Humanoid.Health = 0
354
			else
355
				for i = Player2.PlayerGui.Poison.Black.BackgroundTransparency, 1, 0.05 do
356
					pcall(function() Player2.PlayerGui.Poison.Black.BackgroundTransparency = i end)
357
					wait()
358
				end
359
				pcall(function() Player2.PlayerGui.Poison:Remove() end)
360
			end
361
		end)()
362
		if Model == Player.Character then
363
			SetSpeed(1, 0.1, Model)
364
			for i = 90, 0, -10 do
365
				SetAngle(1, math.rad(5), Model)
366
				Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(i), 0)
367
				wait()
368
			end
369
			Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0)
370
		end
371
		coroutine.wrap(function()
372
			for i = 0, 1, 0.1 do
373
				Player.Character[Name]["Syringe Valve 1"].Weld.C0 = CFrame.new(0, -0.75 + (0.5 * i), 0)
374
				Player.Character[Name]["Syringe Valve 2"].Weld.C0 = CFrame.new(0, -1 + (0.5 * i), 0)
375
				wait()
376
			end
377
			wait(0.25)
378
			for i = 1, 0, -0.05 do
379
				Player.Character[Name]["Syringe Valve 1"].Weld.C0 = CFrame.new(0, -0.75 + (0.5 * i), 0)
380
				Player.Character[Name]["Syringe Valve 2"].Weld.C0 = CFrame.new(0, -1 + (0.5 * i), 0)
381
				wait()
382
			end
383
		end)()
384
		if Model == Player.Character then
385
			wait(0.75)
386
			SetSpeed(1, 0.1, Model)
387
			for i = 0, 90, 15 do
388
				SetAngle(1, math.rad(90), Model)
389
				Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(i), 0)
390
				wait()
391
			end
392
			ResetLimbCFrame(1, Model)
393
		end
394
		CanUse = true
395
	end
396
end
397
398
399
function onKeyDown(key, mouse)
400
	if selected == false then return end
401
	key = key:lower()
402
	if key == "q" and CanUse == true then
403
		if mouse.Target == nil then return end
404
		if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
405
			onDeselected(mouse)
406
			removeParts("holster")
407
			script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
408
		end
409
	end
410
end
411
412
413
function onSelected(mouse)
414
	if selected == true then return end
415
	selected = true
416
	mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
417
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
418
		if Player.Character.WeaponActivated.Value == nil then break end
419
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
420
		wait()
421
	end
422
	local weapon = Instance.new("ObjectValue")
423
	weapon.Name = "WeaponActivated"
424
	weapon.Value = script.Parent
425
	weapon.Parent = Player.Character
426
	DisableLimb(1, Player.Character)
427
	SetAngle(1, math.rad(90), Player.Character)
428
	removeParts("holster")
429
	makeParts("hand")
430
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
431
	mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
432
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
433
end
434
435
436
function onDeselected(mouse)
437
	if selected == false then return end
438
	Button1Down = false
439
	while canFire == false do
440
		wait()
441
	end
442
	selected = false
443
	removeParts("hand")
444
	makeParts("holster")
445
	ForceAngle(1, 0, Player.Character)
446
	EnableLimb(1, Player.Character)
447
	if Player.PlayerGui:FindFirstChild(Name) ~= nil then Player.PlayerGui[Name]:Remove() end
448
	if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
449
		if Player.Character.WeaponActivated.Value == script.Parent then
450
			Player.Character.WeaponActivated:Remove()
451
		end
452
	end
453
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
454
		if Player.Character.WeaponActivated.Value == nil then break end
455
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
456
		wait()
457
	end
458
end
459
460
461
if script.Parent.ClassName ~= "HopperBin" then
462
	if Player == nil then print("Error: Player not found!") return end
463
	Tool = Instance.new("HopperBin")
464
	Tool.Name = Name
465
	Tool.Parent = Player.Backpack
466
	script.Name = "Main"
467
	script.Parent = Tool
468
elseif script.Parent.ClassName == "HopperBin" then
469
	while script.Parent.Parent.ClassName ~= "Backpack" do
470
		wait()
471
	end
472
	Player = script.Parent.Parent.Parent
473
	makeParts("holster")
474
	script.Parent.Selected:connect(onSelected)
475
	script.Parent.Deselected:connect(onDeselected)
476
end