[Руководство] «ATB-шкала» - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Руководства (Manuals) для Heroes 5 В этом разделе можно найти много справочной и полезной информации по Героям Меча и Магии 5.

Закрытая тема
 
Опции темы
#1
Старый 17.10.2006, 15:59
  #1
^
СКИФ
 
Аватар для СКИФ
📖
Регистрация: 23.06.2006
Адрес: Долгопрудный
Сообщения: 118
Отправить сообщение для  СКИФ с помощью ICQ
Регистрация: 23.06.2006
Адрес: Долгопрудный
Сообщения: 118
Отправить сообщение для  СКИФ с помощью ICQ
По умолчанию
[Руководство] «ATB-шкала»

Heroes of Might and Magic V (версия 1.3)
Руководство «ATB-шкала»(редакция 1.3)
Введение

Для начала рекомендуется ознакомиться с разделом "Сражения".

«Геометрия» ATB-шкалы
ATB-шкала имеет диапазон [0; 1] ATB.
Точка 0 ATB соответствует концу шкалы, точка 1 ATB – началу (не слишком удобно, но таким образом шкала отображалась на экране в бета-версиях).
Стек начинает свой раунд с позиции 0 ATB и двигается к 1 ATB.
Когда стек достигает точки 1 ATB – он получает ход.

Игра использует эту именно такую систему координат (видно из отладочных логов консоли).

Введу условные обозначения:
curATB – текущее положение стека на шкале (от 0 до 1).
startATB – начальное положение стека на шкале (от 0 до 1).

Начальное положение на шкале

Начальное расположение стеков на ATB-шкале
Все стеки (и герои) располагаются в диапазоне [0; 0,25] ATB.
Расположение случайно и не зависит от инициативы.
startATB = [0; 0,25]

Специализация Swift Striker/Стремительный боец.
Вингаэль - герой со специализацией «Стремительный боец» - имеет бонус к начальному расположению на шкале = +0,005*level.
Т.е. для Вингаэля:
startATB = [0,005*level; 0,25+0,005*level].
История версий:
В 1.0-1.2: бонус к начальному положению на шкале был = 0,02.


Начальное расположение на ATB-шкале вызываемых существ
Summon Elementals и Summon Phoenix
При вызове стеки помещаются в диапазон [0; 0,25] с дискретностью 0,05 (т.е. 0 / 0,05 / 0,10 и т.д.).

Gating
Для вызываемого стека startABT=0. Т.е. он помещается в самый конец шкалы.
Если у героя есть абилка Urgash's Call, то startATB=1.

Phantom Forces
Стартовая позиция «клона» на шкале зависит от уровня героя (и только от него):
startATB=0,4+0,02*level.
Например, на 20м уровне героя «клоны» будут вызываться в позицию шкалы = 0,4+0,02*20 = 0,8.


Сдвиги по шкале

Основные игровые механики, влияющие на сдвиги стеков по ATB-шкале
После завершения своего хода, стек смещается в позицию curATB = 0.
Если сработала «высокая мораль», то стек смещается в curATB = 0,5 после хода.
Если сработала «низкая мораль», то стек принудительно смещается в curATB = 0,5 вместо того, чтобы получить ход.

Если стек делает Defend, то он смещается в самый конец шкалы – curATB = 0.
Если стек делает Wait, то он смещается в середину шкалы – curATB = 0,5.

Сдвиги героя по шкале
Если герой делает свой ход, то он смещается в curATB=0.
Если герой делает Wait, то смещается в curATB=0,5.

Skill Sorcery
После каста заклинания герой смещается в curATB = X, где X =0,1/0,2/0,3 для уровней скилла Basic/Advanced/Expert.
Если герой с Sorcery НЕ кастует заклинание, а делает любое другое действие (прямая атака, применение активной абилки и т.д.), то он смещается в curATB =0.

Ability Dark Renewal (skill Dark Magic).
В случае, если ударное/накладываемое заклинание героя не сработало ни на одну цель (у цели/целей сработал Magic Resistance или герой «не попал» по цели площадным заклинанием), то герой смещается в curATB=0,2+X. Если заклинание сработало хотя бы на одну цель, то герой смещается в curATB=X.

X = 0,0/0,1/0,2/0,3 в зависимости от уровня скилла Sorcery у героя – none/Basic/Advanced/Expert.

Абилка не работает при касте героем массовых заклинаний (Armageddon, Mass Slow и т.д), но работает при касте площадных заклинаний (Meteor Shower, Mass Decay и т.д.).

Ability-«метки»: Mark of the Wizard (skill Artificer), Spirit Link (skill Dark Magic), Retaliation Strike (skill Counterstrike), Mark of the Damned (skill Gating).
Герой после наложения «метки» на цель смещается в curATB=0,5.
История версий:
В 1.0-1.2: герой при наложении метки откидывался в curATB=0.

Ability Imbue arrow.
Герой после «зачарования стрелы» смещается в curATB=0,5.
При последующих атаках «зачарованной стрелой» (абилками Deadeye Shot и Rain of Arrows) герой будет смещаться в curATB=0 вне зависимости от наличия у него скилла Sorcery.

Ability Imbue Ballista.
«Зачарованная» баллиста в случае, если при её стрельбе кастуется заклинание, смещает героя в curATB=X.
X = 0,0/0,1/0,2/0,3 в зависимости от уровня скилла Sorcery у героя – none/Basic/Advanced/Expert.

Сдвиги стеков по шкале от заклинаний и абилок героя
Тут тонкость – заклинание/абилка не может сместить стек на curATB<0 и curATB>1.
Если стек был бы смещен в позицию curATB <0, то он смещается в curATB = 0 и становится последним на ATB-шкале.
Если стек был бы смещен в позицию curATB>1, то он смещается в curATB = 1 и сразу же получает ход.

Заклинание Wasp Swarm.
Отбрасывает стек в сторону конца шкалы на определенный процент от шкалы:
curATB = curATB – X ,
где X = 0,2; 0,4; 0,6 на Basic/Advanced/Expert Summoning Magic.

Если на цель наложена Mark of the Wizard, то идет двойной отброс: curATB = curATB – 2*X.

Специализация Swarm Queen Дираэли дает бонус к X:
X = X* (1+0,01*level/3). (т.е. базовый «отброс» увеличивается на 1% за 3 уровня).
Например, на 20-м уровне героя при Expert Summoning Magic «отброс» будет = 0,6*(1+0,01*20/3) = 0,64.

Абилка Divine Guidance.
Смещает стек на треть шкалы в сторону начала шкалы.
curATB = curATB + 0,33.

Абилка Teleport Assault.
Смещает стек на полшкалы в сторону начала шкалы:
curATB = curATB + 0,5

Абилка Master of Storms и заклинания Lightning и Chain Lightning
Заклинания отбрасывают стек (Chain Lightning – только первую цель) по шкале на ATB-расстояние, зависящее от текущего положения стека на шкале (т.е. от curATB).
cirATB = curATB*0,7.
Например, если стек уже почти получил ход, т.е. его curATB = 1 (точнее, 0,(9)), то он отбросится в curATB = 0,7 (точнее, в 0,6(9) ) – на 0,3 ATB.
Если стек только походил, т.е. его curATB = 0, то он ни насколько не отбросится.

История версий:
В 1.0-1.1: Отброс по шкале был больше - curATB = curATB*0,3.

Абилка Master of Ice и заклинания Ice Bolt и Circle of Winter
Заклинания останавливают движение стека по шкале на 0,3 хода (инициатива эффекта = 10). Дополнительно стек отбрасывается по шкале на случайное значение в диапазоне [0; 0,3] - curATB = curATB – random(0; 0,3).

Эффект «заморозки» на 0,3 хода по шкале можно представить в виде отброса на ATB-расстояние. Формула такова:
«Отброс от заморозки» = 0.3* Initiaive/10.
, где Initiative – инициатива стека.
Например, для стека с инициативой = 20 эффект от заморозки будет равносилен отбрасыванию по шкале на 0,6 ATB; стеку с инициативой = 5 – отбросу 0,15 ATB.

Итого, общая формула для Master of Ice:
curATB = curATB – 0,3*Initiative/10 – random (0; 0,3).

Для Circle of Winter оба эффекта - и заморозка, и отброс - делятся поровну на все стеки, по которым ударило заклинание. Например, если заклинание задело 2 стека, то каждый будет заморожен на 0,15 хода и будет отброшен по шкале на random (0; 0,15).

Абилка Tremors и заклинание Earthquake .
Заклинание отбрасывает все стеки, находящиеся «внутри» города на 1/10 от шкалы в сторону конца шкалы.
curATB = curATB – 0,1.

Отброс стеков по шкале от абилок существ.
Warding arrows (Master Hunter).
Отбрасывает стек по шкале на 1/5 от шкалы:
curATB = curATB – 0,2.
Вероятность отбрасывания зависит только от соотношения суммарного здоровья атакующего и защищающегося отрядов. Точна формула приведена в конце подраздела Спецспособности существ.

Fear Attack (Nightmares)
Отбрасывает стек в самый конец шкалы:
curATB = 0
Вероятность отбрасывания зависит только от соотношения суммарного здоровья атакующего и защищающегося отрядов. Точна формула приведена в конце подраздела Спецспособности существ.

Shield Bash (Conscript, Footman, Squire)
Отбрасывает стек в самый конец шкалы:
curATB = 0
Вероятность отбрасывания зависит только от соотношения суммарного здоровья атакующего и защищающегося отрядов. Точна формула приведена в конце подраздела Спецспособности существ.

«Физика» ATB-шкалы

Раздел пока полностью не доделан и не продуман до конца. Может содержать ошибки. Но, всё-таки, выложу черновой вариант.

Для облегчения вычислений необходимо ввести понятия «скорости», «расстояния» и «времени». При наличии «физики» все вычисления будут сводиться к простым «физическим задачкам» («Стек выехал из точки A в точку B…» и т.д.).

«ATB-Расстояние» .
Измеряется в ATB-шкалах.
Единица изменения – «ATB».
Полный размер шкалы = 1 ATB, половина шкалы = 0,5 ATB и т.д.

«ATB-Время».
Изменяется в ATBсек.
Для удобства нужно ввести «составную» единицу – «нормальный тур» (далее - просто «тур»). 1 тур = 10 ATBсек. Или 1 ATBсек = 0,1 тура.
Единица измерения – «ATBсек» и «туры».
1 тур – это время, за которое стек со скоростью (она же - «инициатива») = 10, проходит 1 ATB. (Это и является причиной для ввода термина «тур».)

Чтобы не было путаницы с термином «тур» в руководстве будет соблюдаться следующая терминология.
«Тур» (например, «1 тур», «0,2 тура») или «нормальный тур» - единица «времени ATB».
«Тур существа/стека» или «раунд существа/стека» - ATB-время, которое занимает у существа/стека прохождение полной ATB шкалы (1 ATB) с его значением инициативы.
«Ход стека» или «стек получает ход» - момент, когда стек дошел до начала ATB шкалы и получает возможность выполнить какое-либо действие.

«ATB-Скорость» .
Она же характеристика стеков «Инициатива».
Измеряется в ATB/ATBсек (т.е. сколько ATB шкал будет пройдено на 1 ATBсек) или ATB/тур (т.е. сколько ATB шкал будет пройдено за тур).
Далее скорость будет называться «инициативой».
«Среднее» значение инициативы стека = 10 – в этом случае будет пройдена полная ATB шкала на 1 тур.

Небольшой пример использования терминологии: «Стек, с инициативой = 10 пройдет расстояние 1 ATB, за то же самое ATB-время, за которое стек с инициативой = 15 пройдет 1,5 ATB.»

Еще: «Абилка Teleport Assault смещает стек на 0,5 ATB в сторону начала шкалы».

И еще: «Если у героя есть скилл Sorcery, то после применения заклинания от смещается в точку ATB-шкалы = 0,1/0,2/0,3 ATB, и следующий его ход наступит через время = ATB-расстояние/инициатива = 0,7/10 = 0,07 ATBсек = 0,7 тура».

Типовые задачи
Практические задачи могут решаться, беря за основу «оставшееся время эффекта заклинания» (информация в окошке «активных эффектов» на стеке).
Продолжительность эффекта отображается с точностью до сотых долей. Инициатива эффекта = 10. Этой информации достаточно, чтобы вычислить прошедшее стеком ATB-расстояние, основываясь на разнице продолжительностей эффектов:
ATB-время = разница_продолжительностей*инициатива /10. Измеряется в ATB-шкалах.

Остальные типовые задачи:

- За какое ATB-время стек пройдет часть шкалы.
=10*ATBdistance/Initiative туров.

- Текущее положение стека на шкале (curATB).
= (cur_duration - last_duration)* Initiative /10.

- Инициатива стека за последний ход.
= 10* (1/(cur_duration - last_duration))

- На сколько сместился стек по шкале за последний ход:
=1-Initiative/(10/(cur_duration - last_duration))

Где: cur_duration – значение оставшегося времени эффекта заклинания в текущий момент времени;
last_duration - значение оставшегося времени эффекта заклинания во время последнего тура стека.
__________________
Пуля производит удивительные изменения в голове, даже если она попадает в за***цу.
Пуля производит удивительные изменения в голове, даже если она попадает в за***цу.
СКИФ вне форума
Закрытая тема


Опции темы



Часовой пояс GMT +4, время: 16:23.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru