Hello, I Want to start by saying I am new to raycasting
The script is working for the most point as it wont run unless I am within 10 units. However if I click with or without the tool equipped it adds to a queue and then when I click on the humanoid it apply 30dmg or 50 dmg (how ever many times I click) instead of 1
I would like this script to only apply 1 dmg to the humanoid when I am within the 10 units and do nothing when I am farther away
Local Script
local mouse = game.Players.LocalPlayer:GetMouse()
local tool = script.Parent
local Gun = false
mouse.Button1Down:Connect(function()
local function onSelected() -- Player Starts Using The Tool
script.Parent.Fire:FireServer(mouse.Hit.p)
end
local function onDeselected() -- Player Stops Using The Tool
end
tool.Unequipped:Connect(function() Gun = false end)
tool.Activated:Connect(onSelected)
tool.Deactivated:Connect(onDeselected)
end)
Server Script
script.Parent.Fire.OnServerEvent:Connect(function(player, mousePos)
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = {player.Character}
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
local raycastResult = workspace:Raycast(script.Parent.Handle.Position, (mousePos - script.Parent.Handle.Position)*100,raycastParams)
if raycastResult then
local hitPart = raycastResult.Instance
local model = hitPart:FindFirstAncestorOfClass("Model")
if model then
if model:FindFirstChild("Humanoid") then
if (model.HumanoidRootPart.Position - script.Parent.Handle.Position).magnitude < 10 then
model.Humanoid:TakeDamage(1)
print("Gott EEMM")
else
print("To Far Away")
end
else
print("Not Vaild Target")
end
end
end
end)
