Заметил баг (если это баг) - по идеи из CS 2, молотов/граната может пролетать через дым и не тухнуть, тут же обратная проблема - если кинуть молотов/гранату через дым, то он/она потухнет, хотя дым должен по идеи тушить только уже взорванный молотов/гранату (ну или если молотов/граната кидается прямиком в дым)
Что было сделано:
Баг 1 — ложная smoke-зона при взрыве молотова:
CSGrenade_ExplodeSmokeGrenade_Pre срабатывал на ВСЕ weapon_smokegrenade — включая приземляющийся молотов. Это создавало smoke-зону прямо под огнём, которая мешала логике. Теперь молотовы (grenade_molotov) пропускаются — хук работает только для настоящих дымовых гранат.
Баг 2 — огонь не тушился дымом:
ThinkFire (огонь на земле) вообще не проверял наличие дыма. Проверка была только в GrenadeThink — для летящей гранаты. Теперь каждые 40мс ThinkFire проверяет: если есть smoke-зона (CLASSNAME_SMOKE_TOUCHER) в радиусе flRadius + 110 юнитов — огонь тухнет со звуком extinguish.
Баг 1 — ложная smoke-зона при взрыве молотова:
CSGrenade_ExplodeSmokeGrenade_Pre срабатывал на ВСЕ weapon_smokegrenade — включая приземляющийся молотов. Это создавало smoke-зону прямо под огнём, которая мешала логике. Теперь молотовы (grenade_molotov) пропускаются — хук работает только для настоящих дымовых гранат.
Баг 2 — огонь не тушился дымом:
ThinkFire (огонь на земле) вообще не проверял наличие дыма. Проверка была только в GrenadeThink — для летящей гранаты. Теперь каждые 40мс ThinkFire проверяет: если есть smoke-зона (CLASSNAME_SMOKE_TOUCHER) в радиусе flRadius + 110 юнитов — огонь тухнет со звуком extinguish.