Ko/Bullet Penetration in Counter-Strike: Source
이 문서는 Counter-Strike: Source 에 있는 무기들의 총알의 관통의 깊이의 한계에 대한 정보를 다룹니다. 이 문서를 보고 가장 잘 학습한 사람은 총알무적인 벽을 만들기 위해 2-인치정도 벽을 두껍게 만드는 사람들입니다.

기본적 결과
아래의 표들은 한 발을 쐇을때 벽에 얼마만큼 탄환이 깊게 박히는지 알려주는 표입니다. 블럭들은 6면이 모두 80x104xn 의 크기이며 아래주어진 텍스쳐로 색칠되었습니다.
무기 | glass/prodwndwa | tools/toolsblockbullets tools/toolsnodraw |
M3 | 1 | 1 |
XM1014 | 1 | 1 |
USP | 15 | 6 |
Mac-10 | 15 | 6 |
UMP | 15 | 6 |
TMP | 20 | 8 |
Glock | 21 | 9 |
Elites | 21 | 9 |
MP5 | 21 | 9 |
P228 | 25 | 10 |
Five-Seven | 30 | 12 |
P90 | 30 | 12 |
Deagle | 30 | 12 |
Galil | 35 | 14 |
Famas | 35 | 14 |
M4-A1 | 35 | 14 |
SG 552 | 35 | 14 |
SG 550 | 35 | 14 |
M249 | 35 | 14 |
AK-47 | 39 | 16 |
Scout | 39 | 16 |
Aug | 39 | 16 |
G3SG1 | 39 | 16 |
AWP | 45 | 18 |
이 결과들의 문제점 : toolsblockbullets
는 이것의 이름값을 못합니다, 심지어 nodraw
가 총알을 막는데 더 쓸모있습니다. 어쩌면, 관통 거리에 의해 텍스쳐의 드러나는 값들의 정의가 달라질수도 있는겁니다.
SurfaceProperties.txt 와의 상관성
위의 몇몇 테스트의 의해, 이것은 텍스쳐의 종류에 따라 탄환의 관총 깊이가 정해진다는 결과가 확실해 졋습니다.
아래의 표는 scripts/surfaceproperties_cs.txt 의 의해 추가됩니다:
"toughstuff" { "density" "1000000000" "elasticity" "1000000000" "friction" "1000000000" "dampening" "1000000000" "stepleft" "Glass.StepLeft" "stepright" "Glass.StepRight" "scraperough" "Glass.ScrapeRough" "scrapesmooth" "Glass.ScrapeSmooth" "impacthard" "Glass.ImpactHard" "impactsoft" "Glass.ImpactSoft" "bulletimpact" "Glass.BulletImpact" // "strain" "Glass.Strain" "break" "Glass.Break" "audioreflectivity" "0.66" "audiohardnessfactor" "1.0" "audioroughnessfactor" "0.0" "gamematerial" "D" }
During testing the density, elasticity, etc. were modified and shown to have no effect of penetration depth. The only property that affected the penetration depth was gamematerial.
To use this new surfaceproperty, materials/glass/bulletproof.vmt was created:
LightmappedGeneric { "$basetexture" "glass\prodwndwa" "$translucent" "1" "$nocull" "1" "$envmap" "env_cubemap" "$envmapmask" "glass\offwndwb_ref" "$surfaceprop" "toughstuff" "$crackmaterial" "glass\offwndwb_break" }
Finally, several brushes ranging from a depth of 45 to 14 were created and each gamematerial type found in scripts/surfaceproperties.txt tested for penetration depth.
AWP inches | gamematerial | general description |
18 | C | Concrete |
18 | P | Computer |
23 | D | Dirt |
23 | V | Vent |
30 | T | Tile |
45 | -,B,F,G,H,I,L,M,O,S,T,X,Y | Everything Else: Flesh, Grates, Plastic, Metal, Liquids, Glass... |
>45 | W | Wood |
Brush entities require the smaller of 24 inches and the value associated with the gamematerial. For example a brush of toolsblockbullets texture is used in a func_breakable. Since toolsblockbullets is type C, 18 is less than 24 so 18 is used. This was tested on a subset of gamematerial types and using func_breakable and func_wall entities.
Note surfaceprop "default" has gamematerial C. Thus bullets penetrate nodraw, blockbullets, etc. as if they were hitting concrete.
Layer Sandwiching for Bulletproofing
The above results are none too encouraging for people who want to create thin bullet-proof surfaces. However, the behavior of sandwiched entity brushes is a bit weird, and provides us a method.
To create truly bullet-proof glass, you need to use two 1 inch thick brushes with glass texture on all sides. Each brush must be in its own entity (tested with func_wall and func_breakable) and no empty space can separate the brushes. That's it. So simple it's so easy to miss. You can use any combination of textures on any of the faces and not destroy the bullet-proof property of this configuration. Here is a sample map.
결론 사고적요
In general, sandwiching with space between brushes is no more efficient than a single large block. The property of entity brushes to reduce bullet penetration depth for most materials is a particularly useful result. Putting walls that should be resistant to bullets into func_wall entities would be a good trick to employ throughout many maps.
It is important to note that sandwiched brush entities are only stronger when the layers are in separate entities: {|}{|}{|}. Making a single entity of three sandwiched brushes {|||} is no more effective than a single brush entity of the same width.
For brushes with different materials on each face the penetration depth seems to match the value for the material through which the bullet entered the brush. The test example was a brush entity of depth 18 inches with one side glass and the other toolsblockbullets. AWP rounds penetrated the brush when shot from the glass side (entity penetration depth 24), but were stopped when shot from the toolsblockbullets side. This can be used actually for mimicking certain ultra-modern types of bulletproof glass that can be shot through from one side only, like bullet-proof windows of an armoured car.