I have made the tool and everything this is the local script:
local player =game.Players.LocalPlayer
local mouse = player:GetMouse()
script.Parent.Activated:Connect(function()
script.Parent.PickenTarget:FireServer(mouse.Hit.p)
end)
I think I have got that down and it is good
here is the script
local db = false
local directon
local debris = game:GetService("Debris")
script.Parent.PickenTarget.OnServerEvent:Connect(function(player,mouse)
directon = mouse
end)
script.Parent.Equipped:Connect(function()
for i = 0,-4,-.5 do
script.Parent.GripPos = Vector3.new(0,i,0)
wait()
end
for i = -4,0,.5 do
script.Parent.GripPos = Vector3.new(0,i,0)
wait()
end
end)
script.Parent.Activated:Connect(function()
if not db then
db = true
-- Play the animation
local humanoid = script.Parent.Parent:FindFirstChild("Humanoid")
local throwAnim = humanoid:LoadAnimation(script.Throw)
throwAnim:Play()
wait(.5)
-- Throws the ball
script.Parent.Handle.Throw:Play()
script.Parent.Handle.Transparency = 1
local ball = Instance.new("Part",workspace)
ball.Shape = "Ball"
ball.Material = Enum.Material.Slate
ball.Color = Color3.fromRGB(255,255,255)
ball.Size = Vector3.new(1,1,1)
ball.CFrame = CFrame.new(script.Parent.Handle.Position + script.Parent.Handle.CFrame.LookVector * 3,directon)
local attachment0 = Instance.new("Attachment",ball); attachment0.Position = Vector3.new(-.5,0,0); attachment0.Orientation = Vector3.new(0,180,0)
local attachment1 = Instance.new("Attachment",ball); attachment1.Position = Vector3.new(.5,0,0)
local trail = Instance.new("Trail",ball); trail.Attachment0 = attachment0; trail.Attachment1 = attachment1
local bv = Instance.new("BodyVelocity",ball)
bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
bv.P = 3000
local ori = 0
spawn(function()
while wait() do
ori = ori - .1
ball.CFrame = ball.CFrame + ball.CFrame.lookVector * 4
ball.Orientation = Vector3.new(ball.Orientation.X + ori,ball.Orientation.Y, ball.Orientation.Z)
end
end)
-- When a ball touch something
ball.Touched:Connect(function(hit)
ball:Destroy()
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player then
local char = player.Character
local humanoid = char:FindFirstChild("Humanoid")
humanoid.Health = 0
humanoid.PlatformStand = true
end
local effect = Instance.new("Part",workspace)
effect.Size = Vector3.new(1,1,1)
effect.CanCollide = false
effect.Color = Color3.fromRGB(255,255,255)
effect.BottomSurface = Enum.SurfaceType.Smooth
effect.TopSurface = Enum.SurfaceType.Smooth
effect.CFrame = ball.CFrame + Vector3.new(0,1,0)
local hitSFX = Instance.new("Sound",effect); hitSFX.SoundId = "rbxassetid://4518881974"; hitSFX:Play()
for i = 0,10,1 do
local clonedEffect = effect:Clone()
clonedEffect.Parent = workspace
clonedEffect.CFrame = ball.CFrame + Vector3.new(0,1,0)
local bf = Instance.new("BodyForce",clonedEffect)
bf.Force = Vector3.new(math.random(-1100,1100),math.random(0,1100),math.random(-1100,1100))
wait()
bf:Destroy()
debris:AddItem(clonedEffect,5)
end
debris:AddItem(effect,5)
end)
-- Reloading the ball
wait(.45)
script.Parent.Handle.Scoop:Play()
wait(.2)
script.Parent.Handle.Scoop:Stop()
script.Parent.Handle.Transparency = 0
wait(.5)
db = false
end
end)
For some reason it won't kill my NPC I tested it with a free model and gun and the gun killed him just fine if someone could please help me.
I also don't know how to make it so it only takes a little damage out and not instant kill if someone could please help me that would be great!
Thanks!
