Combat Rules/ru

From Dragon Age Toolset Wiki
Jump to: navigation, search
Система боя
Начало / Русская DA Builder Wiki / Поделиться ВКонтакте
Скрипты
все статьи категории
описание функций

Страница в процессе доработки

На этой странице описаны техническая составляющая и логика ведения боя в игровых скриптах. В основном она касается боя с использованием исключительно оружия. О заклинаниях и способностях читайте Abilities.

Примечание: Термин 'свойства', используемый на этой страницы относиться к свойствам существ здесь -> Creature Properties.

Детальное описание

Бой в игре Dragon age: Начало обрабатывается в основном скриптами. Движок имеет малое понятие об основных показателях, вляющих на бой, таких как 'Сила' 'Модификатор урона' или 'Пробиваемость доспеха'.

Последствия удара

Последствия удара определены в функции Combat_GetAttackResult в библиотеке скриптов combat_h.nss, которые срабатывают, когда скрипт creature_core.nss обрабатывает такое событие как удар. Функция возвращает одну или несколько COMBAT_RESULT_* константных переменных и сообщает игровому движку, какую анимацию нужно проиграть.


В целом, боевая система Dragon age является 'тяжело ударной' так как доспех цели никак не влияет на шанс попадания.

Упрощенный скрипт для обработки последствий удара виглядит так:

if Target Is Placeable Object
  return COMBAT_RESULT_HIT
 
if Target Displacement/Dodge < RandomF(100.0)
  return COMBAT_RESULT_MISS  
 
if Attacker Is Using BASE_ITEM_TYPE_STAFF
  return COMBAT_RESULT_HIT
 
bHit = RandomF(100.0) < AttackRating - DefenseRating
bCrit = CheckCricital()
bBackstab = CheckBackstab()
 
if bHit
  if  HasEffect(attacker, EFFECT_TYPE_MISDIRECTION_HEX)
    if bCrit 
      return COMBAT_RESULT_HIT
    else
      return COMBAT_RESULT_MISS
 
  if bBackstab
    return COMBAT_RESULT_BACKSTAB
  else
    if bCrit
      return COMBAT_RESULT_CRITICAL_HIT
    else
      return  COMBAT_RESULT_HIT
 
else
  return COMBAT_RESULT_MISS

Мощность удара

Мощность удара включает в себя:

  • Базовый наносимый урон (54.0f)
  • + Flanking Bonus (позиция атакующего относительно цели, умения жертвы, например, укрытие щитом. Здесь бонус получают разбойники).
  • + Штрафы, основанные на расстоянии к цели (для дальнего боя)
  • + Значение наносимого нападающим урона(вместе со всеми бафами и тому подобным)
  • + Любые предметы(руны), которые являются частью оружия и влияют на нанесение урона
  • + Любые внешние бонусы или штрафы, которые попадают в функцию (из скриптов умений, например)
  • + Уровень сложности игры

Уровень защиты

Уровень защиты включает в себя:

  • Значение защиты обороняющегося (и уклонения, если речь идет о защите от оружия дальнего боя). Включает в себя бонусы от предметов, эффектов и различные магические бонусы.
  • Уровень сложности игры

Бонусы от атак с фланга

  • Значение бонуса атак с фланга содержится во float-переменной и влияет на мощность атаки и шанс нанесения критического урона.
  • Бонус зависит от того, насколько близко атакующий находится к наиболее выгодному для атаки положению(за спиной цели).
  • Различные способности боя со щитом уменьшают вероятность атакующего получить бонус от атаки с фланга.
  • Чем дальше атакующий от позиции "со спины", тем меньше бонус.
  • Бонус колеблеться от +0 до +15 (+20 с "Движением в бою") и влияет на мощность атаки и частично на (1+(Бонус атаки со фланга/5)) на шанс нанесения критического урона.
  • Большинство персонажей могут подойти к врагу максимум на 60 градусов относительно спины, "Движение с бою" позволяет подойти на 90 градусов (положение "со спины"=180 градусам).
  • Максимальный бонус от атаки с фланга получают только разбойники, все остальные получают половину.
  • Понять логику лучше вы сможете, изучив скрипт Combat_GetFlankingBonus и combat_h.nss.

Удар в спину

  • Удар в спину может быть нанесен только в ближнем бою.
  • Для выполнения удара в спину нужно, чтобы бонус атаки с фланга был больше 0(некоторые таланты обходят это ограничение).
  • Наносить удар в спину могут только создания класса Разбойник Character Class. Это классовая привилегия.
  • Наносить удар в спину могут только человекоподобные существа (это касается и порождений тьмы).
  • Общую логику вы сможете понять изучив функции Combat_CheckBackstab и combat_h.nss.
  • Логику нанесения урона вы сможете понять, изучив Combat_Damage_GetBackstabDamage.

Нанесение критического урона

  • Нанести критический урон могут только бойцы дальнего и ближнего боя(не маги). Значение критического урона зависит от типа атаки.
  • + бонус к критическому урону от используемого оружия.
  • + 1.20x (1.1x для неразбойников) the attacker's Flanking Bonus in the current situation.
  • + 3.5 если атакующий сражается с двумя соратниками против одного и того же воина и использует талант "Храбрость".
  • Критический урон наносится, когда шанс нанесения меньшый чем РандомнаяПеременая()*100.0f.
  • Некоторые эффекты и заклинания (например Death Hex) делают каждый нанесенный удар критическим.
  • Логику вы сможете понять, изучив функции Combat_GetAttackResult в скриптовой библиотеке combat_h.nss

Урон

Значение урона рассчитывается в скрипте combat_damage_h.nss.

Бонус к шансу нанесения критического урона

  • Критические удары увеличивают урон от обычного удара, добавляя к нему определенное фиксированное значение.
  • Величина добавляемого значение регулируется предметами и эффектами. Аттрибуты персонажа на нее не влияют.
  • Историческое примечание: раньше критический урон мог принимать значения 'вплоть до...', но позже стали использовать константую переменную, что позволяло предвидеть значение наносимого урона.
  • Логику рассчета критического урона вы сможете понять, изучив combat_damage_h.nss#GetCriticalDamageModifier.

Бонус к удару в спину

  • Урон от удара в спине часто равен критическому урону, но на него также влияют некоторые таланты разбойника.
  • Логику вы сможете понять, изучив Combat_Damage_GetBackstabDamage и combat_damage_h.nss.


Язык: English  • русский