Баги, близзы, дпс. к вопросу расчетов урона оружия.
Сразу оговорюсь: данная статья не является развлекательно-легким чтивом, которое можно ненапряжно пролистать в обеденный перерыв за чашкой кофе. Предлагаемый вашему вниманию материал является серьезным исследованием автора, который, в том числе, использовал в своей работе бесчисленные расчеты, замечания, намеки, озарения, умозаключения многих и многих посетителей самых различных Д3-форумов, им всем — спасибо! Однако ничего похожего на получившийся в результате труд по объему, структурированности и анализу фактов ему лично не встречалось. Для полного освоения материала вам, совершенно несомненно, потребуется все ваше внимание, и, если вы хотите проверять расчеты автора (что настоятельно рекомендуется), что еще ручка, листок бумаги и элементарный калькулятор. Да, и конечно, еще требуется ваш интерес к так называемому «теор-крафту» и желание понять «чего ж там эти синие наворотили». Если вам нравится просто взрывать монстров не забивая себе голову всякой «околонаучной чушью», то, боюсь, статья покажется вам несколько нудноватой. 🙂
Какой «профит» вас ожидает, если вы потратите известные усилия и время на освоение предлагаемого материала? Ну, уж за что автор спокоен совершенно, так это именно за «профит» — судите сами.
- Вы узнаете, как же, Азмодан их всех забодай, рассчитывается ДПС на любом оружии, будь то оружие с физическим бонусом, бонусом элементальным, процентным бонусом к урону, комбинацией этих бонусов, а равно без бонусов вовсе.
- Вы узнаете откуда берутся исходные данные для таких расчетов. И как их, эти самые «входные данные», посмотреть наиболее удобным способом.
- Вы узнаете, что взяв четыре целых числа и такое же количество арифметических действий, при условии наличия у вас фантазии в требуемом объеме (у сотрудников всеми уважаемой фирмы с этим, на наше «счастье», проблем никаких), вполне можно создать систему исчислений, легко выносящую мозг среднестатистическому игроку со среднестатистическим же высшим образованием.
- Вы узнаете, что те цифры которые вы наблюдаете во всплывающем окошке при завешивании курсора мыши над оружием (карточка предмета) подчас подразумевают совершенно не то, что вы думаете глядя на них. Как говорится, есть факты, но есть и их интерпретация. И далеко не так однозначно что из двух важнее.
- Вас интересовало что же это за баг, который есть в «черном» оружии и который не будет исправляться в обозримом будущем? Вы получите совершенно исчерпывающий ответ на этот вопрос, а так же будете полностью подготовлены к возможным последствиям для ваших конкретных пушек, буде Близз-Компания поменяет свою точку зрения и отношение к багу. А ведь ЭТИ — могут!
- У автора в работе находится вторая статья о Маркиз-рубинах (кстати, знаете ли вы, что новые топ-камни в единственном числе правильно звать Маркиза, а не Маркиз? Потому что соответствующая огранка алмаза — Маркиза — имеет именно женский, а не мужской род. Не обижайте девочек. :)) ) и их влиянии на ДПС оружия. А в связи с планируемым апом вообще всех рубинов тематика той статьи будет интересна в приложении и к ним так же. Так вот та вторая статья будет полностью опираться на эту, «базовую», поскольку все расчёты поясняются и демонстрируются именно здесь. Так что во избежание чтения сразу двух довольно сложных статей в будущем, лучше изучать и воспринимать их по отдельности и последовательно.
Надеюсь, автору удалось заронить искру интереса в пытливый ум читателя, и мы — начинаем.
Урон (DPS) от любого оружия в D3 высчитывается всего-то из ВОСЬМИ исходных чисел, вот они.
base_min. Минимальный урон оружия, а точнее «болванки» этого оружия. Например, посмотрев на общую характеристику широко известного топора «Презрение» можно подумать, что этот параметр для него = 917. Однако не нужно так думать, поскольку, как известно этот уважаемый всеми варварами (да и не только ими) топор, сделан из «Главореза» и вот его минимальный урон (507) является значением обсуждаемого параметра и для «Главореза», и для всех его «производных». Аналогично, для «Отголосока ярости» неправильно считать этот параметр=370, потому что он равен 160, в чем легко убедиться посмотрев характеристики «болванки» для этой легендарной булавы — «Остроконечный молот«. Для совсем не наблюдательных товарищей поясню, что «болванкой» абсолютно любого оружия является обычная (белая, в цветах игры) пушка относящаяся к тому же классу вооружения (булава, меч, двуручный меч и т.д.) и имеющая тот же самый iLVL что и оружие DPS которого мы нацелились вычислить. Игра устроена таким образом, что оба пункта будет выполнять ровно одно оружие из обширного арсенала игры и именно оно и будет «болванкой».
base_delta. Разница (дельта) между base_min и base_max (понятно, что вычитать следует из большего меньшее, отрицательные числа нам не нужны, у нас и так все не просто). Снова, как вы правильно понимаете, нужно смотреть «болванку». Однако, в отличии от предыдущего пункта, тут есть «грабли» в виде диапазона (а не конкретного числа) для base_max в характеристиках болванки. Да, вот так: для минимального урона значение указывается точно, а в максимальный урон «болванки» свою лепту вносит рандом. На том же «Остроконечном молоте» минимум (предыдущий параметр) всегда будет 160, а вот максимум (вычитанием из которого образуется параметр текущий) будет колебаться в диапазоне 296–306. Разумеется, каждый опознанный предмет имеет строго определенное значение base_max, и, следовательно, совершенно точное значение для base_delta. Но как его узнать? Ну — можно пойти от обратного: DPS у нас перед глазами (большие белые цифры на картинке оружия), минимум берем из «болванки» и, методом «обратного инжиниринга», по формулам ниже, вычисляем base_delta. Но есть способ лучше и точнее, поскольку даже якобы «точному» base_min взятому из описания «болванки» на сайте battle.net можно доверять не всегда (см. ниже). Так вот если интересующее вас оружие «засветилось» в «Профиле персонажа» (a.k.a. «армори») и не важно чей это профиль — ваш или соседа-сопартийца, то требуемые для расчета ДПС «входные» цифры (причем все сразу, и абсолютно точные, ибо именно так «видит» данную пушку игра) можно просто «посмотреть глазами», и ниже я расскажу — как. Итак, пока запоминаем:


bonus_min/bonus_min_color. Предыдущих двух параметров, как вы понимаете, не может не быть даже на примитивнейшей из пушек 3-го iLVL-а. А вот обсуждаемый параметр является строго опциональным. Однако, если ваш персонаж достиг уровня сложности «Пекло» то на его пушке он есть с вероятностью 99.99%, а если вы приступили к прокачке Парагона, то вероятность присутствия данного параметра на пушке равна 1. Вас же не интересуют одноручки с DPS 300 и двуручки с DPS 700? Значит, ваша пушка обладает этим параметром. Поэтому считаем, что этот параметр есть у нас у всех гарантировано. НО! Предстать он может в двух «инкарнациях»:


Т.е. если подпись к бонусу НЕ уточняет от какой стихии «приходит» к нам этот бонус — то у нас т.н. «черный» дамаг-бонус. Если же стихия указана, то это будет НЕ-«черный» / «цветной» / «элементальный» / «стихийный» и т.д (кто как хочет, тот так и называет) бонус к урону. «Черной» пушкой принято называть такую которая содержит только «черный» бонус. Если же она содержит и «черный», и «цветной» бонусы, а уж тем более если только последний, то ее называют «цветной» пушкой. На самом деле «черный дамаг»=»физический дамаг», в чем мы убедимся в самом ближайшем будущем, так что если «физику» считать стихией, то все бонусы без исключений — стихийные и элементальные. Для краткости и понятности автор данных строк будет обозначать физический/черный бонус к урону как именно «черный», а любой иной как «цветной».
Мнемоническое правило 1: «цветной» бонус-урон всегда уточняется на самой пушке припиской какая стихия его наносит (на Бул-Катосе выше вражине влетает минимум 159 дополнительного дамага не абы чего, а именно стихии Света). «Черный» урон никогда не уточняется никакими приписками.
Мнемоническое правило 2: «черный» урон записывается «в столбик», в 2 строки: сначала минимальный бонус (его-то, кстати, мы и обсуждаем в настоящий момент, не забыли еще?), строкой ниже — максимальный. Если на данной пушке сролился лишь один из двух (только минимальный «черный» или только максимальный «черный»), то одна из строк просто пропускается. Что само собой подразумевает, значение 0 для не-сролившегося бонуса. «Цветной» урон записывается вдвое компактнее и через тире, слева — минимум (снова — его-то и обсуждаем), справа — максимум.
И — да, заметьте себе, что в наших рассуждениях об отображении бонус-урона на карточке предмета из последнего абзаца, минимум — это минимум во всех смыслах, а вот максимум… это еще «тот» максимум, что вовсе и не максимум. Точнее — не всегда максимум. В общем — продолжайте чтение, вас ждут большие открытия. ПОКА для простоты считаем что у нас перед глазами именно минимум бонуса и именно максимум его же.
Законный вопрос, а стоит ли так уж «упарываться» в методы разделения и различения одного вида бонус-урона от другого? Большая ли разница? На что автор вам ответит со всей серьезностью: разница колоссальная. Поэтому — соберите все свое внимание и очень тщательно отделяйте один вид бонуса от другого при чтении данной статьи. И вдвойне тщательней при подборе для своего персонажа нового оружия. И да, учтите, что еще бывают пушки с сочетанием «черного» и «цветного» уронов одновременно. Хотя как уже было отмечено правильно называть их все-таки «цветными» пушками (поскольку основной вклад в их итоговый ДПС вносит именно «цвет»), расчет точного итогового ДПС для них является комбинацией расчетов для «чисто черных» и «чисто цветных» пушек. Их мы рассмотрим в свое время, и отдельно…
bonus_delta/bonus_delta_color. Тут все просто, если вы освоили предыдущие пару параграфов и если прочитав параграф текущий вы не впадете в коматозное состояние: ниже от bonus_min/правее от bonus_min_color будет ИЛИ bonus_delta (нужный и обсуждаемый в текущую минуту параметр), ИЛИ bonus_max_color (не нужный и не обсуждаемый, но позволяющий выйти на требуемое). Разбираем последовательно, сначала «черный» «типа максимальный» бонус.
Он записывается строкой » XX к максимальному урону» (см. «Презрение» выше) и может восприниматься (и воспринимается) как просто «добавить XX к макс. урону», в то время как это именно дельта, добавляемая к предыдущему параметру. Ниже по тексту вы увидите, как эта неочевидность реализована в формулах расчета, а пока просто запомните: в «черных» пушках вы всегда (в общем случае) видите минимальный бонус и дельту к нему, а не минимальный и максимальный бонусы.
А теперь — бонус «цветной». Второе к нему значение записывается через тире от bonus_min_color и, после предыдущих объяснений, может восприниматься как дельта к последнему, в то время как это именно максимум бонуса (bonus_max_color).
Поскольку для расчета DPS нам требуется исключительно дельта, и никогда НЕ максимум, то в случае «черного» бонуса мы просто берем требуемое из строки » XX к максимальному урону», а в случае «цветного» бонуса из того что справа от тире, вычитаем то что слева и уже полученной разницей пользуемся:


А вы думали локация «Ад разработчиков» просто для фана запилена? Нееет, тут тонкий психологический расчет, поскольку игроку иногда ОЧЕНЬ хочется взять и уе… ммм… врезать кому-нибудь. Утешает одно. Совсем скоро автор расскажет вам способ, которым вы гарантировано будете получать сразу дельту и только ее, и не важно что там на карточке оружия нарисовано. И последнее: тип дельты («черная»/»цветная») всегда совпадает с типом минимального бонуса (предыдущий параметр) дельтой которого она, собственно, и является.
dmg%. Гораздо проще:

Понятно, что параметр полностью опциональный, его может просто не быть на вашей пушке (и тогда в расчетах он принимается равным 0) и она все-равно будет весьма серьезным и грозным оружием. Но если он есть, то его вклад в итоговый DPS переоценить просто невозможно…
APS (Attacks Per Second). Мега-элементарно:

Разумеется, так что бы на пушке не было никакого APS — не бывает.
Вот и все, данные восемь чисел:
- base_min
- base_delta
- bonus_min
- bonus_min_color
- bonus_delta
- bonus_delta_color
- dmg%
- APS
просчитают вам ДПС любого оружия. Если на данной пушке любое из них пропущено, то считайте его равным 0 и пользуйтесь все теми же формулами к обсуждению которых мы вскоре приступим. «Ядром» же расчетов и вовсе являются первые 6 (или даже 4, если отбросить «цветные» вариации бонусов) параметров, поскольку все начинается с базового урона и его дельты и бонус-урона и его дельты. Несложно? Ну — это как посмотреть…
Теперь — откуда брать эти исходные 8 цифр, если мы хотим проверить, что нам насчитала игра в качестве итогового DPS нашего оружия. Опять же — «а чо, ее проверять надо??». А вы как думали! Не то что бы мы с вами могли что-то поделать с «неправильным» расчетом игры (а неправильность есть! признано «синими», лично), но «кто предупрежден — тот вооружен». Поэтому — как же посчитать DPS вручную?
Как было показано в начале статьи, в принципе, все требуемые исходные значения берутся прямо с картинки оружия плюс небольшое сканирование по базе «болванок» на сайте Battle.NET. Но есть способ лучше! Поскольку интересует вас, надо думать, прежде всего оружие находящееся в руках ваших персонажей, а эти последние со всем что на них надето/взято в их руки надежно упаковано в «армори» — можно пойти «высоко-технологичным» путем. Возьмем, для примера, автора данных строк. Его основной (и единственный) персонаж в мире D3 (скромный варвар Mammoth 100-го уровня парагона) расположился в «армори» по вот этой ссылке: http://eu.battle.net/d3/en/profile/Einarr-2888/hero/18732179. В руках у него, как это легко наблюдать, легендарный «Скорн» a.k.a. «Презрение». Подводим к нему указатель мыши но НЕ щелкаем! Что появляется в нижней (статусной) строчке нашего браузера? Появляется там ссылка на страницу данной вещи на сайте Battle.NET, а именно: http://eu.battle.net/d3/en/item/skorn или http://eu.battle.net/d3/ru/item/skorn (если вы смотрите профиль автора в русскоязычном «армори»). Отбрасываем из ссылки все, что левее символов «d3» в тексте ссылки, получаем «усечённую» ссылку: d3/en/item/skorn или d3/ru/item/skorn соответственно. Дальше — открываем исходный (HTML) код страницы «армори» показывающей варвара Mammoth. Абсолютно все браузеры умеют это делать из контекстного меню вызываемого правой кнопкой мыши в любой точке страницы, нужный нам пункт меню будет зваться «View Source», «Просмотр кода страницы» или типа того. В общем — получили изрядный кусок обычного текста напичканного HTML-тегами. Сразу же учиняем в нем поиск усечённой (но не полной!) ссылки на оружие. Эту усеченную ссылку мы можем обнаружить в коде больше одного раза — это совершенно не важно, поскольку все они оформляются однотипно:
<a class=»slot-link» href=»/d3/ru/item/skorn» data-d3tooltip=»item/ClwIh5D5jAUSBwgEFdltpAwddvIOUh2GAmPqHdILi94d_SftZR1Vum3gHee-mnEwCTiXAkAAUBJglwJqIQoMCAAQ1PKQl4GAgMAdEhEIABIHCAQVHpaumDAJOABAARiyt6PKAVACWAA»>
Видите в показанном тэге <a> атрибут data-d3tooltip и его внушающее уважение любому не-IT-шнику значение в двойных кавычках? Вот это последнее нам и надо! Формируем «финальную ссылку»: к статической части http://us.battle.net/api/d3/data/ «прицепляем» справа (без пробелов) ВСЕ что находится в тех самых двойных кавычках. Т.е. в нашем примере получаем:
http://us.battle.net/api/d3/data/item/ClwIh5D5jAUSBwgEFdltpAwddvIOUh2GAmPqHdILi94d_SftZR1Vum3gHee-mnEwCTiXAkAAUBJglwJqIQoMCAAQ1PKQl4GAgMAdEhEIABIHCAQVHpaumDAJOABAARiyt6PKAVACWAA
Ну и открываем показанную финальную ссылку как обычную страницу в браузере. Вуа-как говорят французы-ля, мы поимели XML/Json data для выбранного оружия. Если вы, опять же, не айтишник, не напрягайтесь вопросами «а что есть XML/Json» — важно то, что мы поимели все что нужно для расчета ДПС, и нас далее не волнуют ни картинки конкретных пушек, ни их «болванки». Потому что на указанной странице имеются:
- Damage_Weapon_Min#Physical=base_min. Но тут — два важных замечания. Во-первых, в подобной конструкции (относится ли она к урону «болванки», или к урону «бонусному») после решетки (#) идет уточнение типа дамага, т.е. то самое его разделение на «черный» и «цветной». Как вы уже правильно догадались Physical =»черный», любое иное — «цветной». Во-вторых, не путайте показанный параметр с minDamage, так же представленным на той же странице. Damage_Weapon_Min — «входящее» значение для расчетов, minDamage — «исходящее», его результат. Собственно, используя первое мы пытаемся подтвердить/опровергнуть правильность расчета второго.
- Damage_Weapon_Delta#Physical=base_delta.
- Damage_Weapon_Bonus_Min#Physical=bonus_min.
- Damage_Weapon_Bonus_Delta#Physical=bonus_delta.
- Damage_Weapon_Percent_Bonus#Physical=dmg%.
- Attacks_Per_Second_Item=APS.
Если бы на «Презрении» автора был бы еще «цветной» бонус-урон от, допустим, огня (жаль, что его нет, кстати 🙂 ), то на той же странице были бы представлены например такие строки и их значения:
7. Damage_Weapon_Min#Fire=bonus_min_color=101.
8. Damage_Weapon_Delta#Fire=bonus_delta_color=217.
Увы, двух последних строк нет, а значит для данного топора «цветной» бонус-минимум и его дельта оба равны 0 и мы можем просто опустить их из ближайших расчетов, дабы не ошарашивать читателя так уж сразу, а делать это постепенно. 🙂 Вот такой крайне удобный (с точки зрения автора) способ добывания «сырых» данных. Остается пожалеть, что этот способ не «прокатывает» для вещей в сундуке/на аукционе. 🙁 Вещь непременно должна появиться в армори.
Итак, конкретно на «Презрении» автора упомянутые выше 6 параметров выролились в такие значения:
- Damage_Weapon_Min#Physical=base_min=507.
- Damage_Weapon_Delta#Physical=base_delta=106.
- Damage_Weapon_Bonus_Min#Physical=bonus_min=282.
- Damage_Weapon_Bonus_Delta#Physical=bonus_delta=308.
- Damage_Weapon_Percent_Bonus#Physical=dmg%=0.5=50% (но в формулы ниже следует подставлять именно 0.5 как значение данного параметра).
- attacksPerSecond=APS=1.0.
Показанные значения указываются на XML/Json-странице в фигурных скобках, после атрибутов «min» и «max», причем значения в обоих всегда совпадают и можно пользоваться любым. Для чего потребовалось такое избыточное дублирование автор затрудняется сказать… Видимо в планах было сооружение нечто вообще фееричного, с привлечением таких расчетов что бы мало уж совершенно никому не показалось. По счастью, Близз-ребята вовремя удержались от непоправимого, справедливо рассудив «а и так неплохо получилось». Да уж, «неплохо». И даже настолько здорово, что описание алгоритма элементарного (как может показаться) расчета выливается страниц в 10 текста. А если б нам еще минимальные/максимальные значения «внутри» каждого из 8-ми входных параметров, то и вовсе чудесно было б. Так что если кому-то кажется, что «наворотили тут… без бутылки не разберешься», скажите спасибо, что требуется всего бутылка, а не ящик. :)) Ладно, продолжим…
Обратите внимание, что последние 6 цифр полностью подтверждены и картинкой самого Презрения автора

и «болванкой» из которой он был изготовлен, хотя, повторю, имея на руках «финальную» ссылку на XML/Json нам не требуется ни первого, ни второго. Автор с сожалением отметил, что ему досталась минимальная «базовая дельта», ибо
base_max=base_min(507) base_delta(106)=613
это левая граница максимального урона «болванки». Если бы выролилась правая граница того же самого (629), то и «базовая дельта» была бы на 16 единиц больше. Но — увы, работаем с тем что есть. 🙁
Так же, и еще раз, отмечаю, что цифра 308 воспринимается по картинке как однозначно максимальный бонус, парный бонусу минимальному (282), в то время как в реальности это дельта добавляемая к последнему числу, и спустя минуту вы увидите как это происходит. Ну и наконец, формула расчета:
DPS («большие белые» цифры)=(Min_damage Max_damage)/2 * APS
Min_damage и Max_damage, в свою очередь, представляют «малые белые» цифры и располагаются непосредственно ниже цифр «больших», записанные через тире. При этом Min_damage рассчитывается элементарно:
Min_damage = (base_min bonus_min) * (1 %dmg) = (507 282)*1.5 = 1183.5 ~= 1184, что и подтверждается картинкой.
С Max_damage похитрее дело будет. Сначала нужно рассчитать вспомогательный параметр Max_P, алгоритм расчёта которого зависит от выполнения неравенства
bonus_min > base_delta
Если указанное неравенство СОБЛЮДЕНО (истина, true), то
Max_P=bonus_min 1
а если НЕ соблюдено (ложь, false), то
Max_P=base_delta
И уж после этого:
Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)
В нашем примере bonus_min(282) > base_delta(106) и неравенство СОБЛЮДЕНО , а значит
Max_P=bonus_min 1=283
А значит
Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=(507 308 283)*1.5=1647
Снова подчеркиваю, 308 добавилось к 282 (ну, точнее, к 282 1), а значит сыграло роль его дельты, как о том недвусмысленно намекает название этого параметра в XML/Json — Damage_Weapon_Bonus_Delta. Ну и финишный бросок:
DPS=(Min_damage Max_damage)/2 * APS=(1183.5 1647)/2*1.0=1415.25~=1415.3
Все три финальных числа блестяще подтверждены картинкой авторского Презрения, а значит вычисления были «верны». Почему последнее слово в кавычках? Читайте далее…
Временно оставим пушки «черные» и переместимся к пушкам «цветным», то бишь с элементальным уроном. Посчитаем теперь их урон. Поскольку читатель, как надеется автор, к текущей точке повествования уже вполне освоился в не столь и сложном процессе добывания исходных данных для вычислений, будем лаконичны. Пушка вот она:

XML/Json данные полученные описанным выше способом говорят нам что для нее:
- Damage_Weapon_Min#Physical=base_min=150.
- Damage_Weapon_Delta#Physical=base_delta=127.
- Damage_Weapon_Min#Holy=bonus_min_color=159.
- Damage_Weapon_Delta#Holy=bonus_delta_color=328.
- Damage_Weapon_Percent_Bonus#Physical=dmg%=0.41.
- attacksPerSecond=APS=1.443 (вообще-то показывается значение 1.4429999470710755, но будем в расчетах использовать 1.443).
Все идеально согласуется с картинкой самой пушки, и ее «болванки» — на этот раз ее роль сыграл «Убийственный меч«. Как положено, что бы игрок не скучал, в этот раз в карточке пушки показывается не дельта «цветного» бонус-урона (328), а его максимальное значение, 487=159 328. Так же интересней, верно?
Ну — пока все «отлично» (то есть, понятно, что косяки уже лезут отовсюду, но по сравнению с тем, как это МОГЛО БЫ быть…), считаем итоговый DPS:
Min_damage=(base_min bonus_min)*(1 %dmg)=(150 159)*1.41=435.69~=436
Что за притча?? На картинке ж 371 в качестве минимального урона! А!! Заметили? А это все потому, что у нас бонус — «цветной», а «база» — «черная». Видите в последнем списке входных данных уточнения #Physical и #Holy? А помните, как во втором классе вас учительница наставляла никогда в жизни не складывать яблоки и апельсины? Так и тут. А поэтому формула еще усложняется:
MIN_DAMAGE = Min_damage bonus_min_color,
где Min_damage — тоже самое что было в предыдущем примере, то есть базовый «черный» урон, а MIN_DAMAGE — минимальный дамаг пушки «с учетом всего». Ну что ж, считаем заново, учтя что «черный» bonus_min на данной пушке просто 0:
Min_damage=(base_min bonus_min)*(1 %dmg)=150*1.41=211.5
MIN_DAMAGE=Min_damage bonus_min_color=211.5 159=370.5~=371
Получилось? Не расслабляться, дальше — веселее. 🙂 Вы уже правильно поняли:
MAX_DAMAGE=Max_damage bonus_min_color bonus_delta_color,
с теми же оговорками что выше. Считаем «черный» Max_damage. Для начала, неравенство bonus_min > base_delta (где bonus_min именно «черный» бонус!!) — выполняется ли? Ну, с учетом что bonus_min у нас просто 0 — сами-то как думаете? А поэтому промежуточный параметр Max_P просто равен base_delta, то бишь 127. Тогда:
Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=(150 0 127)*1.41=390.57
И помните, в этой формуле — ничего «цветного»! Потому и 0. Ну и наконец:
MAX_DAMAGE=Max_damage bonus_min_color bonus_delta_color=390.57 159 328=877.57~=878
И совсем уж «добьём» задачу:
DPS=(MIN_DAMAGE MAX_DAMAGE)/2 * APS=(370.5 877.57)/2*1.443=900.4825~=900.5
Вэри-как говорится-вэлл. А что если нам теперь замахнуться даже не на Вильяма, понимаете ли, нашего Шекспира — нет, мы поднимем планку гораздо круче — а на расчет ДПС пушки имеющей комбинированный бонус, «черно»-«цветной»? Говорите что никогда такой не видели? Ну, они как те суслики: вы их не видите, а они — есть:

