View difference between Paste ID: XvquR3nk and 6d7aJjhz
SHOW: | | - or go back to the newest paste.
1
local plr = game.Players.LocalPlayer
2
local char = plr.Character
3
local mouse = plr:GetMouse()
4
local torso = char.Torso
5
local head = char.Head
6
local ra = char["Right Arm"]
7
local la = char["Left Arm"]
8
local rl = char["Right Leg"]
9
local ll = char["Left Leg"]
10
local human = char["Humanoid"]
11
local camera = workspace.CurrentCamera
12
local rs = torso:findFirstChild("Right Shoulder")
13
local ls = torso:findFirstChild("Left Shoulder")
14
local neck = torso:findFirstChild("Neck")
15
local NO_moar_shooting = false
16
local RunService = game:service'RunService'
17
local ammo = 8
18
19
20
local sound = Instance.new("Sound", head)
21
sound.SoundId = "http://roblox.com/asset/?id=10209842"
22
sound.Volume = 1
23
local reloads = Instance.new("Sound", head)
24
reloads.SoundId = "http://roblox.com/asset/?id=10209636"
25
reloads.Volume = 1
26
local activate = Instance.new("Sound", head)
27
activate.SoundId = "http://roblox.com/asset/?id=10209894"
28
activate.Volume = 1
29
30
31
local equipped = false
32
33
local debounce = false
34
35
local face = head.face
36
37
38
release = Instance.new("Part", nil)
39
release.FormFactor = "Custom"
40
release.Size = Vector3.new(0.3, 1.7, 0.3)
41
release.BrickColor = BrickColor.Black()
42
local weld = Instance.new("Weld", release)
43
weld.Part0 = release
44
weld.Part1 = head
45
weld.C0 = CFrame.new(0, -0.5, -0.2) * CFrame.Angles(math.pi/2, 0, 0)
46
local mesh = Instance.new("CylinderMesh", release)
47
48
release2 = Instance.new("Part", nil)
49
release2.FormFactor = "Custom"
50
release2.Size = Vector3.new(0.2, 1.4, 0.2)
51
release2.BrickColor = BrickColor.Black()
52
local weld2 = Instance.new("Weld", release2)
53
weld2.Part0 = release2
54
weld2.Part1 = head
55
weld2.C0 = CFrame.new(0, -0.5, 0) * CFrame.Angles(math.pi/2, 0, 0)
56
local mesh2 = Instance.new("CylinderMesh", release2)
57
58
headext = Instance.new("Part", nil)
59
headext.Position = torso.Position
60
headext.FormFactor = "Custom"
61
headext.Transparency = 1
62
headext:BreakJoints()
63
headext.Size = Vector3.new(2, 1, 1)
64
headextw = Instance.new("Weld", headext)
65
headextw.C0 = CFrame.new(Vector3.new(0, 1.5, 0))
66
headextw.Part0 = torso
67
headextw.Part1 = headext
68
headextw.C1 = CFrame.new()
69
headweld = Instance.new("Weld", headext)
70
game:service("RunService").Stepped:connect(function()
71
           headweld.C0 = CFrame.new(Vector3.new(0,0,0), torso.CFrame:pointToObjectSpace(mouse.Hit.p)) * CFrame.Angles(0, 0, 0)
72
end)
73
headweld.Part0 = headext
74
headweld.C1 = CFrame.new()
75
headweld.Part1 = head
76
77
local Screen = Instance.new("ScreenGui", plr:findFirstChild("PlayerGui"))
78
local TextBox = Instance.new("TextLabel", Screen)
79
TextBox.Position = UDim2.new(0.1, 0, 0.95, 0)
80
TextBox.Size = UDim2.new(0, 200, 0.05, 0)
81
TextBox.BackgroundTransparency = 1
82
game:service'RunService'.Stepped:connect(function()
83
TextBox.Text = ("Ammo: "..ammo)
84
end)
85
TextBox.Font = "SourceSansBold"
86
TextBox.TextColor3 = Color3.new(1, 1, 1)
87
TextBox.FontSize = "Size36"
88
TextBox.TextStrokeTransparency = 0
89
90
local pl = Instance.new("PointLight", release)
91
pl.Range = 16
92
pl.Brightness = 5
93
pl.Color = Color3.new(1, 199/255, 67/255)
94
pl.Enabled = false
95
function reload()
96
	for i = ammo, 8 do
97
		reloads:play()
98
		ammo = i
99
		wait(0.5)
100
	end
101
	wait(0.1)
102
	activate:play()
103
	debounce = false
