Wake of Gods Forum | Форум Во Имя Богов

Full Version: Настройка состояния условий генерации случайной карты
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Давно зрел вопрос: где и что (скорее всего в текстовике в лоде.... /ну всё же/) нужно изменить, чтобы автоматически по умолчанию в генерации случайной карты в игре выставлялись опции: размер карты XL, подземелье - есть, 2 игрока-человека, 6 только компьютеров, воды - нет, монстры - сильные, сложность - 200% ?
Задолбаешься всё выставлять блин, пока нормальную рендомную карту создашь...Fie
Угу, согласен.
Возможно всё-таки это зашито в екзешнике. Очень жаль.
Я почему спросил: увидил пост baratorch'a
Quote: HoMM 3: High Resolution Project - 3.0 beta 10:
[!] теперь в RMG по умолчанию выставляются опции: 2 игрока-человека, 0 только компьютеров, воды - нет, монстры - сильные, сложность - 180%
и обнадеялся, что это сделать легко и просто. Да уж, рано я то слюнки пустил...
Так надо бару спросить по адресам и всего-то.
(17.05.2012 21:00)Berserker Wrote: [ -> ]Так надо бару спросить по адресам и всего-то.

можно даже через артмани нарыть, думаю
(20.05.2012 00:51)gamecreator Wrote: [ -> ]можно даже через артмани нарыть, думаю

Пробовал в артмани через "поиск неизвестного значения". Там выбивало около 600 адресов (после так 50-го отсеивания, после которого кстати к-во адресов перестает уменьшаться), и все меняли свои параметры . Так это только при изменении размера карты, а если учесть настроки с водой или без, сила монстров, кол-компов. Короче всё равно что иголку в стоге сена.
igrik, для кнопки сложность "всего лишь" 26 адресов. После перезагрузки игры живы только 8. И 4 из них не меняются.

Причём для изменения сложности достаточно изменения всего одного (остальные меняются автоматом):
006834A1

Значения:
0 (80%)
16777216
33554432
50331648
67108864 (200%)

Ну при этом картинка не меняется (и значение по умолчанию тоже).

Впрочем, после экспериментов, у меня теперь всё глючит:
Имя сложности Impossible для стандартных карт независимо от выбранного значения.
Переключается на Normal для случайных карт.

Перезапуск игры ситуацию не меняет. Получается, что сама игра зависит от того, какой будет мусор в памяти после её запуска. Печально.
Перезапуск игры: это выход из игры и её запуск заново / или выход в основное меню и загрузка новой карты? Так, интересно просто))

Я пробовал менять параметры (при выборе размера карты) так на обум. Ошибки не выбивало, и карта нормально грузилась на том размере карты, который я устанавливал. Хотя я думал, что будут вылеты. Но с перезапуском (выход в основное меню и загрузка новой карты) не пробовал. Только выход из игры делал.
igrik, да, полный выход из игры.
По адресу 0x6834A1 не может изначально быть мусора. Это статический адрес и либо у него есть предустановленное значение, либо там 0. Мусор мог прописаться разве что в какие-то конфиги.
для ERA 1.9
Я нашёл всего 2 адреса для уровня сложности. Это - 006834A4 и 0462F720 (Скорее всего статичные, я в жтом не разбираюсь). Оба принимают одинаковые параметры (от 0 до 4). Если заморозить значение по этим адресам, то рейтинг пишет 200%, хотя сложность можно поставить на пешку (получается пешка с рейтингом 200% вместо 80%), но карта загружается на сложности "Король".

Теперь самое интересное:
команда !!UN:J2 привязана к адресу 006834A4
но сложность игры (что подтверждается сохранением и загрузкой карты) считывается с адреса 0462F720.
Т.е. загрузил карту на сложности "конь" (1).
Через артмани видно что оба адреса показывают уровень сложности "1". команда !!UN:J2 тоже пишет "1". Через неё же (!!UN:J2) меняю сложность на "Король" "4". Захожу в "информация о сценарии" сложность стоит на "коне", хотя !!UN:J2 говорит о сложности №4. Если сохраниться в данном месте и загрузить сейв карты, то сложность будет "конь".
Но если в артмани перед сохранением поменять сложность по адресу 0462F720 то при загрузке сложность считается из адреса 0462F720 в адрес 006834A4.

Как отловить размер карты и наличие воды, пока ума не приложу. Хотя может попробовать анологично
4... - это динамический, слишком большой адрес для статического.
6... - статический.
если артмани показывает загруженные модули, то в окне памяти можно увидеть где статический (туда грузится инфа из файлов, динамические области памяти выделяются уже по ходу дела)

а размер карты и воды скорее всего рядом
Вот остальные адреса (повторюсь что адреса найдены на ERA 1.9):

--------------------------
0022A0CC - размер карты
хранит параметр:
С - 36
M - 72
L - 108
XL - 144

После генерации карты данный адрес начинает использоваться для чего-то другого. если его заморозить на уже созданной карте (или изменить) то моментально последует вылет из игры.

Интересно, что этот адрес для Wog3.58f используется для выбора "Команды компьютеров или людей"
диапазон от 0 до 7 для 1 - 8 команд соответсвенно, 255 для случайного выбора команд
----------------------------
0022A0E4 - вода
хранит параметр:
нет - 0
норм. - 1
острова - 2
случайно - 3
---------------------------
0022A0E8 - сила монстров
хранит параметр:
слаб - 0
норм. - 1
сильн. - 3
случайно - 255
---------------------------
Установку количества игроков сложно объяснить - нужно видеть.
Если кому интересно, то найденные таблицы ArtMoney тут!
Вопрос: как теперь это можно использовать чтобы автоматически стояли интересующие настройки при запуске игры?

Сорри за оффтоп.
возьми соседние с этим адресом пару десятков байт и поищи в ехе какой-нибудь прогой типа winhex. подставь интересующие значения.
Эти все адреса динамические и могут быть разными на разных машинах. Нужно найти, откуда в них копируются значения. Подозреваю, что эти адреса вообще из структуры диалога, тогда поиск по exe не поможет. Но, возможно, и не так.
Pages: 1 2
Reference URL's