Current time: 10.11.2024, 21:57 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Настройка состояния условий генерации случайной карты
Author Message
igrik Offline
Administrators

Posts: 2819
Post: #1

Давно зрел вопрос: где и что (скорее всего в текстовике в лоде.... /ну всё же/) нужно изменить, чтобы автоматически по умолчанию в генерации случайной карты в игре выставлялись опции: размер карты XL, подземелье - есть, 2 игрока-человека, 6 только компьютеров, воды - нет, монстры - сильные, сложность - 200% ?
Задолбаешься всё выставлять блин, пока нормальную рендомную карту создашь...Fie


game bug fixes extended.dll || My Plugins || My GitHub
17.05.2012 16:40
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #2

Угу, согласен.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
17.05.2012 16:59
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #3

Возможно всё-таки это зашито в екзешнике. Очень жаль.
Я почему спросил: увидил пост baratorch'a
Quote: HoMM 3: High Resolution Project - 3.0 beta 10:
[!] теперь в RMG по умолчанию выставляются опции: 2 игрока-человека, 0 только компьютеров, воды - нет, монстры - сильные, сложность - 180%
и обнадеялся, что это сделать легко и просто. Да уж, рано я то слюнки пустил...


game bug fixes extended.dll || My Plugins || My GitHub
17.05.2012 20:44
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16648
Post: #4

Так надо бару спросить по адресам и всего-то.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
17.05.2012 21:00
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #5

(17.05.2012 21:00)Berserker Wrote:  Так надо бару спросить по адресам и всего-то.

можно даже через артмани нарыть, думаю


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
20.05.2012 00:51
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #6

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

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


game bug fixes extended.dll || My Plugins || My GitHub
20.05.2012 23:36
Visit this user's website Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1054
Post: #7

igrik, для кнопки сложность "всего лишь" 26 адресов. После перезагрузки игры живы только 8. И 4 из них не меняются.

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

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

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

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

Перезапуск игры ситуацию не меняет. Получается, что сама игра зависит от того, какой будет мусор в памяти после её запуска. Печально.
21.05.2012 09:27
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #8

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

Я пробовал менять параметры (при выборе размера карты) так на обум. Ошибки не выбивало, и карта нормально грузилась на том размере карты, который я устанавливал. Хотя я думал, что будут вылеты. Но с перезапуском (выход в основное меню и загрузка новой карты) не пробовал. Только выход из игры делал.


game bug fixes extended.dll || My Plugins || My GitHub
21.05.2012 15:56
Visit this user's website Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1054
Post: #9

igrik, да, полный выход из игры.
21.05.2012 17:18
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #10

По адресу 0x6834A1 не может изначально быть мусора. Это статический адрес и либо у него есть предустановленное значение, либо там 0. Мусор мог прописаться разве что в какие-то конфиги.
21.05.2012 18:07
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #11

для 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.

Как отловить размер карты и наличие воды, пока ума не приложу. Хотя может попробовать анологично


game bug fixes extended.dll || My Plugins || My GitHub
21.05.2012 23:21
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #12

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

а размер карты и воды скорее всего рядом


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
(This post was last modified: 21.05.2012 23:39 by gamecreator.)
21.05.2012 23:35
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #13

Вот остальные адреса (повторюсь что адреса найдены на 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 тут!
Вопрос: как теперь это можно использовать чтобы автоматически стояли интересующие настройки при запуске игры?

Сорри за оффтоп.


game bug fixes extended.dll || My Plugins || My GitHub
22.05.2012 00:49
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #14

возьми соседние с этим адресом пару десятков байт и поищи в ехе какой-нибудь прогой типа winhex. подставь интересующие значения.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
22.05.2012 00:55
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #15

Эти все адреса динамические и могут быть разными на разных машинах. Нужно найти, откуда в них копируются значения. Подозреваю, что эти адреса вообще из структуры диалога, тогда поиск по exe не поможет. Но, возможно, и не так.
(This post was last modified: 22.05.2012 09:53 by Sav.)
22.05.2012 01:11
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group