Это по моей гипотезе. Но как реально это сделано в Аллодах, никто кроме девелоперов не знает. Я показал код, как подсчитывает аддон. Он посчитывает каждый удар и проверяет модификаторы. Но при подсчете процентов, учитывается количество ударов, а не сумма счетчиков модификаторов.
Единственное что подгоняется (возможно) под 100% - это нормальные удары.
Шанс крита никто не занижает. Вот примерный код:
счетчик_ударов = счетчик_ударов + 1;
если крит то счетчик_критов = счетчик_критов + 1;
если антикрит то счетчик_антикритов = счетчик_антикритов + 1;
если промах то счетчик_промахов = счетчик_промахов + 1;
если уворот то счетчик_уворотов = счетчик_уворотов + 1;
если не крит и не антикрит и не промах и не уворот то счетчик_нормал = счетчик_нормал + 1;
а дальше проценты считаются от общего количества ударов.
Мы же не в "верю-не верю" играем. Что выдает клиент, то аддон и считает. Другое дело, что нет такого понятия "нормальный удар". Приходится идти от противного - если удар не крит, не скользящий, не промах, не уворот, то считаем его нормальным.
А 16% это не блоков, а величина урона, ушедшая в блоки.
Т.к. основной разработчик долгое время не отзывается, взял на себя наглость запостить версию аддона с моими доработками:
- ведется учет не вошедшего урона с детализацией по причинам. Выводится величина не вошедшего урона и процентное отношение к полному нанесенному урону.
- изменен учет модификаторов урона: крит, скользящий, промах, уворот. Теперь они учитываются независимо друг от друга. Все что не подходит под эти критерии считается нормальным ударом.
- слово Питомец заменено на Пет (для экономии места)(спс aLinenak)
File: zADCGUED7g2X39u.zip
Т.к. основной разработчик долгое время не отзывается, взял на себя наглость запостить версию аддона с моими доработками:
- ведется учет невошедшего урона с детализацией по причинам. Выводится величина невошедшего урона и процентное отношение к полному нанесенному урону.
- изменен учет модификаторов урона: крит, скользящий, промах, уворот. Теперь они учитывается независимо друг от друга. Все что не подходит под эти критерии считается нормальным ударом.
- слово Питомец заменено на Пет (для экономии места)(спс aLinenak)
File: 8ZnGS07VDzyoPM0.zip
С какой стати? А если тот удар, когда перс промахнулся, был критом?
Вот что говорит API:
EVENT_UNIT_DAMAGE_RECEIVED
Событие присылается при нанесение повреждения юниту. Тип повреждения - "ENUM_SubElement_...".
Замечание. Если повреждений нет, то может быть несколько факторов, повлиявших на это (вовсе не обязательно, что такой фактор только один).
...
Следующие поля заполняются, если был факт срабатывания соответствующего модификатора:
isDodge: boolean / nil - увернулась ли цель от удара
isMiss: boolean / nil - был ли промах
isCritical: boolean / nil - был ли нанесён Critical Damage (увеличенное повреждение)
isGlancing: boolean / nil - был ли нанесён glancing damage (уменьшенное повреждение)
Нигде нет "или". Т.е. удар может быть критическим и при этом промахом.
Подправил текстурку.
А по поводу "на главную" попробую обратиться к SLA для внесения изменения в основную ветку. А то наплодим клонов.
File: E6p9Urt2Fb1r734.zip
В табличке со спелами(заклинаниями/умениями) после значения ДПС показывается, в процентах от общего урона спела, сколько не вошло/поглотилось/парировалось. В табличке не прошедшего урона, сколько составляет каждый фактор в общем не вошедшем уроне. Но если надо, то переделаю на процент от общего урона умения.