Team Fortress 2

Team Fortress 2

45 ratings
Зарядка щита медика от урона пациента (MvM)
By Fission Power
Особенности национальной зарядки, или пулеметчик + медик = лучшие друзья навек
   
Award
Favorite
Favorited
Unfavorite
Вступление
Небольшое руководство, которое я решил сделать из одного не вместившегося в подборку интересного факта. Можете считать это дополнением к моему основному руководству о медике
Сама суть
- Да ты поторопись! У нас сейчас медик. С заряженным щитом, хе-хе!
- От лечения зарядил?
- От урона, от урона!


https://www.youtube.com/watch?v=W476-8JetW8
Иллюстрирующее видео. Для тех, кому лень читать, в самый раз.

Итак, что мы знаем о свойствах такого замечательного улучшения, как щит медика? Конечно, его боевые качества всем известны - он блокирует большинство вражеских снарядов и пуль, а при соприкосновении с роботами наносит им приличный урон. Я имею в виду свойства его получения.
Наиболее известный и легкий способ зарядки щита - лечение своих товарищей. Нужно вылечить или перелечить 400 единиц здоровья (40 во время подготовки, и 200 при воскрешении), и 10 секунд универсальной защиты вам гарантированы. Отличное решение Вэлв, поощряющее и вознаграждающее медика за успешное лечение бойцов защитой, причем прежде всего эта защита ценна для медика, потому как без защит от урона и перелечивания он уязвим больше, чем кто-либо еще из членов команды.

Но есть еще один малоизвестный способ зарядки щита. Суть в том, что когда вы лечите того игрока, который в данный момент наносит урон, вам заряжается некоторая часть щита. И чем больше урона наносит этот игрок (с некоторыми ограничениями), тем быстрее щит зарядится. И это работает не только с прямым уроном игрока, т.е. пули, ракеты, огонь и т.д., но вообще с любым, который так или иначе игрок наносит. То есть щит заряжается:
- от урона турели, когда вы лечите построившего ее инженера;
- от урона ручного оружия;
- от пост-эффектов, вроде догорания или кровотечения, когда вы лечите того, кто этот эффект применил;
- от насмешек, наносящих урон;
- от щита медика, когда вы лечите этого медика (немного рекурсивный метод);
И так далее.
4000
Да, 4000. 4к, 4 ⋅10^3, 6⋅666 (почти), FA0 - называйте как хотите. Именно столько обычно нужно нанести пациенту урона для того, чтобы лечащий его медик полностью зарядил свой щит, любыми способами.
Но есть и ограничение, мешающее слишком быстрой зарядке от урона пациента.
Можно сказать, это ограничение 250 урона. Чем больше урона нанес какой-либо удар ракетой, пулей или чем-то еще, тем больше щита прибавится (где-то 0,025% от 1 единицы урона). Но есть предельное количество зарядки - 6,25%, идущей от удара по одной цели, и если урон от этого удара превысит приблизительно 250, то медику не пойдет больше зарядки, чем было от 250 урона.
Если проще - криторакета 270 и 540 урона (4 улучшения по +25%) по ОДНОМУ роботу даст медику одинаковый заряд. Это не касается урона по нескольким врагам - от каждого из них зарядка идет независимо от других, даже если роботы были повреждены одним снарядом.

Например, вы стрельнули критогранатой и задели троих роботов, одному было нанесено 300 урона, двум другим - по 150. Насколько я понял, медику, лечившему вас, пойдет 6,25% заряда от первого (так как урон был больше 250, больше вы от него не получите) и 150 ⋅0,025 = 3,75% от второго и третьего. Значит, суммарно медику зарядится 6,25+3,75+3,75=13,75% заряда, что вполне неплохо. 8 таких гранат - и щит зарядится полностью.
Кстати, танки. Если пациент наносит урон по танкам, медику не пойдет заряда вообще. Только роботы. Имейте в виду.
Исходный код
После слива кода 22.04.2020 нам стала доступна возможность посмотреть на сам код игры. Я нашёл кусок кода, отвечающий за вышеописанную особенность, и надо сказать, что это всего несколько строк. Вот так-то. А вы говорите "спагетти-код".

// Дать лечащему атакующего медику заряд, зависящий от урона CBaseEntity *pProvider = pTFAttacker->m_Shared.GetConditionProvider( TF_COND_HEALTH_BUFF ); if ( pProvider ) { CTFPlayer *pTFProvider = ToTFPlayer( pProvider ); if ( pTFProvider && pTFProvider->IsPlayerClass( TF_CLASS_MEDIC ) ) { //Ограничить, чтобы не было огромных приращений от выстрелов в голову и ударов в спину float flAmount = Min( realDamage, 250.f ) / 10.f; HandleRageGain( ToTFPlayer( pProvider ), kRageBuffFlag_OnHeal, flAmount, 1.f );
И что из этого?
Какие следствия можно вынести из этого?

Так как 4000 разделить на 250 будет 16, значит, вам нужно нанести минимум 16 ударов по роботу (одному), чтобы зарядить щит. Ну или 8 ударов по двум роботам, или 4 по четырем и т.д. Это в теории, в действительности щит даже с нуля зарядится немного быстрее, так как будет получать заряд с перелечивания пациента.

Медик эффективен с любой командой. Конечно, три инженера менее предпочтительны для него, чем три пулеметчика, но он все равно может заряжать свой щит, просто подлечивая самого умелого из них, и даже когда он полностью перелечен, зарядка все равно будет идти от урона турели. То же самое про снайпера и даже шпиона.

Так как криты серьезно увеличивают урон, то и зарядка щита уроном будет намного быстрее, когда пациент под критами. НО! смотри первое ограничение. Так что:
Пулеметчик и поджигатель не наносят одним ударом больше 250 урона, поэтому оба первых ограничения для них не работают. Но так как поджигатель вне танковых волн достаточно редок, получается, что в паре с пулеметчиком медику будет легче всего заряжать щит, не только от перелечивания такого здоровяка, но и от урона! Да, еще один повод для крамольных шуточек про эту сладкую парочку.

Когда слишком много сильных врагов, а щит кончился, врубайте криты на пулеметчика и щит зарядится за пару секунд. Серьезно, в одном из тестов, когда пулеметчик стрелял с латунного монстра со всеми улучшениями в четырех роботов и выдавал УВС порядка 7-8к, он зарядил щит медика за полсекунды.

Несмотря на ограничения, все же стоит лечить подрывника, когда он собирается взорвать свою ловушку из липучек - щит неплохо зарядится, хоть и частично, не на 100%.

Танки ничего не дают, так что мало смысла лечить бойцов, когда они его расстреливают, да и сам щит имеет малый УВС по танку.
Заключение
ОКазывается, медик еще эффективнее в роборежиме, чем я думал. Так что, ребятки, правильно используйте все возможности медика для того, чтобы быть для команды настоящим ангелом-хранителем. Спасибо всем тем, кто помогал мне тестировать щит, особенно Wünterschlee№1.
Мое предыдущее руководство о других малоизвестных вещах в MvM - http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=843331424
10 Comments
Fission Power  [author] 31 Aug, 2022 @ 4:39pm 
Добавил исходный код.
Fission Power  [author] 19 Mar, 2017 @ 4:02pm 
Добавил пояснительную видюшку.
ypiypi S.t.a.l.k.e.r 21 Feb, 2017 @ 1:43am 
+
ypiypi S.t.a.l.k.e.r 21 Feb, 2017 @ 1:43am 
НОРМ:steamhappy::steamhappy:
ypiypi S.t.a.l.k.e.r 21 Feb, 2017 @ 1:43am 
НОРМ
dyx™ 19 Feb, 2017 @ 7:35am 
спс полезная инфа
kitty claws 16 Feb, 2017 @ 10:35pm 
Побольше бы таких гайдов.
CnN4Ka 15 Feb, 2017 @ 10:25am 
+
Amper [RU] 15 Feb, 2017 @ 6:57am 
Охуенные руководства по МвМ чувак. Моё уважение
:steamhappy:
Big Floppa 15 Feb, 2017 @ 3:11am 
Норм