Ее «входные» данные:
- Damage_Weapon_Min#Physical=base_min=45.
- Damage_Weapon_Delta#Physical=base_delta=88.
- Damage_Weapon_Bonus_Min#Physical=bonus_min=30.
- Damage_Weapon_Min#Holy=bonus_min_color=254.
- Damage_Weapon_Delta#Holy=bonus_delta_color=362.
- Damage_Weapon_Percent_Bonus#Physical=dmg%=0.
- attacksPerSecond=APS=1.5.
Любопытно отметить, что данные полностью согласуются с картинкой самой пушки, а вот с ее «болванкой» («Длинный кинжал«) — накладочка вышла. Сайт показывает минимальную базу урона в 43 единицы, а XML/Json — 45. Ради интереса автор посмотрел этот же параметр у другого кинжала, уровня 63, получилось: сайт — 67, XML/Json — 69. Кто здесь «есть ху» — решайте сами, автору так мыслится, что в одном из патчей все кинжалы апнули «на волос», а заморачиваться сайтом, как положено, не стали. Мы, в любом случае, пользуемся входными данными от XML/Json. Итак — приступаем.
Min_damage=(base_min bonus_min)*(1 %dmg)=(45 30)*1=75
MIN_DAMAGE=Min_damage bonus_min_color=75 254=329
Пока OK, продолжаем. Опять же, bonus_min > base_delta? 30>88? Нет, конечно, и Max_P вновь просто равен base_delta, то бишь 88. И тогда:
Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=(45 0 88)*1=133
MAX_DAMAGE=Max_damage bonus_min_color bonus_delta_color=133 254 362=749
DPS=(MIN_DAMAGE MAX_DAMAGE)/2 * APS=(329 749)/2*1.5=808.5
Давайте теперь понаблюдаем что изменится, если пушка будет иметь «цветной» дамаг и плюс к максимальному (а не минимальному, как на предыдущем кинжале) «черному» дамагу:

