Перейти к содержанию

Сообщения от Программа по определению удачи/морали в героях 3!

Аватар пользователя
#572
2Dirty Player: Чтобы построить дерево развития, выбери глубину в меню "Настройки" (20 лучше не выбирать - долго ждать), сделай двойной клик на НОМЕРЕ Героя в списке, подожди немного. Дерево появится в другом окне.

А Светофор пока и не должен. Скан убрал. Хотя попробуй потестить: при некоторых запусках Героев (когда R в первом потоке) будет работать. Сегодня diamond c wasm.ru помог решить проблему. Завтра-послезавтра будет всё работать гарантированно, а не время от времени :)
Аватар пользователя
#574
2VDV_forever: Светофор для HoMM I 1.1 будет готов, скорее всего, к концу недели.

Пока немного интересной инфы:
Вероятность выпадения удачи (как положительной, так и отрицательной) равна 1/12 (+1/-1), 2/12 (+2/-2), 3/12 (+3/-3), т.е. в два раза выше, чем морали!

Вероятность выпадения отрицательной морали -n/12 (n=-1, -2, -3), но всё-таки, в отдельных случаях, есть 25% шанс, что удастся избежать отрицательной морали, даже если она должна была выпасть.

R не меняется при пропуске хода, касте, при ходе вражеских отрядов, если они не атакуют.

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

Бой повторить по описанию невозможно (проверял бои без Героя у врага).
Аватар пользователя
#575
R не меняется при пропуске хода, касте, при ходе вражеских отрядов, если они не атакуют.
Видимо , это не вся инфа ? Потому что на практике УДАЕТСЯ добится выпадения морали , например стрелкам протв нейтралов , в первом раунде при одинаковых остальных действиях .
Бой повторить по описанию невозможно (проверял бои без Героя у врага).
Если без вражеского героя , то согласен . А вот при его наличии - куда интереснее , т.к. встречались случаи почти 100 воспроизводимости сложных боев , хотя и там возможно были различия после нескольких раундов .
В ответ пользователю Fireball
Аватар пользователя
#576
Fireball;199544
Если без вражеского героя , то согласен . А вот при его наличии - куда интереснее , т.к. встречались случаи почти 100 воспроизводимости сложных боев , хотя и там возможно были различия после нескольких раундов .

И действительно очень интересно они проходят...повторяемость практически полная, но вот наносимый урон не постоянен :smile32:

Индивидуальный и клановый рейтинги Heroes World
Handmade
Аватар пользователя
#577
И действительно очень интересно они проходят...повторяемость практически полная, но вот наносимый урон не постоянен
Бывает что и урон повторяется . В памятной битве против варлока после ответки драконов выживыло ВСЕГДА одно и то же число пизантов . Да и следующие 2 раунда я особых отличий не заметил , по крайней мере отличия в числе убитых юнитов не было . Реальные вариации наболюдались первыми на пробивании стен , а уж потом разброд и шатание .
Аватар пользователя
#578
2Fireball: В начале боя генерируется псевдослучайное R, которое оказывается разным для одного и того же боя даже на одном и том же сейве. Вообще ситуация очень интересная: имея, например, фей против гномов, можно добиться того, чтобы феи ловили удачу и моралились. Т. е. летаем, ждём сигнала светофора на удачу и мораль. Бьём гномов (двойной урон), мораль - отлетаем. Ну и подобные вещи. Впрочем, во многих играх можно делать подобным образом, так что от этого никуда не денешься. В шахматах, например, есть правила трёх и пятидесяти ходов. Может ввести что-либо подобное для Героев?

Рождение Варвара. В Третьих, действительно, имеются случаи, когда отдельные Герои развиваются не так, как все остальные. Новая версия дерева будет учитывать этот факт. Также теперь программа будет всегда находить адреса.
Если без вражеского героя , то согласен . А вот при его наличии - куда интереснее , т.к. встречались случаи почти 100 воспроизводимости сложных боев , хотя и там возможно были различия после нескольких раундов .
Почти 100% - это значит, по большому счёту, полный рандом :) Сегодня проведу тесты боёв с Героями. Кстати, вы видели анимацию неудачи? ;)
Аватар пользователя
#579
posted by VDV_Forever
ошибаешся...

Сейчас сделал три попытки нападения варлоком на варвара, 17 горгуль атаковали гоблинов:
1 - 57
2 - 54
3 - 53
урона соответственно, так то!

Индивидуальный и клановый рейтинги Heroes World
Handmade
Аватар пользователя
#580
LMOracle 3.3

Поддерживаемые версии:
HoMM III 3.2 EN (heroes3.exe)
HoMM III 4.0 EN (heroes3.exe)
HoMM III 4.0 RU (heroes3.exe)
HoMM II 2.1 RU (hmm2pl.exe)
HoMM I 1.1 RU (heroes.exe)

Состав:
1) Светофор морали и удачи (HoMM III 3.2 EN, HoMM III 4.0 EN, HoMM III 4.0 RU, HoMM I 1.1 RU);
2) Монитор запаса хода (все поддерживаемые версии);
3) Планировщик развития (HoMM III 3.2 EN, HoMM III 4.0 EN, HoMM III 4.0 RU, HoMM II 2.1 RU).

Инструкция:
1) Запустите Вашу копию HoMM, поддерживаемую данной программой;
2) Запустите данную программу;
3) В меню "Settings/Version" выберите Вашу версию HoMM;
4) Нажмите "Start".

Светофор морали и удачи.
HoMM III 3.2 EN, HoMM III 4.0 EN, HoMM III 4.0 RU
1) Начните бой;
2) Выберите мораль и удачу текущего отряда в меню "Settings/Morale, Luck";
3) Выберите удачу атакуемого отряда противника в меню "Settings/Enemy's Luck";
4) Выберите дополнительные условия: "Without retaliation" (Без ответки), "With retaliation" (С ответкой), "Without attack" (Без атаки), "Will die" (Вражеский отряд погибнет в результате атаки), "Double attack" (Двойная атака);
5) Если Вы выбрали режим "Without retaliation" (Без ответки), задайте численность воинов в атакующем отряде (Attacker);
6) Если Ваш отряд и/или отряд противника наносит постоянный урон (чародеи, ангелы/архангелы, благословлённые или проклятые отряды и т.д.), то поставьте соответствующие флажки напротив "const";
7) Если Вы выбрали режим "With retaliation" (С ответкой), задайте также численность воинов во вражеском отряде после первой атаки Вашего отряда (Defender);

Светофор подсказывает, сигнализируя зелёным цветом, в какие моменты времени может выпасть мораль и/или удача.
Программа может выполнять автоматический клик по сигналу светофора.
Нажмите и удерживайте клавишу:
"1" - если Вы хотите поймать только мораль;
"2" - если Вы хотите поймать только удачу;
"3" - если Вы хотите поймать и мораль, и удачу.

Для режима "Double attack" (Двойная атака):
"4" - удача при второй атаке только, нет морали;
"5" - удача при при двух атаках, нет морали;
"6" - удача при второй атаке только и мораль;
"7" - удача при при двух атаках и мораль.

Учтите, что режим "Will die" + "Double attack" предполагает, что отряд умрёт после второй атаки. Программа некорректно предсказывает мораль, если в результате Вашей атаки погибает больше одного отряда противника (гидры, например).

HoMM I 1.1 RU
Программа предсказывает удачу во всех случаях, мораль рассчитывается для случая, если отряд не атакует.

Монитор запаса хода
Программа отображает текущий и максимальный запас хода одного или нескольких Героев в реальном времени.
Чтобы найти конкретного Героя используйте поиск по имени:
1) Введите имя Героя в окошко "Hero's Name";
2) Нажмите "Find".

Чтобы найти всех Героев или Героев, принадлежащих определённому классу, вызовите контекстное меню списка Героев (правый клик) и выберите "Find All" (Найти всех) или "Find" + "класс Героя".

Чтобы удалить из списка конкретного Героя, кликните на его записи и нажмите "Delete" (Удалить). По умолчанию из списка удаляется последний Герой.

Для того чтобы удалить из списка всех Героев, вызовите контекстное меню списка Героев (правый клик) и выберите пункт "Clear" (Очистить список).

Если по какой-то причине найден не тот Герой, которого Вы искали (например, Дракон (Fortress) и Дракон из кампании "Убийца драконов"), продолжите поиск, выполнив двойной клик на имени Героя в списке.

Планировщик развития
HoMM III 3.2 EN, HoMM III 4.0 EN, HoMM III 4.0 RU, HoMM II 2.1 RU
После того как Вы нашли нужного Героя, для него можно построить дерево развития.
Для этого выберите глубину расчёта в меню "Settings/Depth of calculation" (по умолчанию +5 уровней) и сделайте двойной клик на номере Героя в списке. Дерево развития появится в другом окне.
Замечание: не выбирайте глубину расчёта +20 уровней, если Вы не располагаете ~30 свободными минутами (HoMM III), ~10 свободными минутами (HoMM II) :) Построение дерева развития в других случаях занимает максимум одну минуту (+15 уровней).

Программа позволяет также искать нужный навык и показывает все возможные варианты его получения. По умолчанию стоит флажок "Min. Level-Ups", что позволяет находить все пути получения нужного навыка за минимальное количество левел-апов.

Cпасибо всем тем, кто способствовал развитию данного проекта!
Аватар пользователя
#581
Огромное спасибо!
А можно ли сделать не столь универсальную программу? Точнее говоря, насколько возможно создание программы ТОЛЬКО для вторых героев русских, которая включала бы в себя помимо планировщика ещё и адаптированную под Висту на широкоформатном экране героекопалку (этот пост - самый безграмотный среди всех, оставленных мною на форумах - извините плиз ...).

Орден Фениксахаризматический :) лидер
В ответ пользователю AlexSpl
Аватар пользователя
#582
AlexSpl;199770
LMOracle 3.3

Поддерживаемые версии:
HoMM I 1.1 RU (heroes.exe)

Состав:
1) Светофор морали и удачи (HoMM III 3.2 EN, HoMM III 4.0 EN, HoMM III 4.0 RU, HoMM I 1.1 RU);

HoMM I 1.1 RU
Программа предсказывает удачу во всех случаях, мораль рассчитывается для случая, если отряд не атакует.

Для героев 1 программа работает исправно, и верно предсказывет удачу и мораль.
А есть ли идея как реализовать предсказание морали (не отлов, а именно предсказание, как для удачи) после нанесения удара, или для героев 1 эта задача нереализуема?

С уважением, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
Аватар пользователя
#583
2Qwerty: Всё, что я могу сделать, - это поставить по умолчанию версию HoMM II 2.1 RU. А героекопалка - это программа совсем другого рода, и интеграция её в светофор нежелательна.

2VDV_forever: Реализовать-то можно, но придётся перед атакой дополнительно задавать ещё два параметра (уровни монстров).
В ответ пользователю AlexSpl
Аватар пользователя
#584
AlexSpl;200439


2VDV_forever: Реализовать-то можно, но придётся перед атакой дополнительно задавать ещё два параметра (уровни монстров).

Если для Вас это не составит большого труда, не могли бы Вы реализовать эту возможность :o (пусть и с введением дополнительных параметров в программу), было бы крайне интересно лицезреть данный продукт, а также пощупать его руками:).

Возможно именно с введением такой доработки, удасться досконально изучить выпадение морали в героях 1, что на мой взгляд является очень важным аспектом в игре!

С уважением, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
Аватар пользователя
#585
2VDV_forever: Постараюсь реализовать, вот только пока не знаю, сколько времени на это уйдёт. Пока парочка скринов:
Аватар пользователя
#586
.:: LMOracle 3.4 ::.

:: Что нового? ::
1) Добавлен почти полноценный светофор морали и удачи для версии HoMM I 1.1 RU;
2) Добавлен монитор урона для версии HoMM I 1.1 RU;
3) Исправлены недочёты.

:: Инструкция ::
1) Начните бой;

2) Задайте значения морали и удачи в меню "Settings" (Morale, Luck, Enemy's Luck);
Примечание: этот пункт очень важен, так как из-за неправильного значения удачи урон будет рассчитываться неверно.

3) Выберите режим "Without retaliation" (Без ответки), "With retaliation" (С ответкой) или "Without attack" (Без атаки);

4) Задайте дополнительное условие (оно одно для HoMM I), если нужно: "Double attack" (эльфы, паладины и т.д.);

5а) Режим "Without retaliation":
Сделайте двойной клик на надписи "Defender" и в появившееся окошечко введите защиту атакуемого отряда (не ошибётесь куда). Если атакующий отряд является стрелковым и блокирован, поставьте флажок "Blocked" (половинит урон для стрелков, игнорируется всеми остальными).

5б) Режим "With retaliation":
Здесь нужно ввести следующие параметры (сверху вниз, слева направо):
1) Точное количество воинов в атакуемом отряде, которые СМОГУТ ответить после (первого) удара атакующего (в определении этого числа поможет монитор урона, см. ниже);
2) Минимальный урон воина в атакуемом отряде;
3) Максимальный урон воина в атакуемом отряде;
4) [Уже задано] Атака воинов в Вашем текущем отряде;
5) Защита воинов в атакуемом отряде.

