Have fun

 
Code:
local surfacepenetration = {
    [MAT_ANTLION] = 1,
    [MAT_BLOODYFLESH] = 0,
    [MAT_CONCRETE] = 1,
    [MAT_DIRT] = 1,
    [MAT_EGGSHELL] = 0,
    [MAT_FLESH] = 0,
    [MAT_GRATE] = 0,
    [MAT_ALIENFLESH] = 0,
    [MAT_CLIP] = 0,
    [MAT_SNOW] = 1,
    [MAT_PLASTIC] = 1,
    [MAT_METAL] = 1,
    [MAT_SAND] = 1,
    [MAT_FOLIAGE] = 0,
    [MAT_COMPUTER] = 0,
    [MAT_SLOSH] = 0,
    [MAT_TILE] = 1,
    [MAT_GRASS] = 1,
    [MAT_VENT] = 0,
    [MAT_WOOD] = 1,
    [MAT_DEFAULT] = 1,
    [MAT_GLASS] = 0,
    [MAT_WARPSHIELD] = 1,
}

function isVisible(s,e)
    local trc = util.TraceLine({
        start = s,
        endpos = e,
        filter = {LocalPlayer()},
        mask = MASK_SHOT,
    })
    if(!surfacenames[trc.MatType]) then return false end
    return trc.Fraction >= surfacepenetration[trc.MatType]
end

don't leech and give a like thanks