Старый 21.11.2007, 20:40   #1
KAPABAH
Разработчик
 
Аватар для KAPABAH
 
KAPABAH вне форума Регистрация: 07.02.2005
Адрес: Россия, Воронеж
Сообщений: 6,223
По умолчанию Формула Боя

Здесь расскажем более подробно о порядке и расчете урона при одном ударе.

Общий порядок Атаки
При атаке одного юнита другим, если не учитывать магические эффекты на обоих юнитах, порядок расчета атаки можно отобразить по схеме:
  1. Расчет Промаха.
  2. Расчет Критического удара (делается только если не было промаха).
  3. Расчет Урона.
  4. Отнятие Жизней (у защитника).
Расчеты:

Расчет итогового урона
Разница между атакой и защитой в одну единицу дает прирост или понижение урона в 0,05 раза (см. формулу ниже).

Формула:
Если aтака_атакующего >= защита_защитника, то:
Урон итоговый = (DP/100) * к_контрудар * к_крит * к_промаха * к_количества_юнитов * к_рода_войск * урон * ( 1 + 0,05 * (aтака_атакующего - защита_защитника)).
Если aтака_атакующего < защита_защитника, то:
Урон итоговый = (DP/100) * к_контрудар * к_крит * к_промаха * к_количества_юнитов * к_рода_войск * урон / ( 1 – 0,05 * ( aтака_атакующего - защита_защитника))
где:
  • DP - эффективность защиты, от 100 до 40. Подробнее см. в разделе 'Система боя', статья 'Эффективность Защиты (DР)'.
  • к_контрудар - коэффициент контрудара, учитывается только при ответном ударе. Его значение равно 0.3, т.е. 30% от обычного урона.
    Если же юнит принимает защитную стойку (+50% к защите), то значение коэффициента будет еще меньше – всего 0.15, т.е. 15% от обычного урона.
  • к_крит - коэффициент критического удара. Условия и значения, которые принимает коэффициент, и описаны ниже.
  • к_промаха - коэффициент промаха. Условия и значения, которые принимает коэффициент, и описаны ниже.
  • к_рода_войск - коэффициент рода войск, подробности см. в разделе 'Система войск', статья 'Эффективность войск'.
  • к_количества_юнитов – коэффициент количества юнитов, зависит от количества юнитов и параметра атаки. Рассчитывается по формуле:

    к_количества_юнитов = кол-во_юнитов * к_атаки / (кол-во_юнитов + К_атаки)
    где:
    кол-во_юнитов- количество юнитов
    к_атаки - коэффициент атаки, рассчитывается по формуле:

    к_атаки = 1000 / [0,9676 + 0,0108 * aтака_атакующего]
Расчет Атаки атакующего юнита (параметр aтака_атакующего)

Формула:
атака_атакующего = Атака * А(бонус1) + А(бонус2)
где:
  • Атака - берется от типа атаки. В зависимости от того, ближняя атака или дальняя – берется параметр Ближней или Дальней Атаки юнита.
  • А(бонус1) = а_наука * а_артефакт_зданий * a_к_высоты * а_уровня * а_навыка * а_фортификации
    где:
    • а_наука – коэффициент науки «Сила Атаки», зависит от изученного уровня науки. Равен 1 + уровень_науки/100.
    • a_артефакт_зданий – суммарный бонус военных артефактов в здании для увеличения атаки. Используется только для гарнизона.
    • a_к_высоты – коэффициент бонуса высот. Равен 1 + (0,1 за каждую единицу разницы высот: атакующего – защитника). Если разница высот отрицательная, то А(высоты) = 1.
    • a_уровня – коэффициент в зависимости от того, какой уровень у атакующих войск и у защитников. Подробнее см. статью.
    • a_навыка – используется, если в армии атакующего есть Аватар и у него есть Навык «Завоеватель» (при атаке самого Аватара) и/или навык «Полководец» (для атаки юнитов под командованием Аватара).
    • a_фортификации - бонус от фортификации. Используется, если атакующий юнит находится в составе гарнизона замка или форпоста.
  • А(бонус2) = a_заклинания + a_артефакт_аватара
    где:
    • a_заклинания – коэффициент магического воздействия (повышение ближней или дальней атаки).
    • a_артефакт_аватара – суммарный бонус артефактов Аватара для увеличения атаки. Для юнитов это только артефакты, увеличивающие атаку юнитов под руководством Аватара. Для Аватара – также артефакты, которые увеличивают его персональную атаку.
