Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Why my reloading wont work when second time i reload the gun?

When i was reloading the gun for first time it worked. But when second time bullets ended then it wont work?! I think I don't understand or didn't something put in here. Code below this text.

if ammo.Value>=maxammo.Value then -- 2 values already localed
		fire:Play()
		ammo.Value=ammo.Value-1
		sliding.Transparency=1
		sliding1.Transparency=0
		flash.Enabled=true
		wait(0.01)
		sliding.Transparency=0
		sliding1.Transparency=1
		flash.Enabled=false
		local shell=Instance.new("Part")
		shell.Parent=game.Workspace
		shell.Position=chamber.Position
		shell.BrickColor=BrickColor.new("Brick yellow")
		shell.Material=Enum.Material.Metal
		shell.Size=Vector3.new(0.2,0.1,0.1)
		local shellmesh=Instance.new("SpecialMesh")
		shellmesh.Parent=shell
		shellmesh.MeshType=Enum.MeshType.Sphere
	else--if no then reloading
		if reloading==false then
			reloading=true
			out:Play() -- sound when mag out
			mag.Transparency=1
			mag.CanCollide=false
			local magcopy=mag:Clone()
			magcopy.Transparency=0
			magcopy.Anchored=false
			magcopy.CanCollide=true
			wait(0.1)
			script.Parent.armsmodel["Left Arm"].Transparency=1
			reloadarms1["Left Arm"].Transparency=0
			reloadarms1.Shirt.ShirtTemplate=script.Parent.armsmodel.Shirt.ShirtTemplate
			wait(0.1)
			reloadarms2.Shirt.ShirtTemplate=script.Parent.armsmodel.Shirt.ShirtTemplate
			reloadarms1["Left Arm"].Transparency=1
			reloadarms2["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms3.Shirt.ShirtTemplate=script.Parent.armsmodel.Shirt.ShirtTemplate
			reloadarms2["Left Arm"].Transparency=1
			reloadarms3["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms4.Shirt.ShirtTemplate=script.Parent.armsmodel.Shirt.ShirtTemplate
			reloadarms3["Left Arm"].Transparency=1
			reloadarms4["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms5.Shirt.ShirtTemplate=script.Parent.armsmodel.Shirt.ShirtTemplate
			reloadarms4["Left Arm"].Transparency=1
			reloadarms5["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms5["Left Arm"].Transparency=1
			reloadarms4["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms4["Left Arm"].Transparency=1
			reloadarms3["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms3["Left Arm"].Transparency=1
			reloadarms2["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms2["Left Arm"].Transparency=1
			reloadarms1["Left Arm"].Transparency=0
			wait(0.1)
			reloadarms1["Left Arm"].Transparency=1
			script.Parent.armsmodel["Left Arm"].Transparency=0
			print(p.Name.."has reloaded the"..t.Name..".") --p = player
			inn:Play() -- sound playing when in mag
			mag.Transparency=0
			mag.CanCollide=true
			ammo.Value=30

Code that activates the function below here:

t.Activated:Connect(function()
	shoot()
end)

Note: All ends are putted in.

1 answer

Why is ammo.Value greater than or equal to maxAmmo? Shouldn't it be greater than 0?

Secondly, you're not setting reloading back to false once you're done reloading.

Thirdly, just use elseif instead of an if nested in an else.

This discussion is preserved as it was. New answers, comments, and votes are closed.