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