Алгоритмы — различия между версиями

Материал из HeroesLAND
Перейти к: навигация, поиск
(Создание.)
 
м (Вычисление "силы героя".)
 
(не показано 9 промежуточных версий 3 участников)
Строка 1: Строка 1:
<!-- По вопросам разработки обращаться к герою Фартаэль. -->
+
<div style="width:1080px;">
<br clear=all>
+
 
<br><hr><hr>
+
 
<br><b><i><font color=red>Данная страница находится в разработке, дальнейшая информация временно недоступна.
+
==Вычисление магического урона.==
Приносим извинения за временные неудобства.</font></i></b>
+
[[Файл:Магический урон.png|Формула заклинания "Молния"|мини]]
<br><br>
+
1. Вычисляется базовое значение урона по формуле из Справки.
<hr><hr>
+
 
 +
2. Учитывается увеличение урона магией соответствующей школы ( от артефактов и пр. ).
 +
 
 +
3. Учитывается навык "Волшебство".
 +
 
 +
4. Для ПвЕ учитывается увеличение силы заклинаний урона: +2% за уровень героя.
 +
 
 +
5. Учитывается влияние магических медалей из достижений героя.
 +
 
 +
6. Учитывается возможная [[Специализация|<i>Специализация</i>]] героя.
 +
 
 +
7. Учитывается модификатор снижения урона магией соответствующей школы по цели ( заклинания "Защита от магии ...", свойства юнитов и артефактов ).
 +
 
 +
8. Учитывается свойство "Уклонение от магического урона" у цели (вероятностное снижение урона).
 +
 
 +
==Вычисление физического урона.==
 +
 
 +
1. Определяется базовый урон D_BAS как случайное значение из диапазона от <количество юнитов в стеке * минимальный урон> до <количество юнитов в стеке * максимальный урон>.
 +
 
 +
2. Определяется модификатор урона MD_BAS, учитывающий разницу между атакой нападающего и защитой цели. На этом этапе применяются все модификаторы атаки (атака в окружении и пр.) и защиты (снижение защиты цели при атаке Бегемотов, свойство Ётунов и комплекта Титана, состояние обороны и пр.).
 +
 
 +
*Если атака больше защиты, то урон увеличивается на 5% за каждую единицу разности, но не более, чем на 400%.
 +
 
 +
*Если атака меньше защиты, то урон снижается на 2.5% за каждую единицу разности, но не более, чем до 60%.
 +
 
 +
3. Определяется модификатор M_OFF вторичных навыков у героя, владеющего атакующим отрядом, повышающих урон. Для контактной атаки это - "Нападение", для стрелковой - "Стрельба". Степень увеличение зависит от уровня владения навыком:
 +
 
 +
M_OFF = D_BAS * PCT / 100.
 +
4. Определяется модификатор M_DEF снижения урона, зависящий от навыка "Доспехи" у героя, владеющего защищающимся отрядом. Степень снижения зависит от уровня владения навыком:
 +
 
 +
M_DEF = PCT / 100.
 +
 
 +
5. Учитывается модификатор сработавшего навыка "Удача" M_LUCK.
 +
 
 +
*В случае выпадения положительной удачи M_LUCK = 1.5
 +
*Для отрицательной удачи M_LUCK = 0.75
 +
*При отсутствии Удачи M_LUCK = 1.0
 +
 
 +
6. Определяется промежуточный базовый урон
 +
 
 +
D = ( D_BAS + MD_BAS + M_OFF ) * M_LUCK * ( 1.0 - M_DEF )
 +
 
 +
7. Учитываются сумма модификаторов, увеличивающих урон (контактный или стрелковый) атакующего отряда (заклинания, свойства артефактов и юнитов)
 +
 
 +
D = D + D * I_DMG / 100.
 +
 
 +
8. Учитываются сумма модификаторов, снижающих получаемый урон (контактный или стрелковый) защищающимся отрядом (заклинания, свойства артефактов и юнитов)
 +
 
 +
D = D - D * R_DMG / 100.
 +
 
 +
9. Учитывается пенальти за стрельбу на дальнюю дистанцию ( 0.5 ) и сумма модификаторов, увеличивающие урон. Например, "Удар двойной силы" Рыцарей Сметри, "Атака в окружении" у Ётуновых Питомцев.
 +
 
 +
D = D * ( 1.0 - PENALTY ) * COEFF.
 +
 
 +
10. Учитывается влияние боевых медалей в достижениях героя, владеющего нападающим отрядом.
 +
 
 +
11. Учитываются свойство "Кавалерийский бонус" у нападающего (увеличение урона за каждую пройденную клетку).
 +
 
 +
12. Учитывается свойство "Глухая оборона" у защитника (снижение урона за каждую пройденную нападающим клетку). Например, от комплекта Ветерана.
 +
 
 +
13. Учитывается свойство "Уклонение от урона" у защитника (вероятностное снижение урона). Например, у Утонувших.
 +
 
 +
14. Результирующий урон не может быть меньше 1.
 +
 
 +
==Вычисление "силы героя".==
 +
 
 +
[[Файл:Сила героя.png|left]]
 +
Параметр "Сила героя" вычисляется по-разному для ПвЕ и ПвП битв. В информации о герое возле аватарки указывается "Сила героя" в ПвП битвах. Нажав на кнопку с изображением глаза, можно посмотреть правильно ли рассчитывается ваша сила согласно формуле. В случае несоответствия игроку необходимо обратиться в [http://forum.heroesland.com/viewforum.php?f=7&sid=ec3303f1bb2c0d4f51ea904d42cc3c66  <i>Мастерские</i>]. <br>
 +
"Силу героя" в ПвЕ битвах можно увидеть, если по завершении битвы навести указатель мыши на портрет героя во вкладке "Статистика".<br>
 +
[[Файл:ПвЕ Сила героя.png|300px|right]]
 +
 
 +
 
 +
"Сила героя" <b>в ПвЕ битвах:</b><br>
 +
1. Определяется "Сила армии" героя как сумма общей харизмы всех отрядов в армии и общей харизмы всех призванных в бою юнитов.<br>
 +
2. Определяются "Параметры героя" как сумма всех параметров героя (*), умноженных на индивидуальные коэффициенты.<br>
 +
3. Определяются "Заклинания героя" как Объем маны.<br>
 +
4. Определяется "Коэффициент влияния героя" = ( 1 + 0.012 * "Параметры героя" ) * ( 1 + 0.0019 * "Заклинания героя" ).<br>
 +
5. "ПвЕ сила героя" = "Коэффициент влияния героя" * "Сила армии".<br>
 +
 
 +
"Сила героя" <b>в ПвП битвах:</b><br>  
 +
1. Определяется "Воинский потенциал" героя как сумма общей харизмы всех отрядов в армии и общей харизмы всех призванных в бою юнитов, умноженной на 0.2.<br>
 +
2. Определяется "Магический потенциал" героя, как сумма очков интеллекта всех заклинаний в книге героя в бою.<br>
 +
3. Определяется "Модификатор воинского потенциала" как сумма всех воинских параметров героя (*), умноженных на индивидуальные коэффициенты.<br>
 +
4. Определяется "Модификатор магического потенциала" как сумма всех магических параметров героя (*), умноженных на индивидуальные коэффициенты.<br>
 +
5. "ПвП сила героя" = 0.01 * "Воинский потенциал" * "Модификатор воинского потенциала" + 2.5 * "Магический потенциал" * "Модификатор магического потенциала".<br>
 +
 
 +
* Учитываемые параметры и их коэффициенты.<br>
 +
<b>Воинские</b> параметры:<br>
 +
атака ( 1 )<br>
 +
защита ( 1 )<br>
 +
скорость юнитов ( 15 )<br>
 +
здоровье юнитов ( 3 )<br>
 +
удача ( 5 )<br>
 +
мораль ( 5 )<br>
 +
сопротивление магии ( 0.5 )<br>
 +
расстояние стрельбы ( 2.0 )<br>
 +
снижение физического урона ( 1.0 )<br>
 +
увеличение физического урона ( 2.0 )<br>
 +
снижение магического урона ( 0.5 )<br>
 +
 
 +
<b>Магические</b> параметры:<br>
 +
сила магии ( 1 )<br>
 +
мана ( 0.1 )<br>
 +
увеличение магического урона ( 0.25 )<br>
 +
 
 +
==Вычисление размера динамической армии противника для героя.==
 +
 
 +
1.Определяется базовый коэффициент разброса CBase, как случайное число между 2.3 и 2.7.
 +
 
 +
2.Вычисляется базовая харизма будущей динамической армии CPBase = CP / CBase, где CP - общая харизма героя.
 +
 
 +
3. Вычисляется базовый случайный коэффициент CRandom, зависящий от уровня героя и лежащий в пределах от 1.5 до 2.0.
 +
 
 +
4. Определяется коэффициент CRace, зависящий от типа герои и равный сейчас 0.9-1.0.
 +
 
 +
5. Вычисляется коэффициент влияния параметров героя CParams (алгоритм приведен в Вычислении силы героя, "Параметры героя").
 +
CParams не может быть выше 2.0.
 +
 
 +
6. Вычисляется коэффициент влияния заклинаний героя CSpells = 1.0 + 0.0038 * SUMSpells, где SUMSpells - сумма произведений количества набранных заклинаний на их стоимость в очках интеллекта. CSpells не может быть выше 2.0.
 +
 
 +
7. Вычисляется коэффициент влияния истории битв героя с юнитам того типа, из которых будет состоять динамическая армия
 +
CKills = 1.0 + 0.00002 * EXP / 1000, где EXP - общий опыт, ранее полученный героем за убийство юнитов указанных типов. CKills не может быть выше 2.0.
 +
 
 +
8. Вычисляется результирующий коэффициент
 +
CTotal = CRandom * CRace * CParams * CSpells * CKills * CAIHero,
 +
где CAIHero равен 1.0 для армии без ИИ героя, и зависит от уровня героя в противном случае: от 1.5 для 1-7 уровней, до 0.15 для 20+ уровней.
 +
CTotal не может быть выше 5.0 для охоты на Арене и 7.0 для боёв на карте.
 +
 
 +
9. Вычисляется суммарная харизма будущей динамической армии CPTotal = CPBase * Difficult * CTotal,
 +
где Difficult - уровень сложности, заданный в параметрах (юнитов, объектов на карте, события и т.п.).
 +
 
 +
10. Полученная суммарная харизма равномерно делится на все стеки будущей динамической армии в зависимости от их персональной харизмы. Округление всегда вверх.

Текущая версия на 02:49, 1 июня 2019


Вычисление магического урона.

Формула заклинания "Молния"

1. Вычисляется базовое значение урона по формуле из Справки.

2. Учитывается увеличение урона магией соответствующей школы ( от артефактов и пр. ).

3. Учитывается навык "Волшебство".

4. Для ПвЕ учитывается увеличение силы заклинаний урона: +2% за уровень героя.

5. Учитывается влияние магических медалей из достижений героя.

6. Учитывается возможная Специализация героя.

7. Учитывается модификатор снижения урона магией соответствующей школы по цели ( заклинания "Защита от магии ...", свойства юнитов и артефактов ).

8. Учитывается свойство "Уклонение от магического урона" у цели (вероятностное снижение урона).

Вычисление физического урона.

1. Определяется базовый урон D_BAS как случайное значение из диапазона от <количество юнитов в стеке * минимальный урон> до <количество юнитов в стеке * максимальный урон>.

2. Определяется модификатор урона MD_BAS, учитывающий разницу между атакой нападающего и защитой цели. На этом этапе применяются все модификаторы атаки (атака в окружении и пр.) и защиты (снижение защиты цели при атаке Бегемотов, свойство Ётунов и комплекта Титана, состояние обороны и пр.).

  • Если атака больше защиты, то урон увеличивается на 5% за каждую единицу разности, но не более, чем на 400%.
  • Если атака меньше защиты, то урон снижается на 2.5% за каждую единицу разности, но не более, чем до 60%.

3. Определяется модификатор M_OFF вторичных навыков у героя, владеющего атакующим отрядом, повышающих урон. Для контактной атаки это - "Нападение", для стрелковой - "Стрельба". Степень увеличение зависит от уровня владения навыком:

M_OFF = D_BAS * PCT / 100. 4. Определяется модификатор M_DEF снижения урона, зависящий от навыка "Доспехи" у героя, владеющего защищающимся отрядом. Степень снижения зависит от уровня владения навыком:

M_DEF = PCT / 100.

5. Учитывается модификатор сработавшего навыка "Удача" M_LUCK.

  • В случае выпадения положительной удачи M_LUCK = 1.5
  • Для отрицательной удачи M_LUCK = 0.75
  • При отсутствии Удачи M_LUCK = 1.0

6. Определяется промежуточный базовый урон

D = ( D_BAS + MD_BAS + M_OFF ) * M_LUCK * ( 1.0 - M_DEF )

7. Учитываются сумма модификаторов, увеличивающих урон (контактный или стрелковый) атакующего отряда (заклинания, свойства артефактов и юнитов)

D = D + D * I_DMG / 100.

8. Учитываются сумма модификаторов, снижающих получаемый урон (контактный или стрелковый) защищающимся отрядом (заклинания, свойства артефактов и юнитов)

D = D - D * R_DMG / 100.

9. Учитывается пенальти за стрельбу на дальнюю дистанцию ( 0.5 ) и сумма модификаторов, увеличивающие урон. Например, "Удар двойной силы" Рыцарей Сметри, "Атака в окружении" у Ётуновых Питомцев.

D = D * ( 1.0 - PENALTY ) * COEFF.

10. Учитывается влияние боевых медалей в достижениях героя, владеющего нападающим отрядом.

11. Учитываются свойство "Кавалерийский бонус" у нападающего (увеличение урона за каждую пройденную клетку).

12. Учитывается свойство "Глухая оборона" у защитника (снижение урона за каждую пройденную нападающим клетку). Например, от комплекта Ветерана.

13. Учитывается свойство "Уклонение от урона" у защитника (вероятностное снижение урона). Например, у Утонувших.

14. Результирующий урон не может быть меньше 1.

Вычисление "силы героя".

Сила героя.png

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

ПвЕ Сила героя.png


"Сила героя" в ПвЕ битвах:
1. Определяется "Сила армии" героя как сумма общей харизмы всех отрядов в армии и общей харизмы всех призванных в бою юнитов.
2. Определяются "Параметры героя" как сумма всех параметров героя (*), умноженных на индивидуальные коэффициенты.
3. Определяются "Заклинания героя" как Объем маны.
4. Определяется "Коэффициент влияния героя" = ( 1 + 0.012 * "Параметры героя" ) * ( 1 + 0.0019 * "Заклинания героя" ).
5. "ПвЕ сила героя" = "Коэффициент влияния героя" * "Сила армии".

"Сила героя" в ПвП битвах:
1. Определяется "Воинский потенциал" героя как сумма общей харизмы всех отрядов в армии и общей харизмы всех призванных в бою юнитов, умноженной на 0.2.
2. Определяется "Магический потенциал" героя, как сумма очков интеллекта всех заклинаний в книге героя в бою.
3. Определяется "Модификатор воинского потенциала" как сумма всех воинских параметров героя (*), умноженных на индивидуальные коэффициенты.
4. Определяется "Модификатор магического потенциала" как сумма всех магических параметров героя (*), умноженных на индивидуальные коэффициенты.
5. "ПвП сила героя" = 0.01 * "Воинский потенциал" * "Модификатор воинского потенциала" + 2.5 * "Магический потенциал" * "Модификатор магического потенциала".

  • Учитываемые параметры и их коэффициенты.

Воинские параметры:
атака ( 1 )
защита ( 1 )
скорость юнитов ( 15 )
здоровье юнитов ( 3 )
удача ( 5 )
мораль ( 5 )
сопротивление магии ( 0.5 )
расстояние стрельбы ( 2.0 )
снижение физического урона ( 1.0 )
увеличение физического урона ( 2.0 )
снижение магического урона ( 0.5 )

Магические параметры:
сила магии ( 1 )
мана ( 0.1 )
увеличение магического урона ( 0.25 )

Вычисление размера динамической армии противника для героя.

1.Определяется базовый коэффициент разброса CBase, как случайное число между 2.3 и 2.7.

2.Вычисляется базовая харизма будущей динамической армии CPBase = CP / CBase, где CP - общая харизма героя.

3. Вычисляется базовый случайный коэффициент CRandom, зависящий от уровня героя и лежащий в пределах от 1.5 до 2.0.

4. Определяется коэффициент CRace, зависящий от типа герои и равный сейчас 0.9-1.0.

5. Вычисляется коэффициент влияния параметров героя CParams (алгоритм приведен в Вычислении силы героя, "Параметры героя"). CParams не может быть выше 2.0.

6. Вычисляется коэффициент влияния заклинаний героя CSpells = 1.0 + 0.0038 * SUMSpells, где SUMSpells - сумма произведений количества набранных заклинаний на их стоимость в очках интеллекта. CSpells не может быть выше 2.0.

7. Вычисляется коэффициент влияния истории битв героя с юнитам того типа, из которых будет состоять динамическая армия CKills = 1.0 + 0.00002 * EXP / 1000, где EXP - общий опыт, ранее полученный героем за убийство юнитов указанных типов. CKills не может быть выше 2.0.

8. Вычисляется результирующий коэффициент CTotal = CRandom * CRace * CParams * CSpells * CKills * CAIHero, где CAIHero равен 1.0 для армии без ИИ героя, и зависит от уровня героя в противном случае: от 1.5 для 1-7 уровней, до 0.15 для 20+ уровней. CTotal не может быть выше 5.0 для охоты на Арене и 7.0 для боёв на карте.

9. Вычисляется суммарная харизма будущей динамической армии CPTotal = CPBase * Difficult * CTotal, где Difficult - уровень сложности, заданный в параметрах (юнитов, объектов на карте, события и т.п.).

10. Полученная суммарная харизма равномерно делится на все стеки будущей динамической армии в зависимости от их персональной харизмы. Округление всегда вверх.