Подсчет очков в Heroes IV
Информация взята с сайта heroes.ag.ru для heroes.vov.ru
Все вы прекрасно видели, от чего зависят набираемые в Heroes IV очки: это Time, Battle, Army, Golg, Quest, Artifacts, Exploration и Hero. Более или мене ясно, что они означают. Но вот как конкретно влияют на набираемые очки? Так и напрашивается известная реклама: "Формула? Где формула?", только в данном случае Rexon не поможет :).
И сразу скажу, что вы не увидите такой же красивой простой формулы, как в рекламе. Здесь все запутаннее. Однако это дело удалось распутать Рафаэлю и Амуну, оставившим свои сообщения на форуме http://www.hommportal.com/tavern/viewtopic.php?t=9. Ниже приводится (с разрешения Амуна) копия тех самых сообщений.
Те, кто не хочет вникать в никакие подробности, могут сразу скачать лист Exel, где достаточно только поставить данные прохождения, и вы сразу же получите результат. Затем эти данные можно слегка "подергать", чтобы увидеть, сколь сильно влияет на окончательный результат изменения того или иного параметра. А, вообще, общая картина такова:
На набранные очки не влияет день недели, то есть, вы получите одинаковое количество очков, если закончите в первый или последний день одной и той же недели (при прочих равных условиях, разумеется).
Все остальные параметры (то есть, кроме Time), имеют "внутренние ограничители". Поэтому не стоит качать героя до самого предела или набирать туеву хучу армии: выше определенного предела вы все равно не получите (а по приводимым формулам как раз и можно "нащупать" такой предел, когда дальнейшее увеличение параметра уже не приводит к повышению очков).
Сам факт откапывания Грааля не приносит отдельных очков. Здесь влияние только косвенное: откопали золотишко, получили прирост за Gold, откопали артефакт - получили за параметр Artefact.
На параметры Quest и Battle отвлекаться не стоит из-за существующего в данный момент бага: как только вы перезагружаетесь, очки за квесты и битвы обнуляются.
Вот и все введение. Обсудить все это дело можно на форумной
ветке ГУголка:
Таблица рекордов - кто круче?
Далее идет текст с
форума
http://www.hommportal.com/tavern/viewtopic.php?t=9
Сэр Рафаэль сообщил (дословно)
Author: Rafael
Date: 06-04-02 13:23
Наконец-то разобрался с системой начисления очков в героях 4. Хоть и не хотел, но решил опубликовать. Как вы знаете, теперь очки начисляются немного по-другому. Я разобрался почти во всех пунктах, из которых состоит конечный результат.
на пункты Army, Gold, Artifacts, Hero накладывается ограничение: 24, 48, 76, 76 соответственно. На первых двух неделях пункты Artifacts и Hero имеют ограничение в 76 очков, дальше это ограничение снижается. Например? на 3-й неделе это уже 74 очка.
Отдельное спасибо за предоставленную выборку результатов сэра Alan Prost, сэра Mic, сэра Hoher и сэра Melkor (в нынешнем воплощении Amun).
Для тех, кто считает что вышеприведенный алгоритм подсчета очков не является формулой, а является только критерием привожу подробную формулу. Может быть кто-нибудь запрограммирует ее в Excel. (уже запрограммировано, взять можно здесь).
Сразу предупреждаю, что формула приведена для уровня Champion и без учета Battle и Quest
ponts=
int(level_map*level_game*(100-last_days)/100)+
//time
(min(int(cost_units_in_gold/1000);24))+
//army
(min(int((gold+resourses_in_gold)/500);48))+
//gold
(min((treasures*10+minors*20+majors*40+relics*80);76-last_weeks))+
//artefacts
int(12*map_exploration_in_percent/100)+
//exploration
((level_best_hero-3)*10)+
//hero
(min(quantity_towns*30;120)) //towns
Буду признателен за дополнения и исправление данной информации. Как говорится "в споре рождается истина".
Второй этап. Изложенное Рафаэлем толкнуло меня (Мелькора/Амуна) заняться вплотную этим вопросом. Были исправлены недочеты в материале Рафаэля и переработаны некоторые моменты.. Итогом стал доклад на
http://www.hommportal.com/tavern/viewtopic.php?t=9
Дословно
Спешу обрадовать всех, кто заинтересован в формуле подсчета очков по игре HoMM4, я подобрался вплотную к раскрытию параметра очков за тайм (Time). Начисление очков за прочие параметры дал ранее сэр Рафаэль..
Окончательной и единой автоматической формулы расчета очков Time пока нет, есть лист эксела-полуавтомат.
Итак, сначала пара выводов – почти все составляющие очков имеют ограничения (типа 24, 48, 76), очки за тайм такого ограничения не имеют.. Перефразируя Рафа, имеем
Points = Time + Extens, где Extens – это суммарные прочие параметры…Получается, что при максимально хорошей игре у всех игроков Extense будет почти одинаков. К примеру, Army=24, Gold=48, Artifact=76, Hero=76, Towns=120, Explore=11 ..все вместе = 355. Отличия будут только в засветке карты и очков за битвы, а они незначительны.
Теперь подойду к параметру Time. Он рассчитывается, исходя из трех главных параметров, а именно Сложность, Сложность карты, текущая неделя - все эти параметры так и идут по порядку в финале сценария. Неделю каждый знает, Сложность карты задана автором карты и может иметь 5 значений novice=50 intermediate=75 advanced=100 expert=125 champion=150, а Сложность берется из маленькой таблички (в листе эксела она приведена), она известна до начала игры – суть там вот в чем: в строчках размер карты (S, M, L, XL) в столбцах сложность игры (у нас всегда Champion), на их пересечении стоит цифра – она и есть Сложность.
Теперь как ведет себя параметр Time – у него есть так называемая стабильная площадка, соответствует норме, т.е все коэф=0, и эти очки начисляются довольно продолжительное время (несколько недель подряд).. Если кто выходит по времени из нормы то появляется отрицательный коэф., очков соответственно получит меньше. Кто проходит быстро, получает положительный коэф. И таких коэффициентов три: 5 (самый быстрый проход - всех больше очков за тайм), 2 и 1, далее идет норма..
Конкретно поясню формулу далее.. а сейчас закончу вывод. ЕСЛИ ЗА ОСНОВУ турнира брать расчет очков – то у многих эти очки будут совпадать с разницей в пределах десятка, ибо супер проход (k=5) – довольно проблематичен, остальные и особенно норма – идут неделями.. те ДНИ НЕ УЧИТЫВАЮТСЯ, считаются только недели с момента наступления оной. И значит к примеру, что 8 день (начало 2 недели) равен 14 дню (конец 2 недели).. ПОЭТОМУ ГЛАВНЫМ КРИТЕРИЕМ ПРОХОДА могут быть только ДНИ, а Очки будут второстепенным параметром.
А сейчас конкретный расчет: к примеру, карта dungeon (малая), ее сложность map=75, при игре на уровне Champion Сложность level= 700 (подтверждение этому получите в финале сценария). Очки, соответствующие норме, считаются очень просто – по экселу – ОТБР(level*map/100) = 700*75/100=525: столько очков дают начиная с 7 и заканчивая 16 неделями (все недели здесь и далее указаны для данной карты). К примеру, мы прошли супер быстро – то есть уложились в 2 недели, получим 712 очков, к=5, формула такая ОТБР(level*map/100 + map*k/2) = 700*75/100 + 75*5/2 = 712. Если мы прошли на 3 или 4 неделях то к=2, формула та же, если на 5-6 недели, то к=1. Начиная с 7 недели, начинается норма в 525 очков. Если мы проходим очень долго, то вводится понижающий коэффициент к=2,86 (для dungeon’a). Прошли на 17-18 неделе (первый цикл торможения t=1) формула такова: ОТБР(level*map/100 – map*t / k). Далее каждые две недели увеличивают t на единицу. То есть, 19-20 неделя t=2, 21-22 неделя t=3 и так далее…
Вот собственно и все… Как видите, все довольно просто.. по формуле – есть основа (норма), три плюсовых довеска, и куча минусовых.
Окончательный вариант в экселе выйдет после того, как будут проанализированы все варианты, их довольно много.. 4 размера карты* 5 уровней карты * 5 уровней игры = 100 вариантов. Для турнира меньше – всего 20 вариантов.
Спасибо всем, кто отозвался и предоставил мне статистические данные,
С уважением, Мелькор (КоН).. не утративший в обличии тигра Амуна навыков астрономии..
Этап 3. Последнее на данный момент времени сообщение от меня (Мелькора)
Прошла неделя с момента моего первого доклада по расчету очков для HMM4. На основе собранной статистики и анализа данных была выведена формула по параметру Time. Теперь основная работа завершена, определились недели, соответствующие очкам. Я аппроксимировал итог на все карты и сделал общую формулу. Теперь она просто нуждается в тестировании. Замечу, что моя формула может отличаться от зашитой в игре (я ее не знаю), но дает такой же результат.
Напомню, все карты условно разбиваем на классы, буквой обозначаем размер карты (S-M-L-XL), цифрой сложность карты (50-150). К примеру Занфас - это XL75.
Очки понижаются ступенчато в зависимости от текущей недели. Начиная с наибольших очков, различаем 4 ступени (1 – лучшая, 2, 3, 4 – норма), далее идут понижающие коэф-ты. (я их пока подробно не рассматривал, ввиду того, что это явно плохие результаты).
Норма (4 ступень) обладает особенностью, что она длится ровно 5 циклов. 1, 2, 3 ступени длятся ровно по 1 циклу каждая.. В цикле может быть 1-6 недель.
Цикл S-класса=1 недели, M-класса=2 недели, L-класса=4 недели, XL–класса=6 недель
Итого имеем табличку:
Ступени / коэф |
Недели S-класс |
Недели M-класс |
Недели L-класс |
Недели X-класс |
1 / 5 |
1 |
1-2 |
1-4 |
1-6 |
2 / 2 |
2 |
3-4 |
5-8 |
7-12 |
3 / 1 |
3 |
5-6 |
9-12 |
13-18 |
4 / 0 |
4-8 |
7-16 |
13-32 |
19-48 |
Выводы делайте сами – это не трудно.
Формула
Points= ОТБР(level*map/100 + map*k/2), где level – сложность, map – уровень карты, к –коэф. ступени).
Все это отображено в эксел-форме. Она рассчитывает очки за тайм, которые можно набрать на карте, показывает на какой неделе это происходит, и переводит недели в календарь, принятый в игре. Плюс произвольный пересчетный календарь.
P.S. Буду признателен, если кто-нибудь что-нибудь добавит к этому, или заметит какие-либо нюансы.