This code is in a script
local tool = script.Parent
local user
local ammo = script.Parent.ammo
enabled = false
gun = script.Parent
damage = 10
--when the tool is equipped
tool.Equipped:connect(function(mouse)
--store the character of the person using the tool
user = tool.Parent
--when the left mouse button is clicked
mouse.Button1Down:connect(function()
if ammo.Value > 0 and enabled == false then
ammo.Value = ammo.Value - 1
enabled = true
Bullet = Instance.new("Part", workspace)
game.Debris:AddItem(Bullet, 2)
Bullet.Shape = "Ball"
bm = Instance.new("SpecialMesh", Bullet)
bm.MeshType = "Sphere"
bm.Scale = Vector3.new(0.2,0.2,0.2)
Bullet.Size = Vector3.new(0.1, 0.1 ,0.1)
Bullet.TopSurface = "Smooth"
Bullet.BottomSurface = "Smooth"
Bullet.BrickColor = BrickColor.new("Black")
Bullet.CanCollide = false
Bullet.CFrame = gun.Fire.CFrame
Bullet.CFrame = CFrame.new(Bullet.Position ,mouse.Hit.p)
v = Instance.new("BodyVelocity", Bullet)
v.velocity = Bullet.CFrame.lookVector*90
v.maxForce = Vector3.new(math.huge, math.huge, math.huge)
script.Parent.Handle.PewPew:Play()
enabled = false
Bullet.Touched:connect(takeDamage)
end
end)
end)
function takeDamage(part)
if part.Parent:FindFirstChild("Humanoid") then
if tookDamage == false then
tookDamage = true
part.Parent.Humanoid:TakeDamage(damage)
Bullet.Parent = nil
tookDamage = false
end
end
Bullet.Parent = nil
end
And then this is in a local script
local player = game.Players.LocalPlayer
gun = script.Parent
ammo = script.Parent.ammo
mouse = player:GetMouse()
enabled = false
damage = 10
tookDamage = false
function shoot()
if ammo.Value > 0 and enabled == false then
ammo.Value = ammo.Value - 1
enabled = true
Bullet = Instance.new("Part", workspace)
game.Debris:AddItem(Bullet, 2)
Bullet.Shape = "Ball"
bm = Instance.new("SpecialMesh", Bullet)
bm.MeshType = "Sphere"
bm.Scale = Vector3.new(0.2,0.2,0.2)
Bullet.Size = Vector3.new(0.1, 0.1 ,0.1)
Bullet.TopSurface = "Smooth"
Bullet.BottomSurface = "Smooth"
Bullet.BrickColor = BrickColor.new("Black")
Bullet.CanCollide = false
Bullet.CFrame = gun.Fire.CFrame
Bullet.CFrame = CFrame.new(Bullet.Position ,mouse.Hit.p)
v = Instance.new("BodyVelocity", Bullet)
v.velocity = Bullet.CFrame.lookVector*90
v.maxForce = Vector3.new(math.huge, math.huge, math.huge)
script.Parent.Handle.PewPew:Play()
enabled = false
Bullet.Touched:connect(takeDamage)
end
end
script.Parent.Equipped:connect(function(mouse)
if player.PlayerGui:FindFirstChild("GunHud") then
print("HASGUI")
else
mouse.Icon = "http://www.roblox.com/asset/?id=152695139"
local hud = script.Parent.GunHud:Clone()
hud.Parent = player.PlayerGui
end
end)
script.Parent.Unequipped:connect(function()
if player.PlayerGui:FindFirstChild("GunHud") then
player.PlayerGui.GunHud:Remove()
end
end)
local function onKeyDown(key)
print("Key:", key, " Code:", string.byte(key))
if key == "r" then
if script.Parent.ammo.Value == 0 then
local anim = player.Character.Humanoid:LoadAnimation(script.Parent.Reload)
anim:Play()
script.Parent.Handle.reloadSound:Play()
wait(0.5)
script.Parent.Handle.reloadSound:Play()
wait(0.5)
script.Parent.Handle.reloadSound:Play()
wait(2)
script.Parent.ammo.Value = 1
end
end
end
function takeDamage(part)
if part.Parent:FindFirstChild("Humanoid") then
if tookDamage == false then
tookDamage = true
part.Parent.Humanoid.Health = part.Parent.Humanoid.Health - damage
Bullet.Parent = nil
tookDamage = false
end
end
end
script.Parent.ammo.Changed:connect(function(Val)
player.PlayerGui.GunHud.Hud.HudText.Text = "Ammo " ..script.Parent.ammo.Value.. "/1"
end)
gun.Activated:connect(shoot)
mouse.KeyDown:connect(onKeyDown)
They are both in the gun, the gun works in play solo in edit, but doesnt work in multiplayer play mode.