Расчет Урона атакующего юнита (параметр урон)

Формула:
урон = у_базовый * у_науки * у_артефакт зданий * у_навыка + у_заклинания + у_артефакт_аватара
где:
  • у_базовый = random(У(мин).. У(макс))
    У(мин), У(макс) - параметры минимального и максимального урона юнита (из справочника).
  • у_артефакт зданий – суммарный бонус всех Военных артефактов типа 'Урон' в здании для гарнизона. Используется для Форпоста и для Замка.
  • у_навыка – параметр используется только для Катапульт, и только если они находятся в составе армии Аватара, у которого есть навык «Баллистика».
  • у_заклинания – используется, если на юнит наложили соответствующее заклинание.
  • у_артефакт_аватара – суммарный бонус артефактов Аватара для увеличения урона. Для юнитов это только артефакты, увеличивающие урон юнитов под руководством Аватара. Для Аватара – также артефакты, которые увеличивают его персональный урон.
Расчет Защиты юнита (параметр защита_защитника)

Формула:
защита_защитника = з_базовая * з_науки * з_артефакт_зданий * з_к_высоты * з_навыка * з_фортификации + з_заклинаний + з_артефакт_аватара
где:
  • з_базовая – параметр защиты юнита из справочника.
  • з_науки – коэффициент науки «Сила Защиты», зависит от изученного уровня науки. Равен 1 + уровень_науки/100.
  • з_артефакт_зданий – это суммарный бонус защиты от Военных артефактов для увеличения защиты). Используется только для гарнизона.
  • з_к_высоты – коэффициент бонуса высот. Равен 1 + (0,1 за каждую единицу разницы высот: защитника - атакующего). Если разница высот отрицательная, то Защ(высоты) = 1.
  • з_навыка – используются: Навык «Защитник» для расчетов, относящихся к Аватару и навык «Заступник» для юнитов под командованием Аватара.
  • з_фортификации - бонус от фортификации. Используется, если защищающийся юнит находится в составе гарнизона замка или форпоста.
  • з_заклинаний – влияние заклинаний, наложенных на юнита.
  • з_артефакт_аватара – суммарный бонус артефактов Аватара для увеличения защиты. Для юнитов это только артефакты, увеличивающие защиту юнитов под руководством Аватара. Для Аватара – также артефакты, которые увеличивают его персональную защиту.
Расчет Промаха:
Вероятность промаха зависит от параметра Морали в армии:
Вероятность промаха = 100 - Мораль армии (в %)
Если промах случился, то рассчитывается коэффициент промаха: к_промаха = Морали в армии / 100.
Если же промаха нет, то к_промаха = 1.

Расчет Критического удара:
Если юнит не промахнулся, то у него всегда есть шанс нанести повышенный урон. Шанс этот равен для любого юнита.

Формула:
Вероятность = 5% + шанс_от_навыка + шанс_от_артефактов + шанс_от_заклинаний
где:
  • Вероятность - вероятность критического удара
  • шанс_от_навыка - бонус от навыка 'Дарующий' (если в армии есть Аватар).
  • шанс_от_артефактов – если в армии есть Аватар и у него в кукле есть артефакты со свойством «Критический удар», то вероятность такового существенно повысится.
  • шанс_от_заклинаний – на юнита можно наложить заклинание, которое будет давать ему дополнительный шанс нанести критический удар.
Если критический удар «сработал», то рассчитывается коэффициент критического удара.
  • Если критический удар «сработал», то: к_крит = 2.
  • Если критический удар 'не сработал' (или был промах), то: к_крит = 1.
Особые моменты

Круг Силы.
Если юнит принадлежит к расе Друидов, который состоит в действующем Круге Силы, то его атака, урон и защита будут увеличены на 20%.

Атака катапульт.
При атаке катапульты по фортификации, защита фортификации берется без каких-либо бонусов защиты.
Урон, нанесённый фортификации, не может быть выше, чем 1/3 от максимального значения жизней фортификации.

