Zur13
Posts: 223
|
Z Battle Order BETA VERSION
Показывает следующий стек который будет ходить в битве. Пока рассчитывает только по правилам СоД, в основном они совпадают с ЭРА за исключением тех случаев когда моды или другие скрипты влияют на порядок ходов.
Shows the next stack which will act in the battle.
Для желающих сделать круто как Героях 5+:
Мод на самом деле рассчитывает не только следующий стек, а сразу 8-10 следующих стеков, т.е. можно сделать мод который будет брать информацию из этого мода и показывать в удобном виде. Я не могу заняться полноценным всплывающим окном для отображения списка стеков, потому добровольцы приветствуются. Подробнее внутри мода есть файл forFellowModdersRU.txt Если нужно рассчитать больше стеков вперед или что-то добавить пишите сюда или в личку.
Ссылки для скачивания
[Interface] Z Battle Order (обновление №3 за 01.04.2020)
(This post was last modified: 01.04.2020 19:46 by Zur13.)
|
|
01.04.2020 14:27 |
|
XEPOMAHT
Posts: 2362
|
Твой код отчего-то совсем не учитывает различные состояния монстров в бою (например, нужно учитывать наложенные корни, ускорение, ослепление, паралич, состояние ожидания, отрицательную мораль, страх и ещё кучу каких-то данных из таблицы ботлменеджера в соответствующей содовской таблицы данных).
Поэтому такие вещи лучше делать в виде плагина, код получения последовательности хода можно было бы скопировать с содовского образца из IDA-базы, а не придумать всё самому.
Задача не простая, но выполнимая (например, в HD-моде это было сделано только недавно):
(This post was last modified: 01.04.2020 15:45 by XEPOMAHT.)
|
|
01.04.2020 15:34 |
|
igrik
Posts: 2819
|
В связи с выходом данного функционала в HD и поэтому потери актуальности в SoD_SP, нужно попросить RoseKavalier сделать плагин для ERA.
Вот так ранее было им сделано в SoD_SP, и в настоящее время я не вижу причин не открыть данную часть плагина для ERA
game bug fixes extended.dll || My Plugins || My GitHub
|
|
01.04.2020 15:50 |
|
Zur13
Posts: 223
|
(01.04.2020 15:34)XEPOMAHT Wrote: Твой код отчего-то совсем не учитывает различные состояния монстров в бою (например, нужно учитывать наложенные корни, ускорение, ослепление, паралич, состояние ожидания, отрицательную мораль, страх и ещё кучу каких-то данных из таблицы ботлменеджера в соответствующей содовской таблицы данных).
Поэтому такие вещи лучше делать в виде плагина, код получения последовательности хода можно было бы скопировать с содовского образца из IDA-базы, а не придумать всё самому.
Задача не простая, но выполнимая (например, в HD-моде это было сделано только недавно):
Состояние ожидания учитывает.
Ослепление учитывать должно, хотя не проверял прицельно.
Да паралич нужно добавить. Корни нужно посмотреть как меняется порядок ходов.
Отрицательная мораль это не СоД, если я правильно понимаю то это рандомные эффекты и показывать их заранее неправильно. Цель этого мода сделать за игрока тот расчет который он обычно делает сам прикидывая скорости существ, случайные эффекты игрок не рассчитывает.
А страх и ускорение как влияют?
Была мысль добавить АПИ для других модов чтобы они могли подсказывать как изменяют порядок ходов.
(This post was last modified: 01.04.2020 15:57 by Zur13.)
|
|
01.04.2020 15:55 |
|
Zur13
Posts: 223
|
Версия 0.2
- Исправлено вычисление очередности ходов для стеков с одинаковой скоростью
- Исправлено вычисление очередности для Окаменевших стеков и стеков под действием Паралича.
|
|
01.04.2020 16:48 |
|
Berserker
Posts: 16668
|
|
01.04.2020 17:39 |
|
XEPOMAHT
Posts: 2362
|
(01.04.2020 17:39)Berserker Wrote: мораль не должна отображаться на шкале инициативы и не отображается в более поздних играх.
А кто сказал что она должна быть на шкале (которой и так на ERA нет)? Чуть выше просто представил неполный список того, что учитывает содовский код при передаче хода. Вообще, в любой момент битвы можно поставить перехват и передавать ход как душе угодно (поэтому на ERA учесть абсолютно всё просто нереально), вплоть до добавления механизма инициативы из Пятых Героев (особо ничего сложного там нет, простая замена скорости на инициативу в соответствующих функциях, включая ИИ), поэтому то, что не шибко сложно реализовать на закрытых SoD/HoA, оборачивается головной болью на открытой для всех желающих ERA.
(01.04.2020 17:44)Zur13 Wrote: BM:S выдает скорость со всеми бонусами и дебафами, включая изменения сделанные модами через BM:S насколько я знаю. Но я чуть позже перепроверю на всякий случай
BM:S (по крайней мере так было в WoG 3.58) просто отдаёт значение структура_стека.скорость. К примеру, для истинной скорости отряда нужно ещё посчитать процентовку, получаемую от замедления. Поэтому, игра ВСЕГДА (или почти всегда) использует функцию, рассчитывающую реальную скорость из номинальной с учётом эффектов заклинаний.
(This post was last modified: 01.04.2020 18:03 by XEPOMAHT.)
|
|
01.04.2020 17:57 |
|
Zur13
Posts: 223
|
(01.04.2020 17:57)XEPOMAHT Wrote: (01.04.2020 17:39)Berserker Wrote: мораль не должна отображаться на шкале инициативы и не отображается в более поздних играх.
А кто сказал что она должна быть на шкале (которой и так на ERA нет)? Чуть выше просто представил неполный список того, что учитывает содовский код при передаче хода. Вообще, в любой момент битвы можно поставить перехват и передавать ход как душе угодно (поэтому на ERA учесть абсолютно всё просто нереально), вплоть до добавления механизма инициативы из Пятых Героев (особо ничего сложного там нет, простая замена скорости на инициативу в соответствующих функциях, включая ИИ), поэтому то, что не шибко сложно реализовать на закрытых SoD/HoA, оборачивается головной болью на открытой для всех желающих ERA.
Имеется ввиду что мы не предсказываем случайно выпадающие эффекты такие как повторный ход от высокой морали или пропуск хода из-за низкой морали. По поводу изменения порядка ходов из-за других модов, я чуть выше упоминал это должно быть реализовано на уровне АПИ, если этот мод будет принят, я просто добавлю в этот мод АПИ чтобы другие разработчики модов могли указывать особый порядок рассчета ходов. Это всё решаемые проблемы.
(01.04.2020 17:57)XEPOMAHT Wrote: BM:S (по крайней мере так было в WoG 3.58) просто отдаёт значение структура_стека.скорость. К примеру, для истинной скорости отряда нужно ещё посчитать процентовку, получаемую от замедления. Поэтому, игра ВСЕГДА (или почти всегда) использует функцию, рассчитывающую реальную скорость из номинальной с учётом эффектов заклинаний.
Только что проверил BM:S выдает скорость отряда с учетом бонуса от заклинания ускорения, но без учета дебафа от заклинания замедления. Буду благодарен за подсказку как вызвать упомянутую функцию рассчета истинной скорости стека из ЕРМ кода для заданного стека.
|
|
01.04.2020 18:16 |
|
XEPOMAHT
Posts: 2362
|
(01.04.2020 18:16)Zur13 Wrote: Буду благодарен за подсказку как вызвать упомянутую функцию рассчета истинной скорости стека из ЕРМ кода для заданного стека.
В ECX записываешь адрес структуры стека, от которого нужна скорость (саму структуру можно получить с помощью BM:Z) и вызываешь функцию по адресу 4489F0h. Скорость стека запишется в EAX, при неудаче (если что-то не так) там будет минус единица.
Если нужна проверка на обездвиженность, то необходимо проверять значения структура_стека+F4h и структура_стека+F8h.
НО! для получения приоритета хода лучше всего вызывать функцию по адресу 464B30h, тогда проверять на скорости уже не надо - игра это сама сделает за тебя.
(This post was last modified: 01.04.2020 18:37 by XEPOMAHT.)
|
|
01.04.2020 18:28 |
|
Berserker
Posts: 16668
|
|
01.04.2020 18:47 |
|
V_Maiko
Posts: 610
|
The truth I would like it to be more faithful to the VCMI version, I don't like that it is positioned anywhere else, only as the VCMI version, not like the previous images that showed...
|
|
01.04.2020 19:05 |
|
Zur13
Posts: 223
|
(01.04.2020 18:47)Berserker Wrote: Version 2.9.6
------------------------
[+] Added new ERM command BM:U6/?$, returning stack actual speed, including slow spell effect. Note, BM:S always returns speed without slow spell effect.
Спасибо, пропустил этот момент!
Версия 0.3
- Исправлено вычисление очередности ходов для замедленных стеков
moderator Wrote:На данный момент уже реализован мод очерёдности хода в битве, как это сделано в HD-моде.
Называется BattleQueue »
Тема закрыта
|
|
01.04.2020 19:14 |
|