«Вход» для показанного топора:
- Damage_Weapon_Min#Physical=base_min=130.
- Damage_Weapon_Delta#Physical=base_delta=112.
- Damage_Weapon_Bonus_Delta#Physical=bonus_delta=30.
- Damage_Weapon_Min#Fire=bonus_min_color=268.
- Damage_Weapon_Delta#Fire=bonus_delta_color=354.
- Damage_Weapon_Percent_Bonus#Physical=dmg%=0.
- attacksPerSecond=APS=1.3 (опять же, показывается в данных 1.2999999523162842).
Поехали:
Min_damage=(base_min bonus_min)*(1 %dmg)=(130 0)*1=130
MIN_DAMAGE=Min_damage bonus_min_color=130 268=398
bonus_min > base_delta? 0>112? Max_P=base_delta=112
Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=(130 30 112)*1=272
MAX_DAMAGE=Max_damage bonus_min_color bonus_delta_color=272 268 354=894
DPS=(MIN_DAMAGE MAX_DAMAGE)/2 * APS=(398 894)/2*1.3=839.8
Что отличает последние 3 расчета («цветные» пушки) от расчета самого первого, с авторским «Презрением»? Коренных отличий два.
- Аффикс » XX% к урону» (Damage_Weapon_Percent_Bonus#Physical в данных формата XML/Json) НЕ апает никакой «цветной» дамаг, что однозначно вытекает из приведенных выше формул. Т.е. правильное название аффикса » XX% к физическому урону». Вот тогда — полный OK будет, но слова «физическому» нет, а значит возможны два объяснения:
- Слово уточняющее тип/вид урона поднимаемое данным аффиксом сократили, просто что бы сэкономить место на карточке и предоставить его под более насущные описания. Не исключено, но не выглядит очень достоверно. В защиту данного пункта можно привести аргумент, что «черный» бонус урон (тоже физический) не уточняется этим словом. Считается и так понятным что это именно физический бонус.
- Планировалось, что баффаться будет общий урон, но потом «что-то пошло не так». Гораздо более правдоподобное, на взгляд автора, объяснение.
Итого, тут у нас возможный, но не подтвержденный Близзами баг. Или, как минимум, упущение в текстовом описании аффиксов. Тут уж решайте сами. Но это еще что, у нас еще пункт 2 есть!
2. Аффикс » XX ед. к максимальному урону» (Damage_Weapon_Bonus_Delta#Physical в данных формата XML/Json) однозначно считается не правильно или в чисто «черном» оружии, или в любом «цветном», не важно есть ли на последнем еще и «черный» бонус или нет. А, скорее всего, он просто считается неправильно в любых пушках. Вот этот баг однозначно признан Близзами:
«MinMaxDam Affix is calculating the damage bonus on weapon incorrectly»
Что бы разобраться где тут, собственно, собака порылась, давайте вспомним как вычисляются финальный минимальный и максимальные дамаги любой пушки. Начнем с первого:
Min_damage=(base_min bonus_min)*(1 %dmg)
Т.е., переводя на «человеческий» — к базовому минимальному добавить бонус к минимальному и сумму апнуть на процент добавочного урона. Логично звучит? Вполне! А для «цветной» пушки предыдущее предложение нужно продолжить фразой «…и добавить минимальный урон цветного бонуса». Снова — логично? Вполне! А максимум дамага? Возьмем сначала одноручный топор, вычисления для которого мы делали последними. Тогда «черная» составляющая его максимального дамага, как легко видеть из формулы выше, считалась так:
Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=(base_min bonus_delta base_delta)*(1 %dmg)=(base_min base_delta bonus_delta)*(1 %dmg)
«Переводим»: к базовому максимуму (base_min base_delta) добавить бонусную физическую дельту (bonus_delta) и сумму апнуть на процент добавочного урона. Логично? Уже не очень. Почему к максимальной базе добавляется не максимальный же бонус (bonus_min bonus_delta), а лишь последнее из слагаемых? Странно это… Но — ладно, пока продолжим. Если пушка цветная, то опять же, «довесок» к последнему «переводу»: «…и к полученному результату добавить максимальный цветной бонус, bonus_min_color bonus_delta_color». Снова все совершенно логично, его и надо добавлять. Это мы «перевели» Max_damage если он пошел по ветке FALSE в своем алгоритме вычисления. А если неравенство bonus_min > base_delta было просчитано в TRUE, как у Презрения автора? А вот тогда:
Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=(base_min bonus_delta bonus_min 1)*(1 %dmg)=(base_min bonus_min bonus_delta 1)*(1 %dmg).
«Переводим» на человеческий: к базовому минимальному (base_min) добавить максимальный бонус (bonus_min bonus_delta) и единичку. И сумму апнуть на процент добавочного урона. Логично звучит? Да просто ахинея!! Это ничего, что на вычисление максимального дамага НИКАК не влияет максимальный же базовый урон (base_min base_delta)? Вместо самоочевидной дельты впихнута в формулу какая-то произвольная единица…
В общем, при вычислении именно «черного» Max_damage что-то однозначно «неладно в Датском королевстве»… Причем вопросы есть как при вычислении по ветке TRUE, так и по ветке противоположной. Как можно было бы исправить ситуацию? Да очень просто, первое же приходящее в голову: прибавлять к максимальной (а не минимальной!) базе максимальный же бонус, т.е., для ветки TRUE:
не base_min 1 bonus_min bonus_delta,
а base_min base_delta bonus_min bonus_delta.
Что, как не сложно догадаться, апнет все «черные» пушки отнюдь не по детски. Например в Презрении автора вместо 1 будет плюсоваться 106(!!). А там ведь еще на полученную сумму процентное повышение пойдет… Не то что бы автору казалось что текущий ДПС таких пушек недопустимо мал, вовсе нет — нормально у них с ДПСом все. Просто автор, как IT-профессионал, за код без багов. И в данной ситуации вычистка бага сводится к замене искусственной единицы вполне логичным максимальным базовым уроном. Разумеется, точно такой же корректировке следует подвергнуть и алгоритм второй ветки (FALSE), т.е.:
не base_min base_delta bonus_delta,
а base_min base_delta bonus_min bonus_delta.
Что также, несомненно, баффнет «цветные» пушки. Возможно и этот бафф будет избыточным в игровом плане, но он будет правильным математически! А избыточный бафф можно легко скомпенсировать наращиванием брони монстров, или «раздать» им всем десяток-другой единиц сопротивления всему…
Альтернативное исправление ситуации: вычислять ОБЕ ветки по одной из существующих формул. Вариант приведения всего к текущей формуле TRUE-ветки автор решительно отказывается рассматривать. Что бы в вычислении максимального урона не участвовал максимальный базовый урон — это бред и галлюцинации начинающего алкоголика, повторяю еще раз. Остается формула ветки FALSE. «Цветные» пушки, понятно, при таком исправлении ситуации вообще ничего не заметят. А вот на черных:
вместо base_min 1 bonus_min bonus_delta,
станет base_min base_delta bonus_delta.
Пушки этого класса («черные») качеством хотя бы «выше среднего» обычно имеют такое качество не в последнюю очередь за счет весомого минимального бонуса, и 1 bonus_min обычно существенно выше чем base_delta. Скажем у топора автора этих строк первое значение 283, а второе — 106. В общем это решение проблемы приведет к ощутимому понижению дамага на всех (или почти всех) «черных» пушках, причем чем выше последняя в списке «ТОП-ДПС Мира/Европы/Америки», тем чувствительней окажется такой «де-бафф». Автору альтернатива нравится гораздо меньше первого варианта, и дело даже не в понижении ДПСа его персонального топора, в конце-концов в точно такой же (а иногда и худшей) ситуации окажется большинство варваров (и не только их) — все честно. Просто автор не видит ни в одной из двух существующих формул ту, что была бы совершенно логична на «интуитивном» уровне. Самая логичная формула:
base_min base_delta bonus_min bonus_delta,
т.е. Максимальный урон=максимальная база максимальный бонус, все!
Впрочем, любое приведение расчета максимального урона пусть к плохой, но единой формуле — благо, по сравнению с тем что творится сейчас. Идея разделить алгоритм просчета макс. дамага на две ветки была бредом того самого юного алкоголика с самого начала. Что бы увидеть все «вывихи» этой идеи обратимся к супер-элементарному примеру:

На этот раз оружие столь примитивно, что нам не нужны никакие XML/Json, все данные для просчета Min_damage/Max_damage могут быть взяты прямо с картинки.
==Левая картинка==
base_min=8
base_delta=17-8=9
==Центральная картинка==
base_min=8
base_delta=17-8=9
bonus_min=8
bonus_delta=8
==Правая картинка==
base_min=8
base_delta=17-8=9
bonus_min=10
bonus_delta=10
Что до минимального урона, то проблем вообще никаких:
Min_damage=(base_min bonus_min)*(1 %dmg), 8 0=8/8 8=16/8 10=18,
для каждой картинки соответственно. Но с Max_damage — начинается…
==Левая картинка==
bonus_min(0) > base_delta(9)? FALSE, и Max_P=base_delta=9, и Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=8 0 9=17
==Центральная картинка==
bonus_min(8) > base_delta(9)? FALSE, и Max_P=base_delta=9, и Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=8 8 9=25
==Правая картинка==
bonus_min(10) > base_delta(9)? TRUE, и Max_P=bonus_min 1=11, и Max_damage=(base_min bonus_delta Max_P)*(1 %dmg)=8 10 11=29
Расчеты-то, конечно, «верны»… Но посмотрите на все 3 картинки снова! Расчеты верны только в том смысле, что дают «правильные» цифры с т.з. игры, во всем остальном это не расчеты, а какое-то произвольное жонглирование цифрами. Почему, что бы случился «щелчок» нужно чтобы именно bonus_min стал именно больше, и именно base_delta?? Что за бред воспаленного сознания? Где логическая связь между двумя? Почему при «щелчке» дополнительным бонусом «выскакивает» именно единица? Ну — то есть как. В принципе понятно, что все эти наполненные странностями телодвижения направлены на то, что бы не допустить возникновения таких пушек, в карточках которых «малые белые» цифры урона будут иметь вид 220-198. Что, конечно же, будет сбивать играющего с толку. Но решать проблему-то надо [было давно] не странными телодвижениями и костылями, а логичными формулами, которые априори исключают появление таких несуразностей. В варианте решения предлагаемом автором данных строк такая «извращенная» пушка появиться просто не сможет чисто алгоритмически. Кстати, если применить его вариант расчетов к последнему примеру, то:
==Левая картинка/Центральная картинка/Правая картинка==
Max_damage=(base_min base_delta bonus_min bonus_delta)*(1 %dmg)=8 9 0/8/10 0/8/10=17/33/37
Ну — не логично ли? Ну вот минимальный урон же обходится единой и понятной формулой — так какого? Побочный вопрос, что в этом случае гораздо резоннее указывать на карточке пушки в аффиксе » к максимальному урону» не дельту бонуса (как сейчас), а прямо максимальный бонус (16 для центральной и 20 для правой картинок). Но, как говорится, нам бы с алгоритмами разрулить, для начала, юзер-интерфейс уж как-нибудь приложится. К сожалению (или счастью, не знаю уж…) Близзы приняли поистине соломоново решение: оставить код «как есть«, т.е. с багом! В частности, в заявлении сказано:
мы не хотим исправлять баг, который ощутимо ослабит огромное количество существующего оружия
По этому странному (мягко говоря) заявлению автор имеет сделать два следующих замечания:
- Его личный IT-опыт говорит о том, что ЛЮБОЙ замеченный в коде баг (если он признан таковым, что имеет место быть в разбираемом случае) ОБЯЗАН быть исправлен. Не обязательно в тот же день, как он будет выявлен, но, понятно, настолько оперативно, насколько это возможно. Если нужен тестовый период на апробацию исправленного кода в тестовом окружении — это пожалуйста, но желание/не желание отдельных личностей и групп людей не должно никак влиять на поступательный процесс фиксации обнаруженного бага.
- И главное. Самое логичное исправление бага УСИЛИТ огромное количество существующего оружия, а собственно говоря — ни одна пушка не будет ослаблена. Почему сотрудники и разработчики Близз видят (хотят видеть?) только альтернативный путь, действительно наносящий серьезный ущерб «черному» оружию (и при этом не решая проблему нелогичных расчетов окончательно) является полнейшей загадкой.
Изменения осколочно-фугасных снарядов: советы по игре
Теперь давайте посмотрим, как будет работать новая механика на нескольких ярких примерах игрового процесса.
**** Представим, что в дуэли участвуют два тяжёлых танка — M103 и 60TP Lewandowskiego, оснащённый 152 мм орудием. Польский боец заряжает ОФ снаряд и стреляет в лоб противника, не целясь. Снаряд попадает в маску орудия M103, которая представляет собой экран с очень толстой бронёй. Из-за недостаточной бронепробиваемости снаряд не пробивает её и не наносит урона.
Намного эффективнее было бы вести огонь по уязвимым местам противника, а не по силуэту. Чтобы нанести значительный урон фугасами в ситуациях, когда вы можете стрелять только по хорошо бронированным участкам, вам придётся потратить значительно больше времени и снарядов. Иногда следует изменить тип снаряда или выбрать другую тактику.
Хорошо бронированные машины могут уменьшить урон, наносимый им ОФ снарядами, подставляя под огонь более толстые участки брони. Фактически вы должны следовать той же тактике, что и при противодействии бронебойным снарядам.
При столкновении с тяжело бронированной техникой старайтесь выцеливать уязвимые места, чтобы нанести урон. Учитывайте новую механику при планировании тактических действий и выборе направления атаки или места для схватки с противником.
Ещё один яркий пример:***** Предположим, что FV4005 Stage II стреляет фугасом в щёку «Мауса» толщиной 260 мм. Снаряд попадает в броню, но из-за нехватки бронепробития не пробивает её. Вместо этого он взрывается на поверхности. Внутри танка образуются отколы брони, «Маус» получает урон, но уже заметно меньший, чем это было при старой механике — примерно 250–350 единиц.
Чтобы помочь вам определить результат выстрела, мы улучшили индикатор бронепробиваемости, так называемый «светофор». В снайперском режиме вы сможете ориентироваться по цвету индикатора, чтобы предсказать результат вашего выстрела:
- Красный — полное отсутствие урона: снаряд не пробьёт экран/гусеницу/колесо и не нанесёт урон.
- Жёлтый — урон может быть нанесён, но не полный: снаряд пробьёт экран/гусеницу/колесо, но не пробьёт броню.
- Зелёный — полный урон: снаряд пробьёт экран/гусеницу/колесо и саму броню.
Теперь вам также необходимо тщательно выцеливать уязвимые места противника, причём не только при стрельбе по тяжёлым танкам с хорошим бронированием, но и по любой другой технике. Неразумно стрелять ОФ снарядами наугад в лоб или по силуэту противника.
****** Type 5 Heavy заряжает ОФ снаряд и хочет выстрелить в машину со слабым бронированием, скажем, Progetto M40 mod. 65. Действуя по старой схеме и не учитывая особенностей новой механики, он стреляет наугад по силуэту противника. Но снаряд попадает в экран, и его бронепробиваемости не хватает, чтобы пробить. В такой ситуации Type 5 Heavy не нанесёт никакого урона Progetto M40 mod. 65.
Вместо этого следовало дождаться более подходящего момента и стрелять по бортам, в участки с самой тонкой бронёй или по гусеницам (если за ними есть броня), которые теперь также считаются экраном. В этом случае Type 5 Heavy, скорее всего, нанёс бы максимальный урон при пробитии брони или часть урона при пробитии гусениц и попадании в броню.
Как рассчитать эффективность танка в игре world of tanks
Рейтинг эффективности танка или его КПД – один из комплексных показателей игрового мастерства. Его учитывают при приеме в топовые кланы, в киберспортивные команды, в роты. Формула расчета довольно сложна, поэтому игроки пользуются различными онлайн-калькуляторами.
Одна из первых формул расчета выглядела так:
R=K x (350 – 20 x L) Ddmg x (0,2 1,5 / L) S x 200 Ddef x 150 C x 150
Сама формула приведена на картинке. В этой формуле имеются следующие переменные:
— R – боевая эффективность игрока;
— К – среднее количество уничтоженных танков (общее количество фрагов, деленное на общее количество боев):
— L – средний уровень танка;
— S – среднее количество обнаруженных танков;
— Ddmg – среднее количество нанесенного урона за бой;
— Ddef – среднее количество очков защиты базы;
— С – среднее количество очков захвата базы.
Значение полученных цифр:
— менее 600 – плохой игрок; такой КПД имеют около 6% всех игроков;
— от 600 до 900 – игрок ниже среднего; такой КПД имеют 25% всех игроков;
— от 900 до 1200 – средний игрок; такую эффективность имеют 43% игроков;
— от 1200 и выше – сильный игрок; таких игроков около 25%;
— свыше 1800 – уникальный игрок; таких не более 1%.
Американские игроки используют свою формулу WN6, выглядящую так:
wn6=(1240 – 1040 / (MIN (TIER,6)) ^ 0.164) x FRAGS DAMAGE x 530 / (184 x e ^ (0.24 x TIER) 130) SPOT x 125 MIN(DEF,2.2) x 100 ((185 / (0.17 e ^ ((WINRATE — 35) x 0.134))) — 500) x 0.45 (6-MIN(TIER,6)) x 60
В этой формуле:
MIN (TIER,6) – средний уровень танка игрока, если он больше 6, используется значение 6
FRAGS – среднее количество уничтоженных танков
TIER – средний уровень танков игрока
DAMAGE – средний урон в бою
MIN (DEF,2,2) – среднее количество сбитых очков захвата базы, если значение больше 2,2 используется 2,2
WINRATE – общий процент побед
Как видно, в этой формуле не учитываются очки захвата базы, количество фрагов на низкоуровневой технике, процент побед и влияние начального засвета на рейтинге сказываются не очень сильно.
Компания Wargeiming ввела в обновлении показатель личного рейтинга эффективности игрока, который рассчитывается по более сложной формуле, учитывающей все возможные статистические показатели.
Из формулы Кх(350-20хL) видно, что чем выше уровень танка, тем меньшее количество очков эффективности получается за уничтожение танков, зато большее за нанесение урона. Поэтому, играя на низкоуровневой технике, старайтесь брать больше фрагов. На высокоуровневой – наносить больше урона (дамага). Количество очков полученных или сбитых очков захвата базы на рейтинг влияют несильно, причем за сбитые очки захвата очков КПД начисляется больше, чем за полученные очки захвата базы.
Поэтому большинство игроков улучшают свою статистику, играя на танках низших уровней, в так называемой песочнице. Во-первых, большинство игроков на низших уровнях – новички, не имеющие навыков, не использующие прокачанный экипаж с умениями и навыками, не использующие дополнительное оборудование, не знающие преимуществ и недостатков того или иного танка.
Независимо от того, на какой технике играете, старайтесь сбивать как можно большее количество очков захвата базы. Взводные бои сильно повышают рейтинг эффективности, так как игроки во взводе действуют скоординировано и чаще добиваются победы.
Оф снаряды: изменения механики нанесения урона
1. Осколочно-фугасные снаряды будут наносить урон в точке попадания.При пробитии брони противника ничего не поменяется: если снаряд попадёт внутрь машины, то нанесёт большой урон. Если бронепробиваемости окажется недостаточно, урон будет рассчитываться только в точке соприкосновения с бронёй.
После того как снаряд сдетонирует, внутри машины образуются отколы брони. Разлетаясь внутри бронекорпуса, они смогут выводить из строя модули и членов экипажа, а также наносить повреждения самой броне. Радиус действия отколов брони будет таким же, как радиус разлёта осколков в прежней системе.
* При использовании осколочно-фугасных снарядов помните: если снаряд достигнет брони, он нанесёт урон. Теперь количество урона будет зависеть от толщины брони в точке попадания снаряда: чем тоньше броня и чем меньше её номинальное значение, тем больше урон. И наоборот — чем толще броня в точке попадания, тем меньше урона будет наносить снаряд при её непробитии.
Как и при использовании бронебойных снарядов, игрокам придётся выцеливать уязвимые места и ждать нужного момента, чтобы нанести максимальный урон. В итоге стрельба фугасами по хорошо бронированным участкам машины станет менее эффективной — наносить урон в прежних объёмах будет невозможно.
2. Осколочно-фугасные снаряды смогут пробивать экраны, а также гусеницы и колёса в точке попадания.К тому же они смогут пробивать небольшие и разрушаемые препятствия, такие как заборы, разрушаемые постройки и т.д. Это вполне соответствует изменению модели нанесения урона ОФ снарядом с зоны поражения на точку попадания.
Когда ОФ снаряд пробивает экран, его показатель бронепробиваемости уменьшается. Шансы пробить броню снижаются, ведь действие снаряда «ослаблено». Пробитие произойдёт только в случае с очень тонкой бронёй. Если ОФ снаряд пробивает экран и взрывается на броне, начинает работать та самая механика отколов брони, гарантирующая нанесение урона. Объём повреждений будет зависеть от толщины бронелиста, на котором разорвался фугасный снаряд.
В отличие от предыдущей версии механики нанесения урона, в обновлении 1.13 мы добавили возможность пробивать экраны, внешние модули и разрушаемые объекты. Однако после пробития объекта бронепробиваемость ОФ снарядов будет уменьшаться на величину, равную толщине препятствия, умноженной на специальный коэффициент.
** Будет два разных коэффициента потери бронепробиваемости: ×1 для разрушаемых объектов и ×3 для экранов, гусениц, колёс и внешних модулей. Это значит, что после пробития экрана с 20-мм бронёй фугасный снаряд потеряет 60 мм своей бронепробиваемости, а попытка пробить основную броню машины будет рассчитываться с учётом этого уменьшенного значения.
В результате вероятность получения урона через основную броню после пробития экрана значительно снизится, особенно для техники со скромным бронированием бортов. Вероятность получения большого фугасного урона при пробитии вашей машины ОФ снарядом также будет ниже.
*** Если фугас не пробивает экран и, следовательно, не достигает брони, он вообще не нанесёт урона. Чтобы эффективно стрелять ОФ снарядами через экраны, вам необходимо учитывать их толщину и наклон.
Если фугас пробивает гусеницы, экраны и колёса, но за ними нет брони, он не нанесёт урона. Если броня есть, урон будет нанесён.