104
end
105
106
mouse.KeyDown:connect(function(key)
107
	if key == "r" then
108
		if debounce then return end
109
		if not equipped then return end
110
		if ammo > 7 then return end
111
		debounce = true
112
		reload()
113
	end
114
	
115
	if key == "q" then
116
		equipped = not equipped
117
		if equipped then
118
			headext.Parent = char
119
			release.Parent = char
120
			release2.Parent = char
121
			face.Parent = nil
122
			for scale = 0, 1, 0.2 do
123
				weld2.C0 = CFrame.new(0, -scale + 0.5, 0) * CFrame.Angles(math.pi/2, 0, 0)
124
				weld.C0 = CFrame.new(0, -scale + 0.5, -0.2) * CFrame.Angles(math.pi/2, 0, 0)
125
				mesh.Scale = Vector3.new(1, scale, 1)
126
				mesh2.Scale = Vector3.new(1, scale, 1)
127
				wait()
128
				end
129
		else
130
			face.Parent = head
131
			release.Parent = nil
132
			release2.Parent = nil
133
			headext.Parent = nil
134
		end
135
	end
136
end)
137
138
mouse.Button1Down:connect(function()
139
	if not equipped then return end
140
	if ammo < 1 then return end
141
			if debounce then return end
142
			debounce = true
143
			sound:play()
144
			pl.Enabled = true
145
			ammo = ammo - 1
146
			coroutine.wrap(function()
147
				wait(0.07)
148
				pl.Enabled = false
149
				end)()
150
			coroutine.wrap(function()
151
				for scale = 0.7, 1, 0.1 do
152
					mesh.Scale = Vector3.new(1, scale, 1)
153
					wait()
154
				end
155
			end)()
156
			
157
			for bullet = 0, 5 do
158
				coroutine.wrap(function()
159
	if char.Humanoid.Health < 1 then return end
160
    local rayPart         = Instance.new("Part", char)
161
    rayPart.Name          = "RayPart"
162
    rayPart.BrickColor    = BrickColor.Yellow()
163
    rayPart.Anchored      = true
164
    rayPart.CanCollide    = false
165
    rayPart.TopSurface    = Enum.SurfaceType.Smooth
166
    rayPart.BottomSurface = Enum.SurfaceType.Smooth
167
    rayPart.formFactor    = Enum.FormFactor.Custom
168
    rayPart.Size          = Vector3.new(0.2, 0.2, 4)
169
Instance.new("BlockMesh", rayPart).Scale = Vector3.new(0.2, 0.2, 0.5)
170
	
171
	
172
	
173
    local bulletposition = release.Position
174
   local bulletvelocity = (Vector3.new(math.random(-7,7), math.random(-7,7), math.random(-7,7)))+( mouse.Hit.p - bulletposition).unit*150
175
    local bulletlastposition = bulletposition
176
    rayPart.CFrame = CFrame.new( bulletposition, bulletposition+bulletvelocity )
177
178
179
180
181
    
182
    coroutine.resume(coroutine.create(function()
183
        while true do
184
	        local dt = wait()
185
            bulletlastposition = bulletposition
186
            bulletvelocity = bulletvelocity + (Vector3.new(0, -9.81*10, 0)*dt)
187
	        bulletposition = bulletposition + (bulletvelocity*dt)
188
                
189
            local ray = Ray.new(bulletlastposition,  (bulletposition - bulletlastposition))
190
            local hit, hitposition = workspace:FindPartOnRayWithIgnoreList( ray, { char, rayPart} )
191
	            
192
	if (torso.Position - rayPart.Position).magnitude > 440 then
193
	 	rayPart:Destroy()
194
	 break
195
	 end
196
	
197
	
198
            if hit then
199
				if hit.Parent:findFirstChild("Humanoid") ~= nil then
200
					hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - math.random(6, 9)
201
				end
202
				if hit.Parent:IsA("Hat") and hit.Parent.Parent:findFirstChild("Humanoid") ~= nil then
203
					hit.Parent.Parent.Humanoid.Health = hit.Parent.Parent.Humanoid.Health - math.random(6, 9)
204
					end
205
                bulletposition = hitposition
206
                rayPart.CFrame = CFrame.new(bulletposition, bulletposition+bulletvelocity)
207
                rayPart:Destroy()
208
                break
209
            end
210
	        rayPart.CFrame = CFrame.new(bulletposition, bulletposition+bulletvelocity)
211
        end
212
    end))
213
				end)()
214
				end
215
		wait(0.5)
216
			debounce = false
217
		
218
end)