
Re: Не работающий(ая) блок\защита
Порядок расчета урона в ближнем бою в игре в моем понимании такой.
Урон:
1) Наносящий урон нажимает правую/левую кнопку мыши.
2) Идет проигрывание анимации. В случае силовой атаки идет еще и смещение модели в сторону "взгляда" камеры. Во время проигрывания анимации нельзя двигаться, но можно вращать камерой.
3) После анимации наносится единовременный урон по по определенной области пространства(площади) с учетом конечного положения модели персонажа. У разных классов площадь поражения разная, но тем не менее урон наносится всем вражеским объектам/персонажам находящимся в области поражения. Если атака оказалась критической то урон увеличивается в два раза.
Блок:
Если модель вашего персонажа оказалась в области поражения то вам наносится полный урон(критический или обычный).
Далее урон модифицируется в зависимости от наличия/отсутствия блока и положения моделей персонажей, наносящего и получающего урон, относительно друг-друга.
Берется условная прямая расположенная по направлению "взгляда" модели получающей урон (если персонаж в блоке то она всегда совпадает с направлением камеры) и условная прямая проходящая через центр моделей персонажей наносящего и получающего урон (соединяющая их прямая). Измерятся угол между этими двумя прямыми и в зависимости от этого угла модифицируется наносимый урон.
Как пример, идеальное положение блока для всех персонажей будет в случае, если этот угол будет равен 0-5 град. (в момент нанесения урона вы смотрите точно на модель наносящего вам урон).
Если отклонение превышает 5 град. то процент, на который уменьшается урон будет уже ниже (за исключением класса Танк, у него угол "полного" блока значительно больше) и будет уменьшатся вплоть до того момента, когда угол превысит 90 град. (вы встали к модели наносящей урон "боком"), тогда вам будет нанесен полный урон. Если же угол будет равен 180 град. то это будет принято как урон в "спину" и урон будет увеличен в два раза (за исключением класса Инквизитор).

