What I need: I am using OnTouch as my way to break blocks, and using the classic ROBLOX slash animation, but I want to hover over a block with the pickaxe tool, and whenever the tool is activated, the block will lose health. I am also using a GUI that is shown to the player whenever they hit the block. This GUI shows the rock health. All I need is a way to hover over a block in-range and be able to break it when my pickaxe is activated. Any help would be appreciated!
Tool Code
local tool = script.Parent
local function mine()
local str = Instance.new("StringValue")
str.Name = "toolanim"
str.Value = "Slash"
str.Parent = tool
tool.Mining.Value = true
wait(0.5)
tool.Mining.Value = false
end
tool.Activated:Connect(mine)
Mineable Rock Code
local rock = script.Parent
local swingsRemaining = 10
local rockpos = script.Parent.Position
local rs = game:GetService('ReplicatedStorage')
local ss = game:GetService('ServerStorage')
local ores = rs:WaitForChild('Ores'):GetChildren()
local once = true
local i = ''
local function onTouch(op)
local tool = op.Parent
if tool:IsA('Tool') and tool.Mining.Value == true then
if once == true then
local label = game:GetService('ServerStorage').HealthScreen:Clone()
local plrpress = game:GetService('Players'):GetPlayerFromCharacter(op.Parent.Parent)
label.Parent = plrpress.PlayerGui
end
once = false
script.Hit:Play()
swingsRemaining-=1
game:GetService('Players'):GetPlayerFromCharacter(op.Parent.Parent).PlayerGui.HealthScreen.Health.Green.Size = UDim2.new(swingsRemaining/10, 0,0.5,0)
end
if swingsRemaining <= 0 then
dropOres(math.random(1,3))
rock:Destroy()
end
end
function dropOres(amount)
for i = 1,amount do
local rndmOre = ores[math.random(1,#ores)]:Clone()
local cs = ss:WaitForChild('Collect'):Clone()
rndmOre.Parent = workspace
rndmOre.Position = rock.Position
cs.Parent = rndmOre
end
end
rock.Touched:Connect(onTouch)
