Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How would i ignore the negative parts in a union which can help me with my raycasting??

Asked by 5 years ago
Edited 5 years ago

So, basically the code isnt needed right now. But i'll provide it just in case it was needed.. I am trying to make my life simpler by using csg parts, aka unions, which includes positive and negative parts, however I stumbled into a problem where my raycasting hits a negative part, even though it shouldn't it still does and I am unsure on how to fix it..

Also, a blacklist wont work because if i ignore the entire union then I can shoot through the walls.....

local killRay = Ray.new(workspace.CurrentCamera.CFrame.Position,game.Players.LocalPlayer:GetMouse().Hit.p)
        local part,dist = workspace:FindPartOnRay(killRay,game.Players.LocalPlayer.Character)
    if part.Transparency == 1 then
        print('shots fired')
    elseif part.CanCollide == true then
        print('shots fired')
    else
        print(part," interferance, returned ",part.Transparency)
        return
    end
if H.Parent.Parent.Name == "Target" then
if game.Players.LocalPlayer:GetMouse().Target then
    if game.Players.LocalPlayer:GetMouse().Target.Name == "Head" then
        print('head hit')
        game.ReplicatedStorage.Remotes.Main:FireServer("Kill",true,true)
    else
        print('not the head')
        game.ReplicatedStorage.Remotes.Main:FireServer("Kill",true,false)
    end
    end
else
    game.ReplicatedStorage.Remotes.Main:FireServer("Kill",false)
end
    markHit()
end

(Also I am using a gun) When I try to avoid the negative parts, it simply avoids the entire union, when I don't avoid the entire union, then it shoots through the walls and the windows, which is even worse....

I was thinking of making it so that there is a way to get all the parts withing a union, but im not very familiar with it.. Anyways.. I'd appreciate help!

Answer this question