Примечания (5б):
1) Параметры атаки и защиты следует вводить с учётом всех бонусов (числа в скобках в окне информации);
2) Флажок "Blocked" в этом режиме установлен из-за того, что если стрелки бьют с ответкой, значит, они блокированы, а остальные юниты игнорируют этот флаг.

Программа сигнализирует зелёным цветом перед ходом любого отряда о возможности выпадения морали и/или удачи при заданных условиях.

:: Монитор урона ::

Введение.
Оказывается формула k = (1 + 0.1*sign(A1-D2))^|A1-D2| не является точной, правда, довольно хорошо аппроксимирует коэффициент урона в некоторых пределах (см. ниже).

На самом деле игра рассчитывает урон следующим образом:
1) Вычисляется сумма:
base_dmg = sum[i = 1, n] (int_rand(min_dmg, max_dmg)).

Пример:
Пусть n = 10 волков (min_dmg = 3, max_dmg = 5, A1 = 6, D1 = 2) атакуют n'=50 фей (min_dmg' = 1, max_dmg' = 2, A2 = 4, D2 = 2), тогда упомянутая сумма будет выглядеть примерно так:
base_dmg = 4 + 4 + 3 + 5 + 3 + 4 + 3 + 3 + 3 + 5 = 37 (что соответствует 3,7 * 10 в классической теории, но число 3,7 нигде не генерируется, здесь приведено лишь для сравнения);

2) Полученная сумма умножается на коэффициент k (первое число - разность атаки нападающего и защиты атакуемого (A1-D2), второе есть коэффициент k):

0: 1.00

1: 1.10; 2: 1.21; 3: 1.33; 4: 1.46; 5: 1.61; 6: 1.77; 7: 1.95; 8: 2.14; 9: 2.36; 10: 2.59,
11: 2.85; 12: 3.14; 13: 3.45; 14: 3.80; 15: 4.18, 16: 4.59; 17 и выше(!): 5.00

-1: 0.90; -2: 0.81; -3: 0.73; -4: 0.66; -5: 0.59; -6: 0.53; -7: 0.48; -8: 0.43; -9: 0.39; -10: 0.35;
-11: 0.31; -12: 0.28; -13: 0.25; -14: 0.23; -15: 0.21; -16 и ниже(!): 0.20 = 1/5

Таким образом, максимальный урон наблюдается при разности A1-D2 >= 17 и в пять раз превышает базовый; минимальный - при разности A1-D2 <= -16 и в пять раз меньше базового.

Приведённые цифры хранятся в исполняемом файле игры и представляют собой округлённые до сотых значения выражения (1 + 0.1*sign(A1-D2))^|A1-D2| при различной разности A1-D2. Степень не вычисляется непосредственно!

Вернёмся к примеру. almost_right_dmg = k * base_dmg = 1.46 * 37 = 54.02
Эта величина подвергается либо делению на два (блокированные стрелки и т.п.), либо умножению на два (удача).
(almost_right_dmg:=almost_right_dmg/2; almost_right_dmg:=almost_right_dmg*2)

И, финальный штрих, right_dmg = floor(almost_right_dmg + 0.5)

Для нашего случая (пусть, например, волки бьют с удачей), right_dmg = floor(54.02 * 2 + 0.5) = floor(108,54) = 108.

:: Монитор урона ::
Если все параметры заданы верно, в статусной строке Вы увидите точный урон. Для стрелков с двойной атакой можно увидеть урон при первом и втором выстрелах: при снятом флажке "Double attack" - урон при первом выстреле, иначе - при втором).

:: Ограничения ::
Мораль и урон в общем случае будут предсказано неверно, если:
а) Режим "With retaliation" + "Double attack": ответка врага убивает хотя бы одного воина в отряде атакующего (а также вариации на эту тему c двойной ответкой на двойную атаку);

б) Вы выбрали режим "Double attack", а Ваш отряд убил врага первым ударом (перед такими атаками снимайте флажок "Double attack").

Пожалуйста, сообщайте о случаях неправильного предсказания морали или урона!

P.S. Отряды за крепостными стенами получают бонус к защите +4 для стрелковых атак! Учтите это. Бонус исчезает, если отряд пересекает линию стен или находится на ней, а также, если Ваши стрелки находятся на одной горизонтали с отрядом противника и стена на этой горизонтали полностью разрушена.

Скачать