I am trying to edit the default rocket launcher so it has a clip system wich means I want the rocket launcher too shoot 5 times until it has too reload instead of shoot reload shoot reload. Can anybody tell me how to do this? This is the code in the rocket launcher:
local Tool = script.Parent
local Launcher = Tool.Handle
local Rocket = Instance.new("Part")
Rocket.Locked = true
Rocket.BackSurface = 3
Rocket.BottomSurface = 3
Rocket.FrontSurface = 3
Rocket.LeftSurface = 3
Rocket.RightSurface = 3
Rocket.TopSurface = 3
Rocket.Size = Vector3.new(1, 2.5, 1)
Rocket.BrickColor = BrickColor.new(23)
Rocket.FormFactor = 3
local rocketMesh = Instance.new("SpecialMesh")
rocketMesh.MeshId = "http://www.roblox.com/asset/?id=31601976"
rocketMesh.TextureId = "http://www.roblox.com/asset/?id=31601599"
rocketMesh.Parent = Rocket
local debris = game:GetService("Debris")
local swooshSound
local explosionSound
local vCharacter
local vPlayer
function blow(hit, missile)
if missile == nil then return end
if swooshSound then swooshSound:stop() end
explosion = Instance.new("Explosion")
explosion.Position = missile.Position
-- find instigator tag
local creator = missile:FindFirstChild("creator")
explosion.Hit:connect(function(part, distance) onPlayerBlownUp(part, distance, creator) end)
explosion.Parent = game.Workspace
if explosionSound then explosionSound:Play() end
wait(.1)
if missile then missile:Remove() end
end
function onPlayerBlownUp(part, distance, creator)
if part.Name == "Head" or part.Name == "Torso" then
local humanoid = part.Parent.Humanoid
tagHumanoid(humanoid, creator)
end
end
function tagHumanoid(humanoid, creator)
-- tag does not need to expire if all explosions lethal
if creator ~= nil then
local new_tag = creator:clone()
new_tag.Parent = humanoid
end
end
function fire(vTarget)
local vCharacter = Tool.Parent
local vHandle = Tool:findFirstChild("Handle")
if vHandle == nil then
print("Handle not found")
return
end
local direction = vTarget - vHandle.Position
direction = computeDirection(direction)
local missile = Rocket:clone()
local pos = vHandle.Position + (direction * 10.0)
missile.CFrame = CFrame.new(pos, pos + direction) * CFrame.Angles(math.pi/2, 0, 0)
local creator_tag = Instance.new("ObjectValue")
local vPlayer = game.Players:GetPlayerFromCharacter(vCharacter)
if vPlayer == nil then
print("Player not found")
else
if (vPlayer.Neutral == false) then -- nice touch
missile.BrickColor = vPlayer.TeamColor
end
end
local floatForce = Instance.new("BodyForce")
floatForce.force = Vector3.new(0, missile:GetMass() * 196.1, 0.0)
floatForce.Parent = missile
missile.Velocity = direction * 20.0
creator_tag.Value = vPlayer
creator_tag.Name = "creator"
creator_tag.Parent = missile
missile.Parent = game.Workspace
if swooshSound then swooshSound:Play() end
missile.Touched:connect(function(hit) blow(hit, missile) end)
debris:AddItem(missile, 100.0)
end
function computeDirection(vec)
local lenSquared = vec.magnitude * vec.magnitude
local invSqrt = 1 / math.sqrt(lenSquared)
return Vector3.new(vec.x * invSqrt, vec.y * invSqrt, vec.z * invSqrt)
end
Tool.Enabled = true
function onActivated()
if not Tool.Enabled then
return
end
Tool.Enabled = false
local character = Tool.Parent;
local humanoid = character.Humanoid
if humanoid == nil then
print("Humanoid not found")
return
end
swooshSound = Launcher:FindFirstChild("Swoosh")
explosionSound = Launcher:FindFirstChild("Explosion")
local targetPos = humanoid.TargetPoint
fire(targetPos)
wait(7)
Tool.Enabled = true
end
script.Parent.Activated:connect(onActivated)
This is the part wich makes it shoot:
Tool.Enabled = true
function onActivated()
if not Tool.Enabled then
return
end
Tool.Enabled = false
local character = Tool.Parent;
local humanoid = character.Humanoid
if humanoid == nil then
print("Humanoid not found")
return
end
swooshSound = Launcher:FindFirstChild("Swoosh")
explosionSound = Launcher:FindFirstChild("Explosion")
local targetPos = humanoid.TargetPoint
fire(targetPos)
wait(7)
Tool.Enabled = true
end
script.Parent.Activated:connect(onActivated)
If I just copy and paste it 5 times and reduce the wait it won't work as I want it to work if I do that and I shoot once 5 bullets will come out 0,5 sec after each other and then a reload what I want is:
Click Shoot Click Shoot Click Shoot Click Shoot Click Shoot Click Shoot
What it does: Click Shoot Shoot Shoot Shoot Shoot
Anyone knows how to do this?