Атака стрелков. Стрелки имеют запас выстрелов. Урон вычисляется по формуле Итогового урона (см. выше) с одним но: добавляется к_расстояния, который умножается на итоговый урон. Коэффициент зависит от расстояния до цели:
к_расстояния = 1, если расстояние до цели 7 или меньше.
к_расстояния = 0,5, если расстояние до цели больше 7.
Атака магов. Маги, так же как и стрелки, имеют запас своих «магических» выстрелов (помимо маны, которая применяется только для заклинаний). Урон от таких атак вычисляется так же, как и от обычных атак стрелков, но уменьшается в зависимости от значения резиста цели (резист берется против родной школы мага).

Пример:
Лучник со средним (рассчитанным) уроном 20 (по вражескому юниту) стреляет на расстояние 9 гексов. Урон будет 10.
Маг со средним уроном (рассчитанным) 20 стреляет на то же расстояние, но резист вражеского юнита 40%. Урон будет равен 20*(100-40)/100=12.

Атака Аватара.
Аватар – единственный из юнитов, который может за счет навыков и эффекта "удар" в артефактах нанести дополнительный магический урон одной или нескольких стихий, на который действуют резисты.
Для артефактов: магический урон наносится всегда при ударе аватара по юниту.
Для навыков:
  • магический урон наносится с некоторой вероятностью при ударе аватара по юниту.
  • Для каждого имеющегося навыка считается своя вероятность срабатывания.
Формула расчета величины урона:
к_удара = коэф * урон_итоговый
где:
  • Урон_итоговый - итоговый урон, который наносит аватар (см. раздел Расчет итогового урона).
  • коэф - коэффициент, на который увеличивается урон, зависит от уровня навыка.
Подробнее по множителям и вероятности срабатывания навыка см. в таблице: Навыки.


Атака шпионов.
Шпионы, как известно, юниты особые. Одна их особенность - это шанс отравить противника, по которому наносится удар. Шанс и величина отравления будут зависеть от количества шпионов в группе и от развитости науки «Эффективность Шпионов».

Магия.
Здесь пока скажем, что магия может воздействовать на расчеты урона как напрямую (изменение параметров Атаки, Защиты, Урона, Жизни), так и косвенно. Имеется множество эффектов, которые дают бонус против определенного уровня существ, шанс нанести магический урон или подлечиться за счет противника. Но это все – на сладкое.


Отнятие жизней
Когда уже урон рассчитан, происходит отнятие жизней у атакованного стека и вычисление потерь.

У любого юнита в бою есть параметр текущей жизни и максимальной жизни. Максимальная жизнь складывается из параметра юнита 'Жизнь', бонуса от навыков Аватара, бонуса от эффектов артефактов Аватара и бонуса от военных артефактов Жизни в объекте (минимальное значение параметра Максимальных жизней равно 1. Ниже его опустить магией не сможет ни один маг). Текущие же жизни могут иметь значение в диапазоне 1..Макс.Жизнь

Формула:
Макс.Жизнь = ж_базовая * ж_навыка * ж_артефакт_зданий + ж_артефакт_аватара + ж_заклинаний
где:
  • ж_базовая – параметр юнита, которого атаковали.
  • ж_артефакт_аватара – бонусы от артефактов Аватара (если в армии есть Аватар и соответствующие артефакты).
  • ж_навыка – бонусы от навыков «Долгожитель» и «Охранитель» - так же, если в армии есть Аватар с этими навыками.
  • ж_артефакт_зданий – бонус от военных артефактов типа «Жизнь». Используется для Форпостов и Замков.
Пример: В армии, в которой есть Аватар с навыком «Охранитель» (мастер) и артефактом «Зуб мудрости» (Жизни юнитам +2), по отряду из 100 Виллан ударили на 89 жизней.
Тогда - Параметр Виллана Жизнь = 12, Ж(артефакты) = 2, Ж(навыки) = 1,1.
Тогда:
Макс.Жизнь = 12*1,1 +2 = 15,2, т.е. считается равным 15.
Убьет: 89/15 = 5,93, т.е. 5 Виллан. Текущие жизни Виллана станут равны 1/15, в отряде их останется 95.

Для Аватара все считается так же, с одним различием: жизни после боя у него не восстанавливаются до максимума.
__________________

"Вообще они в последнее время жутко свинячат. Пьянствуют, вступают в связи с женщинами, используя свое положение, ни черта не делают, да и делать ничего не могут, потому что ничего не смыслят в том, что им поручено. Начальству втирают очки! - Машину зря гоняют казенную ! - наябедничал и кот, жуя гриб".

Последний раз редактировалось KAPABAH; 21.02.2008 в 16:57.
  Ответить с цитированием
Старый 17.08.2011, 17:49   #2
Габилан Титан
Инисс
 
Аватар для Габилан Титан
 
Габилан Титан вне форума Регистрация: 15.07.2010
Адрес: Украина, Харьков
Сообщений: 692

Должно бить за формулой Атанче, а то юнити с большой атакой еще сильнее стают:
к_атаки = 1000 / [0,9676 + 0,0108 * aтака_атакующего]

Можно ли внести предложения в формулу? к примеру:
к_атаки = 24000 / [1 + 0,05 * aтака_атакующего] / урон_атакуещего
  Ответить с цитированием
Старый 17.08.2011, 17:53   #3
Атанче Айлан
Линдэ
 
Аватар для Атанче Айлан
 
Атанче Айлан вне форума Регистрация: 21.09.2009
Адрес: Миллидор, Дом Лалиэ
Сообщений: 3,338

Первая сотня

Внимание!
В формуле ошибка.
к_атаки = 1000 * [0,9676 + 0,0108 * aтака_атакующего]

Согласно моего предложения, эта формула должна выглядеть как
к_атаки = 1000 / [0,9676 + 0,0108 * aтака_атакующего]

Т.е. у меня - чем сильнее атака (чем выше уровень юнита, соответственно), тем слабее должен быть урон итоговый.

А по заявленной формуле наоборот, происходит усиление юнитов старших уровней!
Причем, если сравнивать с тем, как должно быть по правильной формуле, то сейчас урон юнита, скажем, с атакой 30, будет на 66% больше.
__________________
(ツ)
  Ответить с цитированием
Старый 18.02.2016, 17:55   #4
Хэймдайль
Вельди
 
Аватар для Хэймдайль
 
Хэймдайль вне форума Регистрация: 20.01.2008
Сообщений: 575

Первая сотня

Есть какие изменения в мат часте, полагаю формула расчета урона, резиста и так далее уже раз 20-30 успела поменяться, так же как и параметры юнитов?

З.Ы куда не напишешь обзовут - некропостером=)
  Ответить с цитированием
Старый 19.02.2016, 01:18   #5
Харат Певец
Хагдар
 
Аватар для Харат Певец
 
Харат Певец вне форума Регистрация: 21.01.2016
Адрес: Беларусь, Минск
Сообщений: 676
Победитель IX сезона!

[QUOTE=Атанче Айлан;271917]Внимание!
В формуле ошибка.
к_атаки = 1000 * [0,9676 + 0,0108 * aтака_атакующего]

Согласно моего предложения, эта формула должна выглядеть как
к_атаки = 1000 / [0,9676 + 0,0108 * aтака_атакующего]

Т.е. у меня - чем сильнее атака (чем выше уровень юнита, соответственно), тем слабее должен быть урон итоговый.

А по заявленной формуле наоборот, происходит усиление юнитов старших уровней!
не трогать формулу. а то снова порежете огров. отл. формула.
__________________
Мы - союз всех тех, кто ценит свободу, шум славной битвы и чувство крепкого локтя!
  Ответить с цитированием
Старый 19.02.2016, 10:19   #6
Дзирт
Заблокирован
 
Аватар для Дзирт
 
Дзирт вне форума Регистрация: 09.02.2016
Сообщений: 2

Цитата:
Сообщение от Даргеш Тихий Посмотреть сообщение
Цитата:
Сообщение от Атанче Айлан Посмотреть сообщение
Внимание!
В формуле ошибка.
к_атаки = 1000 * [0,9676 + 0,0108 * aтака_атакующего]

Согласно моего предложения, эта формула должна выглядеть как
к_атаки = 1000 / [0,9676 + 0,0108 * aтака_атакующего]

Т.е. у меня - чем сильнее атака (чем выше уровень юнита, соответственно), тем слабее должен быть урон итоговый.

А по заявленной формуле наоборот, происходит усиление юнитов старших уровней!
не трогать формулу. а то снова порежете огров. отл. формула.
Наш вариант формулы:
Цитата:
Если aтака_атакующего >= защита_защитника, то:
Урон итоговый = (DP/100) * к_контрудар * к_крит * к_промаха * к_количества_юнитов * к_рода_войск * урон * ( 1 + 0,05 * (aтака_атакующего - защита_защитника)).
Если aтака_атакующего < защита_защитника, то:
Урон итоговый = (DP/100) * к_контрудар * к_крит * к_промаха * к_количества_юнитов * к_рода_войск * урон / ( 1 – 0,05 * ( aтака_атакующего - защита_защитника))
где:
DP - эффективность защиты, от 100 до 40. Подробнее см. в разделе 'Система боя', статья 'Эффективность Защиты (DР)'.
к_контрудар - коэффициент контрудара, учитывается только при ответном ударе. Его значение равно 0.3, т.е. 30% от обычного урона.
Если же юнит принимает защитную стойку (+50% к защите), то значение коэффициента будет еще меньше – всего 0.15, т.е. 15% от обычного урона.
к_крит - коэффициент критического удара. Условия и значения, которые принимает коэффициент, и описаны ниже.
к_промаха - коэффициент промаха. Условия и значения, которые принимает коэффициент, и описаны ниже.
к_рода_войск - коэффициент рода войск, подробности см. в разделе 'Система войск', статья 'Эффективность войск'.
к_количества_юнитов – коэффициент количества юнитов, зависит от количества юнитов и параметра атаки. Рассчитывается по формуле:

к_количества_юнитов = кол-во_юнитов * к_атаки / (кол-во_юнитов + К_атаки)
где:
кол-во_юнитов- количество юнитов
к_атаки - коэффициент атаки, рассчитывается по формуле:

к_атаки = 1000 / [0,9676 + 0,0108 * aтака_атакующего]
  Ответить с цитированием
Старый 19.02.2016, 10:48   #7
Менезис Темный
Шонга
 
Аватар для Менезис Темный
 
Менезис Темный вне форума Регистрация: 27.03.2010
Сообщений: 1,385
Победитель VIII сезона!Победитель VII сезона!

И в результате урон фулстека лютов самый низкий в игре, знаем, знаем, на турнире проходили.
__________________
Миллидор жил, Миллидор жив, Миллидор будет жить! Неизвестный друид.
http://www.forum.millidor.com/image.php?type=sigpic&userid=23924&dateline=145331  2459

Последний раз редактировалось Менезис Тёмный; 19.02.2016 в 20:42.
  Ответить с цитированием
Старый 08.01.2017, 01:00   #8
Харат Певец
Хагдар
 
Аватар для Харат Певец
 
Харат Певец вне форума Регистрация: 21.01.2016
Адрес: Беларусь, Минск
Сообщений: 676
Победитель IX сезона!

вот вопрос - поправили сию несправеливость в формуле?
  Ответить с цитированием
Старый 13.01.2017, 19:22   #9
Гурф
Хагдар
 
Аватар для Гурф
 
Гурф вне форума Регистрация: 04.01.2017
Сообщений: 22

тут формулы 2007 года, они все еще актуальны вообще? в остальных разделах тоже актуальная информация???
  Ответить с цитированием
Старый 13.01.2017, 19:52   #10
Менезис Темный
Шонга
 
Аватар для Менезис Темный
 
Менезис Темный вне форума Регистрация: 27.03.2010
Сообщений: 1,385
Победитель VIII сезона!Победитель VII сезона!

Эти формулы актуальны, насколько помню.
  Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осада Замка и формула сноса! KAPABAH Система боя! 236 17.02.2019 20:40
Формула боя KAPABAH Новостная лента 29 26.01.2010 15:28
Формула боя. KAPABAH Новостная лента 37 26.05.2009 11:06


Текущее время: 15:34. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot