Кобанчегъ Опубликовано 29 марта, 2008 Жалоба Поделиться Опубликовано 29 марта, 2008 Камрады, помогите разобраться! 1) Смотрю в конфиги и вижу: Fire Warrior damage: 63-72 AP против типа брони inf_heavy_med: 50 По какой формуле расчитать действительные повреждения по данному типу брони? 2) AP против типа брони mon_high: 0 Данный тип брони получит min_damage? З.Ы. Поиск юзал. Не нашел. Просьба не орать ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Brother Casius Опубликовано 29 марта, 2008 Жалоба Поделиться Опубликовано 29 марта, 2008 (изменено) Introduction This is reproduced from the Working on an armour explanation thread. Armor The armor system in Dawn of War is quite complicated. Each entity has an armor type, an armor amount, and an armour minimum. Each weapon has damage, a default armor-piercing value, and optional armor-piercing values for each armor type. Final Damage Multiplier = min( (100 - armour + armour_piercing_value) , 100 - armour_minimum ) / 100 armour and armour_minimum are in the ebp. armour_piercing_value is from the weapon blueprint. Taking it How to set up the armor. Armor is defined in the entity blueprint. \W40K\Data\attrib\ebps\races\racename\troops\ for infantry and vehicles \W40K\Data\attrib\ebps\races\racename\structures\ for buildings GameData["health_ext"]["armour"] = 100.000 The percentage of damage blocked, if the weapon is not armour-piercing. Usually 100. GameData["health_ext"]["armour_minimum"] = 0.000 The percentage of damage blocked no matter what armor-piercing value the weapon has. Usually 0. GameData["type_ext"]["type_armour"] = Reference("tp_infantry_high") The armour type. Most weapons have specific armour-piercing values for each armour type. For most units, all you should have to do is set the first value to 100, the second to 0, then pick an appropriate type for the third value. Here are the pre-defined armour types: tp_infantry_low tp_infantry_med tp_infantry_high tp_infantry_heavy_med tp_infantry_heavy_high tp_vehicle_low tp_vehicle_med tp_vehicle_high tp_monster_med tp_monster_high tp_commander tp_building_low tp_building_med tp_building_high Dishing it out GameData["area_effect"]["weapon_damage"]["armour_damage"]["armour_piercing"] = 10.000 This defines the default armor-piercing value of the weapon. Armor-piercing values for specific armor types can be defined (and are described later) but if the weapon encounters something that does not have an armor type listed in the table, it will use this value. GameData["area_effect"]["weapon_damage"]["armour_damage"]["armour_piercing_types"]["entry_01"]["armour_piercing_value"] = 30.600 GameData["area_effect"]["weapon_damage"]["armour_damage"]["armour_piercing_types"]["entry_01"]["armour_type"] = Reference("tp_infantry_low") Here's an entry defining the armour-piercing value of a weapon vs. one armour type. This example shows a weapon dealing 30% damage against targets with tp_infantry_low armour. If the target's armour value is less than 100, the weapon would do more than 30% damage, but all stantard units have an armour value of 100. That is another reason to set your custom units' armour values to 100. Often, a .NIL file, like eldar_shooting_weapons.nil, will create a table of armour_piercing_types for all 14 armor types, and leave it to other weapons (which inherit from it) to fill in the armour_piercing_value. I don't really like this, since 1) if the entry is created, the armour_piercing_value defaults to 0, so if you forget a damage type, your weapon won't even scratch it, and 2) the weapon files have lists of multipliers, but the armour types they go to are in a different file, making it hard to tell at a glance what armour types the weapon is effective against. Additional notes The damage multiplier is clamped to the range [0,1] A weapon will never do less than min_damage_value. This trumps even "armour_minimum." Изменено 29 марта, 2008 пользователем BrCasius Ссылка на комментарий Поделиться на другие сайты Поделиться
Кобанчегъ Опубликовано 29 марта, 2008 Автор Жалоба Поделиться Опубликовано 29 марта, 2008 Final Damage Multiplier = min( (100 - armour + armour_piercing_value) , 100 - armour_minimum ) / 100 Я правильно понял, что ФВ супротив ТСМ (при арморе 100) будет иметь коэффициент 50/100=0.5 ? То есть при дамаге 63-72 он будет наносить 31.5-36 действительных повреждений? Ссылка на комментарий Поделиться на другие сайты Поделиться
Brother Casius Опубликовано 29 марта, 2008 Жалоба Поделиться Опубликовано 29 марта, 2008 Я правильно понял, что ФВ супротив ТСМ (при арморе 100) будет иметь коэффициент 50/100=0.5 ? То есть при дамаге 63-72 он будет наносить 31.5-36 действительных повреждений? Армор у всех стоит 100 - так что понял не правильно. Ссылка на комментарий Поделиться на другие сайты Поделиться
-=Ufo=- Опубликовано 29 марта, 2008 Жалоба Поделиться Опубликовано 29 марта, 2008 Я правильно понял, что ФВ супротив ТСМ (при арморе 100) будет иметь коэффициент 50/100=0.5 ? То есть при дамаге 63-72 он будет наносить 31.5-36 действительных повреждений? Сорри, я щас хз про дамаг ФВ и ТСМ, но формуль разъясню. Final Damage Multiplier = min( (100 - armour + armour_piercing_value) , 100 - armour_minimum ) / 100 Если по русски, то минимальный_дамаг_оружия помножить на ((100 - армор_целевого_юнита + армор_пирсинг_оружия_против_типа_брони_целевого_юнита) делить на 100 Если урон в итоге нулевой, то берётся параметр min_damage_value (НЕ min_damage!) данного оружия (и уже не важно, что за тип брони у цели - урон будет равен этому самому минимальному дамагу). Если отцутствует армор_пирсинг против какого-либо типа брони, то насколько я помню будет взята цихверка из armour_piercing ... Ах да, стоит отметить так же, что после экспериментов я вывел немного другую формулу - минимальный_дамаг*армор_пирсигн_против_данного_вида_брони/100 Что делает хренька через запятую (..., 100 - armour_minimum) я не знаю. Точнее как её считать... Ссылка на комментарий Поделиться на другие сайты Поделиться
Кобанчегъ Опубликовано 29 марта, 2008 Автор Жалоба Поделиться Опубликовано 29 марта, 2008 Армор у всех стоит 100 - так что понял не правильно. Это понятно. Просто при АР=50 будет (100-100+50)/100 = 50/100 = 0.5 Коэффициент правильный? И правильный ли получился результат расчета истинных повреждений (32-36)? берётся параметр min_damage_value (НЕ min_damage!) Я min_damage_value и имел в виду :) Ссылка на комментарий Поделиться на другие сайты Поделиться
-=Ufo=- Опубликовано 29 марта, 2008 Жалоба Поделиться Опубликовано 29 марта, 2008 Хм... ЧТо за коэффициент? Эта формула рассчитывает конечный урон, а не коэфф ;) Т.е. у тебя получается, что у ФВ против ТСМ урон 0.5 ;) А по факту он... Ща посчитаю. [Добавлено позже] Так. Минимальный дамаг пульс райфл ФВ 63 еденицы (без грейда есесено беру). Максимальный - 72... Маринад у нас инфантри_хеви_мед. Модификатор урона у винтовки ФВ по этому типу брони 50. Итого урон будет колебаться от и до: 63*50/100=31.5 72*50/100=36.0 Т.е. за выстрел ФВ без грейда будет отнимать у ТСМа по 31.5-36 едениц хдоровья. Так вроде... [Добавлено позже] Учитывая, что без грейдов у ТСМа 390 ед. здоровья, ФВ замочит его примерно с 12 выстрелов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Кобанчегъ Опубликовано 29 марта, 2008 Автор Жалоба Поделиться Опубликовано 29 марта, 2008 Хм... ЧТо за коэффициент? Эта формула рассчитывает конечный урон, а не коэфф ;) Т.е. у тебя получается, что у ФВ против ТСМ урон 0.5 ;) А по факту он... Ща посчитаю. Final Damage Multiplier = min( (100 - armour + armour_piercing_value) , 100 - armour_minimum ) / 100 multiplier — это множитель, т. е. коэффициент. он умножается на табличные повреждения. Ну, в общем, мы про одно и то же говорим, так что считаем тему закрытой :) Всем спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти